[LLVMbugs] [Bug 4889] New: loop-unswitch assertion fails: " Cannot change null node pointers!"

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Sep 4 10:31:43 PDT 2009


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

           Summary: loop-unswitch assertion fails: "Cannot change null node
                    pointers!"
           Product: libraries
           Version: trunk
          Platform: Macintosh
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Loop Optimizer
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: bob.wilson at apple.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=3432)
 --> (http://llvm.org/bugs/attachment.cgi?id=3432)
testcase

There were 3 regressions in the armv6 nightly tester last night, and all of
them appear to be caused by this same problem.  I have verified that it still
occurs in llvm trunk and reduced a testcase with bugpoint.  (The
bugpoint-reduced-simplified output exposed a different failure, so the testcase
is the bugpoint-reduced-function version.)

To reproduce:

$ opt bugpoint-reduced-function.bc -loop-unswitch > out.bc
Assertion failed: (N && NewIDom && "Cannot change null node pointers!"),
function changeImmediateDominator, file
/Users/bwilson/local/llvm/llvm/include/llvm/Analysis/Dominators.h, line 490.
0   opt               0x003f8ef4 PrintStackTrace(void*) + 45
1   opt               0x003f94fc SignalHandler(int) + 410
2   libSystem.B.dylib 0x98115bfb _sigtramp + 43
3   libSystem.B.dylib 0xffffffff _sigtramp + 1743692847
4   libSystem.B.dylib 0x981a3ba5 raise + 26
5   libSystem.B.dylib 0x981b9c5c abort + 93
6   libSystem.B.dylib 0x981a6804 __pthread_markcancel + 0
7   opt               0x00335369
llvm::DominatorTreeBase<llvm::BasicBlock>::changeImmediateDominator(llvm::DomTreeNodeBase<llvm::BasicBlock>*,
llvm::DomTreeNodeBase<llvm::BasicBlock>*) + 85
8   opt               0x001d8a4f void
llvm::DominatorTreeBase<llvm::BasicBlock>::Split<llvm::BasicBlock*,
llvm::GraphTraits<llvm::BasicBlock*>
>(llvm::DominatorTreeBase<llvm::GraphTraits<llvm::BasicBlock*>::NodeType>&,
llvm::GraphTraits<llvm::BasicBlock*>::NodeType*) + 897
9   opt               0x00335fc1
llvm::DominatorTreeBase<llvm::BasicBlock>::splitBlock(llvm::BasicBlock*) + 69
10  opt               0x001bc033
llvm::DominatorTree::splitBlock(llvm::BasicBlock*) + 27
11  opt               0x001bac2b
llvm::SplitBlockPredecessors(llvm::BasicBlock*, llvm::BasicBlock* const*,
unsigned int, char const*, llvm::Pass*) + 544
12  opt               0x0015d6c7 (anonymous
namespace)::LoopUnswitch::SplitExitEdges(llvm::Loop*,
llvm::SmallVector<llvm::BasicBlock*, 8u> const&) + 229
13  opt               0x0015df30 (anonymous
namespace)::LoopUnswitch::UnswitchNontrivialCondition(llvm::Value*,
llvm::Constant*, llvm::Loop*) + 692
14  opt               0x0015eec8 (anonymous
namespace)::LoopUnswitch::UnswitchIfProfitable(llvm::Value*, llvm::Constant*) +
538
15  opt               0x0015f0dd (anonymous
namespace)::LoopUnswitch::processCurrentLoop() + 229
16  opt               0x0015f3e4 (anonymous
namespace)::LoopUnswitch::runOnLoop(llvm::Loop*, llvm::LPPassManager&) + 206
17  opt               0x002584b2
llvm::LPPassManager::runOnFunction(llvm::Function&) + 1026
18  opt               0x003891a7
llvm::FPPassManager::runOnFunction(llvm::Function&) + 297
19  opt               0x00389356
llvm::FPPassManager::runOnModule(llvm::Module&) + 84
20  opt               0x00387390
llvm::MPPassManager::runOnModule(llvm::Module&) + 378
21  opt               0x003895da llvm::PassManagerImpl::run(llvm::Module&) +
112
22  opt               0x00389631 llvm::PassManager::run(llvm::Module&) + 27
23  opt               0x0005cdb6 main + 4337
24  opt               0x00050ff1 start + 53


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