diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2011-12-09 06:41:08 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2011-12-09 06:41:08 +0000 |
| commit | feb9f27de1ae567fce8732d6d1aad999fbfb7f92 (patch) | |
| tree | 80a705e5141096207b4a92e77f61d1eb3ecddac9 /llvm/lib/CodeGen/TargetInstrInfoImpl.cpp | |
| parent | 557cda7f1d3fc13e04c7a7c82a1d4b5d410f9847 (diff) | |
| download | bcm5719-llvm-feb9f27de1ae567fce8732d6d1aad999fbfb7f92.tar.gz bcm5719-llvm-feb9f27de1ae567fce8732d6d1aad999fbfb7f92.zip | |
Move isUnpredicatedTerminator() default implementation to TargetInstrInfoImpl to break Target's dependency on CodeGen.
llvm-svn: 146247
Diffstat (limited to 'llvm/lib/CodeGen/TargetInstrInfoImpl.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/TargetInstrInfoImpl.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp b/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp index 5115d5bd07a..ccbda9870e7 100644 --- a/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp +++ b/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp @@ -139,6 +139,19 @@ bool TargetInstrInfoImpl::findCommutedOpIndices(MachineInstr *MI, } +bool +TargetInstrInfoImpl::isUnpredicatedTerminator(const MachineInstr *MI) const { + if (!MI->isTerminator()) return false; + + // Conditional branch is a special case. + if (MI->isBranch() && !MI->isBarrier()) + return true; + if (!MI->isPredicable()) + return true; + return !isPredicated(MI); +} + + bool TargetInstrInfoImpl::PredicateInstruction(MachineInstr *MI, const SmallVectorImpl<MachineOperand> &Pred) const { bool MadeChange = false; |

