From d71c49494f571f89b287594d001b0a0563b5f60c Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Tue, 31 Jan 2012 11:02:23 -0800 Subject: [PATCH] Missed pass that should be skipped when pseudo memory ops are supposed to be left unchanged. --- opt.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/opt.cpp b/opt.cpp index c564aa21..77663544 100644 --- a/opt.cpp +++ b/opt.cpp @@ -368,8 +368,10 @@ Optimize(llvm::Module *module, int optLevel) { optPM.add(CreateMaskedStoreOptPass()); optPM.add(CreateMaskedLoadOptPass()); } - optPM.add(CreatePseudoMaskedStorePass()); - if (!g->opt.disableGatherScatterOptimizations) + if (g->opt.disableHandlePseudoMemoryOps == false) + optPM.add(CreatePseudoMaskedStorePass()); + 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; }