Displaying 2 results from an estimated 2 matches for "addrecops".
Did you mean:
addrec's
2016 Apr 23
2
[IndVarSimplify] Narrow IV's are not eliminated resulting in inefficient code
...}
>
> // If we found some loop invariants, fold them into the recurrence.
> if (!LIOps.empty()) {
> // NLI + LI + {Start,+,Step} --> NLI + {LI+Start,+,Step}
> LIOps.push_back(AddRec->getStart());
>
> SmallVector<const SCEV *, 4> AddRecOps(AddRec->op_begin(),
> AddRec->op_end());
> - AddRecOps[0] = getAddExpr(LIOps);
> + AddRecOps[0] = getAddExpr(LIOps, Flags);
>
> // Build the new addrec. Propagate the NUW and NSW flags if both the
> // out...
2016 Apr 20
2
[IndVarSimplify] Narrow IV's are not eliminated resulting in inefficient code
Hi,
Would you be able to kindly check and assist with the IndVarSimplify / SCEV
problem I got in the latest LLVM, please?
Sometimes IndVarSimplify may not eliminate narrow IV's when there actually
exists such a possibility. This may affect other LLVM passes and result in
inefficient code. The reproducing test 'indvar_test.cpp' is attached.
The problem is with the second