diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp index e014f5d1eb04..7017f6adf3a2 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp @@ -121,7 +121,7 @@ performBlockTailMerging(Function &F, ArrayRef<BasicBlock *> BBs, // Now, go through each block (with the current terminator type) // we've recorded, and rewrite it to branch to the new common block. - const DILocation *CommonDebugLoc = nullptr; + DILocation *CommonDebugLoc = nullptr; for (BasicBlock *BB : BBs) { auto *Term = BB->getTerminator(); assert(Term->getOpcode() == CanonicalTerm->getOpcode() && @@ -228,8 +228,8 @@ static bool iterativelySimplifyCFG(Function &F, const TargetTransformInfo &TTI, SmallVector<std::pair<const BasicBlock *, const BasicBlock *>, 32> Edges; FindFunctionBackedges(F, Edges); SmallPtrSet<BasicBlock *, 16> UniqueLoopHeaders; - for (unsigned i = 0, e = Edges.size(); i != e; ++i) - UniqueLoopHeaders.insert(const_cast<BasicBlock *>(Edges[i].second)); + for (const auto &Edge : Edges) + UniqueLoopHeaders.insert(const_cast<BasicBlock *>(Edge.second)); SmallVector<WeakVH, 16> LoopHeaders(UniqueLoopHeaders.begin(), UniqueLoopHeaders.end()); @@ -338,8 +338,8 @@ void SimplifyCFGPass::printPipeline( raw_ostream &OS, function_ref<StringRef(StringRef)> MapClassName2PassName) { static_cast<PassInfoMixin<SimplifyCFGPass> *>(this)->printPipeline( OS, MapClassName2PassName); - OS << "<"; - OS << "bonus-inst-threshold=" << Options.BonusInstThreshold << ";"; + OS << '<'; + OS << "bonus-inst-threshold=" << Options.BonusInstThreshold << ';'; OS << (Options.ForwardSwitchCondToPhi ? "" : "no-") << "forward-switch-cond;"; OS << (Options.ConvertSwitchRangeToICmp ? "" : "no-") << "switch-range-to-icmp;"; @@ -347,8 +347,10 @@ void SimplifyCFGPass::printPipeline( << "switch-to-lookup;"; OS << (Options.NeedCanonicalLoop ? "" : "no-") << "keep-loops;"; OS << (Options.HoistCommonInsts ? "" : "no-") << "hoist-common-insts;"; - OS << (Options.SinkCommonInsts ? "" : "no-") << "sink-common-insts"; - OS << ">"; + OS << (Options.SinkCommonInsts ? "" : "no-") << "sink-common-insts;"; + OS << (Options.SpeculateBlocks ? "" : "no-") << "speculate-blocks;"; + OS << (Options.SimplifyCondBranch ? "" : "no-") << "simplify-cond-branch"; + OS << '>'; } PreservedAnalyses SimplifyCFGPass::run(Function &F, @@ -358,11 +360,6 @@ PreservedAnalyses SimplifyCFGPass::run(Function &F, DominatorTree *DT = nullptr; if (RequireAndPreserveDomTree) DT = &AM.getResult<DominatorTreeAnalysis>(F); - if (F.hasFnAttribute(Attribute::OptForFuzzing)) { - Options.setSimplifyCondBranch(false).setFoldTwoEntryPHINode(false); - } else { - Options.setSimplifyCondBranch(true).setFoldTwoEntryPHINode(true); - } if (!simplifyFunctionCFG(F, TTI, DT, Options)) return PreservedAnalyses::all(); PreservedAnalyses PA; @@ -395,13 +392,6 @@ struct CFGSimplifyPass : public FunctionPass { DominatorTree *DT = nullptr; if (RequireAndPreserveDomTree) DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); - if (F.hasFnAttribute(Attribute::OptForFuzzing)) { - Options.setSimplifyCondBranch(false) - .setFoldTwoEntryPHINode(false); - } else { - Options.setSimplifyCondBranch(true) - .setFoldTwoEntryPHINode(true); - } auto &TTI = getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F); return simplifyFunctionCFG(F, TTI, DT, Options); |