[LLVMbugs] [Bug 13057] New: Support for terminators which define registers
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Jun 8 08:52:53 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=13057
Bug #: 13057
Summary: Support for terminators which define registers
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Common Code Generator Code
AssignedTo: unassignedbugs at nondot.org
ReportedBy: hfinkel at anl.gov
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 8703
--> http://llvm.org/bugs/attachment.cgi?id=8703
clang -03 output from SingleSource/Regression/C/sumarray2d.c
The infrastructure in CodeGen does not properly support terminators which
define registers. This is necessary to support 'hardware loop' instructions
such as available on PowerPC (and, as far as I can tell, also Hexagon).
I've attached a test case (clang -03 output from
SingleSource/Regression/C/sumarray2d.c in the test suite).
If you run: llc -enable-ppc-ctrloops -enable-ppc-ctrloop-analysis this will
crash with:
/src/llvm-trunk-writable/lib/CodeGen/LiveIntervalAnalysis.cpp:442: void
llvm::LiveIntervals::handlePhysicalRegisterDef(llvm::MachineBasicBlock*,
llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr,
llvm::ilist_iterator<llvm::MachineInstr> >, llvm::SlotIndex,
llvm::MachineOperand&, llvm::LiveInterval&): Assertion
`!isAllocatable(interval.reg) && "Physregs shouldn't be live out!"' failed.
There are also miscompiles on other applications, but the problems may all be
due to the same underlying issue (so I think it is best to fix this problem
first because it has a simple test case).
--
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