[LLVMbugs] [Bug 8471] New: clang segfaults while optimizing a snippet of C code

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Oct 26 16:23:24 PDT 2010


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

           Summary: clang segfaults while optimizing a snippet of C code
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: pipping at exherbo.org
                CC: llvmbugs at cs.uiuc.edu
        Depends on: 8336


I've tried to compile R with clang 2.9-trunk.

While compiling src/nmath/toms708.c, clang segfaults. This happens with -O2 but
not with -O1 or with gcc 4.4.5.

I'm on amd64 linux 2.6.36.

I hope I followed the bugpoint instructions correctly, leading me to this:

$ bugpoint foo.bc  -preverify -domtree -verify -lowersetjmp -globalopt -ipsccp
-deadargelim -instcombine -simplifycfg -basiccg -prune-eh -inline
-functionattrs -argpromotion -domtree -domfrontier -scalarrepl
-simplify-libcalls -instcombine -lazy-value-info -jump-threading
-correlated-propagation -simplifycfg -instcombine -tailcallelim -simplifycfg
-reassociate -domtree -loops -loopsimplify -lcssa -loop-rotate -licm -lcssa
-loop-unswitch -instcombine -scalar-evolution -loopsimplify -lcssa -iv-users
-indvars -loop-deletion -loop-unroll -instcombine -memdep -gvn -memdep
-memcpyopt -sccp -instcombine -lazy-value-info -jump-threading
-correlated-propagation -domtree -memdep -dse -adce -simplifycfg
-strip-dead-prototypes -print-used-types -deadtypeelim -globaldce -constmerge
-preverify -domtree -verify

[..]


*** Attempting to perform final cleanups: Success!
Emitted bitcode to 'bugpoint-reduced-simplified.bc'

*** You can reproduce the problem with: opt bugpoint-reduced-simplified.bc
-inline -scalarrepl -loop-rotate -indvars -loop-unroll -simplifycfg -verify


$ opt -std-compile-opts -debug-pass=Arguments foo.bc -disable-output
Pass Arguments:  -preverify -domtree -verify -lowersetjmp -globalopt -ipsccp
-deadargelim -instcombine -simplifycfg -basiccg -prune-eh -inline
-functionattrs -argpromotion -domtree -domfrontier -scalarrepl
-simplify-libcalls -instcombine -lazy-value-info -jump-threading
-correlated-propagation -simplifycfg -instcombine -tailcallelim -simplifycfg
-reassociate -domtree -loops -loopsimplify -lcssa -loop-rotate -licm -lcssa
-loop-unswitch -instcombine -scalar-evolution -loopsimplify -lcssa -iv-users
-indvars -loop-deletion -loop-unroll -instcombine -memdep -gvn -memdep
-memcpyopt -sccp -instcombine -lazy-value-info -jump-threading
-correlated-propagation -domtree -memdep -dse -adce -simplifycfg
-strip-dead-prototypes -print-used-types -deadtypeelim -globaldce -constmerge
-preverify -domtree -verify
0  libLLVM-2.9svn.so 0x00007f3fc2b6db2f
1  libLLVM-2.9svn.so 0x00007f3fc2b6e119
2  libpthread.so.0   0x00007f3fc20e2ca0
3  libc.so.6         0x00007f3fc1455638
4  libc.so.6         0x00007f3fc1453982 memmove + 386
5  libLLVM-2.9svn.so 0x00007f3fc27fafbf llvm::LoopBase<llvm::BasicBlock,
llvm::Loop>::getExitingBlocks(llvm::SmallVectorImpl<llvm::BasicBlock*>&) const
+ 143
6  libLLVM-2.9svn.so 0x00007f3fc284fdfa
llvm::ScalarEvolution::ComputeBackedgeTakenCount(llvm::Loop const*) + 74
7  libLLVM-2.9svn.so 0x00007f3fc284f8df
llvm::ScalarEvolution::getBackedgeTakenInfo(llvm::Loop const*) + 95
8  libLLVM-2.9svn.so 0x00007f3fc2841c06
llvm::ScalarEvolution::getUnsignedRange(llvm::SCEV const*) + 3334
9  libLLVM-2.9svn.so 0x00007f3fc2841ca9
llvm::ScalarEvolution::getUnsignedRange(llvm::SCEV const*) + 3497
10 libLLVM-2.9svn.so 0x00007f3fc2858861
llvm::ScalarEvolution::isKnownPredicateWithRanges(llvm::CmpInst::Predicate,
llvm::SCEV const*, llvm::SCEV const*) + 2209
11 libLLVM-2.9svn.so 0x00007f3fc284a0ea
llvm::ScalarEvolution::isKnownPredicate(llvm::CmpInst::Predicate, llvm::SCEV
const*, llvm::SCEV const*) + 330

12 libLLVM-2.9svn.so 0x00007f3fc2f6578a
13 libLLVM-2.9svn.so 0x00007f3fc280500f
llvm::LPPassManager::runOnFunction(llvm::Function&) + 863
14 libLLVM-2.9svn.so 0x00007f3fc2c2228b
llvm::FPPassManager::runOnFunction(llvm::Function&) + 331
15 libLLVM-2.9svn.so 0x00007f3fc2ca0fe1
16 libLLVM-2.9svn.so 0x00007f3fc2c226b8
llvm::MPPassManager::runOnModule(llvm::Module&) + 280
17 libLLVM-2.9svn.so 0x00007f3fc2c22c52
llvm::PassManagerImpl::run(llvm::Module&) + 210
18 libLLVM-2.9svn.so 0x00007f3fc2c231ad llvm::PassManager::run(llvm::Module&) +
13
19 opt               0x000000000040fb17 main + 4983
20 libc.so.6         0x00007f3fc13f3b6d __libc_start_main + 253
21 opt               0x000000000040a069
Stack dump:
0.      Program arguments: opt -std-compile-opts -debug-pass=Arguments foo.bc
-disable-output 
1.      Running pass 'CallGraph Pass Manager' on module 'foo.bc'.
2.      Running pass 'Loop Pass Manager' on function '@bratio'
3.      Running pass 'Canonicalize Induction Variables' on basic block
'%for.cond.i'
Segmentation fault
$

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