[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