[PATCH] LoopUnroll: Create sub-loops in LoopInfo
Duncan P. N. Exon Smith
dexonsmith at apple.com
Tue Oct 7 14:47:57 PDT 2014
Thanks Andy -- r219241.
> On Oct 7, 2014, at 12:07 PM, Andrew Trick <atrick at apple.com> wrote:
> Thanks Duncan.
> SCEV should be fine w.r.t new loops. It has a pretty straight forward cache from SCEV (expression pointer) to Loop + “disposition” (was the expression invariant). If it sees a new loop, it will just recompute the loop disposition.
> My only concern here is that we probably need to tell SCEV to forget any inner loop within the unrolled loop (SE->forgetLoop(L)). In most cases this probably isn’t necessary, but I can’t prove to myself that it’s safe since values flowing into the loop have changed. It doesn’t look like we’re doing that. I suggest calling forgetLoop on each “old” inner loop.
>> On Oct 6, 2014, at 3:34 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>> This fixes the crasher in PR20987 by creating sub-loop info in
>> While the attached patch adds the missing data to `LoopInfo`, I'm not
>> sure what the contract is with SCEV (which can have a reference to
>> `LoopInfo`). Have I created a new problem, or does this look okay?
More information about the llvm-commits