summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCInstrInfo.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-04-11 01:23:34 +0000
committerHal Finkel <hfinkel@anl.gov>2013-04-11 01:23:34 +0000
commit4b040294816e49413c739825d801042bc76171a7 (patch)
tree74ef1ae196c1e3a67f3a8f4d2a49ecf815f7e4c3 /lib/Target/PowerPC/PPCInstrInfo.cpp
parentaa3a85e2fadcf33d18b00c1654108e85ef704361 (diff)
downloadllvm-4b040294816e49413c739825d801042bc76171a7.tar.gz
llvm-4b040294816e49413c739825d801042bc76171a7.tar.bz2
llvm-4b040294816e49413c739825d801042bc76171a7.tar.xz
Make PPCInstrInfo::isPredicated always return false
Because of how predication in implemented on PPC (only for branches), I think that this is the right thing to do. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179252 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrInfo.cpp')
-rw-r--r--lib/Target/PowerPC/PPCInstrInfo.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/lib/Target/PowerPC/PPCInstrInfo.cpp b/lib/Target/PowerPC/PPCInstrInfo.cpp
index c9674575d7..ccd1247a38 100644
--- a/lib/Target/PowerPC/PPCInstrInfo.cpp
+++ b/lib/Target/PowerPC/PPCInstrInfo.cpp
@@ -900,22 +900,14 @@ bool PPCInstrInfo::isProfitableToIfCvt(MachineBasicBlock &TMBB,
bool PPCInstrInfo::isPredicated(const MachineInstr *MI) const {
- unsigned OpC = MI->getOpcode();
- switch (OpC) {
- default:
- return false;
- case PPC::BCC:
- case PPC::BCCTR:
- case PPC::BCCTR8:
- case PPC::BCCTRL:
- case PPC::BCCTRL8:
- case PPC::BCLR:
- case PPC::BDZLR:
- case PPC::BDZLR8:
- case PPC::BDNZLR:
- case PPC::BDNZLR8:
- return true;
- }
+ // The predicated branches are identified by their type, not really by the
+ // explicit presence of a predicate. Furthermore, some of them can be
+ // predicated more than once. Because if conversion won't try to predicate
+ // any instruction which already claims to be predicated (by returning true
+ // here), always return false. In doing so, we let isPredicable() be the
+ // final word on whether not the instruction can be (further) predicated.
+
+ return false;
}
bool PPCInstrInfo::isUnpredicatedTerminator(const MachineInstr *MI) const {