diff options
author | Ayman Musa <ayman.musa@intel.com> | 2017-05-15 11:30:54 +0000 |
---|---|---|
committer | Ayman Musa <ayman.musa@intel.com> | 2017-05-15 11:30:54 +0000 |
commit | c5490e5a295bff69e24845d540d7fe8622a72a38 (patch) | |
tree | 6ac904aee1b58ab963f710d1e8889353ee50f102 /llvm/lib/CodeGen/CodeGen.cpp | |
parent | 2c1cdae2dfe5b9aa4eceb9e76fa52bf621cc66aa (diff) | |
download | bcm5719-llvm-c5490e5a295bff69e24845d540d7fe8622a72a38.tar.gz bcm5719-llvm-c5490e5a295bff69e24845d540d7fe8622a72a38.zip |
[X86] Relocate code of replacement of subtarget unsupported masked memory intrinsics to run also on -O0 option.
Currently, when masked load, store, gather or scatter intrinsics are used, we check in CodeGenPrepare pass if the subtarget support these intrinsics, if not we replace them with scalar code - this is a functional transformation not an optimization (not optional).
CodeGenPrepare pass does not run when the optimization level is set to CodeGenOpt::None (-O0).
Functional transformation should run with all optimization levels, so here I created a new pass which runs on all optimization levels and does no more than this transformation.
Differential Revision: https://reviews.llvm.org/D32487
llvm-svn: 303050
Diffstat (limited to 'llvm/lib/CodeGen/CodeGen.cpp')
-rw-r--r-- | llvm/lib/CodeGen/CodeGen.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/CodeGen.cpp b/llvm/lib/CodeGen/CodeGen.cpp index 26a98d76c13..4d30c6574b1 100644 --- a/llvm/lib/CodeGen/CodeGen.cpp +++ b/llvm/lib/CodeGen/CodeGen.cpp @@ -81,6 +81,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) { initializeRegisterCoalescerPass(Registry); initializeRenameIndependentSubregsPass(Registry); initializeSafeStackLegacyPassPass(Registry); + initializeScalarizeMaskedMemIntrinPass(Registry); initializeShrinkWrapPass(Registry); initializeSlotIndexesPass(Registry); initializeStackColoringPass(Registry); |