13#ifndef LLVM_CODEGEN_MACHINESSAUPDATER_H
14#define LLVM_CODEGEN_MACHINESSAUPDATER_H
100 bool ExistingValueOnly =
false);
113 bool ExistingValueOnly =
false);
unsigned const MachineRegisterInfo * MRI
const HexagonInstrInfo * TII
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple bl...
void Initialize(Register V)
Initialize - Reset this object to get ready for a new set of SSA updates.
Register GetValueInMiddleOfBlock(MachineBasicBlock *BB, bool ExistingValueOnly=false)
GetValueInMiddleOfBlock - Construct SSA form, materializing a value that is live in the middle of the...
MachineSSAUpdater(const MachineSSAUpdater &)=delete
void RewriteUse(MachineOperand &U)
RewriteUse - Rewrite a use of the symbolic value.
MachineSSAUpdater & operator=(const MachineSSAUpdater &)=delete
Register GetValueAtEndOfBlock(MachineBasicBlock *BB)
GetValueAtEndOfBlock - Construct SSA form, materializing a value that is live at the end of the speci...
void AddAvailableValue(MachineBasicBlock *BB, Register V)
AddAvailableValue - Indicate that a rewritten value is available at the end of the specified block wi...
bool HasValueForBlock(MachineBasicBlock *BB) const
HasValueForBlock - Return true if the MachineSSAUpdater already has a value for the specified block.
Wrapper class representing virtual and physical registers.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
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.