Changes in directory llvm/lib/Transforms/Utils:
CloneFunction.cpp updated: 1.35 -> 1.36 CodeExtractor.cpp updated: 1.46 -> 1.47 Local.cpp updated: 1.64 -> 1.65 SimplifyCFG.cpp updated: 1.110 -> 1.111 --- Log message: Implement review feedback for the ConstantBool->ConstantInt merge. Chris recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. --- Diffs of the changes: (+14 -13) CloneFunction.cpp | 2 +- CodeExtractor.cpp | 2 +- Local.cpp | 4 ++-- SimplifyCFG.cpp | 19 ++++++++++--------- 4 files changed, 14 insertions(+), 13 deletions(-) Index: llvm/lib/Transforms/Utils/CloneFunction.cpp diff -u llvm/lib/Transforms/Utils/CloneFunction.cpp:1.35 llvm/lib/Transforms/Utils/CloneFunction.cpp:1.36 --- llvm/lib/Transforms/Utils/CloneFunction.cpp:1.35 Thu Jan 11 06:24:14 2007 +++ llvm/lib/Transforms/Utils/CloneFunction.cpp Thu Jan 11 22:24:46 2007 @@ -233,7 +233,7 @@ // Constant fold to uncond branch! if (Cond) { - BasicBlock *Dest = BI->getSuccessor(!Cond->getBoolValue()); + BasicBlock *Dest = BI->getSuccessor(!Cond->getZExtValue()); ValueMap[OldTI] = new BranchInst(Dest, NewBB); CloneBlock(Dest); TerminatorDone = true; Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.46 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.47 --- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.46 Thu Jan 11 12:21:29 2007 +++ llvm/lib/Transforms/Utils/CodeExtractor.cpp Thu Jan 11 22:24:46 2007 @@ -470,7 +470,7 @@ case 0: case 1: break; // No value needed. case 2: // Conditional branch, return a bool - brVal = ConstantInt::get(!SuccNum); + brVal = ConstantInt::get(Type::Int1Ty, !SuccNum); break; default: brVal = ConstantInt::get(Type::Int16Ty, SuccNum); Index: llvm/lib/Transforms/Utils/Local.cpp diff -u llvm/lib/Transforms/Utils/Local.cpp:1.64 llvm/lib/Transforms/Utils/Local.cpp:1.65 --- llvm/lib/Transforms/Utils/Local.cpp:1.64 Thu Jan 11 06:24:14 2007 +++ llvm/lib/Transforms/Utils/Local.cpp Thu Jan 11 22:24:46 2007 @@ -176,8 +176,8 @@ if (ConstantInt *Cond = dyn_cast<ConstantInt>(BI->getCondition())) { // Are we branching on constant? // YES. Change to unconditional branch... - BasicBlock *Destination = Cond->getBoolValue() ? Dest1 : Dest2; - BasicBlock *OldDest = Cond->getBoolValue() ? Dest2 : Dest1; + BasicBlock *Destination = Cond->getZExtValue() ? Dest1 : Dest2; + BasicBlock *OldDest = Cond->getZExtValue() ? Dest2 : Dest1; //cerr << "Function: " << T->getParent()->getParent() // << "\nRemoving branch from " << T->getParent() Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.110 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.111 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.110 Thu Jan 11 12:21:29 2007 +++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp Thu Jan 11 22:24:46 2007 @@ -975,7 +975,7 @@ // Okay, we now know that all edges from PredBB should be revectored to // branch to RealDest. BasicBlock *PredBB = PN->getIncomingBlock(i); - BasicBlock *RealDest = BI->getSuccessor(!CB->getBoolValue()); + BasicBlock *RealDest = BI->getSuccessor(!CB->getZExtValue()); if (RealDest == BB) continue; // Skip self loops. @@ -1500,8 +1500,8 @@ if (PBI != BI && PBI->isConditional()) { // If this block ends with a branch instruction, and if there is a - // predecessor that ends on a branch of the same condition, make this - // conditional branch redundant. + // predecessor that ends on a branch of the same condition, make + // this conditional branch redundant. if (PBI->getCondition() == BI->getCondition() && PBI->getSuccessor(0) != PBI->getSuccessor(1)) { // Okay, the outcome of this conditional branch is statically @@ -1509,23 +1509,24 @@ if (BB->getSinglePredecessor()) { // Turn this into a branch on constant. bool CondIsTrue = PBI->getSuccessor(0) == BB; - BI->setCondition(ConstantInt::get(CondIsTrue)); + BI->setCondition(ConstantInt::get(Type::Int1Ty, CondIsTrue)); return SimplifyCFG(BB); // Nuke the branch on constant. } - // Otherwise, if there are multiple predecessors, insert a PHI that - // merges in the constant and simplify the block result. + // 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::Int1Ty, - BI->getCondition()->getName()+".pr", - BB->begin()); + BI->getCondition()->getName()+".pr", + BB->begin()); for (PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) if ((PBI = dyn_cast<BranchInst>((*PI)->getTerminator())) && PBI != BI && PBI->isConditional() && PBI->getCondition() == BI->getCondition() && PBI->getSuccessor(0) != PBI->getSuccessor(1)) { bool CondIsTrue = PBI->getSuccessor(0) == BB; - NewPN->addIncoming(ConstantInt::get(CondIsTrue), *PI); + NewPN->addIncoming(ConstantInt::get(Type::Int1Ty, + CondIsTrue), *PI); } else { NewPN->addIncoming(BI->getCondition(), *PI); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits