[llvm-bugs] [Bug 26500] New: PowerPC64: CR spill code causes SEGV
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Feb 5 14:25:49 PST 2016
https://llvm.org/bugs/show_bug.cgi?id=26500
Bug ID: 26500
Summary: PowerPC64: CR spill code causes SEGV
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: PowerPC
Assignee: unassignedbugs at nondot.org
Reporter: anton at samba.org
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
I've seen a few SEGVs when running csmith. In all the cases I have looked at,
we've dereferenced what looks like a condition register value:
One example:
r3 0x42000042
=> 0x0000000010000bdc <+1516>: lhz r3,30996(r3)
What is interesting is that the CR spill gets scheduled quite a way into the
function, after we've used r12 for something else. Later on we reuse r12 (which
has now been contaminated with a CR).
Use r12:
10000734: ff ff 82 3d addis r12,r2,-1
Spill CR using r12 as scratch:
100007fc: 26 00 80 7d mfcr r12
1000080c: 08 00 81 91 stw r12,8(r1)
Use value in r12 later on:
10000914: a8 00 9f f9 std r12,168(r31)
10000bcc: a8 00 7f e8 ld r3,168(r31)
LLVM seems to use r12 unconditionally for CR spill, are we missing some sort of
r12 clobber?
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160205/a70299b7/attachment.html>
More information about the llvm-bugs
mailing list