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.