[LLVMbugs] [Bug 9135] New: abort: Unsupported regclass to store
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Feb 3 12:26:13 PST 2011
http://llvm.org/bugs/show_bug.cgi?id=9135
Summary: abort: Unsupported regclass to store
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Backend: SystemZ
AssignedTo: unassignedbugs at nondot.org
ReportedBy: bagel99 at gmail.com
CC: llvmbugs at cs.uiuc.edu
This was produced by a very large program and failed in a large function with
nested switch statements. The test case is very large, so in the spirt of
Fermat, I have omitted it. It is curious that the *.ll only aborts if it is
first optimized by "opt -std-compile-opts".
When I gdb llc, I can see that SystemZInstrInfo::storeRegToStackSlot is being
called with a TargetRegisterClass of CCR (i.e. the PSW).
Here is the abort backtrace:
Unsupported regclass to store
UNREACHABLE executed at SystemZInstrInfo.cpp:63!
0 llc 0x0000000000ea643f
1 llc 0x0000000000ea6f7a
2 libpthread.so.0 0x0000003f4420f3c0
3 libc.so.6 0x0000003f43a34085 gsignal + 53
4 libc.so.6 0x0000003f43a35a36 abort + 390
5 llc 0x0000000000e90d24 llvm::llvm_unreachable_internal(char
const*, char const*, unsigned int) + 356
6 llc 0x00000000005f9a05
7 llc 0x0000000000b9b48c
llvm::TargetInstrInfo::foldMemoryOperand(llvm::ilist_iterator<llvm::MachineInstr>,
llvm::SmallVectorImpl<unsigned int> const&, int) const + 1068
8 llc 0x0000000000bf8006
llvm::LiveIntervals::tryFoldMemoryOperand(llvm::MachineInstr*&,
llvm::VirtRegMap&, llvm::MachineInstr*, llvm::SlotIndex,
llvm::SmallVector<unsigned int, 2u>&, bool, int, unsigned int) + 438
9 llc 0x0000000000bf840a
llvm::LiveIntervals::rewriteInstructionForSpills(llvm::LiveInterval const&,
llvm::VNInfo const*, bool, llvm::SlotIndex, llvm::SlotIndex,
llvm::MachineInstr*, llvm::MachineInstr*, llvm::MachineInstr*, unsigned int,
int, bool, bool, bool, bool, llvm::VirtRegMap&, llvm::TargetRegisterClass
const*, llvm::SmallVector<int, 4u>&, llvm::MachineLoopInfo const*, unsigned
int&, unsigned int, bool&, bool&, llvm::DenseMap<unsigned int, unsigned int,
llvm::DenseMapInfo<unsigned int>, llvm::DenseMapInfo<unsigned int> >&,
std::vector<llvm::LiveInterval*, std::allocator<llvm::LiveInterval*> >&) + 746
10 llc 0x0000000000bf9ffc
llvm::LiveIntervals::rewriteInstructionsForSpills(llvm::LiveInterval const&,
bool, llvm::LiveRange const*&, llvm::MachineInstr*, llvm::MachineInstr*,
unsigned int, int, bool, bool, bool, bool, llvm::VirtRegMap&,
llvm::TargetRegisterClass const*, llvm::SmallVector<int, 4u>&,
llvm::MachineLoopInfo const*, llvm::BitVector&, llvm::DenseMap<unsigned int,
std::vector<llvm::LiveIntervals::SRInfo,
std::allocator<llvm::LiveIntervals::SRInfo> >, llvm::DenseMapInfo<unsigned
int>, llvm::DenseMapInfo<std::vector<llvm::LiveIntervals::SRInfo,
std::allocator<llvm::LiveIntervals::SRInfo> > > >&, llvm::BitVector&,
llvm::DenseMap<unsigned int, std::vector<llvm::LiveIntervals::SRInfo,
std::allocator<llvm::LiveIntervals::SRInfo> >, llvm::DenseMapInfo<unsigned
int>, llvm::DenseMapInfo<std::vector<llvm::LiveIntervals::SRInfo,
std::allocator<llvm::LiveIntervals::SRInfo> > > >&, llvm::DenseMap<unsigned
int, unsigned int, llvm::DenseMapInfo<unsigned int>,
llvm::DenseMapInfo<unsigned int> >&, std::vector<llvm::LiveInterval*,
std::allocator<llvm::LiveInterval*> >&) + 3020
11 llc 0x0000000000bfbfa6
llvm::LiveIntervals::addIntervalsForSpills(llvm::LiveInterval const&,
llvm::SmallVectorImpl<llvm::LiveInterval*> const&, llvm::MachineLoopInfo
const*, llvm::VirtRegMap&) + 3078
12 llc 0x0000000000b6a14f
13 llc 0x0000000000b155d4
14 llc 0x0000000000b18dff
15 llc 0x0000000000b1a05d
16 llc 0x0000000000ddfc97
llvm::FPPassManager::runOnFunction(llvm::Function&) + 599
17 llc 0x0000000000ddfd5b
llvm::FPPassManager::runOnModule(llvm::Module&) + 75
18 llc 0x0000000000ddf827
llvm::MPPassManager::runOnModule(llvm::Module&) + 551
19 llc 0x0000000000ddf977 llvm::PassManagerImpl::run(llvm::Module&)
+ 167
20 llc 0x000000000053ea3d main + 4701
21 libc.so.6 0x0000003f43a1ee7d __libc_start_main + 253
22 llc 0x000000000053c9a9
Stack dump:
0. Program arguments: /home/bgl/work/llvm/Release+Asserts/bin/llc
-march=systemz main-s390x.bc
1. Running pass 'Function Pass Manager' on module 'main-s390x.bc'.
2. Running pass 'Linear Scan Register Allocator' on function '@lex_Next'
Aborted
I also have the output of "llc -march=systemz -debug" if that would be helpful.
--
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