aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Transforms/Utils/Cloning.h10
-rw-r--r--lib/Transforms/Utils/CloneTrace.cpp14
2 files changed, 11 insertions, 13 deletions
diff --git a/include/llvm/Transforms/Utils/Cloning.h b/include/llvm/Transforms/Utils/Cloning.h
index f6e62d9566..8a6b69997c 100644
--- a/include/llvm/Transforms/Utils/Cloning.h
+++ b/include/llvm/Transforms/Utils/Cloning.h
@@ -92,10 +92,10 @@ void CloneFunctionInto(Function *NewFunc, const Function *OldFunc,
bool InlineFunction(CallInst *C);
-/// CloneTrace - Returns a copy of the specified trace. It removes internal phi
-/// nodes, copies the basic blocks, remaps variables, and returns a new vector
-/// of basic blocks (the cloned trace).
-///
-std::vector<BasicBlock *> CloneTrace(std::vector<BasicBlock*> &origTrace);
+/// CloneTrace - Returns a copy of the specified trace.
+/// It takes a vector of basic blocks clones the basic blocks, removes internal
+/// phi nodes, adds it to the same function as the original (although there is
+/// no jump to it) and returns the new vector of basic blocks.
+std::vector<BasicBlock *> CloneTrace(const std::vector<BasicBlock*> &origTrace);
#endif
diff --git a/lib/Transforms/Utils/CloneTrace.cpp b/lib/Transforms/Utils/CloneTrace.cpp
index e8578c512d..2890b9e2b1 100644
--- a/lib/Transforms/Utils/CloneTrace.cpp
+++ b/lib/Transforms/Utils/CloneTrace.cpp
@@ -1,22 +1,20 @@
-//===- CloneTrace.cpp - Clone a trace ---------===//
+//===- CloneTrace.cpp - Clone a trace -------------------------------------===//
//
// This file implements the CloneTrace interface, which is used
// when writing runtime optimizations. It takes a vector of basic blocks
-// removes internal phi nodes, clones the basic blocks, and returns the new
-// vector of basic blocks.
+// clones the basic blocks, removes internal phi nodes, adds it to the
+// same function as the original (although there is no jump to it) and
+// returns the new vector of basic blocks.
//
//===----------------------------------------------------------------------===//
-#include "llvm/Instruction.h"
-#include "llvm/BasicBlock.h"
+#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/iPHINode.h"
#include "llvm/Function.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-#include <map>
//Clones the trace (a vector of basic blocks)
-std::vector<BasicBlock *> CloneTrace(std::vector<BasicBlock*> &origTrace) {
+std::vector<BasicBlock *> CloneTrace(const std::vector<BasicBlock*> &origTrace) {
std::vector<BasicBlock *> clonedTrace;
std::map<const Value*, Value*> ValueMap;