LLVM: lib/Target/SystemZ/SystemZConstantPoolValue.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
13
14using namespace llvm;
15
19
25
27 Align Alignment) {
28 const std::vector &Constants = CP->getConstants();
29 for (unsigned I = 0, E = Constants.size(); I != E; ++I) {
30 if (Constants[I].isMachineConstantPoolEntry() &&
31 Constants[I].getAlign() >= Alignment) {
32 auto *ZCPV =
34 if (ZCPV->GV == GV && ZCPV->Modifier == Modifier)
35 return I;
36 }
37 }
38 return -1;
39}
40
42 ID.AddPointer(GV);
43 ID.AddInteger(Modifier);
44}
45
47 O << GV << "@" << int(Modifier);
48}
This file defines a hash set that can be used to remove duplication of nodes in a graph.
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
MachineConstantPoolValue(Type *ty)
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
A SystemZ-specific constant pool value.
void print(raw_ostream &O) const override
print - Implement operator<<
Definition SystemZConstantPoolValue.cpp:46
static SystemZConstantPoolValue * Create(const GlobalValue *GV, SystemZCP::SystemZCPModifier Modifier)
Definition SystemZConstantPoolValue.cpp:21
int getExistingMachineCPValue(MachineConstantPool *CP, Align Alignment) override
Definition SystemZConstantPoolValue.cpp:26
SystemZConstantPoolValue(const GlobalValue *GV, SystemZCP::SystemZCPModifier Modifier)
Definition SystemZConstantPoolValue.cpp:16
void addSelectionDAGCSEId(FoldingSetNodeID &ID) override
Definition SystemZConstantPoolValue.cpp:41
This class implements an extremely fast bulk output stream that can only output to a stream.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
MaybeAlign getAlign(const CallInst &I, unsigned Index)
This struct is a compact representation of a valid (non-zero power of two) alignment.