[LLVMbugs] [Bug 578] NEW: Infinite Loop Destructing LiveIntervalAnalysis
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Sat Jun 11 13:31:21 PDT 2005
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=578
Summary: Infinite Loop Destructing LiveIntervalAnalysis
Product: tools
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: llc
AssignedTo: unassignedbugs at nondot.org
ReportedBy: rspencer at x10sys.com
CC: sabre at nondot.org
If you run "make check" from the CVS head, you run into an infinite loop in the
llc program while executing Regression/CFrontend/2004-02-13-IllegalVararg.c
GDB reports this is happening in LiveIntervals::releaseMemory
at llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:78 which looks like:
void LiveIntervals::releaseMemory()
{
mi2iMap_.clear();
i2miMap_.clear();
r2iMap_.clear();
r2rMap_.clear();
}
while clearing the r2iMap_ member variable. Here's a partial stack trace (the
infinite loop occurs 14 levels down in the bowels of libstdc++):
#15 0x08791efc in llvm::LiveIntervals::releaseMemory (this=0x8ba11b0)
at /proj/llvm/build/../llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:78
#16 0x08918f20 in llvm::PassManagerT<llvm::Function>::runOnUnit (
this=0x8ba0e78, M=0x8b9fdf8) at PassManagerT.h:307
#17 0x08905d21 in llvm::PassManagerTraits<llvm::Function>::runOnFunction (
this=0x8ba0e78, F=@0x8b9fdf8) at PassManagerT.h:810
#18 0x088bdd2c in llvm::FunctionPass::runOnModule (this=0x8ba0e78,
M=@0x8ba0fb0) at /proj/llvm/build/../llvm/lib/VMCore/Pass.cpp:252
#19 0x08905ca1 in llvm::PassManagerTraits<llvm::Module>::runPass (P=0x8ba0e78,
M=0x8ba0fb0) at PassManagerT.h:746
#20 0x08916686 in llvm::PassManagerT<llvm::Module>::runOnUnit (this=0x8ba0e08,
M=0x8ba0fb0) at PassManagerT.h:256
#21 0x08905cd9 in llvm::PassManagerTraits<llvm::Module>::runOnModule (
this=0x8ba0e08, M=@0x8ba0fb0) at PassManagerT.h:755
#22 0x088bd117 in llvm::PassManager::run (this=0xbffff334, M=@0x8ba0fb0)
at /proj/llvm/build/../llvm/lib/VMCore/Pass.cpp:88
#23 0x085180ae in main (argc=1, argv=0xbffff634)
at /proj/llvm/build/../llvm/tools/llc/llc.cpp:166
Not sure what's causing this or even how its possible to get an infinite
destruction loop. The loop occurs while destructing a vector:
(gdb) up
#1 0x08604941 in ~vector (this=0x8ba3c98) at stl_vector.h:273
273 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
(gdb) down
#0 std::_Destroy<llvm::Value const**, std::allocator<llvm::Value const*> > (
__first=0xd84d9ee8, __last=0x19, __alloc=@0xbfffed47)
at stl_construct.h:173
173 for (; __first != __last; ++__first)
Note the value of __last.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list