LLVM API Documentation

llvm::MachineConstantPool Class Reference

The machine constant pool. More...

#include <MachineConstantPool.h>

Collaboration diagram for llvm::MachineConstantPool:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MachineConstantPool (const TargetData *td)
 The only constructor.
unsigned getConstantPoolAlignment () const
unsigned getConstantPoolIndex (Constant *C, unsigned Alignment)
bool isEmpty () const
 isEmpty - Return true if this constant pool contains no constants.
const std::vector< MachineConstantPoolEntry > & getConstants () const
void print (std::ostream &OS) const
void dump () const

Detailed Description

The machine constant pool.

The MachineConstantPool class keeps track of constants referenced by a function which must be spilled to memory. This is used for constants which are unable to be used directly as operands to instructions, which typically include floating point and large integer constants.

Instructions reference the address of these constant pool constants through the use of MO_ConstantPoolIndex values. When emitting assembly or machine code, these virtual address references are converted to refer to the address of the function constant pool values.

Definition at line 46 of file MachineConstantPool.h.


Constructor & Destructor Documentation

llvm::MachineConstantPool::MachineConstantPool ( const TargetData td  )  [inline]

The only constructor.

Definition at line 52 of file MachineConstantPool.h.


Member Function Documentation

unsigned llvm::MachineConstantPool::getConstantPoolAlignment (  )  const [inline]

getConstantPoolAlignment - Return the log2 of the alignment required by the whole constant pool, of which the first element must be aligned.

Definition at line 56 of file MachineConstantPool.h.

Referenced by llvm::AsmPrinter::EmitConstantPool().

unsigned MachineConstantPool::getConstantPoolIndex ( Constant C,
unsigned  Alignment 
)

getConstantPoolIndex - Create a new entry in the constant pool or return an existing one. User must specify an alignment in bytes for the object.

Definition at line 357 of file MachineFunction.cpp.

References C, llvm::TargetData::getTypeSize(), Offset, TD, and Val.

bool llvm::MachineConstantPool::isEmpty (  )  const [inline]

isEmpty - Return true if this constant pool contains no constants.

Definition at line 63 of file MachineConstantPool.h.

const std::vector<MachineConstantPoolEntry>& llvm::MachineConstantPool::getConstants (  )  const [inline]

Definition at line 65 of file MachineConstantPool.h.

Referenced by llvm::AsmPrinter::EmitConstantPool().

void MachineConstantPool::print ( std::ostream &  OS  )  const

print - Used by the MachineFunction printer to print information about constant pool objects. Implemented in MachineFunction.cpp

Definition at line 382 of file MachineFunction.cpp.

Referenced by dump(), and llvm::MachineFunction::print().

void MachineConstantPool::dump (  )  const

dump - Call print(std::cerr) to be called from the debugger.

Definition at line 390 of file MachineFunction.cpp.

References print().


The documentation for this class was generated from the following files: