[LLVMbugs] [Bug 4419] New: Register Scavenger assertion
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Fri Jun 19 15:52:05 PDT 2009
http://llvm.org/bugs/show_bug.cgi?id=4419
Summary: Register Scavenger assertion
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Register Allocator
AssignedTo: unassignedbugs at nondot.org
ReportedBy: asl at math.spbu.ru
CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=3108)
--> (http://llvm.org/bugs/attachment.cgi?id=3108)
Reduced testcases
Consider the bytecode attached.
./llc bugpoint-reduced-simplified.bc -mattr=+vfp2 -mtriple=arm-linux-eabi -f
-float-abi=hard
yields:
llc: /home/asl/proj/llvm/src_arm/lib/CodeGen/RegisterScavenging.cpp:279: void
llvm::RegScavenger::forward(): Assertion `(isReserved(Reg) || isUnused(Reg) ||
IsImpDef || isImplicitlyDefined(Reg) || isLiveInButUnusedBefore(Reg, MI, MBB,
TRI, MRI)) && "Re-defining a live register!"' failed.
That's due to the following code:
BL <ga:__ieee754_sqrtf>, %S0<kill>, %R0<imp-def,dead>,
%R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>,
%LR<imp-def,dead>, %D0<imp-def>, %D1<imp-def,dead>, %D2<imp-def,dead>,
%D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>,
%D7<imp-def,dead>, %CPSR<imp-def,dead>
ADJCALLSTACKUP 0, 0, 14, %reg0, %SP<imp-def>, %SP<imp-use>
%S1<def> = FLDS <cp#0>, 0, 14, %reg0, Mem:LD(4,4) [ConstantPool + 0]
S1 is imp-def on call due to imp-def on D0. It's redef'ed later on FLDS. This
sounds like livevars bug which triggers regscavenger assertion later.
I'm attaching both orioginal and reduced testcases.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list