1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

NOP instructions are pseudo-instructions. We should not have them explicitly in

our representation, since they are usually special cases of already-existing
instructions.

This abstracts away methods that let a pass create and verify a NOP instruction,
without relying on a `NOP' enum to be in existence in the target's instruction
info descriptor.

llvm-svn: 6319
This commit is contained in:
Misha Brukman 2003-05-24 00:08:39 +00:00
parent eda6c90c58
commit 151f7484ab

View File

@ -273,6 +273,20 @@ public:
return true; // safe but very conservative
}
/// createNOPinstr - returns the target's implementation of NOP, which is
/// usually a pseudo-instruction, implemented by a degenerate version of
/// another instruction, e.g. X86: xchg ax, ax; SparcV9: sethi g0, 0
///
virtual MachineInstr* createNOPinstr() const = 0;
/// isNOPinstr - since we no longer have a special NOP opcode, we need to know
/// if a given instruction is interpreted as an `official' NOP instr, i.e.,
/// there may be more than one way to `do nothing' but only one canonical
/// way to slack off.
///
virtual bool isNOPinstr(const MachineInstr &MI) const = 0;
//-------------------------------------------------------------------------
// Code generation support for creating individual machine instructions
//