summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2017-03-02 18:10:59 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2017-03-02 18:10:59 +0000
commit056c945a5df7c28ecc1963813a2373b343dd2258 (patch)
tree58c606cfbd725d532f7fb7b3b7233a7c83ac37c5 /llvm/lib
parent5db6a947a2b00dce702543d066cfde2c5b823cfa (diff)
downloadbcm5719-llvm-056c945a5df7c28ecc1963813a2373b343dd2258.tar.gz
bcm5719-llvm-056c945a5df7c28ecc1963813a2373b343dd2258.zip
[Hexagon] Skip blocks that define vector predicate registers in early-if
llvm-svn: 296777
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp b/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
index d7c726bb36c..c1891674721 100644
--- a/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
@@ -383,8 +383,14 @@ bool HexagonEarlyIfConversion::isValidCandidate(const MachineBasicBlock *B)
unsigned R = MO.getReg();
if (!TargetRegisterInfo::isVirtualRegister(R))
continue;
- if (MRI->getRegClass(R) != &Hexagon::PredRegsRegClass)
- continue;
+ switch (MRI->getRegClass(R)->getID()) {
+ case Hexagon::PredRegsRegClassID:
+ case Hexagon::VecPredRegsRegClassID:
+ case Hexagon::VecPredRegs128BRegClassID:
+ break;
+ default:
+ continue;
+ }
for (auto U = MRI->use_begin(R); U != MRI->use_end(); ++U)
if (U->getParent()->isPHI())
return false;
OpenPOWER on IntegriCloud