[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LoopSimplify.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.57 - 1.58 LoopSimplify.cpp updated: 1.104 - 1.105 --- Log message: Move code to update dominator information after basic block is split from LoopSimplify.cpp to Dominator.cpp --- Diffs of the changes: (+22 -202) CodeExtractor.cpp | 15 --- LoopSimplify.cpp | 209 +- 2 files changed, 22 insertions(+), 202 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.57 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.58 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.57Thu Jun 7 17:17:16 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Thu Jun 21 12:23:45 2007 @@ -140,19 +140,8 @@ // Okay, update dominator sets. The blocks that dominate the new one are the // blocks that dominate TIBB plus the new block itself. - if (DT) { -DomTreeNode *OPNode = DT-getNode(OldPred); -DomTreeNode *IDomNode = OPNode-getIDom(); -BasicBlock* idom = IDomNode-getBlock(); -DT-addNewBlock(NewBB, idom); - -// Additionally, NewBB replaces OldPred as the immediate dominator of blocks -Function *F = Header-getParent(); -for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) - if (DT-getIDomBlock(I) == OldPred) { -DT-changeImmediateDominator(I, NewBB); - } - } + if (DT) +DT-splitBlock(NewBB); // Okay, now we need to adjust the PHI nodes and any branches from within the // region to go to the new header block instead of the old header block. Index: llvm/lib/Transforms/Utils/LoopSimplify.cpp diff -u llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.104 llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.105 --- llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.104Mon Jun 11 18:31:22 2007 +++ llvm/lib/Transforms/Utils/LoopSimplify.cpp Thu Jun 21 12:23:45 2007 @@ -61,7 +61,7 @@ // this is null. AliasAnalysis *AA; LoopInfo *LI; - +DominatorTree *DT; virtual bool runOnFunction(Function F); virtual void getAnalysisUsage(AnalysisUsage AU) const { @@ -85,9 +85,6 @@ void PlaceSplitBlockCarefully(BasicBlock *NewBB, std::vectorBasicBlock* SplitPreds, Loop *L); - -void UpdateDomInfoForRevectoredPreds(BasicBlock *NewBB, - std::vectorBasicBlock* PredBlocks); }; char LoopSimplify::ID = 0; @@ -106,6 +103,7 @@ bool Changed = false; LI = getAnalysisLoopInfo(); AA = getAnalysisToUpdateAliasAnalysis(); + DT = getAnalysisDominatorTree(); // Check to see that no blocks (other than the header) in loops have // predecessors that are not in loops. This is not valid for natural loops, @@ -341,6 +339,7 @@ PN-addIncoming(Constant::getNullValue(PN-getType()), NewBB); } } + return NewBB; } @@ -371,8 +370,10 @@ if (Loop *Parent = L-getParentLoop()) Parent-addBasicBlockToLoop(NewBB, *LI); - UpdateDomInfoForRevectoredPreds(NewBB, OutsideBlocks); - + DT-splitBlock(NewBB); + if (DominanceFrontier *DF = getAnalysisToUpdateDominanceFrontier()) +DF-splitBlock(NewBB); + // Make sure that NewBB is put someplace intelligent, which doesn't mess up // code layout too horribly. PlaceSplitBlockCarefully(NewBB, OutsideBlocks, L); @@ -401,8 +402,11 @@ if (SuccLoop) SuccLoop-addBasicBlockToLoop(NewBB, *LI); - // Update dominator information (set, immdom, domtree, and domfrontier) - UpdateDomInfoForRevectoredPreds(NewBB, LoopBlocks); + // Update Dominator Information + DT-splitBlock(NewBB); + if (DominanceFrontier *DF = getAnalysisToUpdateDominanceFrontier()) +DF-splitBlock(NewBB); + return NewBB; } @@ -507,7 +511,6 @@ /// created. /// Loop *LoopSimplify::SeparateNestedLoop(Loop *L) { - DominatorTree *DT = getAnalysisToUpdateDominatorTree(); PHINode *PN = FindPHIToPartitionLoops(L, DT, AA); if (PN == 0) return 0; // No known way to partition. @@ -523,8 +526,10 @@ BasicBlock *Header = L-getHeader(); BasicBlock *NewBB = SplitBlockPredecessors(Header, .outer, OuterLoopPreds); - // Update dominator information (set, immdom, domtree, and domfrontier) - UpdateDomInfoForRevectoredPreds(NewBB, OuterLoopPreds); + // Update dominator information + DT-splitBlock(NewBB); + if (DominanceFrontier *DF = getAnalysisToUpdateDominanceFrontier()) +DF-splitBlock(NewBB); // Make sure that NewBB is put someplace intelligent, which doesn't mess up // code layout too horribly. @@ -677,184 +682,10 @@ // loop and all parent loops. L-addBasicBlockToLoop(BEBlock, *LI); - // Update dominator information (set, immdom, domtree, and domfrontier) - UpdateDomInfoForRevectoredPreds(BEBlock, BackedgeBlocks); -} - -// Returns true if BasicBlock A dominates at least one block in vector B -// Helper function for UpdateDomInfoForRevectoredPreds
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.56 - 1.57 --- Log message: Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient. --- Diffs of the changes: (+15 -16) CodeExtractor.cpp | 31 +++ 1 files changed, 15 insertions(+), 16 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.56 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.57 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.56Mon Jun 4 11:43:25 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Thu Jun 7 17:17:16 2007 @@ -44,14 +44,13 @@ class VISIBILITY_HIDDEN CodeExtractor { typedef std::vectorValue* Values; std::setBasicBlock* BlocksToExtract; -ETForest *EF; DominatorTree* DT; bool AggregateArgs; unsigned NumExitBlocks; const Type *RetTy; public: -CodeExtractor(ETForest *ef = 0, DominatorTree* dt = 0, bool AggArgs = false) - : EF(ef), DT(dt), AggregateArgs(AggArgs||AggregateArgsOpt), NumExitBlocks(~0U) {} +CodeExtractor(DominatorTree* dt = 0, bool AggArgs = false) + : DT(dt), AggregateArgs(AggArgs||AggregateArgsOpt), NumExitBlocks(~0U) {} Function *ExtractCodeRegion(const std::vectorBasicBlock* code); @@ -141,17 +140,17 @@ // Okay, update dominator sets. The blocks that dominate the new one are the // blocks that dominate TIBB plus the new block itself. - if (EF) { -BasicBlock* idom = EF-getIDom(OldPred); + if (DT) { +DomTreeNode *OPNode = DT-getNode(OldPred); +DomTreeNode *IDomNode = OPNode-getIDom(); +BasicBlock* idom = IDomNode-getBlock(); DT-addNewBlock(NewBB, idom); -EF-addNewBlock(NewBB, idom); // Additionally, NewBB replaces OldPred as the immediate dominator of blocks Function *F = Header-getParent(); for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) - if (EF-getIDom(I) == OldPred) { + if (DT-getIDomBlock(I) == OldPred) { DT-changeImmediateDominator(I, NewBB); -EF-setImmediateDominator(I, NewBB); } } @@ -509,12 +508,12 @@ // In the extract block case, if the block we are extracting ends // with an invoke instruction, make sure that we don't emit a // store of the invoke value for the unwind block. - if (!EF DefBlock != OldTarget) + if (!DT DefBlock != OldTarget) DominatesDef = false; } -if (EF) - DominatesDef = EF-dominates(DefBlock, OldTarget); +if (DT) + DominatesDef = DT-dominates(DefBlock, OldTarget); if (DominatesDef) { if (AggregateArgs) { @@ -728,16 +727,16 @@ /// ExtractCodeRegion - slurp a sequence of basic blocks into a brand new /// function /// -Function* llvm::ExtractCodeRegion(ETForest EF, DominatorTree DT, +Function* llvm::ExtractCodeRegion(DominatorTree DT, const std::vectorBasicBlock* code, bool AggregateArgs) { - return CodeExtractor(EF, DT, AggregateArgs).ExtractCodeRegion(code); + return CodeExtractor(DT, AggregateArgs).ExtractCodeRegion(code); } /// ExtractBasicBlock - slurp a natural loop into a brand new function /// -Function* llvm::ExtractLoop(ETForest EF, DominatorTree DF, Loop *L, bool AggregateArgs) { - return CodeExtractor(EF, DF, AggregateArgs).ExtractCodeRegion(L-getBlocks()); +Function* llvm::ExtractLoop(DominatorTree DT, Loop *L, bool AggregateArgs) { + return CodeExtractor(DT, AggregateArgs).ExtractCodeRegion(L-getBlocks()); } /// ExtractBasicBlock - slurp a basic block into a brand new function @@ -745,5 +744,5 @@ Function* llvm::ExtractBasicBlock(BasicBlock *BB, bool AggregateArgs) { std::vectorBasicBlock* Blocks; Blocks.push_back(BB); - return CodeExtractor(0, 0, AggregateArgs).ExtractCodeRegion(Blocks); + return CodeExtractor(0, AggregateArgs).ExtractCodeRegion(Blocks); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.54 - 1.55 --- Log message: Add basic block level interface to change immediate dominator and create new node. --- Diffs of the changes: (+2 -2) CodeExtractor.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.54 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.55 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.54Tue Apr 17 23:46:35 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Mon Jun 4 11:22:33 2007 @@ -143,14 +143,14 @@ // blocks that dominate TIBB plus the new block itself. if (EF) { BasicBlock* idom = EF-getIDom(OldPred); -DT-createNewNode(NewBB, DT-getNode(idom)); +DT-createNewNode(NewBB, idom); EF-addNewBlock(NewBB, idom); // Additionally, NewBB replaces OldPred as the immediate dominator of blocks Function *F = Header-getParent(); for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) if (EF-getIDom(I) == OldPred) { -DT-changeImmediateDominator(DT-getNode(I), DT-getNode(NewBB)); +DT-changeImmediateDominator(I, NewBB); EF-setImmediateDominator(I, NewBB); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.53 - 1.54 --- Log message: Use new ETForest accessor. --- Diffs of the changes: (+4 -4) CodeExtractor.cpp |8 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.53 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.54 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.53Mon Apr 16 13:10:23 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Tue Apr 17 23:46:35 2007 @@ -142,14 +142,14 @@ // Okay, update dominator sets. The blocks that dominate the new one are the // blocks that dominate TIBB plus the new block itself. if (EF) { -DominatorTree::Node* idom = DT-getNode(OldPred)-getIDom(); -DT-createNewNode(NewBB, idom); -EF-addNewBlock(NewBB, idom-getBlock()); +BasicBlock* idom = EF-getIDom(OldPred); +DT-createNewNode(NewBB, DT-getNode(idom)); +EF-addNewBlock(NewBB, idom); // Additionally, NewBB replaces OldPred as the immediate dominator of blocks Function *F = Header-getParent(); for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) - if (DT-getNode(I)-getIDom()-getBlock() == OldPred) { + if (EF-getIDom(I) == OldPred) { DT-changeImmediateDominator(DT-getNode(I), DT-getNode(NewBB)); EF-setImmediateDominator(I, NewBB); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LowerAllocations.cpp LowerInvoke.cpp LowerSelect.cpp LowerSwitch.cpp Mem2Reg.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.52 - 1.53 LowerAllocations.cpp updated: 1.72 - 1.73 LowerInvoke.cpp updated: 1.57 - 1.58 LowerSelect.cpp updated: 1.11 - 1.12 LowerSwitch.cpp updated: 1.36 - 1.37 Mem2Reg.cpp updated: 1.22 - 1.23 --- Log message: Removed tabs everywhere except autogenerated external files. Add make target for tabs checking. --- Diffs of the changes: (+6 -6) CodeExtractor.cpp|2 +- LowerAllocations.cpp |2 +- LowerInvoke.cpp |2 +- LowerSelect.cpp |2 +- LowerSwitch.cpp |2 +- Mem2Reg.cpp |2 +- 6 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.52 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.53 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.52Sat Apr 7 00:31:27 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Mon Apr 16 13:10:23 2007 @@ -151,7 +151,7 @@ for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) if (DT-getNode(I)-getIDom()-getBlock() == OldPred) { DT-changeImmediateDominator(DT-getNode(I), DT-getNode(NewBB)); - EF-setImmediateDominator(I, NewBB); +EF-setImmediateDominator(I, NewBB); } } Index: llvm/lib/Transforms/Utils/LowerAllocations.cpp diff -u llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.72 llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.73 --- llvm/lib/Transforms/Utils/LowerAllocations.cpp:1.72 Fri Mar 2 17:03:17 2007 +++ llvm/lib/Transforms/Utils/LowerAllocations.cpp Mon Apr 16 13:10:23 2007 @@ -43,7 +43,7 @@ AU.addRequiredTargetData(); AU.setPreservesCFG(); - // This is a cluster of orthogonal Transforms: + // This is a cluster of orthogonal Transforms: AU.addPreservedUnifyFunctionExitNodes(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSelectID); Index: llvm/lib/Transforms/Utils/LowerInvoke.cpp diff -u llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.57 llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.58 --- llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.57 Thu Feb 22 10:21:18 2007 +++ llvm/lib/Transforms/Utils/LowerInvoke.cpp Mon Apr 16 13:10:23 2007 @@ -80,7 +80,7 @@ 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.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSelectID); AU.addPreservedID(LowerSwitchID); Index: llvm/lib/Transforms/Utils/LowerSelect.cpp diff -u llvm/lib/Transforms/Utils/LowerSelect.cpp:1.11 llvm/lib/Transforms/Utils/LowerSelect.cpp:1.12 --- llvm/lib/Transforms/Utils/LowerSelect.cpp:1.11 Sat Feb 10 19:37:51 2007 +++ llvm/lib/Transforms/Utils/LowerSelect.cpp Mon Apr 16 13:10:23 2007 @@ -37,7 +37,7 @@ 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.addPreservedUnifyFunctionExitNodes(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSwitchID); Index: llvm/lib/Transforms/Utils/LowerSwitch.cpp diff -u llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.36 llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.37 --- llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.36 Mon Mar 12 12:56:27 2007 +++ llvm/lib/Transforms/Utils/LowerSwitch.cpp Mon Apr 16 13:10:23 2007 @@ -33,7 +33,7 @@ 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.addPreservedUnifyFunctionExitNodes(); AU.addPreservedID(PromoteMemoryToRegisterID); AU.addPreservedID(LowerSelectID); Index: llvm/lib/Transforms/Utils/Mem2Reg.cpp diff -u llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.22 llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.23 --- llvm/lib/Transforms/Utils/Mem2Reg.cpp:1.22 Tue Dec 19 16:17:40 2006 +++ llvm/lib/Transforms/Utils/Mem2Reg.cpp Mon Apr 16 13:10:23 2007 @@ -40,7 +40,7 @@ AU.addRequiredDominanceFrontier(); AU.addRequiredTargetData(); AU.setPreservesCFG(); - // This is a cluster of orthogonal Transforms + // This is a cluster of orthogonal Transforms AU.addPreservedUnifyFunctionExitNodes(); AU.addPreservedID(LowerSelectID); AU.addPreservedID(LowerSwitchID); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.51 - 1.52 --- Log message: Expunge DomSet from CodeExtractor. This is part of the continuing work on PR1171: http://llvm.org/PR1171 . --- Diffs of the changes: (+21 -19) CodeExtractor.cpp | 40 +--- 1 files changed, 21 insertions(+), 19 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.51 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.52 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.51Thu Mar 22 11:38:57 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Sat Apr 7 00:31:27 2007 @@ -44,13 +44,14 @@ class VISIBILITY_HIDDEN CodeExtractor { typedef std::vectorValue* Values; std::setBasicBlock* BlocksToExtract; -DominatorSet *DS; +ETForest *EF; +DominatorTree* DT; bool AggregateArgs; unsigned NumExitBlocks; const Type *RetTy; public: -CodeExtractor(DominatorSet *ds = 0, bool AggArgs = false) - : DS(ds), AggregateArgs(AggArgs||AggregateArgsOpt), NumExitBlocks(~0U) {} +CodeExtractor(ETForest *ef = 0, DominatorTree* dt = 0, bool AggArgs = false) + : EF(ef), DT(dt), AggregateArgs(AggArgs||AggregateArgsOpt), NumExitBlocks(~0U) {} Function *ExtractCodeRegion(const std::vectorBasicBlock* code); @@ -140,17 +141,18 @@ // Okay, update dominator sets. The blocks that dominate the new one are the // blocks that dominate TIBB plus the new block itself. - if (DS) { -DominatorSet::DomSetType DomSet = DS-getDominators(OldPred); -DomSet.insert(NewBB); // A block always dominates itself. -DS-addBasicBlock(NewBB, DomSet); + if (EF) { +DominatorTree::Node* idom = DT-getNode(OldPred)-getIDom(); +DT-createNewNode(NewBB, idom); +EF-addNewBlock(NewBB, idom-getBlock()); -// Additionally, NewBB dominates all blocks in the function that are -// dominated by OldPred. +// Additionally, NewBB replaces OldPred as the immediate dominator of blocks Function *F = Header-getParent(); for (Function::iterator I = F-begin(), E = F-end(); I != E; ++I) - if (DS-properlyDominates(OldPred, I)) -DS-addDominator(I, NewBB); + if (DT-getNode(I)-getIDom()-getBlock() == OldPred) { +DT-changeImmediateDominator(DT-getNode(I), DT-getNode(NewBB)); + EF-setImmediateDominator(I, NewBB); + } } // Okay, now we need to adjust the PHI nodes and any branches from within the @@ -507,12 +509,12 @@ // In the extract block case, if the block we are extracting ends // with an invoke instruction, make sure that we don't emit a // store of the invoke value for the unwind block. - if (!DS DefBlock != OldTarget) + if (!EF DefBlock != OldTarget) DominatesDef = false; } -if (DS) - DominatesDef = DS-dominates(DefBlock, OldTarget); +if (EF) + DominatesDef = EF-dominates(DefBlock, OldTarget); if (DominatesDef) { if (AggregateArgs) { @@ -726,16 +728,16 @@ /// ExtractCodeRegion - slurp a sequence of basic blocks into a brand new /// function /// -Function* llvm::ExtractCodeRegion(DominatorSet DS, +Function* llvm::ExtractCodeRegion(ETForest EF, DominatorTree DT, const std::vectorBasicBlock* code, bool AggregateArgs) { - return CodeExtractor(DS, AggregateArgs).ExtractCodeRegion(code); + return CodeExtractor(EF, DT, AggregateArgs).ExtractCodeRegion(code); } /// ExtractBasicBlock - slurp a natural loop into a brand new function /// -Function* llvm::ExtractLoop(DominatorSet DS, Loop *L, bool AggregateArgs) { - return CodeExtractor(DS, AggregateArgs).ExtractCodeRegion(L-getBlocks()); +Function* llvm::ExtractLoop(ETForest EF, DominatorTree DF, Loop *L, bool AggregateArgs) { + return CodeExtractor(EF, DF, AggregateArgs).ExtractCodeRegion(L-getBlocks()); } /// ExtractBasicBlock - slurp a basic block into a brand new function @@ -743,5 +745,5 @@ Function* llvm::ExtractBasicBlock(BasicBlock *BB, bool AggregateArgs) { std::vectorBasicBlock* Blocks; Blocks.push_back(BB); - return CodeExtractor(0, AggregateArgs).ExtractCodeRegion(Blocks); + return CodeExtractor(0, 0, AggregateArgs).ExtractCodeRegion(Blocks); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp InlineFunction.cpp LowerInvoke.cpp SimplifyCFG.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.49 - 1.50 InlineFunction.cpp updated: 1.52 - 1.53 LowerInvoke.cpp updated: 1.53 - 1.54 SimplifyCFG.cpp updated: 1.116 - 1.117 --- Log message: Eliminate use of ctors that take vectors. --- Diffs of the changes: (+23 -19) CodeExtractor.cpp |2 +- InlineFunction.cpp |4 +++- LowerInvoke.cpp| 24 SimplifyCFG.cpp| 12 +++- 4 files changed, 23 insertions(+), 19 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.49 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.50 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.49Mon Feb 5 17:32:05 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Mon Feb 12 20:10:56 2007 @@ -403,7 +403,7 @@ } // Emit the call to the function - CallInst *call = new CallInst(newFunction, params, + CallInst *call = new CallInst(newFunction, params[0], params.size(), NumExitBlocks 1 ? targetBlock : ); codeReplacer-getInstList().push_back(call); Index: llvm/lib/Transforms/Utils/InlineFunction.cpp diff -u llvm/lib/Transforms/Utils/InlineFunction.cpp:1.52 llvm/lib/Transforms/Utils/InlineFunction.cpp:1.53 --- llvm/lib/Transforms/Utils/InlineFunction.cpp:1.52 Fri Feb 2 18:08:31 2007 +++ llvm/lib/Transforms/Utils/InlineFunction.cppMon Feb 12 20:10:56 2007 @@ -19,6 +19,7 @@ #include llvm/Instructions.h #include llvm/Intrinsics.h #include llvm/Analysis/CallGraph.h +#include llvm/ADT/SmallVector.h #include llvm/Support/CallSite.h using namespace llvm; @@ -80,9 +81,10 @@ // Next, create the new invoke instruction, inserting it at the end // of the old basic block. + SmallVectorValue*, 8 InvokeArgs(CI-op_begin()+1, CI-op_end()); InvokeInst *II = new InvokeInst(CI-getCalledValue(), Split, InvokeDest, - std::vectorValue*(CI-op_begin()+1, CI-op_end()), + InvokeArgs[0], InvokeArgs.size(), CI-getName(), BB-getTerminator()); II-setCallingConv(CI-getCallingConv()); Index: llvm/lib/Transforms/Utils/LowerInvoke.cpp diff -u llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.53 llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.54 --- llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.53 Mon Feb 12 16:56:41 2007 +++ llvm/lib/Transforms/Utils/LowerInvoke.cpp Mon Feb 12 20:10:56 2007 @@ -189,21 +189,21 @@ createAbortMessage(IB-getParent()-getParent()-getParent()); // These are the arguments we WANT... - std::vectorValue* Args; - Args.push_back(ConstantInt::get(Type::Int32Ty, 2)); - Args.push_back(AbortMessage); - Args.push_back(ConstantInt::get(Type::Int32Ty, AbortMessageLength)); - (new CallInst(WriteFn, Args, , IB))-setTailCall(); + Value* Args[3]; + Args[0] = ConstantInt::get(Type::Int32Ty, 2); + Args[1] = AbortMessage; + Args[2] = ConstantInt::get(Type::Int32Ty, AbortMessageLength); + (new CallInst(WriteFn, Args, 3, , IB))-setTailCall(); } bool LowerInvoke::insertCheapEHSupport(Function F) { bool Changed = false; for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) if (InvokeInst *II = dyn_castInvokeInst(BB-getTerminator())) { + std::vectorValue* CallArgs(II-op_begin()+3, II-op_end()); // Insert a normal call instruction... CallInst *NewCall = new CallInst(II-getCalledValue(), - std::vectorValue*(II-op_begin()+3, - II-op_end()), , II); + CallArgs[0], CallArgs.size(), , II); NewCall-takeName(II); NewCall-setCallingConv(II-getCallingConv()); II-replaceAllUsesWith(NewCall); @@ -223,7 +223,7 @@ writeAbortMessage(UI); // Insert a call to abort() - (new CallInst(AbortFn, std::vectorValue*(), , UI))-setTailCall(); + (new CallInst(AbortFn, , UI))-setTailCall(); // Insert a return instruction. This really should be a barrier, as it // is unreachable. @@ -258,9 +258,9 @@ CatchSwitch-addCase(InvokeNoC, II-getUnwindDest()); // Insert a normal call instruction. + std::vectorValue* CallArgs(II-op_begin()+3, II-op_end()); CallInst *NewCall = new CallInst(II-getCalledValue(), - std::vectorValue*(II-op_begin()+3, - II-op_end()), , + CallArgs[0], CallArgs.size(), , II); NewCall-takeName(II); NewCall-setCallingConv(II-getCallingConv()); @@ -533,7 +533,7 @@ Idx.push_back(ConstantInt::get(Type::Int32Ty, 0)); Idx[0] = new GetElementPtrInst(BufPtr, Idx[0], 2, JmpBuf, UnwindBlock); Idx[1] = ConstantInt::get(Type::Int32Ty, 1); - new CallInst(LongJmpFn, Idx, ,
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.47 - 1.48 --- Log message: eliminate temporary vectors --- Diffs of the changes: (+13 -16) CodeExtractor.cpp | 29 + 1 files changed, 13 insertions(+), 16 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.47 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.48 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.47Thu Jan 11 22:24:46 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Wed Jan 31 14:07:32 2007 @@ -303,12 +303,12 @@ for (unsigned i = 0, e = inputs.size(); i != e; ++i) { Value *RewriteVal; if (AggregateArgs) { - std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::Int32Ty)); - Indices.push_back(ConstantInt::get(Type::Int32Ty, i)); + Value *Idx0 = Constant::getNullValue(Type::Int32Ty); + Value *Idx1 = ConstantInt::get(Type::Int32Ty, i); std::string GEPname = gep_ + inputs[i]-getName(); TerminatorInst *TI = newFunction-begin()-getTerminator(); - GetElementPtrInst *GEP = new GetElementPtrInst(AI, Indices, GEPname, TI); + GetElementPtrInst *GEP = new GetElementPtrInst(AI, Idx0, Idx1, + GEPname, TI); RewriteVal = new LoadInst(GEP, load + GEPname, TI); } else RewriteVal = AI++; @@ -390,11 +390,10 @@ params.push_back(Struct); for (unsigned i = 0, e = inputs.size(); i != e; ++i) { - std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::Int32Ty)); - Indices.push_back(ConstantInt::get(Type::Int32Ty, i)); + Value *Idx0 = Constant::getNullValue(Type::Int32Ty); + Value *Idx1 = ConstantInt::get(Type::Int32Ty, i); GetElementPtrInst *GEP = -new GetElementPtrInst(Struct, Indices, +new GetElementPtrInst(Struct, Idx0, Idx1, gep_ + StructValues[i]-getName()); codeReplacer-getInstList().push_back(GEP); StoreInst *SI = new StoreInst(StructValues[i], GEP); @@ -416,11 +415,10 @@ for (unsigned i = 0, e = outputs.size(); i != e; ++i) { Value *Output = 0; if (AggregateArgs) { - std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::Int32Ty)); - Indices.push_back(ConstantInt::get(Type::Int32Ty, FirstOut + i)); + Value *Idx0 = Constant::getNullValue(Type::Int32Ty); + Value *Idx1 = ConstantInt::get(Type::Int32Ty, FirstOut + i); GetElementPtrInst *GEP -= new GetElementPtrInst(Struct, Indices, += new GetElementPtrInst(Struct, Idx0, Idx1, gep_reload_ + outputs[i]-getName()); codeReplacer-getInstList().push_back(GEP); Output = GEP; @@ -517,11 +515,10 @@ if (DominatesDef) { if (AggregateArgs) { -std::vectorValue* Indices; -Indices.push_back(Constant::getNullValue(Type::Int32Ty)); - Indices.push_back(ConstantInt::get(Type::Int32Ty,FirstOut+out)); +Value *Idx0 = Constant::getNullValue(Type::Int32Ty); +Value *Idx1 = ConstantInt::get(Type::Int32Ty,FirstOut+out); GetElementPtrInst *GEP = - new GetElementPtrInst(OAI, Indices, + new GetElementPtrInst(OAI, Idx0, Idx1, gep_ + outputs[out]-getName(), NTRet); new StoreInst(outputs[out], GEP, NTRet); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp SimplifyCFG.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.45 - 1.46 SimplifyCFG.cpp updated: 1.109 - 1.110 --- Log message: Rename BoolTy as Int1Ty. Patch by Sheng Zhou. --- Diffs of the changes: (+3 -3) CodeExtractor.cpp |2 +- SimplifyCFG.cpp |4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.45 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.46 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.45Thu Jan 11 06:24:14 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Thu Jan 11 12:21:29 2007 @@ -251,7 +251,7 @@ switch (NumExitBlocks) { case 0: case 1: RetTy = Type::VoidTy; break; - case 2: RetTy = Type::BoolTy; break; + case 2: RetTy = Type::Int1Ty; break; default: RetTy = Type::Int16Ty; break; } Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.109 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.110 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.109 Thu Jan 11 06:24:14 2007 +++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp Thu Jan 11 12:21:29 2007 @@ -971,7 +971,7 @@ for (unsigned i = 0, e = PN-getNumIncomingValues(); i != e; ++i) { ConstantInt *CB; if ((CB = dyn_castConstantInt(PN-getIncomingValue(i))) -CB-getType() == Type::BoolTy) { +CB-getType() == Type::Int1Ty) { // Okay, we now know that all edges from PredBB should be revectored to // branch to RealDest. BasicBlock *PredBB = PN-getIncomingBlock(i); @@ -1516,7 +1516,7 @@ // Otherwise, if there are multiple predecessors, insert a PHI that // merges in the constant and simplify the block result. if (BlockIsSimpleEnoughToThreadThrough(BB)) { -PHINode *NewPN = new PHINode(Type::BoolTy, +PHINode *NewPN = new PHINode(Type::Int1Ty, BI-getCondition()-getName()+.pr, BB-begin()); for (PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp InlineFunction.cpp LowerAllocations.cpp LowerInvoke.cpp LowerSwitch.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.43 - 1.44 InlineFunction.cpp updated: 1.47 - 1.48 LowerAllocations.cpp updated: 1.68 - 1.69 LowerInvoke.cpp updated: 1.48 - 1.49 LowerSwitch.cpp updated: 1.31 - 1.32 --- Log message: For PR950: http://llvm.org/PR950 : This patch replaces signed integer types with signless ones: 1. [US]Byte - Int8 2. [U]Short - Int16 3. [U]Int - Int32 4. [U]Long - Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. --- Diffs of the changes: (+36 -38) CodeExtractor.cpp| 24 InlineFunction.cpp |2 +- LowerAllocations.cpp |6 +++--- LowerInvoke.cpp | 38 +++--- LowerSwitch.cpp |4 +--- 5 files changed, 36 insertions(+), 38 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.43 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.44 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.43Wed Dec 6 19:30:31 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Sat Dec 30 23:48:39 2006 @@ -252,7 +252,7 @@ case 0: case 1: RetTy = Type::VoidTy; break; case 2: RetTy = Type::BoolTy; break; - default: RetTy = Type::UShortTy; break; + default: RetTy = Type::Int16Ty; break; } std::vectorconst Type* paramTy; @@ -304,8 +304,8 @@ Value *RewriteVal; if (AggregateArgs) { std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantInt::get(Type::UIntTy, i)); + Indices.push_back(Constant::getNullValue(Type::Int32Ty)); + Indices.push_back(ConstantInt::get(Type::Int32Ty, i)); std::string GEPname = gep_ + inputs[i]-getName(); TerminatorInst *TI = newFunction-begin()-getTerminator(); GetElementPtrInst *GEP = new GetElementPtrInst(AI, Indices, GEPname, TI); @@ -391,8 +391,8 @@ for (unsigned i = 0, e = inputs.size(); i != e; ++i) { std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantInt::get(Type::UIntTy, i)); + Indices.push_back(Constant::getNullValue(Type::Int32Ty)); + Indices.push_back(ConstantInt::get(Type::Int32Ty, i)); GetElementPtrInst *GEP = new GetElementPtrInst(Struct, Indices, gep_ + StructValues[i]-getName()); @@ -417,8 +417,8 @@ Value *Output = 0; if (AggregateArgs) { std::vectorValue* Indices; - Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantInt::get(Type::UIntTy, FirstOut + i)); + Indices.push_back(Constant::getNullValue(Type::Int32Ty)); + Indices.push_back(ConstantInt::get(Type::Int32Ty, FirstOut + i)); GetElementPtrInst *GEP = new GetElementPtrInst(Struct, Indices, gep_reload_ + outputs[i]-getName()); @@ -439,7 +439,7 @@ // Now we can emit a switch statement using the call as a value. SwitchInst *TheSwitch = -new SwitchInst(ConstantInt::getNullValue(Type::UShortTy), +new SwitchInst(ConstantInt::getNullValue(Type::Int16Ty), codeReplacer, 0, codeReplacer); // Since there may be multiple exits from the original region, make the new @@ -473,14 +473,14 @@ brVal = ConstantBool::get(!SuccNum); break; default: -brVal = ConstantInt::get(Type::UShortTy, SuccNum); +brVal = ConstantInt::get(Type::Int16Ty, SuccNum); break; } ReturnInst *NTRet = new ReturnInst(brVal, NewTarget); // Update the switch instruction. - TheSwitch-addCase(ConstantInt::get(Type::UShortTy, SuccNum), + TheSwitch-addCase(ConstantInt::get(Type::Int16Ty, SuccNum), OldTarget); // Restore values just before we exit @@ -518,8 +518,8 @@ if (DominatesDef) { if (AggregateArgs) { std::vectorValue* Indices; -Indices.push_back(Constant::getNullValue(Type::UIntTy)); -Indices.push_back(ConstantInt::get(Type::UIntTy,FirstOut+out)); +Indices.push_back(Constant::getNullValue(Type::Int32Ty)); + Indices.push_back(ConstantInt::get(Type::Int32Ty,FirstOut+out)); GetElementPtrInst *GEP = new GetElementPtrInst(OAI, Indices, gep_ + outputs[out]-getName(), Index: llvm/lib/Transforms/Utils/InlineFunction.cpp diff -u llvm/lib/Transforms/Utils/InlineFunction.cpp:1.47 llvm/lib/Transforms/Utils/InlineFunction.cpp:1.48 --- llvm/lib/Transforms/Utils/InlineFunction.cpp:1.47 Wed Sep 13 14:23:57 2006 +++
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LowerSwitch.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.42 - 1.43 LowerSwitch.cpp updated: 1.27 - 1.28 --- Log message: Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. --- Diffs of the changes: (+3 -4) CodeExtractor.cpp |4 ++-- LowerSwitch.cpp |3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.42 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.43 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.42Sun Nov 26 04:17:54 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Wed Dec 6 19:30:31 2006 @@ -699,10 +699,10 @@ } } - //llvm_cerr NEW FUNCTION: *newFunction; + //cerr NEW FUNCTION: *newFunction; // verifyFunction(*newFunction); - // llvm_cerr OLD FUNCTION: *oldFunction; + // cerr OLD FUNCTION: *oldFunction; // verifyFunction(*oldFunction); DEBUG(if (verifyFunction(*newFunction)) abort()); Index: llvm/lib/Transforms/Utils/LowerSwitch.cpp diff -u llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.27 llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.28 --- llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.27 Wed Dec 6 11:46:33 2006 +++ llvm/lib/Transforms/Utils/LowerSwitch.cpp Wed Dec 6 19:30:31 2006 @@ -96,8 +96,7 @@ // operator - Used for debugging purposes. // -llvm_ostream operator(llvm_ostream O, - const std::vectorLowerSwitch::Case C) { +OStream operator(OStream O, const std::vectorLowerSwitch::Case C) { O [; for (std::vectorLowerSwitch::Case::const_iterator B = C.begin(), ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LowerSwitch.cpp SimplifyCFG.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.41 - 1.42 LowerSwitch.cpp updated: 1.25 - 1.26 SimplifyCFG.cpp updated: 1.105 - 1.106 --- Log message: Remove #include iostream and use llvm_* streams instead. --- Diffs of the changes: (+37 -40) CodeExtractor.cpp | 22 +++--- LowerSwitch.cpp | 14 ++ SimplifyCFG.cpp | 41 - 3 files changed, 37 insertions(+), 40 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.41 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.42 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.41Fri Oct 20 02:07:24 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Sun Nov 26 04:17:54 2006 @@ -29,7 +29,6 @@ #include llvm/ADT/StringExtras.h #include algorithm #include set -#include iostream using namespace llvm; // Provide a command-line option to aggregate function arguments into a struct @@ -245,8 +244,8 @@ BasicBlock *newHeader, Function *oldFunction, Module *M) { - DEBUG(std::cerr inputs: inputs.size() \n); - DEBUG(std::cerr outputs: outputs.size() \n); + DOUT inputs: inputs.size() \n; + DOUT outputs: outputs.size() \n; // This function returns unsigned, outputs will go back by reference. switch (NumExitBlocks) { @@ -262,24 +261,25 @@ for (Values::const_iterator i = inputs.begin(), e = inputs.end(); i != e; ++i) { const Value *value = *i; -DEBUG(std::cerr value used in func: *value \n); +DOUT value used in func: *value \n; paramTy.push_back(value-getType()); } // Add the types of the output values to the function's argument list. for (Values::const_iterator I = outputs.begin(), E = outputs.end(); I != E; ++I) { -DEBUG(std::cerr instr used in func: **I \n); +DOUT instr used in func: **I \n; if (AggregateArgs) paramTy.push_back((*I)-getType()); else paramTy.push_back(PointerType::get((*I)-getType())); } - DEBUG(std::cerr Function type: *RetTy f(); - DEBUG(for (std::vectorconst Type*::iterator i = paramTy.begin(), - e = paramTy.end(); i != e; ++i) std::cerr **i , ); - DEBUG(std::cerr )\n); + DOUT Function type: *RetTy f(; + for (std::vectorconst Type*::iterator i = paramTy.begin(), + e = paramTy.end(); i != e; ++i) +DOUT **i , ; + DOUT )\n; if (AggregateArgs (inputs.size() + outputs.size() 0)) { PointerType *StructPtr = PointerType::get(StructType::get(paramTy)); @@ -699,10 +699,10 @@ } } - //std::cerr NEW FUNCTION: *newFunction; + //llvm_cerr NEW FUNCTION: *newFunction; // verifyFunction(*newFunction); - // std::cerr OLD FUNCTION: *oldFunction; + // llvm_cerr OLD FUNCTION: *oldFunction; // verifyFunction(*oldFunction); DEBUG(if (verifyFunction(*newFunction)) abort()); Index: llvm/lib/Transforms/Utils/LowerSwitch.cpp diff -u llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.25 llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.26 --- llvm/lib/Transforms/Utils/LowerSwitch.cpp:1.25 Fri Oct 20 02:07:24 2006 +++ llvm/lib/Transforms/Utils/LowerSwitch.cpp Sun Nov 26 04:17:54 2006 @@ -23,7 +23,6 @@ #include llvm/Support/Compiler.h #include llvm/ADT/Statistic.h #include algorithm -#include iostream using namespace llvm; namespace { @@ -97,7 +96,7 @@ // operator - Used for debugging purposes. // -std::ostream operator(std::ostream O, +llvm_ostream operator(llvm_ostream O, const std::vectorLowerSwitch::Case C) { O [; @@ -124,14 +123,13 @@ unsigned Mid = Size / 2; std::vectorCase LHS(Begin, Begin + Mid); - DEBUG(std::cerr LHS: LHS \n); + DOUT LHS: LHS \n; std::vectorCase RHS(Begin + Mid, End); - DEBUG(std::cerr RHS: RHS \n); + DOUT RHS: RHS \n; Case Pivot = *(Begin + Mid); - DEBUG(std::cerr Pivot == - castConstantInt(Pivot.first)-getSExtValue() - \n); + DOUT Pivot == +castConstantInt(Pivot.first)-getSExtValue() \n; BasicBlock* LBranch = switchConvert(LHS.begin(), LHS.end(), Val, OrigBlock, Default); @@ -226,7 +224,7 @@ Cases.push_back(Case(SI-getSuccessorValue(i), SI-getSuccessor(i))); std::sort(Cases.begin(), Cases.end(), CaseCmp()); - DEBUG(std::cerr Cases: Cases \n); + DOUT Cases: Cases \n; BasicBlock* SwitchBlock = switchConvert(Cases.begin(), Cases.end(), Val, OrigBlock, NewDefault); Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.105 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.106 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.105 Sat Nov
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp Local.cpp LowerAllocations.cpp LowerInvoke.cpp LowerSwitch.cpp SimplifyCFG.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.40 - 1.41 Local.cpp updated: 1.58 - 1.59 LowerAllocations.cpp updated: 1.61 - 1.62 LowerInvoke.cpp updated: 1.41 - 1.42 LowerSwitch.cpp updated: 1.24 - 1.25 SimplifyCFG.cpp updated: 1.100 - 1.101 --- Log message: For PR950: http://llvm.org/PR950 : This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. --- Diffs of the changes: (+27 -26) CodeExtractor.cpp| 14 +++--- Local.cpp| 14 +++--- LowerAllocations.cpp |4 ++-- LowerInvoke.cpp |8 LowerSwitch.cpp | 11 ++- SimplifyCFG.cpp |2 +- 6 files changed, 27 insertions(+), 26 deletions(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.40 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.41 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.40Thu Sep 28 17:58:25 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Fri Oct 20 02:07:24 2006 @@ -305,7 +305,7 @@ if (AggregateArgs) { std::vectorValue* Indices; Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantUInt::get(Type::UIntTy, i)); + Indices.push_back(ConstantInt::get(Type::UIntTy, i)); std::string GEPname = gep_ + inputs[i]-getName(); TerminatorInst *TI = newFunction-begin()-getTerminator(); GetElementPtrInst *GEP = new GetElementPtrInst(AI, Indices, GEPname, TI); @@ -392,7 +392,7 @@ for (unsigned i = 0, e = inputs.size(); i != e; ++i) { std::vectorValue* Indices; Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantUInt::get(Type::UIntTy, i)); + Indices.push_back(ConstantInt::get(Type::UIntTy, i)); GetElementPtrInst *GEP = new GetElementPtrInst(Struct, Indices, gep_ + StructValues[i]-getName()); @@ -418,7 +418,7 @@ if (AggregateArgs) { std::vectorValue* Indices; Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantUInt::get(Type::UIntTy, FirstOut + i)); + Indices.push_back(ConstantInt::get(Type::UIntTy, FirstOut + i)); GetElementPtrInst *GEP = new GetElementPtrInst(Struct, Indices, gep_reload_ + outputs[i]-getName()); @@ -439,7 +439,7 @@ // Now we can emit a switch statement using the call as a value. SwitchInst *TheSwitch = -new SwitchInst(ConstantUInt::getNullValue(Type::UShortTy), +new SwitchInst(ConstantInt::getNullValue(Type::UShortTy), codeReplacer, 0, codeReplacer); // Since there may be multiple exits from the original region, make the new @@ -473,14 +473,14 @@ brVal = ConstantBool::get(!SuccNum); break; default: -brVal = ConstantUInt::get(Type::UShortTy, SuccNum); +brVal = ConstantInt::get(Type::UShortTy, SuccNum); break; } ReturnInst *NTRet = new ReturnInst(brVal, NewTarget); // Update the switch instruction. - TheSwitch-addCase(ConstantUInt::get(Type::UShortTy, SuccNum), + TheSwitch-addCase(ConstantInt::get(Type::UShortTy, SuccNum), OldTarget); // Restore values just before we exit @@ -519,7 +519,7 @@ if (AggregateArgs) { std::vectorValue* Indices; Indices.push_back(Constant::getNullValue(Type::UIntTy)); - Indices.push_back(ConstantUInt::get(Type::UIntTy,FirstOut+out)); +Indices.push_back(ConstantInt::get(Type::UIntTy,FirstOut+out)); GetElementPtrInst *GEP = new GetElementPtrInst(OAI, Indices, gep_ + outputs[out]-getName(), Index: llvm/lib/Transforms/Utils/Local.cpp diff -u llvm/lib/Transforms/Utils/Local.cpp:1.58 llvm/lib/Transforms/Utils/Local.cpp:1.59 --- llvm/lib/Transforms/Utils/Local.cpp:1.58Fri May 26 20:18:04 2006 +++ llvm/lib/Transforms/Utils/Local.cpp Fri Oct 20 02:07:24 2006 @@ -272,10 +272,10 @@ gep_type_iterator I = gep_type_begin(CE), E = gep_type_end(CE); for (++I; I != E; ++I) if (const StructType *STy = dyn_castStructType(*I)) { - ConstantUInt *CU = castConstantUInt(I.getOperand()); - assert(CU-getValue() STy-getNumElements() + ConstantInt *CU = castConstantInt(I.getOperand()); + assert(CU-getZExtValue() STy-getNumElements() Struct index out of range!); - unsigned El = (unsigned)CU-getValue(); + unsigned El = (unsigned)CU-getZExtValue(); if (ConstantStruct *CS = dyn_castConstantStruct(C)) { C = CS-getOperand(El); } else if (isaConstantAggregateZero(C)) { @@ -287,10 +287,10 @@
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.39 - 1.40 --- Log message: simplify code --- Diffs of the changes: (+1 -1) CodeExtractor.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.39 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.40 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.39Sun Jan 22 16:53:01 2006 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Thu Sep 28 17:58:25 2006 @@ -470,7 +470,7 @@ case 0: case 1: break; // No value needed. case 2: // Conditional branch, return a bool -brVal = SuccNum ? ConstantBool::False : ConstantBool::True; +brVal = ConstantBool::get(!SuccNum); break; default: brVal = ConstantUInt::get(Type::UShortTy, SuccNum); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp SimplifyCFG.cpp
Changes in directory llvm/lib/Transforms/Utils: CodeExtractor.cpp updated: 1.38 - 1.39 SimplifyCFG.cpp updated: 1.93 - 1.94 --- Log message: Add explicit #includes of iostream --- Diffs of the changes: (+2 -0) CodeExtractor.cpp |1 + SimplifyCFG.cpp |1 + 2 files changed, 2 insertions(+) Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.38 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.39 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.38Thu Apr 21 18:45:34 2005 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Sun Jan 22 16:53:01 2006 @@ -29,6 +29,7 @@ #include llvm/ADT/StringExtras.h #include algorithm #include set +#include iostream using namespace llvm; // Provide a command-line option to aggregate function arguments into a struct Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.93 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.94 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.93 Sat Dec 3 12:25:58 2005 +++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp Sun Jan 22 16:53:01 2006 @@ -23,6 +23,7 @@ #include functional #include set #include map +#include iostream using namespace llvm; /// SafeToMergeTerminators - Return true if it is safe to merge these two ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits