LLVM: lib/CodeGen/FinalizeISel.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

25using namespace llvm;

26

27#define DEBUG_TYPE "finalize-isel"

28

29namespace {

31 public:

32 static char ID;

34

35 private:

37

38 void getAnalysisUsage(AnalysisUsage &AU) const override {

40 }

41 };

42}

43

49

51

52

56 MBBI != MBBE; ) {

58

59

60

61 if (TII->isFrameInstr(MI) || MI.isStackAligningInlineAsm())

63

64

65 if (MI.usesCustomInsertionHook()) {

68

69 if (NewMBB != MBB) {

71 MBB = NewMBB;

74 MBBE = NewMBB->end();

75 }

76 }

77 }

78 }

80}

81

82char FinalizeISel::ID = 0;

85 "Finalize ISel and expand pseudo-instructions", false, false)

86

89}

90

const TargetInstrInfo & TII

MachineBasicBlock MachineBasicBlock::iterator MBBI

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

static bool runImpl(Function &F, const TargetLowering &TLI, const LibcallLoweringInfo &Libcalls, AssumptionCache *AC)

static std::pair< bool, bool > runImpl(MachineFunction &MF)

Definition FinalizeISel.cpp:44

#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)

This file describes how to lower LLVM code to machine code.

Represent the analysis usage information of a pass.

Represents analyses that only rely on functions' control flow.

PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &)

Definition FinalizeISel.cpp:91

MachineInstrBundleIterator< MachineInstr > iterator

void setAdjustsStack(bool V)

MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.

const TargetSubtargetInfo & getSubtarget() const

getSubtarget - Return the subtarget for which this machine code is being compiled.

MachineFrameInfo & getFrameInfo()

getFrameInfo - Return the frame info object for the current function.

BasicBlockListType::iterator iterator

Representation of each machine instruction.

A set of analyses that are preserved following a run of a transformation pass.

static PreservedAnalyses all()

Construct a special preserved set that preserves all passes.

TargetInstrInfo - Interface to description of machine instruction set.

virtual void finalizeLowering(MachineFunction &MF) const

Execute target specific actions to finalize target lowering.

This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...

virtual MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr &MI, MachineBasicBlock *MBB) const

This method should be implemented by targets that mark instructions with the 'usesCustomInserter' fla...

virtual const TargetInstrInfo * getInstrInfo() const

virtual const TargetLowering * getTargetLowering() const

self_iterator getIterator()

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

This is an optimization pass for GlobalISel generic memory operations.

AnalysisManager< MachineFunction > MachineFunctionAnalysisManager

LLVM_ABI PreservedAnalyses getMachineFunctionPassPreservedAnalyses()

Returns the minimum set of Analyses that all machine function passes must preserve.

LLVM_ABI char & FinalizeISelID

This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.

Definition FinalizeISel.cpp:83