diff options
author | Dehao Chen <dehao@google.com> | 2016-05-05 20:47:53 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2016-05-05 20:47:53 +0000 |
commit | f50c67ce7c99eb19a7392d1db2c51acf22396f53 (patch) | |
tree | e0ab32052c9b1c71e732ebf8cd9e9c5464736def | |
parent | 5eba657ff3d696b971d8f36a48a8d0801ab36c31 (diff) | |
download | bcm5719-llvm-f50c67ce7c99eb19a7392d1db2c51acf22396f53.tar.gz bcm5719-llvm-f50c67ce7c99eb19a7392d1db2c51acf22396f53.zip |
Revert http://reviews.llvm.org/D19926 as it breaks tests.
llvm-svn: 268681
-rw-r--r-- | llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h | 11 | ||||
-rw-r--r-- | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp | 52 | ||||
-rw-r--r-- | llvm/lib/Transforms/Utils/AddDiscriminators.cpp | 6 | ||||
-rw-r--r-- | llvm/test/Transforms/AddDiscriminators/multiple.ll | 6 | ||||
-rw-r--r-- | llvm/test/Transforms/AddDiscriminators/oneline.ll | 19 |
5 files changed, 47 insertions, 47 deletions
diff --git a/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h b/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h index 96b18a12558..53f427a7d19 100644 --- a/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h +++ b/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h @@ -39,17 +39,6 @@ public: PreservedAnalyses run(Function &F, AnalysisManager<Function> &AM); }; -struct CFGSimplifyPass : public FunctionPass { - static char ID; // Pass identification, replacement for typeid - unsigned BonusInstThreshold; - std::function<bool(const Function &)> PredicateFtor; - - CFGSimplifyPass(int T = -1, - std::function<bool(const Function &)> Ftor = nullptr); - bool runOnFunction(Function &F) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override; -}; } #endif diff --git a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp index 97c5f183dcb..e6933336947 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp @@ -196,31 +196,35 @@ PreservedAnalyses SimplifyCFGPass::run(Function &F, return PreservedAnalyses::all(); } -CFGSimplifyPass::CFGSimplifyPass(int T, - std::function<bool(const Function &)> Ftor) - : FunctionPass(ID), PredicateFtor(Ftor) { - BonusInstThreshold = (T == -1) ? UserBonusInstThreshold : unsigned(T); - initializeCFGSimplifyPassPass(*PassRegistry::getPassRegistry()); -} - -bool CFGSimplifyPass::runOnFunction(Function &F) { - if (PredicateFtor && !PredicateFtor(F)) - return false; - - if (skipFunction(F)) - return false; - - AssumptionCache *AC = - &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F); - const TargetTransformInfo &TTI = - getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F); - return simplifyFunctionCFG(F, TTI, AC, BonusInstThreshold); -} +namespace { +struct CFGSimplifyPass : public FunctionPass { + static char ID; // Pass identification, replacement for typeid + unsigned BonusInstThreshold; + std::function<bool(const Function &)> PredicateFtor; + + CFGSimplifyPass(int T = -1, + std::function<bool(const Function &)> Ftor = nullptr) + : FunctionPass(ID), PredicateFtor(Ftor) { + BonusInstThreshold = (T == -1) ? UserBonusInstThreshold : unsigned(T); + initializeCFGSimplifyPassPass(*PassRegistry::getPassRegistry()); + } + bool runOnFunction(Function &F) override { + if (skipFunction(F) || (PredicateFtor && !PredicateFtor(F))) + return false; + + AssumptionCache *AC = + &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F); + const TargetTransformInfo &TTI = + getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F); + return simplifyFunctionCFG(F, TTI, AC, BonusInstThreshold); + } -void CFGSimplifyPass::getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired<AssumptionCacheTracker>(); - AU.addRequired<TargetTransformInfoWrapperPass>(); - AU.addPreserved<GlobalsAAWrapperPass>(); + void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.addRequired<AssumptionCacheTracker>(); + AU.addRequired<TargetTransformInfoWrapperPass>(); + AU.addPreserved<GlobalsAAWrapperPass>(); + } +}; } char CFGSimplifyPass::ID = 0; diff --git a/llvm/lib/Transforms/Utils/AddDiscriminators.cpp b/llvm/lib/Transforms/Utils/AddDiscriminators.cpp index 6c4db99efe3..2a6b6eb1b0b 100644 --- a/llvm/lib/Transforms/Utils/AddDiscriminators.cpp +++ b/llvm/lib/Transforms/Utils/AddDiscriminators.cpp @@ -67,7 +67,6 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Transforms/Scalar.h" -#include "llvm/Transforms/Scalar/SimplifyCFG.h" using namespace llvm; @@ -80,10 +79,6 @@ struct AddDiscriminators : public FunctionPass { initializeAddDiscriminatorsPass(*PassRegistry::getPassRegistry()); } - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired<CFGSimplifyPass>(); - } - bool runOnFunction(Function &F) override; }; } // end anonymous namespace @@ -91,7 +86,6 @@ struct AddDiscriminators : public FunctionPass { char AddDiscriminators::ID = 0; INITIALIZE_PASS_BEGIN(AddDiscriminators, "add-discriminators", "Add DWARF path discriminators", false, false) -INITIALIZE_PASS_DEPENDENCY(CFGSimplifyPass) INITIALIZE_PASS_END(AddDiscriminators, "add-discriminators", "Add DWARF path discriminators", false, false) diff --git a/llvm/test/Transforms/AddDiscriminators/multiple.ll b/llvm/test/Transforms/AddDiscriminators/multiple.ll index c7306dc8f2e..bacef89756b 100644 --- a/llvm/test/Transforms/AddDiscriminators/multiple.ll +++ b/llvm/test/Transforms/AddDiscriminators/multiple.ll @@ -21,18 +21,20 @@ entry: if.then: ; preds = %entry %1 = load i32, i32* %i.addr, align 4, !dbg !10 +; CHECK: %1 = load i32, i32* %i.addr, align 4, !dbg ![[THEN:[0-9]+]] store i32 %1, i32* %x, align 4, !dbg !10 -; CHECK: store i32 %1, i32* %x, align 4, !dbg ![[THEN:[0-9]+]] +; CHECK: store i32 %1, i32* %x, align 4, !dbg ![[THEN]] br label %if.end, !dbg !10 ; CHECK: br label %if.end, !dbg ![[THEN]] if.else: ; preds = %entry %2 = load i32, i32* %i.addr, align 4, !dbg !10 +; CHECK: %2 = load i32, i32* %i.addr, align 4, !dbg ![[ELSE:[0-9]+]] %sub = sub nsw i32 0, %2, !dbg !10 -; CHECK: %sub = sub nsw i32 0, %1, !dbg ![[ELSE:[0-9]+]] +; CHECK: %sub = sub nsw i32 0, %2, !dbg ![[ELSE]] store i32 %sub, i32* %x, align 4, !dbg !10 ; CHECK: store i32 %sub, i32* %x, align 4, !dbg ![[ELSE]] diff --git a/llvm/test/Transforms/AddDiscriminators/oneline.ll b/llvm/test/Transforms/AddDiscriminators/oneline.ll index f0ac5a8d86d..f07fa09ce0e 100644 --- a/llvm/test/Transforms/AddDiscriminators/oneline.ll +++ b/llvm/test/Transforms/AddDiscriminators/oneline.ll @@ -21,20 +21,27 @@ define i32 @_Z3fooi(i32 %i) #0 !dbg !4 { ; <label>:5 ; preds = %0 %6 = load i32, i32* %2, align 4, !dbg !23, !tbaa !13 +; CHECK: %6 = load i32, i32* %2, align 4, !dbg ![[THEN1:[0-9]+]],{{.*}} + %7 = icmp eq i32 %6, 5, !dbg !24 +; CHECK: %7 = icmp eq i32 %6, 5, !dbg ![[THEN2:[0-9]+]] + br i1 %7, label %8, label %9, !dbg !25 +; CHECK: br i1 %7, label %8, label %9, !dbg ![[THEN3:[0-9]+]] ; <label>:8 ; preds = %5, %0 store i32 100, i32* %1, align 4, !dbg !26 -; CHECK: store i32 100, i32* %1, align 4, !dbg ![[THEN:[0-9]+]] +; CHECK: store i32 100, i32* %1, align 4, !dbg ![[ELSE:[0-9]+]] br label %10, !dbg !26 +; CHECK: br label %10, !dbg ![[ELSE]] ; <label>:9 ; preds = %5 store i32 99, i32* %1, align 4, !dbg !27 -; CHECK: store i32 99, i32* %1, align 4, !dbg ![[ELSE:[0-9]+]] +; CHECK: store i32 99, i32* %1, align 4, !dbg ![[COMBINE:[0-9]+]] br label %10, !dbg !27 +; CHECK: br label %10, !dbg ![[COMBINE]] ; <label>:10 ; preds = %9, %8 %11 = load i32, i32* %1, align 4, !dbg !28 @@ -80,7 +87,11 @@ attributes #1 = { nounwind readnone } !27 = !DILocation(line: 2, column: 42, scope: !20) !28 = !DILocation(line: 3, column: 1, scope: !4) -; CHECK: ![[THEN]] = !DILocation(line: 2, column: 25, scope: ![[THENBLOCK:[0-9]+]]) +; CHECK: ![[THEN1]] = !DILocation(line: 2, column: 17, scope: ![[THENBLOCK:[0-9]+]]) ; CHECK: ![[THENBLOCK]] = !DILexicalBlockFile({{.*}} discriminator: 1) -; CHECK: ![[ELSE]] = !DILocation(line: 2, column: 42, scope: ![[ELSEBLOCK:[0-9]+]]) +; CHECK: ![[THEN2]] = !DILocation(line: 2, column: 19, scope: ![[THENBLOCK]]) +; CHECK: ![[THEN3]] = !DILocation(line: 2, column: 7, scope: ![[THENBLOCK]]) +; CHECK: ![[ELSE]] = !DILocation(line: 2, column: 25, scope: ![[ELSEBLOCK:[0-9]+]]) ; CHECK: ![[ELSEBLOCK]] = !DILexicalBlockFile({{.*}} discriminator: 2) +; CHECK: ![[COMBINE]] = !DILocation(line: 2, column: 42, scope: ![[COMBINEBLOCK:[0-9]+]]) +; CHECK: ![[COMBINEBLOCK]] = !DILexicalBlockFile({{.*}} discriminator: 3) |