[LLVMbugs] [Bug 532] NEW: loop unroll/simplify crashes

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Mar 1 19:42:00 PST 2005


http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=532

           Summary: loop unroll/simplify crashes
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Scalar Optimizations
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jeffc at jolt-lang.org


Bugpoint claims it's caused by the combination of loop unroll and simplify, and
the actual crash is in loop simplify.  Reduced bytecode attached.  The crash is at:

    opt.exe!llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction>
>::empty()  Line 331 + 0x29    C++
    opt.exe!llvm::BasicBlock::getTerminator()  Line 118 + 0xb    C++
    opt.exe!llvm::succ_begin(llvm::BasicBlock * BB=0x00000000)  Line 138 + 0x8 
  C++
    opt.exe!llvm::Loop::getLoopPreheader()  Line 372 + 0xf    C++
    opt.exe!`anonymous namespace'::LoopSimplify::ProcessLoop(llvm::Loop *
L=0x00f160d8)  Line 144 + 0x8    C++
    opt.exe!`anonymous namespace'::LoopSimplify::runOnFunction(llvm::Function &
F={...})  Line 101 + 0x17    C++
    opt.exe!llvm::PassManagerTraits<llvm::Function>::runPass(llvm::FunctionPass
* P=0x00f12ea0, llvm::Function * F=0x0032c048)  Line 706 + 0x11    C++
    opt.exe!llvm::PassManagerT<llvm::Function>::runOnUnit(llvm::Function *
M=0x0032c048)  Line 256 + 0x10    C++
   
opt.exe!llvm::PassManagerTraits<llvm::Function>::runOnFunction(llvm::Function &
F={...})  Line 810 + 0x11    C++
    opt.exe!llvm::FunctionPass::runOnModule(llvm::Module & M={...})  Line 250 +
0x1a    C++
    opt.exe!llvm::PassManagerTraits<llvm::Module>::runPass(llvm::ModulePass *
P=0x0032e880, llvm::Module * M=0x00f137b0)  Line 746 + 0x2f    C++
    opt.exe!llvm::PassManagerT<llvm::Module>::runOnUnit(llvm::Module *
M=0x00f137b0)  Line 256 + 0x10    C++
    opt.exe!llvm::PassManagerTraits<llvm::Module>::runOnModule(llvm::Module &
M={...})  Line 755 + 0x11    C++
    opt.exe!llvm::PassManager::run(llvm::Module & M={...})  Line 86 + 0x38    C++
    opt.exe!main(int argc=0x00000008, char * * argv=0x00325b50)  Line 169    C++
    opt.exe!mainCRTStartup()  Line 398 + 0x11    C
    kernel32.dll!7c816d4f()        ntdll.dll!7c915b4f()       
kernel32.dll!7c8399f3()   
The disassembled code :

void %print_board() {
entry:
       br label %no_exit.1

no_exit.1:              ; preds = %cond_false.2, %entry
       br label %no_exit.2

no_exit.2:              ; preds = %no_exit.2, %no_exit.1
       %indvar1 = phi uint [ 0, %no_exit.1 ], [ %indvar.next2, %no_exit.2 ]    
       ; <uint> [#uses=1]
       %indvar.next2 = add uint %indvar1, 1            ; <uint> [#uses=2]
       %exitcond3 = setne uint %indvar.next2, 7                ; <bool> [#uses=1]
       br bool %exitcond3, label %no_exit.2, label %loopexit.2

loopexit.2:             ; preds = %no_exit.2
       br bool false, label %cond_true.2, label %cond_false.2

cond_true.2:            ; preds = %loopexit.2
       ret void

cond_false.2:           ; preds = %loopexit.2
       br bool false, label %no_exit.1, label %loopexit.1

loopexit.1:             ; preds = %cond_false.2
       ret void
}



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