From ed96fe8c79b36a38bd9280438656ee539276fb41 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 17 May 2006 21:05:27 +0000 Subject: [PATCH] Declare that lowerinvoke doesn't interact with other lowering passes. Patch written by Domagoj Babic! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28367 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/LowerAllocations.cpp | 3 ++- lib/Transforms/Utils/LowerInvoke.cpp | 10 +++++++++- lib/Transforms/Utils/LowerSelect.cpp | 4 +++- lib/Transforms/Utils/LowerSwitch.cpp | 8 +++++--- lib/Transforms/Utils/Mem2Reg.cpp | 4 +++- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/Transforms/Utils/LowerAllocations.cpp b/lib/Transforms/Utils/LowerAllocations.cpp index f6e70e11f5f..dab8084c4c8 100644 --- a/lib/Transforms/Utils/LowerAllocations.cpp +++ b/lib/Transforms/Utils/LowerAllocations.cpp @@ -41,11 +41,12 @@ namespace { AU.addRequired(); AU.setPreservesCFG(); - // This is a cluster of orthogonal Transforms: + // This is a cluster of orthogonal Transforms: AU.addPreserved(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSelectID); AU.addPreservedID(LowerSwitchID); + AU.addPreservedID(LowerInvokePassID); } /// doPassInitialization - For the lower allocations pass, this ensures that diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp index be706c3ef8e..f7cb65c2622 100644 --- a/lib/Transforms/Utils/LowerInvoke.cpp +++ b/lib/Transforms/Utils/LowerInvoke.cpp @@ -71,7 +71,15 @@ namespace { JumpBufAlign(Align) {} bool doInitialization(Module &M); bool runOnFunction(Function &F); - + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + // This is a cluster of orthogonal Transforms + AU.addPreservedID(PromoteMemoryToRegisterID); + AU.addPreservedID(LowerSelectID); + AU.addPreservedID(LowerSwitchID); + AU.addPreservedID(LowerAllocationsID); + } + private: void createAbortMessage(); void writeAbortMessage(Instruction *IB); diff --git a/lib/Transforms/Utils/LowerSelect.cpp b/lib/Transforms/Utils/LowerSelect.cpp index 27dd4307285..464d30d0308 100644 --- a/lib/Transforms/Utils/LowerSelect.cpp +++ b/lib/Transforms/Utils/LowerSelect.cpp @@ -39,10 +39,12 @@ namespace { virtual void getAnalysisUsage(AnalysisUsage &AU) const { // This certainly destroys the CFG. - // This is a cluster of orthogonal Transforms: + // This is a cluster of orthogonal Transforms: AU.addPreserved(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSwitchID); + AU.addPreservedID(LowerInvokePassID); + AU.addPreservedID(LowerAllocationsID); } bool runOnFunction(Function &F); diff --git a/lib/Transforms/Utils/LowerSwitch.cpp b/lib/Transforms/Utils/LowerSwitch.cpp index 14d3027b918..379a2e45703 100644 --- a/lib/Transforms/Utils/LowerSwitch.cpp +++ b/lib/Transforms/Utils/LowerSwitch.cpp @@ -34,14 +34,16 @@ namespace { class LowerSwitch : public FunctionPass { public: virtual bool runOnFunction(Function &F); - + virtual void getAnalysisUsage(AnalysisUsage &AU) const { - // This is a cluster of orthogonal Transforms + // This is a cluster of orthogonal Transforms AU.addPreserved(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSelectID); + AU.addPreservedID(LowerInvokePassID); + AU.addPreservedID(LowerAllocationsID); } - + typedef std::pair Case; typedef std::vector::iterator CaseItr; private: diff --git a/lib/Transforms/Utils/Mem2Reg.cpp b/lib/Transforms/Utils/Mem2Reg.cpp index 9ca2c8300da..5e5d67b305f 100644 --- a/lib/Transforms/Utils/Mem2Reg.cpp +++ b/lib/Transforms/Utils/Mem2Reg.cpp @@ -38,10 +38,12 @@ namespace { AU.addRequired(); AU.addRequired(); AU.setPreservesCFG(); - // This is a cluster of orthogonal Transforms + // This is a cluster of orthogonal Transforms AU.addPreserved(); AU.addPreservedID(LowerSelectID); AU.addPreservedID(LowerSwitchID); + AU.addPreservedID(LowerInvokePassID); + AU.addPreservedID(LowerAllocationsID); } }; -- 2.34.1