mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Add Target hook to duplicate machine instructions.
Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92873 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -232,6 +232,12 @@ public:
|
||||
const MachineInstr *Orig,
|
||||
const TargetRegisterInfo *TRI) const = 0;
|
||||
|
||||
/// duplicate - Create a duplicate of the Orig instruction in MF. This is like
|
||||
/// MachineFunction::CloneMachineInstr(), but the target may update operands
|
||||
/// that are required to be unique.
|
||||
virtual MachineInstr *duplicate(MachineInstr *Orig,
|
||||
MachineFunction &MF) const = 0;
|
||||
|
||||
/// convertToThreeAddress - This method must be implemented by targets that
|
||||
/// set the M_CONVERTIBLE_TO_3_ADDR flag. When this flag is set, the target
|
||||
/// may be able to convert a two-address instruction into one or more true
|
||||
@@ -560,6 +566,8 @@ public:
|
||||
unsigned DestReg, unsigned SubReg,
|
||||
const MachineInstr *Orig,
|
||||
const TargetRegisterInfo *TRI) const;
|
||||
virtual MachineInstr *duplicate(MachineInstr *Orig,
|
||||
MachineFunction &MF) const;
|
||||
virtual bool isIdentical(const MachineInstr *MI,
|
||||
const MachineInstr *Other,
|
||||
const MachineRegisterInfo *MRI) const;
|
||||
|
Reference in New Issue
Block a user