diff options
-rw-r--r-- | include/llvm/Transforms/Utils/Cloning.h | 10 | ||||
-rw-r--r-- | lib/Transforms/Utils/CloneTrace.cpp | 14 |
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; |