Missed pass that should be skipped when pseudo memory ops are supposed to be left unchanged.

This commit is contained in:
Matt Pharr
2012-01-31 11:02:23 -08:00
parent 25665f0841
commit d71c49494f

View File

@@ -368,8 +368,10 @@ Optimize(llvm::Module *module, int optLevel) {
optPM.add(CreateMaskedStoreOptPass());
optPM.add(CreateMaskedLoadOptPass());
}
if (g->opt.disableHandlePseudoMemoryOps == false)
optPM.add(CreatePseudoMaskedStorePass());
if (!g->opt.disableGatherScatterOptimizations)
if (g->opt.disableGatherScatterOptimizations == false &&
g->opt.disableHandlePseudoMemoryOps == false)
optPM.add(CreateGSToLoadStorePass());
if (g->opt.disableHandlePseudoMemoryOps == false) {
optPM.add(CreatePseudoMaskedStorePass());
@@ -1865,6 +1867,7 @@ MaskedStoreOptPass::runOnBasicBlock(llvm::BasicBlock &bb) {
goto restart;
}
}
return modifiedAny;
}
@@ -2102,6 +2105,7 @@ PseudoMaskedStorePass::runOnBasicBlock(llvm::BasicBlock &bb) {
modifiedAny = true;
goto restart;
}
return modifiedAny;
}