[LLVMbugs] [Bug 2112] New: LoopAligner pass fallout on Sparc/Solaris
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Fri Feb 29 03:59:14 PST 2008
http://llvm.org/bugs/show_bug.cgi?id=2112
Summary: LoopAligner pass fallout on Sparc/Solaris
Product: new-bugs
Version: unspecified
Platform: Sun
OS/Version: Solaris
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: ggreif at gmail.com
CC: llvmbugs at cs.uiuc.edu
I get this crash on SPARCv8:
(gdb) run ggg.bc -f
Starting program: .../llvm/Debug/bin/llc ggg.bc -f
warning: Temporarily disabling breakpoints for unloaded shared library
"/usr/lib/ld.so.1"
warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074
Program received signal SIGSEGV, Segmentation fault.
0x0095fd68 in llvm::TargetLowering::getPrefLoopAlignment (this=0x0)
at .../llvm/include/llvm/Target/TargetLowering.h:566
566 return PrefLoopAlignment;
(gdb) bt
#0 0x0095fd68 in llvm::TargetLowering::getPrefLoopAlignment (this=0x0)
at .../llvm/include/llvm/Target/TargetLowering.h:566
#1 0x0095f67c in (anonymous namespace)::LoopAligner::runOnMachineFunction
(this=0xd387f0, MF=@0xd42e90)
at LoopAligner.cpp:54
#2 0x00481e28 in llvm::MachineFunctionPass::runOnFunction (this=0xd387f0,
F=@0xd3b150)
at .../llvm/include/llvm/CodeGen/MachineFunctionPass.h:41
#3 0x00ba4a70 in llvm::FPPassManager::runOnFunction (this=0xd3a8c8,
F=@0xd3b150) at PassManager.cpp:1170
#4 0x00ba4704 in llvm::FunctionPassManagerImpl::run (this=0xd3a5e0,
F=@0xd3b150) at PassManager.cpp:1128
#5 0x00ba4590 in llvm::FunctionPassManager::run (this=0xffbff400, F=@0xd3b150)
at PassManager.cpp:1073
#6 0x00413e9c in main (argc=3, argv=0xffbff4bc) at llc.cpp:296
(gdb) up
#1 0x0095f67c in (anonymous namespace)::LoopAligner::runOnMachineFunction
(this=0xd387f0, MF=@0xd42e90)
at LoopAligner.cpp:54
54 unsigned Align =
MF.getTarget().getTargetLowering()->getPrefLoopAlignment();
It appears that on Sparc no TargetLowering object is allocated and LoopAligner
does not guard against this condition.
Three solution attempts come to my mind:
1) Install a TargetLowering for Sparc too.
2) Guard against TargetLowering == NULL in LoopAligner
3) Do not register with LoopAligner when there is no TargetLowering installed.
1) looks best to me, but other people may prefer 3). 2) probably makes little
sense.
Ah, the test in question is CodeGen/Generic/GC/alloc_loop.ll
but many others fail too.
--
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