summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2011-12-09 06:41:08 +0000
committerEvan Cheng <evan.cheng@apple.com>2011-12-09 06:41:08 +0000
commitfeb9f27de1ae567fce8732d6d1aad999fbfb7f92 (patch)
tree80a705e5141096207b4a92e77f61d1eb3ecddac9 /llvm/lib/CodeGen/TargetInstrInfoImpl.cpp
parent557cda7f1d3fc13e04c7a7c82a1d4b5d410f9847 (diff)
downloadbcm5719-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.cpp13
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;
OpenPOWER on IntegriCloud