Added a constant pool to record values that need to be emitted
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 28 Oct 2001 21:24:50 +0000 (21:24 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 28 Oct 2001 21:24:50 +0000 (21:24 +0000)
in the assembly code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@999 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/MachineInstr.h

index eea3f0331224a6d55a1e97262585ed166b1f9609..83798aed22f06ebe67dd42d260e7ed9e7e8e2e35 100644 (file)
@@ -20,6 +20,8 @@
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/NonCopyable.h"
 #include "llvm/Target/MachineInstrInfo.h"
+#include "hash_map"
+#include "hash_set"
 
 template<class _MI, class _V> class ValOpIterator;
 
@@ -110,7 +112,7 @@ public:
     return (unsigned) regNum;
   }
   inline int64_t       getImmedValue   () const {
-    assert(opType >= MO_SignExtendedImmed || opType <= MO_PCRelativeDisp);
+    assert(opType == MO_SignExtendedImmed || opType == MO_UnextendedImmed);
     return immedVal;
   }
   inline bool          opIsDef         () const {
@@ -512,6 +514,7 @@ private:
   unsigned     automaticVarsSize;
   unsigned     regSpillsSize;
   unsigned     optionalOutgoingArgsSize;
+  hash_set<const ConstPoolVal*> constantsForConstPool;
   hash_map<const Value*, int> offsetsFromFP;
   hash_map<const Value*, int> offsetsFromSP;
   
@@ -529,7 +532,12 @@ public:
   inline unsigned getAutomaticVarsSize()   const  { return automaticVarsSize; }
   inline unsigned getRegSpillsSize()       const  { return regSpillsSize; }
   inline unsigned getOptionalOutgoingArgsSize() const
-                                            { return optionalOutgoingArgsSize;}
+                                           { return optionalOutgoingArgsSize; }
+  inline const hash_set<const ConstPoolVal*>&
+                  getConstantPoolValues() const {return constantsForConstPool;}
+  
+  void            addToConstantPool        (const ConstPoolVal* constVal)
+                                    { constantsForConstPool.insert(constVal); }
   
   inline void     markAsLeafMethod()              { compiledAsLeaf = true; }