Hello again :) It's been some time since I sent you last patch, but here I'm again. I send the patch for PR5373. Regards -- Jakub Staszak -------------- next part -------------- A non-text attachment was scrubbed... Name: pr5373.patch Type: application/octet-stream Size: 5913 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100806/75f6e44a/attachment.obj>
The last bit here + if (LoopExitBB) { + // It is possible that for both successors isTrivialLoopExitBlock() + // returns different exit blocks. It means that the loop isn't trivial, + // just quit then. + if (LoopExitBB != LoopExitBB2) + return false; + } else if (Val) { + // if LoopExitBB == LoopExitBB2 pick the first one (true). + *Val = ConstantInt::getFalse(Context); doesn't do what the comment says it does; the store into *Val is done when !LoopExitBB, not when LoopExitBB == LoopExitBB2. On Aug 6, 2010, at 12:54 AMPDT, Jakub Staszak wrote:> Hello again :) > > It's been some time since I sent you last patch, but here I'm again. > I send the patch for PR5373. > > Regards > -- > Jakub Staszak-------------- next part -------------- A non-text attachment was scrubbed... Name: pr5373.patch Type: application/octet-stream Size: 5913 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100806/09dea6ad/attachment.obj> -------------- next part --------------> _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Aug 6, 2010, at 11:47 AM, Dale Johannesen wrote:> The last bit here > > + if (LoopExitBB) { > + // It is possible that for both successors isTrivialLoopExitBlock() > + // returns different exit blocks. It means that the loop isn't trivial, > + // just quit then. > + if (LoopExitBB != LoopExitBB2) > + return false; > + } else if (Val) { > + // if LoopExitBB == LoopExitBB2 pick the first one (true). > + *Val = ConstantInt::getFalse(Context); >Actually it does. It is written that if LoopExitBB == LoopExitBB2 we should pick TRUE value: *Val = ConstantInt::getTrue(Context); so..there is not need to generate FALSE value. I know that this comment might be a little bit misleading. Probably the best idea is to delete it.> doesn't do what the comment says it does; the store into *Val is done when !LoopExitBB, not when LoopExitBB == LoopExitBB2. > > On Aug 6, 2010, at 12:54 AMPDT, Jakub Staszak wrote: > >> Hello again :) >> >> It's been some time since I sent you last patch, but here I'm again. I send the patch for PR5373. >> >> Regards >> -- >> Jakub Staszak > <pr5373.patch> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >