13#ifndef LLVM_LIB_TARGET_ARM_ARMCONSTANTPOOLVALUE_H 
   14#define LLVM_LIB_TARGET_ARM_ARMCONSTANTPOOLVALUE_H 
   64  unsigned char PCAdjust;  
 
   67  bool AddCurrentAddress;
 
   72                       bool AddCurrentAddress);
 
   76                       bool AddCurrentAddress);
 
   78  template <
typename Derived>
 
   80    const std::vector<MachineConstantPoolEntry> &Constants = CP->getConstants();
 
   81    for (
unsigned i = 0, e = Constants.size(); i != e; ++i) {
 
   82      if (Constants[i].isMachineConstantPoolEntry() &&
 
   83          Constants[i].
getAlign() >= Alignment) {
 
 
  115                                Align Alignment) 
override;
 
  124    return this->LabelId == 
A->LabelId &&
 
  125      this->PCAdjust == 
A->PCAdjust &&
 
  126      this->Modifier == 
A->Modifier;
 
 
 
  145  ARMConstantPoolConstant(
const Constant *
C,
 
  150                          bool AddCurrentAddress);
 
  156                          bool AddCurrentAddress);
 
  167                                         unsigned char PCAdj);
 
  172                                         bool AddCurrentAddress);
 
  186                                Align Alignment) 
override;
 
  201  bool equals(
const ARMConstantPoolConstant *
A)
 const {
 
 
 
  213                        bool AddCurrentAddress);
 
  217                                       unsigned char PCAdj);
 
  222                                Align Alignment) 
override;
 
  236  bool equals(
const ARMConstantPoolSymbol *
A)
 const {
 
 
 
  248                     bool AddCurrentAddress);
 
  253                                    unsigned ID, 
unsigned char PCAdj);
 
  258                                Align Alignment) 
override;
 
  272  bool equals(
const ARMConstantPoolMBB *
A)
 const {
 
 
 
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
This file declares the MachineConstantPool class which is an abstract constant pool to keep track of ...
This file defines the SmallPtrSet class.
const GlobalValue * getGV() const
bool equals(const ARMConstantPoolConstant *A) const
static bool classof(const ARMConstantPoolValue *APV)
static ARMConstantPoolConstant * Create(const Constant *C, unsigned ID)
iterator_range< promoted_iterator > promotedGlobals()
const Constant * getPromotedGlobalInit() const
bool hasSameValue(ARMConstantPoolValue *ACPV) override
hasSameValue - Return true if this ARM constpool value can share the same constantpool entry as anoth...
void print(raw_ostream &O) const override
print - Implement operator<<
const BlockAddress * getBlockAddress() const
void addSelectionDAGCSEId(FoldingSetNodeID &ID) override
int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment) override
SmallPtrSet< const GlobalVariable *, 1 >::iterator promoted_iterator
bool equals(const ARMConstantPoolMBB *A) const
const MachineBasicBlock * getMBB() const
int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment) override
void addSelectionDAGCSEId(FoldingSetNodeID &ID) override
static ARMConstantPoolMBB * Create(LLVMContext &C, const MachineBasicBlock *mbb, unsigned ID, unsigned char PCAdj)
bool hasSameValue(ARMConstantPoolValue *ACPV) override
hasSameValue - Return true if this ARM constpool value can share the same constantpool entry as anoth...
void print(raw_ostream &O) const override
print - Implement operator<<
static bool classof(const ARMConstantPoolValue *ACPV)
void addSelectionDAGCSEId(FoldingSetNodeID &ID) override
bool hasSameValue(ARMConstantPoolValue *ACPV) override
hasSameValue - Return true if this ARM constpool value can share the same constantpool entry as anoth...
int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment) override
void print(raw_ostream &O) const override
print - Implement operator<<
static ARMConstantPoolSymbol * Create(LLVMContext &C, StringRef s, unsigned ID, unsigned char PCAdj)
static bool classof(const ARMConstantPoolValue *ACPV)
StringRef getSymbol() const
bool equals(const ARMConstantPoolSymbol *A) const
ARMConstantPoolValue - ARM specific constantpool value.
bool isPromotedGlobal() const
unsigned char getPCAdjustment() const
int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment) override
void print(raw_ostream *O) const
ARMConstantPoolValue(Type *Ty, unsigned id, ARMCP::ARMCPKind Kind, unsigned char PCAdj, ARMCP::ARMCPModifier Modifier, bool AddCurrentAddress)
~ARMConstantPoolValue() override
void print(raw_ostream &O) const override
print - Implement operator<<
bool isMachineBasicBlock() const
int getExistingMachineCPValueImpl(MachineConstantPool *CP, Align Alignment)
bool isGlobalValue() const
bool equals(const ARMConstantPoolValue *A) const
ARMCP::ARMCPModifier getModifier() const
bool mustAddCurrentAddress() const
StringRef getModifierText() const
unsigned getLabelId() const
virtual bool hasSameValue(ARMConstantPoolValue *ACPV)
hasSameValue - Return true if this ARM constpool value can share the same constantpool entry as anoth...
bool isBlockAddress() const
void addSelectionDAGCSEId(FoldingSetNodeID &ID) override
The address of a basic block.
This is an important base class in LLVM.
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
This is an important class for using LLVM in a threaded context.
MachineConstantPoolValue(Type *ty)
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
SmallPtrSetIterator< PtrType > iterator
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
A range adaptor for a pair of iterators.
This class implements an extremely fast bulk output stream that can only output to a stream.
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
@ SECREL
Thread Pointer Offset.
@ GOT_PREL
Thread Local Storage (General Dynamic Mode)
@ SBREL
Section Relative (Windows TLS)
@ GOTTPOFF
Global Offset Table, PC Relative.
@ TPOFF
Global Offset Table, Thread Pointer Offset.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
MaybeAlign getAlign(const CallInst &I, unsigned Index)
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
This struct is a compact representation of a valid (non-zero power of two) alignment.