[Patch] [ThumbV8] Fix assertion fails due to inconsistent CPSR liveness of IT blocks

Weiming Zhao weimingz at codeaurora.org
Fri Jan 3 12:08:09 PST 2014


Hi,

 

Attached patch fixes assertion fails due to inconsistent CPSR liveness of IT
blocks.

See bug http://llvm.org/bugs/show_bug.cgi?id=18369

 

The issue is caused when Post-RA scheduler reorders a bundle instruction (IT
block) and a vseleq. However, it only flips the CPSR liveness of the bundle
instruction, leaves the instructions inside the bundle unchanged, which
causes inconstancy.

 

This inconsistency causes Thumb2SizeReduction.cpp::ReduceMBB() crash because
CPSR is expected to be LIVE for VSELEQD.
 
There is a FIXME in Thumb2SizeReduction.cpp that tries to fixup such
inconsistency, but it seems incomplete. This patch augments the fixup.
Please help to review it.
 
Thanks,
Weiming

 

 

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140103/5f445ab7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Handle-inconsistent-CPSR-liveness-of-IT-blocks.patch
Type: application/octet-stream
Size: 3016 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140103/5f445ab7/attachment.obj>


More information about the llvm-commits mailing list