[LLVMbugs] [Bug 4843] New: TwoAddressInstructionPass crashes with multiple tied destination registers
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Mon Aug 31 16:06:27 PDT 2009
http://llvm.org/bugs/show_bug.cgi?id=4843
Summary: TwoAddressInstructionPass crashes with multiple tied
destination registers
Product: libraries
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P2
Component: Backend: ARM
AssignedTo: unassignedbugs at nondot.org
ReportedBy: bob.wilson at apple.com
CC: asl at math.spbu.ru, llvmbugs at cs.uiuc.edu
The TwoAddressInstructionPass has problems with instructions that define
multiple registers, where each destination register is tied to a different
source register. There are several problems here, but most notably when the
tied source operands are the same register, the TwoAddressInstructionPass may
have to insert multiple copies to get that register copied to the tied
destinations.
The following testcase will demonstrate the problem:
define <4 x i16> @v2regbug(<4 x i16>* %B) nounwind {
%tmp1 = load <4 x i16>* %B
%tmp2 = shufflevector <4 x i16> %tmp1, <4 x i16> undef, <4 x i32><i32
0, i32 0, i32 1, i32 1>
ret <4 x i16> %tmp2
}
Assertion failed: (Removed && "Register is not used by this instruction!"),
function removeVirtualRegisterKilled, file
/Users/bwilson/local/llvm/llvm/include/llvm/CodeGen/LiveVariables.h, line 211.
0 llc 0x00b01fdc PrintStackTrace(void*) + 45
1 llc 0x00b025e4 SignalHandler(int) + 410
2 libSystem.B.dylib 0x98115bfb _sigtramp + 43
3 libSystem.B.dylib 0xffffffff _sigtramp + 1743692847
4 libSystem.B.dylib 0x981a3ba5 raise + 26
5 libSystem.B.dylib 0x981b9c5c abort + 93
6 libSystem.B.dylib 0x981a6804 __pthread_markcancel + 0
7 llc 0x0090452b
llvm::LiveVariables::removeVirtualRegisterKilled(unsigned int,
llvm::MachineInstr*) + 277
8 llc 0x00903b2f (anonymous
namespace)::TwoAddressInstructionPass::runOnMachineFunction(llvm::MachineFunction&)
+ 5591
9 llc 0x00850fe7
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 77
10 llc 0x00a8377b
llvm::FPPassManager::runOnFunction(llvm::Function&) + 297
11 llc 0x00a83cae
llvm::FunctionPassManagerImpl::run(llvm::Function&) + 112
12 llc 0x00a83e7a
llvm::FunctionPassManager::run(llvm::Function&) + 130
13 llc 0x0002f710 main + 3579
14 llc 0x0002e289 start + 53
15 llc 0x00000003 start + 4294778287
--
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