13#ifndef LLVM_CODEGEN_MACHINEIDFSSAUPDATER_H
14#define LLVM_CODEGEN_MACHINEIDFSSAUPDATER_H
53 : DT(DT), MRI(MF.getRegInfo()), TII(*MF.getSubtarget().getInstrInfo()),
63 Defines.emplace_back(BB, V);
This file defines the DenseMap class.
This file defines the SmallVector class.
MachineInstrBundleIterator< MachineInstr > iterator
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
MachineIDFSSAUpdater(MachineDominatorTree &DT, MachineFunction &MF, Register Reg)
Register getValueInMiddleOfBlock(MachineBasicBlock *BB)
See SSAUpdater::GetValueInMiddleOfBlock description.
void addAvailableValue(MachineBasicBlock *BB, Register V)
Indicate that a rewritten value is available in the specified block with the specified value.
void calculate()
Calculate and insert necessary PHI nodes for SSA form.
MachineIDFSSAUpdater(MachineDominatorTree &DT, MachineFunction &MF, const MachineRegisterInfo::VRegAttrs &RegAttr)
void addUseBlock(MachineBasicBlock *BB)
Record a basic block that uses the value.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
Wrapper class representing virtual and physical registers.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
TargetInstrInfo - Interface to description of machine instruction set.
This is an optimization pass for GlobalISel generic memory operations.
All attributes(register class or bank and low-level type) a virtual register can have.