26#define DEBUG_TYPE "finalize-isel"
43char FinalizeISel::ID = 0;
46 "Finalize ISel and expand pseudo-instructions",
false,
false)
62 if (
TII->isFrameInstr(
MI) ||
MI.isStackAligningInlineAsm())
63 MF.getFrameInfo().setAdjustsStack(
true);
66 if (
MI.usesCustomInsertionHook()) {
MachineBasicBlock MachineBasicBlock::iterator MBBI
const HexagonInstrInfo * TII
#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.
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.
virtual bool runOnMachineFunction(MachineFunction &MF)=0
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
Representation of each machine instruction.
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...
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.
char & FinalizeISelID
This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.