Hi ,<div>It will be good ,If you get us the sample that assert.</div><div><br></div><div>Thanks </div><div>~Umesh <br><br><div class="gmail_quote">On Tue, Jul 31, 2012 at 11:40 AM, ÌïÖР̫ÀÉ <span dir="ltr"><<a href="mailto:dontforgettobringatowel@live.jp" target="_blank">dontforgettobringatowel@live.jp</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi all,<br>
<br>
I ran across an assertion failure while using region analysis in my passes.<br>
I get the same thing when doing: opt -regions -analyze<br>
<br>
[...]<br>
  [1] entry => if.end<br>
End region tree<br>
Printing analysis 'Detect single entry single exit regions' for function 'njDecodeSOF':<br>
Region tree:<br>
[0] entry => <Function Return><br>
  [1] entry => return<br>
    [2] if.end => return<br>
      [3] if.end6 => return<br>
        [4] sw.epilog => return<br>
          [5] for.cond => return<br>
            [6] if.end62 => if.end69<br>
            [6] if.end69 => if.end75<br>
            [6] for.end => if.end81<br>
            [6] for.cond88 => return<br>
              [7] for.end143 => return<br>
End region tree<br>
opt: /home/towelie/Tools/LLVM/llvm/lib/Analysis/RegionInfo.cpp:86: bool llvm::Region::contains(const llvm::BasicBlock *) const: Assertion `DT->getNode(BB) && "BB not part of the dominance tree"' failed.<br>

0  opt             0x0000000000bc715e<br>
1  opt             0x0000000000bc765a<br>
2  libpthread.so.0 0x00007fe7ed96d420<br>
3  libc.so.6       0x00007fe7ed17cb45 gsignal + 53<br>
4  libc.so.6       0x00007fe7ed17dfc6 abort + 390<br>
5  libc.so.6       0x00007fe7ed1758ce<br>
6  libc.so.6       0x00007fe7ed175990 __assert_perror_fail + 0<br>
7  opt             0x0000000000921a70 llvm::Region::contains(llvm::BasicBlock const*) const + 96<br>
8  opt             0x0000000000921f2e llvm::Region::getExitingBlock() const + 142<br>
9  opt             0x0000000000921fd9 llvm::Region::isSimple() const + 73<br>
10 opt             0x00000000009244dc llvm::RegionInfo::updateStatistics(llvm::Region*) + 44<br>
11 opt             0x0000000000924657 llvm::RegionInfo::createRegion(llvm::BasicBlock*, llvm::BasicBlock*) + 327<br>
12 opt             0x0000000000924766 llvm::RegionInfo::findRegionsWithEntry(llvm::BasicBlock*, llvm::DenseMap<llvm::BasicBlock*, llvm::BasicBlock*, llvm::DenseMapInfo<llvm::BasicBlock*> >*) + 246<br>
13 opt             0x00000000009248c0 llvm::RegionInfo::scanForRegions(llvm::Function&, llvm::DenseMap<llvm::BasicBlock*, llvm::BasicBlock*, llvm::DenseMapInfo<llvm::BasicBlock*> >*) + 208<br>
14 opt             0x0000000000924d6c llvm::RegionInfo::Calculate(llvm::Function&) + 60<br>
15 opt             0x0000000000924e7c llvm::RegionInfo::runOnFunction(llvm::Function&) + 204<br>
16 opt             0x0000000000b4548a llvm::FPPassManager::runOnFunction(llvm::Function&) + 442<br>
17 opt             0x0000000000b4578d llvm::FPPassManager::runOnModule(llvm::Module&) + 125<br>
18 opt             0x0000000000b459dd llvm::MPPassManager::runOnModule(llvm::Module&) + 493<br>
19 opt             0x0000000000b46097 llvm::PassManagerImpl::run(llvm::Module&) + 167<br>
20 opt             0x0000000000b46281 llvm::PassManager::run(llvm::Module&) + 33<br>
21 opt             0x00000000005502cb main + 6491<br>
22 libc.so.6       0x00007fe7ed1692ad __libc_start_main + 253<br>
23 opt             0x000000000053fa85<br>
Stack dump:<br>
0.    Program arguments: opt -regions -analyze nj.o<br>
1.    Running pass 'Function Pass Manager' on module 'nj.o'.<br>
2.    Running pass 'Detect single entry single exit regions' on function '@njDecodeDHT'<br>
Aborted<br>
<br>
However it seems to work fine on version 3.1.<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div>