Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

[Thumb2] Incorrect liveness for bundled instructions with CPSR<kill> marker #26654

Closed Quuxplusone closed 7 years ago

Quuxplusone commented 8 years ago
Bugzilla Link PR26655
Status RESOLVED FIXED
Importance P normal
Reported by Mandeep Singh Grang (mgrang@codeaurora.org)
Reported on 2016-02-17 15:00:09 -0800
Last modified on 2016-11-02 14:57:09 -0700
Version trunk
Hardware PC Linux
CC compnerd@compnerd.org, llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also

For Thumb2 instructions which have the CPSR and which are part of an instruction bundle, the CPSR liveness is always false.

But the function UpdateCPSRUse does not recognize this and expects the liveness to be true and hence asserts:

clang-3.8: /prj/llvm-arm/home/nightly/src/qc-38/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp:1381: bool UpdateCPSRUse(llvm::MachineInstr &, bool): Assertion `LiveCPSR && "CPSR liveness tracking is wrong!"' failed.

We need to fix this by skipping the assert for such instructions.

Quuxplusone commented 7 years ago
This is fixed here:
http://reviews.llvm.org/D17356