[LLVMbugs] [Bug 10186] New: Infinite loop in llc on ARMv7 (LLVM HEAD from June 17)

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jun 24 12:04:39 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=10186

           Summary: Infinite loop in llc on ARMv7 (LLVM HEAD from June 17)
           Product: tools
           Version: trunk
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: llc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: karel.gardas at centrum.cz
                CC: llvmbugs at cs.uiuc.edu


Hello,

it looks like I do have infinite loop in llc on linux/armv7 platform somewhere
in llvm::SmallVectorImpl. Two backtraces obtained with 10 seconds delay are:

0x0099be14 in llvm::SmallVectorTemplateCommon<llvm::SDNode*>::setEnd
(this=0x7ee90b38, P=0x5c06988)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:103
103      void setEnd(T *P) { this->EndX = P; }
(gdb) where
#0  0x0099be14 in llvm::SmallVectorTemplateCommon<llvm::SDNode*>::setEnd
(this=0x7ee90b38,
    P=0x5c06988) at
/export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:103
#1  0x00a4849c in llvm::SmallVectorImpl<llvm::SDNode*>::pop_back
(this=0x7ee90b38)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:334
#2  0x00a483b8 in llvm::SmallVectorImpl<llvm::SDNode*>::pop_back_val
(this=0x7ee90b38)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:340
#3  0x00a6f074 in llvm::SDNode::isPredecessorOf (this=0x641bb08, N=0x6212a40)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5703
#4  0x00a057c8 in CombineToPreIndexedLoadStore (this=0x7ee90f84, N=0x6238040)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:5707
#5  0x00a07544 in visitLOAD (this=0x7ee90f84, N=0x6238040)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:6011
#6  0x009e307c in visit (this=0x7ee90f84, N=0x6238040)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1099
#7  0x009e3148 in combine (this=0x7ee90f84, N=0x6238040)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1112
#8  0x009e24cc in Run (this=0x7ee90f84, AtLevel=llvm::NoIllegalOperations)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:978
#9  0x00a111ac in llvm::SelectionDAG::Combine (this=0x1bea328,
Level=llvm::NoIllegalOperations,
    AA=..., OptLevel=llvm::CodeGenOpt::Less)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:7732
#10 0x00acd9c0 in llvm::SelectionDAGISel::CodeGenAndEmitDAG (this=0x1be9f40)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:559
#11 0x00acc9a0 in llvm::SelectionDAGISel::SelectBasicBlock (this=0x1be9f40,
Begin=..., End=...,
    HadTailCall=@0x7ee91158)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:414
#12 0x00acf420 in llvm::SelectionDAGISel::SelectAllBasicBlocks (this=0x1be9f40,
Fn=...)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:972
#13 0x00acbee4 in llvm::SelectionDAGISel::runOnMachineFunction (this=0x1be9f40,
mf=...)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:282
#14 0x00c40d7c in llvm::MachineFunctionPass::runOnFunction (this=0x1be9f40,
F=...)
    at /export/home/karel/vcs/llvm-head/lib/CodeGen/MachineFunctionPass.cpp:33
#15 0x010b6a48 in llvm::FPPassManager::runOnFunction (this=0x1be53d8, F=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1513
#16 0x010b6c80 in llvm::FPPassManager::runOnModule (this=0x1be53d8, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1535
#17 0x010b7030 in llvm::MPPassManager::runOnModule (this=0x16d07e8, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1589
#18 0x010b75f8 in llvm::PassManagerImpl::run (this=0x16d0638, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1671
#19 0x010b7c64 in llvm::PassManager::run (this=0x7ee91470, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1715
#20 0x005517a4 in main (argc=6, argv=0x7ee91644)
    at /export/home/karel/vcs/llvm-head/tools/llc/llc.cpp:338


and

