diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-03-15 05:09:26 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-03-15 05:09:26 +0000 |
commit | 0f040a258ff6a2372fc232212b5e4189e8e7185d (patch) | |
tree | 0e53a4efd96b8a1ffe81e53b5c9961cdcfe9407e /include | |
parent | b1a6eab655adce4f84a15afa9092e814b9aaabda (diff) | |
download | llvm-0f040a258ff6a2372fc232212b5e4189e8e7185d.tar.gz llvm-0f040a258ff6a2372fc232212b5e4189e8e7185d.tar.bz2 llvm-0f040a258ff6a2372fc232212b5e4189e8e7185d.tar.xz |
- Add "Bitcast" target instruction property for instructions which perform
nothing more than a bitcast.
- Teach tablegen to automatically infer "Bitcast" property.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127667 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/Target.td | 1 | ||||
-rw-r--r-- | include/llvm/Target/TargetInstrDesc.h | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index 0f7e6aaaf2..d01581555f 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -200,6 +200,7 @@ class Instruction { bit isIndirectBranch = 0; // Is this instruction an indirect branch? bit isCompare = 0; // Is this instruction a comparison instruction? bit isMoveImm = 0; // Is this instruction a move immediate instruction? + bit isBitcast = 0; // Is this instruction a bitcast instruction? bit isBarrier = 0; // Can control flow fall through this instruction? bit isCall = 0; // Is this instruction a call instruction? bit canFoldAsLoad = 0; // Can this be folded as a simple memory operand? diff --git a/include/llvm/Target/TargetInstrDesc.h b/include/llvm/Target/TargetInstrDesc.h index 8823d5a4d1..6e20e8a1ba 100644 --- a/include/llvm/Target/TargetInstrDesc.h +++ b/include/llvm/Target/TargetInstrDesc.h @@ -105,6 +105,7 @@ namespace TID { IndirectBranch, Compare, MoveImm, + Bitcast, DelaySlot, FoldableAsLoad, MayLoad, @@ -358,6 +359,12 @@ public: bool isMoveImmediate() const { return Flags & (1 << TID::MoveImm); } + + /// isBitcast - Return true if this instruction is a bitcast instruction. + /// + bool isBitcast() const { + return Flags & (1 << TID::Bitcast); + } /// isNotDuplicable - Return true if this instruction cannot be safely /// duplicated. For example, if the instruction has a unique labels attached |