Go to the documentation of this file.
15 #ifndef LLVM_CODEGEN_MACHINECONSTANTPOOL_H
16 #define LLVM_CODEGEN_MACHINECONSTANTPOOL_H
28 class FoldingSetNodeID;
29 class MachineConstantPool;
36 virtual void anchor();
119 std::vector<MachineConstantPoolEntry>
Constants;
129 : PoolAlignment(1),
DL(
DL) {}
159 #endif // LLVM_CODEGEN_MACHINECONSTANTPOOL_H
unsigned getConstantPoolIndex(const Constant *C, Align Alignment)
getConstantPoolIndex - Create a new entry in the constant pool or return an existing one.
This is an optimization pass for GlobalISel generic memory operations.
A parsed version of the target data layout string in and methods for querying it.
Align getConstantPoolAlign() const
Return the alignment required by the whole constant pool, of which the first element must be aligned.
bool isEmpty() const
isEmpty - Return true if this constant pool contains no constants.
union llvm::MachineConstantPoolEntry::@191 Val
The constant itself.
MachineConstantPoolValue * MachineCPVal
Abstract base class for all machine specific constantpool value subclasses.
The instances of the Type class are immutable: once they are created, they are never changed.
MachineConstantPoolEntry(const Constant *V, Align A)
MachineConstantPoolEntry(MachineConstantPoolValue *V, Align A)
bool IsMachineConstantPoolEntry
MachineConstantPoolValue(Type *ty)
(vector float) vec_cmpeq(*A, *B) C
MachineConstantPool(const DataLayout &DL)
The only constructor.
virtual void print(raw_ostream &O) const =0
print - Implement operator<<
SectionKind getSectionKind(const DataLayout *DL) const
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
This struct is a compact representation of a valid (non-zero power of two) alignment.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
Implements a dense probed hash-table based set.
This is an important base class in LLVM.
virtual unsigned getSizeInBytes(const DataLayout &DL) const
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
bool isMachineConstantPoolEntry() const
isMachineConstantPoolEntry - Return true if the MachineConstantPoolEntry is indeed a target specific ...
virtual ~MachineConstantPoolValue()=default
bool needsRelocation() const
This method classifies the entry according to whether or not it may generate a relocation entry.
virtual void addSelectionDAGCSEId(FoldingSetNodeID &ID)=0
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
SectionKind - This is a simple POD value that classifies the properties of a section.
This class is a data container for one entry in a MachineConstantPool.
const std::vector< MachineConstantPoolEntry > & getConstants() const
void print(raw_ostream &OS) const
print - Used by the MachineFunction printer to print information about constant pool objects.
virtual int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment)=0
void dump() const
dump - Call print(cerr) to be called from the debugger.
const Constant * ConstVal
unsigned getSizeInBytes(const DataLayout &DL) const
Align Alignment
The required alignment for this entry.