[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp LoopSimplify.cpp

2007-06-21 Thread Devang Patel


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

2007-06-07 Thread Devang Patel


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

2007-06-04 Thread Devang Patel


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

2007-04-17 Thread Owen Anderson


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

2007-04-16 Thread Anton Korobeynikov


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

2007-04-06 Thread Owen Anderson


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

2007-02-12 Thread Chris Lattner


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

2007-01-31 Thread Chris Lattner


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

2007-01-11 Thread Reid Spencer


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

2006-12-30 Thread Reid Spencer


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

2006-12-06 Thread Bill Wendling


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

2006-11-26 Thread Bill Wendling


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

2006-10-20 Thread Reid Spencer


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

2006-09-28 Thread Chris Lattner


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

2006-01-22 Thread Chris Lattner


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