diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-08-11 22:17:52 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-11 22:17:52 +0000 |
commit | 7417b761c2d88335bd77d38911ff8d323fc4a4f2 (patch) | |
tree | d64cf357fa8379447be1c46ed69fc7f509ae2316 /include | |
parent | b6ba9c36dbc54c85b86b29d9491c457b4de8b60c (diff) | |
download | external_llvm-7417b761c2d88335bd77d38911ff8d323fc4a4f2.zip external_llvm-7417b761c2d88335bd77d38911ff8d323fc4a4f2.tar.gz external_llvm-7417b761c2d88335bd77d38911ff8d323fc4a4f2.tar.bz2 |
Add 'isCodeGenOnly' bit to Instruction .td records.
- Used to mark fake instructions which don't correspond to an actual machine
instruction (or are duplicates of a real instruction). This is to be used for
"special cases" in the .td files, which should be ignored by things like the
assembler and disassembler. We still need a good solution to handle pervasive
duplication, like with the Int_ instructions.
- Set the bit on fake "mov 0" style instructions, which allows turning an
assembler matcher warning into a hard error.
- -2 FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78731 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/Target.td | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index d4a1850..5a8707b 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -221,6 +221,11 @@ class Instruction { bit mayHaveSideEffects = 0; bit neverHasSideEffects = 0; + // Is this instruction a "real" instruction (with a distinct machine + // encoding), or is it a pseudo instruction used for codegen modeling + // purposes. + bit isCodeGenOnly = 0; + InstrItinClass Itinerary = NoItinerary;// Execution steps used for scheduling. string Constraints = ""; // OperandConstraint, e.g. $src = $dst. @@ -386,7 +391,8 @@ class InstrInfo { bit isLittleEndianEncoding = 0; } -// Standard Instructions. +// Standard Pseudo Instructions. +let isCodeGenOnly = 1 in { def PHI : Instruction { let OutOperandList = (ops); let InOperandList = (ops variable_ops); @@ -466,6 +472,7 @@ def COPY_TO_REGCLASS : Instruction { let neverHasSideEffects = 1; let isAsCheapAsAMove = 1; } +} //===----------------------------------------------------------------------===// // AsmParser - This class can be implemented by targets that wish to implement |