4 Commits

Author SHA1 Message Date
Rahul Joshi
19dbde0e81
[NFC][LLVM] Cleanup pass initialization for ARM/ARV/Lanai/X86/XCore (#134400)
- Remove pass initialization from pass constructors.
- https://github.com/llvm/llvm-project/issues/111767
2025-04-07 12:56:16 -07:00
Kazu Hirata
5be43db9b1
[ARM] Remove unused includes (NFC) (#116155)
Identified with misc-include-cleaner.
2024-11-13 23:11:14 -08:00
NAKAMURA Takumi
bdab5c4b3d ARMFixCortexA57AES1742098Pass.cpp: Suppress a warning. [-Wunused-but-set-variable] 2022-05-15 18:01:42 +09:00
Archibald Elliott
3a24df992c [ARM] Pass for Cortex-A57 and Cortex-A72 Fused AES Erratum
This adds a late Machine Pass to work around a Cortex CPU Erratum
affecting Cortex-A57 and Cortex-A72:
- Cortex-A57 Erratum 1742098
- Cortex-A72 Erratum 1655431

The pass inserts instructions to make the inputs to the fused AES
instruction pairs no longer trigger the erratum. Here the pass errs on
the side of caution, inserting the instructions wherever we cannot prove
that the inputs came from a safe instruction.

The pass is used:
- for Cortex-A57 and Cortex-A72,
- for "generic" cores (which are used when using `-march=`),
- when the user specifies `-mfix-cortex-a57-aes-1742098` or
  `mfix-cortex-a72-aes-1655431` in the command-line arguments to clang.

Reviewed By: dmgreen, simon_tatham

Differential Revision: https://reviews.llvm.org/D119720
2022-05-13 10:47:33 +01:00