[llvm-commits] CVS: reopt/lib/TraceToFunction/TraceToFunction.cpp
Brian Gaeke
gaeke at cs.uiuc.edu
Wed May 19 03:54:01 PDT 2004
Changes in directory reopt/lib/TraceToFunction:
TraceToFunction.cpp updated: 1.42 -> 1.43
---
Log message:
Use new trace cloner
---
Diffs of the changes: (+13 -12)
Index: reopt/lib/TraceToFunction/TraceToFunction.cpp
diff -u reopt/lib/TraceToFunction/TraceToFunction.cpp:1.42 reopt/lib/TraceToFunction/TraceToFunction.cpp:1.43
--- reopt/lib/TraceToFunction/TraceToFunction.cpp:1.42 Tue May 18 16:23:06 2004
+++ reopt/lib/TraceToFunction/TraceToFunction.cpp Wed May 19 03:53:20 2004
@@ -282,18 +282,17 @@
/// to O2CMap.
///
static void cloneTraceBBsIntoFunction (Trace &T, Function *F, ValueMap &O2CMap){
- // Clone each basic block into the new function.
- for (Trace::iterator TI = T.begin (), TE = T.end (); TI != TE; ++TI) {
- BasicBlock *srcB = *TI;
- // Create a new BasicBlock dstB that corresponds to srcB in T.
- BasicBlock *dstB = CloneBasicBlock (srcB, O2CMap, ".ttf");
- DEBUG(dstB->setName (srcB->getName () + ".ttf"));
- // Add dstB to F.
- F->getBasicBlockList ().push_back (dstB);
- // Remember the correspondence between srcB and dstB. (CloneFunction does
- // this, but we aren't cloning the whole function.)
- O2CMap[srcB] = dstB;
- }
+ for (Function::aiterator AI = T.getFunction ()->abegin (),
+ AE = T.getFunction ()->aend (); AI != AE; ++AI)
+ O2CMap[AI] = AI;
+ for (Function::iterator FI = T.getFunction ()->begin (),
+ FE = T.getFunction ()->end (); FI != FE; ++FI)
+ if (!T.contains (FI)) {
+ O2CMap[FI] = FI;
+ for (BasicBlock::iterator BI = FI->begin (), BE = FI->end (); BI != BE; ++BI)
+ O2CMap[BI] = BI;
+ }
+ CloneTraceInto (F, T, O2CMap, ".ttf");
}
/// isFirstTriggerCall - Returns true iff I is a call instruction which appears
@@ -403,6 +402,8 @@
threadFLIEdges (F);
numberExitBranchesInTrace (T, BranchNumber);
+
+ DEBUG (std::cerr << "\n FUNCTION BEFORE FIXUPS: \n" << *F << "\n\n");
// Fix up the cloned basic blocks of the function so that they are
// internally consistent.
More information about the llvm-commits
mailing list