[llvm-commits] CVS: llvm/include/llvm/Transforms/Utils/Cloning.h

Chris Lattner sabre at nondot.org
Fri Feb 2 16:07:56 PST 2007



Changes in directory llvm/include/llvm/Transforms/Utils:

Cloning.h updated: 1.21 -> 1.22
---
Log message:

Switch inliner over to use DenseMap instead of std::map for ValueMap.  This
speeds up the inliner 16%.


---
Diffs of the changes:  (+8 -8)

 Cloning.h |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)


Index: llvm/include/llvm/Transforms/Utils/Cloning.h
diff -u llvm/include/llvm/Transforms/Utils/Cloning.h:1.21 llvm/include/llvm/Transforms/Utils/Cloning.h:1.22
--- llvm/include/llvm/Transforms/Utils/Cloning.h:1.21	Tue Jan 30 17:22:39 2007
+++ llvm/include/llvm/Transforms/Utils/Cloning.h	Fri Feb  2 18:07:40 2007
@@ -19,7 +19,7 @@
 #define LLVM_TRANSFORMS_UTILS_CLONING_H
 
 #include <vector>
-#include <map>
+#include "llvm/ADT/DenseMap.h"
 
 namespace llvm {
 
@@ -38,7 +38,7 @@
 /// CloneModule - Return an exact copy of the specified module
 ///
 Module *CloneModule(const Module *M);
-Module *CloneModule(const Module *M, std::map<const Value*, Value*> &ValueMap);
+Module *CloneModule(const Module *M, DenseMap<const Value*, Value*> &ValueMap);
 
 /// ClonedCodeInfo - This struct can be used to capture information about code
 /// being cloned, while it is being cloned.
@@ -94,7 +94,7 @@
 /// parameter.
 ///
 BasicBlock *CloneBasicBlock(const BasicBlock *BB,
-                            std::map<const Value*, Value*> &ValueMap,
+                            DenseMap<const Value*, Value*> &ValueMap,
                             const char *NameSuffix = "", Function *F = 0,
                             ClonedCodeInfo *CodeInfo = 0);
 
@@ -109,13 +109,13 @@
 /// information about the cloned code if non-null.
 ///
 Function *CloneFunction(const Function *F,
-                        std::map<const Value*, Value*> &ValueMap,
+                        DenseMap<const Value*, Value*> &ValueMap,
                         ClonedCodeInfo *CodeInfo = 0);
 
 /// CloneFunction - Version of the function that doesn't need the ValueMap.
 ///
 inline Function *CloneFunction(const Function *F, ClonedCodeInfo *CodeInfo = 0){
-  std::map<const Value*, Value*> ValueMap;
+  DenseMap<const Value*, Value*> ValueMap;
   return CloneFunction(F, ValueMap, CodeInfo);
 }
 
@@ -126,7 +126,7 @@
 /// specified suffix to all values cloned.
 ///
 void CloneFunctionInto(Function *NewFunc, const Function *OldFunc,
-                       std::map<const Value*, Value*> &ValueMap,
+                       DenseMap<const Value*, Value*> &ValueMap,
                        std::vector<ReturnInst*> &Returns,
                        const char *NameSuffix = "", 
                        ClonedCodeInfo *CodeInfo = 0);
@@ -139,7 +139,7 @@
 /// dead.  Since this doesn't produce an exactly copy of the input, it can't be
 /// used for things like CloneFunction or CloneModule.
 void CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc,
-                               std::map<const Value*, Value*> &ValueMap,
+                               DenseMap<const Value*, Value*> &ValueMap,
                                std::vector<ReturnInst*> &Returns,
                                const char *NameSuffix = "", 
                                ClonedCodeInfo *CodeInfo = 0,
@@ -150,7 +150,7 @@
 /// saved in ValueMap.
 ///
 void CloneTraceInto(Function *NewFunc, Trace &T,
-                    std::map<const Value*, Value*> &ValueMap,
+                    DenseMap<const Value*, Value*> &ValueMap,
                     const char *NameSuffix);
 
 /// CloneTrace - Returns a copy of the specified trace.






More information about the llvm-commits mailing list