LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::MachineConstantPool Class Reference

The machine constant pool. More...

#include <MachineConstantPool.h>

Public Member Functions

 MachineConstantPool (const TargetMachine &TM)
 The only constructor. More...
 
 ~MachineConstantPool ()
 
unsigned getConstantPoolAlignment () const
 
unsigned getConstantPoolIndex (const Constant *C, unsigned Alignment)
 
unsigned getConstantPoolIndex (MachineConstantPoolValue *V, unsigned Alignment)
 
bool isEmpty () const
 isEmpty - Return true if this constant pool contains no constants. More...
 
const std::vector
< MachineConstantPoolEntry > & 
getConstants () const
 
void print (raw_ostream &OS) const
 
void dump () const
 dump - Call print(cerr) to be called from the debugger. More...
 

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 134 of file MachineConstantPool.h.

Constructor & Destructor Documentation

llvm::MachineConstantPool::MachineConstantPool ( const TargetMachine TM)
inlineexplicit

The only constructor.

Definition at line 144 of file MachineConstantPool.h.

MachineConstantPool::~MachineConstantPool ( )

Definition at line 807 of file MachineFunction.cpp.

References for(), and I.

Referenced by llvm::MachineFunction::~MachineFunction().

Member Function Documentation

void MachineConstantPool::dump ( ) const

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

Definition at line 920 of file MachineFunction.cpp.

References llvm::dbgs(), and print().

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

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

Definition at line 150 of file MachineConstantPool.h.

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

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

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

Definition at line 865 of file MachineFunction.cpp.

References CanShareConstantPoolEntry().

Referenced by duplicateCPV(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), and llvm::X86InstrInfo::foldMemoryOperandImpl().

unsigned MachineConstantPool::getConstantPoolIndex ( MachineConstantPoolValue V,
unsigned  Alignment 
)
const std::vector<MachineConstantPoolEntry>& llvm::MachineConstantPool::getConstants ( ) const
inline
bool llvm::MachineConstantPool::isEmpty ( ) const
inline

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

Definition at line 159 of file MachineConstantPool.h.

void MachineConstantPool::print ( raw_ostream OS) const

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

Definition at line 904 of file MachineFunction.cpp.

References llvm::WriteAsOperand().

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


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