Closed Quuxplusone closed 7 years ago
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.
This is fixed here: http://reviews.llvm.org/D17356
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.