diff options
Diffstat (limited to 'lib/Transforms/IPO')
-rw-r--r-- | lib/Transforms/IPO/DeadArgumentElimination.cpp | 1 | ||||
-rw-r--r-- | lib/Transforms/IPO/DeadTypeElimination.cpp | 1 | ||||
-rw-r--r-- | lib/Transforms/IPO/ExtractGV.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/GlobalDCE.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/GlobalOpt.cpp | 1 | ||||
-rw-r--r-- | lib/Transforms/IPO/IPConstantPropagation.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/IndMemRemoval.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/Internalize.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/LowerSetJmp.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/MergeFunctions.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/PartialInlining.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/PartialSpecialization.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/IPO/RaiseAllocations.cpp | 1 | ||||
-rw-r--r-- | lib/Transforms/IPO/StripDeadPrototypes.cpp | 1 | ||||
-rw-r--r-- | lib/Transforms/IPO/StripSymbols.cpp | 1 |
15 files changed, 24 insertions, 0 deletions
diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index 2e913914d6..e86f619dcb 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -908,6 +908,7 @@ bool DAE::RemoveDeadStuffFromFunction(Function *F) { bool DAE::runOnModule(Module &M) { bool Changed = false; + Context = &M.getContext(); // First pass: Do a simple check to see if any functions can have their "..." // removed. We can do this if they never call va_start. This loop cannot be diff --git a/lib/Transforms/IPO/DeadTypeElimination.cpp b/lib/Transforms/IPO/DeadTypeElimination.cpp index 85aed2b791..f202403d80 100644 --- a/lib/Transforms/IPO/DeadTypeElimination.cpp +++ b/lib/Transforms/IPO/DeadTypeElimination.cpp @@ -77,6 +77,7 @@ static inline bool ShouldNukeSymtabEntry(const Type *Ty){ // bool DTE::runOnModule(Module &M) { bool Changed = false; + Context = &M.getContext(); TypeSymbolTable &ST = M.getTypeSymbolTable(); std::set<const Type *> UsedTypes = getAnalysis<FindUsedTypes>().getTypes(); diff --git a/lib/Transforms/IPO/ExtractGV.cpp b/lib/Transforms/IPO/ExtractGV.cpp index b7c5ca3e6e..fa3a055b20 100644 --- a/lib/Transforms/IPO/ExtractGV.cpp +++ b/lib/Transforms/IPO/ExtractGV.cpp @@ -44,6 +44,8 @@ namespace { return false; // Nothing to extract } + Context = &M.getContext(); + if (deleteStuff) return deleteGV(); M.setModuleInlineAsm(""); diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index 9c652b996a..9ecc494d9b 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -58,6 +58,8 @@ ModulePass *llvm::createGlobalDCEPass() { return new GlobalDCE(); } bool GlobalDCE::runOnModule(Module &M) { bool Changed = false; + Context = &M.getContext(); + // Loop over the module, adding globals which are obviously necessary. for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) { Changed |= RemoveUnusedGlobalValue(*I); diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index 398f78a098..8b3cf48cee 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -2476,6 +2476,7 @@ bool GlobalOpt::OptimizeGlobalAliases(Module &M) { bool GlobalOpt::runOnModule(Module &M) { bool Changed = false; + Context = &M.getContext(); // Try to find the llvm.globalctors list. GlobalVariable *GlobalCtors = FindGlobalCtors(M); diff --git a/lib/Transforms/IPO/IPConstantPropagation.cpp b/lib/Transforms/IPO/IPConstantPropagation.cpp index e27792a098..30834e2d67 100644 --- a/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/lib/Transforms/IPO/IPConstantPropagation.cpp @@ -56,6 +56,8 @@ bool IPCP::runOnModule(Module &M) { bool Changed = false; bool LocalChange = true; + Context = &M.getContext(); + // FIXME: instead of using smart algorithms, we just iterate until we stop // making changes. while (LocalChange) { diff --git a/lib/Transforms/IPO/IndMemRemoval.cpp b/lib/Transforms/IPO/IndMemRemoval.cpp index 2086a16683..7b9b0ccb8b 100644 --- a/lib/Transforms/IPO/IndMemRemoval.cpp +++ b/lib/Transforms/IPO/IndMemRemoval.cpp @@ -44,6 +44,8 @@ static RegisterPass<IndMemRemPass> X("indmemrem","Indirect Malloc and Free Removal"); bool IndMemRemPass::runOnModule(Module &M) { + Context = &M.getContext(); + // In theory, all direct calls of malloc and free should be promoted // to intrinsics. Therefore, this goes through and finds where the // address of free or malloc are taken and replaces those with bounce diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index 5093ae90b5..9bc9172517 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -101,6 +101,8 @@ void InternalizePass::LoadFile(const char *Filename) { bool InternalizePass::runOnModule(Module &M) { CallGraph *CG = getAnalysisIfAvailable<CallGraph>(); CallGraphNode *ExternalNode = CG ? CG->getExternalCallingNode() : 0; + + Context = &M.getContext(); if (ExternalNames.empty()) { // Return if we're not in 'all but main' mode and have no external api diff --git a/lib/Transforms/IPO/LowerSetJmp.cpp b/lib/Transforms/IPO/LowerSetJmp.cpp index dfdf5b6f2d..bfa2bd9bc2 100644 --- a/lib/Transforms/IPO/LowerSetJmp.cpp +++ b/lib/Transforms/IPO/LowerSetJmp.cpp @@ -134,6 +134,8 @@ static RegisterPass<LowerSetJmp> X("lowersetjmp", "Lower Set Jump"); bool LowerSetJmp::runOnModule(Module& M) { bool Changed = false; + Context = &M.getContext(); + // These are what the functions are called. Function* SetJmp = M.getFunction("llvm.setjmp"); Function* LongJmp = M.getFunction("llvm.longjmp"); diff --git a/lib/Transforms/IPO/MergeFunctions.cpp b/lib/Transforms/IPO/MergeFunctions.cpp index 9cc4daa9d2..e93a08784f 100644 --- a/lib/Transforms/IPO/MergeFunctions.cpp +++ b/lib/Transforms/IPO/MergeFunctions.cpp @@ -615,6 +615,8 @@ static bool fold(std::vector<Function *> &FnVec, unsigned i, unsigned j) { bool MergeFunctions::runOnModule(Module &M) { bool Changed = false; + Context = &M.getContext(); + std::map<unsigned long, std::vector<Function *> > FnMap; for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) { diff --git a/lib/Transforms/IPO/PartialInlining.cpp b/lib/Transforms/IPO/PartialInlining.cpp index 73ec9c1076..a6e090b317 100644 --- a/lib/Transforms/IPO/PartialInlining.cpp +++ b/lib/Transforms/IPO/PartialInlining.cpp @@ -141,6 +141,8 @@ Function* PartialInliner::unswitchFunction(Function* F) { } bool PartialInliner::runOnModule(Module& M) { + Context = &M.getContext(); + std::vector<Function*> worklist; worklist.reserve(M.size()); for (Module::iterator FI = M.begin(), FE = M.end(); FI != FE; ++FI) diff --git a/lib/Transforms/IPO/PartialSpecialization.cpp b/lib/Transforms/IPO/PartialSpecialization.cpp index 0e1fdb9915..3b2ce14860 100644 --- a/lib/Transforms/IPO/PartialSpecialization.cpp +++ b/lib/Transforms/IPO/PartialSpecialization.cpp @@ -108,6 +108,8 @@ SpecializeFunction(Function* F, bool PartSpec::runOnModule(Module &M) { + Context = &M.getContext(); + bool Changed = false; for (Module::iterator I = M.begin(); I != M.end(); ++I) { Function &F = *I; diff --git a/lib/Transforms/IPO/RaiseAllocations.cpp b/lib/Transforms/IPO/RaiseAllocations.cpp index 6c32050909..8d2a9cbdd5 100644 --- a/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/lib/Transforms/IPO/RaiseAllocations.cpp @@ -70,6 +70,7 @@ ModulePass *llvm::createRaiseAllocationsPass() { // function into the appropriate instruction. // void RaiseAllocations::doInitialization(Module &M) { + Context = &M.getContext(); // Get Malloc and free prototypes if they exist! MallocFunc = M.getFunction("malloc"); diff --git a/lib/Transforms/IPO/StripDeadPrototypes.cpp b/lib/Transforms/IPO/StripDeadPrototypes.cpp index a94d78e276..2a1779107a 100644 --- a/lib/Transforms/IPO/StripDeadPrototypes.cpp +++ b/lib/Transforms/IPO/StripDeadPrototypes.cpp @@ -42,6 +42,7 @@ X("strip-dead-prototypes", "Strip Unused Function Prototypes"); bool StripDeadPrototypesPass::runOnModule(Module &M) { bool MadeChange = false; + Context = &M.getContext(); // Erase dead function prototypes. for (Module::iterator I = M.begin(), E = M.end(); I != E; ) { diff --git a/lib/Transforms/IPO/StripSymbols.cpp b/lib/Transforms/IPO/StripSymbols.cpp index 323d1800a9..82a0952aa2 100644 --- a/lib/Transforms/IPO/StripSymbols.cpp +++ b/lib/Transforms/IPO/StripSymbols.cpp @@ -374,6 +374,7 @@ bool StripDebugInfo(Module &M) { } bool StripSymbols::runOnModule(Module &M) { + Context = &M.getContext(); bool Changed = false; Changed |= StripDebugInfo(M); if (!OnlyDebugInfo) |