[llvm-commits] [LLVM, loop-unswitch] Potential bug in RewriteLoopBodyWithConditionConstant
Stepan Dyatkovskiy
stpworld at narod.ru
Tue Nov 22 03:01:16 PST 2011
Hi all.
It seems that the code inside the
LoopUnswitch::RewriteLoopBodyWithConditionConstant contains potential bugs.
UseList is changed inside the loops that are goes through its items:
LoopUnswitch.cpp, string #905: for (Value::use_iterator UI =
LIC->use_begin(), E = LIC->use_end(); UI != E; ++UI) {
...and then inside the loop body UseList is changed implicitly (
LoopUnswitch.cpp, string #910):
U->replaceUsesOfWith(LIC, Replacement);
It seems that after editing UseList loop may produce unpreditable
results. But we are lucky by now though :-)
I propose to collect all to be changed and then do some changes?
If so, please find the patch attached for review.
-Stepan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loop-unswitch-uselist.patch
Type: text/x-patch
Size: 1014 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20111122/fc49ed4e/attachment.bin>
More information about the llvm-commits
mailing list