Start moving leaf nodes over to the CSEMap.
authorChris Lattner <sabre@nondot.org>
Fri, 11 Aug 2006 21:00:46 +0000 (21:00 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 11 Aug 2006 21:00:46 +0000 (21:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29625 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGCSEMap.h

index d0b6ee17edba289cfba917871a791c5f623b34de..d84924e276e96d08f2e28781b2dc00e745e6f7d0 100644 (file)
@@ -52,9 +52,6 @@ class SelectionDAG {
   // AllNodes - A linked list of nodes in the current DAG.
   ilist<SDNode> AllNodes;
 
-  // ValueNodes - track SrcValue nodes
-  std::map<std::pair<const Value*, int>, SDNode*> ValueNodes;
-
 public:
   SelectionDAG(TargetLowering &tli, MachineFunction &mf, MachineDebugInfo *di)
   : TLI(tli), MF(mf), DI(di) {
@@ -110,14 +107,18 @@ public:
   void RemoveDeadNodes();
 
   SDOperand getString(const std::string &Val);
-  SDOperand getConstant(uint64_t Val, MVT::ValueType VT);
-  SDOperand getTargetConstant(uint64_t Val, MVT::ValueType VT);
+  SDOperand getConstant(uint64_t Val, MVT::ValueType VT, bool isTarget = false);
+  SDOperand getTargetConstant(uint64_t Val, MVT::ValueType VT) {
+    return getConstant(Val, VT, true);
+  }
   SDOperand getConstantFP(double Val, MVT::ValueType VT);
   SDOperand getTargetConstantFP(double Val, MVT::ValueType VT);
   SDOperand getGlobalAddress(const GlobalValue *GV, MVT::ValueType VT,
-                             int offset = 0);
+                             int offset = 0, bool isTargetGA = false);
   SDOperand getTargetGlobalAddress(const GlobalValue *GV, MVT::ValueType VT,
-                                   int offset = 0);
+                                   int offset = 0) {
+    return getGlobalAddress(GV, VT, offset, true);
+  }
   SDOperand getFrameIndex(int FI, MVT::ValueType VT);
   SDOperand getTargetFrameIndex(int FI, MVT::ValueType VT);
   SDOperand getJumpTable(int JTI, MVT::ValueType VT);
@@ -449,13 +450,8 @@ private:
   std::list<std::vector<MVT::ValueType> > VTList;
   
   // Maps to auto-CSE operations.
-  std::map<std::pair<unsigned, MVT::ValueType>, RegisterSDNode*> RegNodes;
   std::vector<CondCodeSDNode*> CondCodeNodes;
 
-  std::map<std::pair<const GlobalValue*, int>, SDNode*> GlobalValues;
-  std::map<std::pair<const GlobalValue*, int>, SDNode*> TargetGlobalValues;
-  std::map<std::pair<uint64_t, MVT::ValueType>, SDNode*> Constants;
-  std::map<std::pair<uint64_t, MVT::ValueType>, SDNode*> TargetConstants;
   std::map<std::pair<uint64_t, MVT::ValueType>, SDNode*> ConstantFPs;
   std::map<std::pair<uint64_t, MVT::ValueType>, SDNode*> TargetConstantFPs;
   std::map<int, SDNode*> FrameIndices, TargetFrameIndices, JumpTableIndices,
@@ -464,7 +460,6 @@ private:
                      std::pair<int, unsigned> >, SDNode*> ConstantPoolIndices;
   std::map<std::pair<Constant *,
                  std::pair<int, unsigned> >, SDNode*> TargetConstantPoolIndices;
-  std::map<MachineBasicBlock *, SDNode*> BBNodes;
   std::vector<SDNode*> ValueTypeNodes;
   std::map<std::string, SDNode*> ExternalSymbols;
   std::map<std::string, SDNode*> TargetExternalSymbols;
index c88e2eaad323999c90e77fffec86efeb7c6345e5..42007fdf6889fcd3000b82443161211c6d4ac436 100644 (file)
@@ -98,12 +98,23 @@ namespace llvm {
       void SetOperands(const SDOperand *Ops, unsigned NumOps);
       void AddOperand(SDOperand Op);
       void AddPointer(const void *Ptr);
-      void AddInteger(int I) {
+      void AddInteger(signed I) {
         Bits.push_back((I >>  0) & 0xFF);
         Bits.push_back((I >>  8) & 0xFF);
         Bits.push_back((I >> 16) & 0xFF);
         Bits.push_back((I >> 24) & 0xFF);
       }
+      void AddInteger(unsigned I) {
+        AddInteger((signed)I);
+      }
+      void AddInteger(uint64_t I) {
+        union {
+          uint64_t x;
+          unsigned char A[8];
+        };
+        x = I;
+        Bits.append(A, A+8);
+      }
       
       unsigned ComputeHash() const;