diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-08-11 21:14:25 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-08-11 21:14:25 +0000 |
commit | 1b689da04e3f8f2c83b1365853a8af39a27b30ea (patch) | |
tree | 0d052f52d100c26eb2b541f943a6f89589b43b27 /llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp | |
parent | 3124181eefd3a5916221baf6a474db1957b70be5 (diff) | |
download | bcm5719-llvm-1b689da04e3f8f2c83b1365853a8af39a27b30ea.tar.gz bcm5719-llvm-1b689da04e3f8f2c83b1365853a8af39a27b30ea.zip |
[Hexagon] Allow non-returning calls in hardware loops
llvm-svn: 278416
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp b/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp index 02e08bafb5d..e4d7da1f385 100644 --- a/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp +++ b/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp @@ -962,8 +962,8 @@ bool HexagonHardwareLoops::isInvalidLoopOperation(const MachineInstr *MI, // Call is not allowed because the callee may use a hardware loop except for // the case when the call never returns. - if (MI->getDesc().isCall() && MI->getOpcode() != Hexagon::CALLv3nr) - return true; + if (MI->getDesc().isCall()) + return !TII->doesNotReturn(*MI); // Check if the instruction defines a hardware loop register. for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { |