[all-commits] [llvm/llvm-project] 3a24df: [ARM] Pass for Cortex-A57 and Cortex-A72 Fused AES...
Sam Elliott via All-commits
all-commits at lists.llvm.org
Fri May 13 02:48:17 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3a24df992cf87029ed89c5a4a6be4049b73ff3ab
https://github.com/llvm/llvm-project/commit/3a24df992cf87029ed89c5a4a6be4049b73ff3ab
Author: Archibald Elliott <archibald.elliott at arm.com>
Date: 2022-05-13 (Fri, 13 May 2022)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Arch/ARM.cpp
A clang/test/Driver/arm-fix-cortex-a57-aes-1742098.c
M llvm/lib/Target/ARM/ARM.h
M llvm/lib/Target/ARM/ARM.td
A llvm/lib/Target/ARM/ARMFixCortexA57AES1742098Pass.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/CMakeLists.txt
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/ARM/aes-erratum-fix.ll
Log Message:
-----------
[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
More information about the All-commits
mailing list