llvm::SmallVectorImpl<llvm::SDNode*>::pop_back (this=0x7ee90b38)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:334
334        this->setEnd(this->end()-1);
(gdb) where
#0  llvm::SmallVectorImpl<llvm::SDNode*>::pop_back (this=0x7ee90b38)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:334
#1  0x00a483b8 in llvm::SmallVectorImpl<llvm::SDNode*>::pop_back_val
(this=0x7ee90b38)
    at /export/home/karel/vcs/llvm-head/include/llvm/ADT/SmallVector.h:340
#2  0x00a6f074 in llvm::SDNode::isPredecessorOf (this=0x643a8a8, N=0x6348d68)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5703
#3  0x00a057c8 in CombineToPreIndexedLoadStore (this=0x7ee90f84, N=0x6237d98)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:5707
#4  0x00a07544 in visitLOAD (this=0x7ee90f84, N=0x6237d98)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:6011
#5  0x009e307c in visit (this=0x7ee90f84, N=0x6237d98)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1099
#6  0x009e3148 in combine (this=0x7ee90f84, N=0x6237d98)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1112
#7  0x009e24cc in Run (this=0x7ee90f84, AtLevel=llvm::NoIllegalOperations)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:978
#8  0x00a111ac in llvm::SelectionDAG::Combine (this=0x1bea328,
Level=llvm::NoIllegalOperations,
    AA=..., OptLevel=llvm::CodeGenOpt::Less)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:7732
#9  0x00acd9c0 in llvm::SelectionDAGISel::CodeGenAndEmitDAG (this=0x1be9f40)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:559
#10 0x00acc9a0 in llvm::SelectionDAGISel::SelectBasicBlock (this=0x1be9f40,
Begin=..., End=...,
    HadTailCall=@0x7ee91158)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:414
#11 0x00acf420 in llvm::SelectionDAGISel::SelectAllBasicBlocks (this=0x1be9f40,
Fn=...)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:972
#12 0x00acbee4 in llvm::SelectionDAGISel::runOnMachineFunction (this=0x1be9f40,
mf=...)
    at
/export/home/karel/vcs/llvm-head/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:282
#13 0x00c40d7c in llvm::MachineFunctionPass::runOnFunction (this=0x1be9f40,
F=...)
    at /export/home/karel/vcs/llvm-head/lib/CodeGen/MachineFunctionPass.cpp:33
#14 0x010b6a48 in llvm::FPPassManager::runOnFunction (this=0x1be53d8, F=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1513
#15 0x010b6c80 in llvm::FPPassManager::runOnModule (this=0x1be53d8, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1535
#16 0x010b7030 in llvm::MPPassManager::runOnModule (this=0x16d07e8, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1589
#17 0x010b75f8 in llvm::PassManagerImpl::run (this=0x16d0638, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1671
#18 0x010b7c64 in llvm::PassManager::run (this=0x7ee91470, M=...)
    at /export/home/karel/vcs/llvm-head/lib/VMCore/PassManager.cpp:1715
#19 0x005517a4 in main (argc=6, argv=0x7ee91644)
    at /export/home/karel/vcs/llvm-head/tools/llc/llc.cpp:338


LLC is invoked with flags:

llc -O1 -relocation-model=static ghc1436_0.bc -o ghc1436_0.lm_s

The LLC is from LLVM head as of June 17, the HEAD is:

commit ed6fa188c4cf2d382991dd054f7c5157420908c3
Author: Galina Kistanova <gkistanova at gmail.com>
Date:   Fri Jun 17 18:26:23 2011 +0000

    est 2008-06-04-indirectmem.ll is X86-specific. Move to X86 folder.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133275
91177308-0d34-0410-b5e6-96231b3b80


Whole LLVM was build as debug build with assertions enabled, original .ll file
was produced by GHC HEAD LLVM backend while compiling Haskell file from GHC
source tree. The ghc1436_0.bc is attached. If you like original ghc1436_0.ll
just ask, I also do have it for you, but it's long: 26MB uncompressed.
Also LLVM was build with gcc:
$ gcc --version
gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1

Thanks!

-- 
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