Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AArch64] Use Feature for A53 Erratum 835769 Fix
When this pass was originally implemented, the fix pass was enabled using a llvm command-line flag. This works fine, except in the case of LTO, where the flag is not passed into the linker plugin in order to enable the function pass in the LTO backend. Now LTO exists, the expectation now is to use target features rather than command-line arguments to control code generation, as this ensures that different command-line arguments in different files are correctly represented, and target-features always get to the LTO plugin as they are encoded into LLVM IR. The fall-out of this change is that the fix pass has to always be added to the backend pass pipeline, so now it makes no changes if the function does not have the right target feature to enable it. This should make a minimal difference to compile time. One advantage is it's now much easier to enable when compiling for a Cortex-A53, as CPUs imply their own individual sets of target-features, in a more fine-grained way. I haven't done this yet, but it is an option, if the fix should be enabled in more places. Existing tests of the user interface are unaffected, the changes are to reflect that the argument is now turned into a target feature. Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D114703
- Loading branch information
Showing
10 changed files
with
33 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters