summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CodeGen.cpp
diff options
context:
space:
mode:
authorAyman Musa <ayman.musa@intel.com>2017-05-15 11:30:54 +0000
committerAyman Musa <ayman.musa@intel.com>2017-05-15 11:30:54 +0000
commitc5490e5a295bff69e24845d540d7fe8622a72a38 (patch)
tree6ac904aee1b58ab963f710d1e8889353ee50f102 /llvm/lib/CodeGen/CodeGen.cpp
parent2c1cdae2dfe5b9aa4eceb9e76fa52bf621cc66aa (diff)
downloadbcm5719-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.cpp1
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);
OpenPOWER on IntegriCloud