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

Weiming Zhao weimingz at codeaurora.org
Fri Jan 10 15:42:24 PST 2014


Ping?

 

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

 

From: Weiming Zhao [mailto:weimingz at codeaurora.org] 
Sent: Friday, January 03, 2014 12:08 PM
To: llvm-commits at cs.uiuc.edu
Subject: [Patch] [ThumbV8] Fix assertion fails due to inconsistent CPSR
liveness of IT blocks

 

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/20140110/bd69c7f6/attachment.html>


More information about the llvm-commits mailing list