From dd52255e9a26fbc9b7e0cd22a2dd99b0b6bae991 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sun, 28 Oct 2001 21:24:50 +0000 Subject: [PATCH] Added a constant pool to record values that need to be emitted 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 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index eea3f033122..83798aed22f 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -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 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 constantsForConstPool; hash_map offsetsFromFP; hash_map 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& + getConstantPoolValues() const {return constantsForConstPool;} + + void addToConstantPool (const ConstPoolVal* constVal) + { constantsForConstPool.insert(constVal); } inline void markAsLeafMethod() { compiledAsLeaf = true; }