Displaying 6 results from an estimated 6 matches for "rewriteloopexitvalues".
2016 Mar 02
2
Why LLVM cannot optimize this?
Hi,
Yes SCEV is pretty limited on this aspect.
This kind of code can trigger LLVM to explode in time/memory: https://llvm.org/bugs/show_bug.cgi?id=18606 <https://llvm.org/bugs/show_bug.cgi?id=18606>
See also this llvm-dev thread: SCEV implementation and limitations, do we need "pow"? : http://lists.llvm.org/pipermail/llvm-dev/2014-February/070062.html
CC: Sanjoy who may have an
2019 Aug 09
4
How to best deal with undesirable Induction Variable Simplification?
...al,
I see. So LSR could theoretically counteract undesirable Ind Var transformations but it's not implemented at the moment?
I think I've managed to come up with a small reproducer that can also exhibit similar problem on x86, here it is: https://godbolt.org/z/_wxzut
As you can see, when rewriteLoopExitValues is not disabled Clang generates worse code due to additional spills, because Ind Vars rewrites all exit values of 'a' to recompute it's value instead of reusing the value from the loop body. This requires extra registers for the new "a after the loop" value (since it's not...
2019 Aug 13
2
How to best deal with undesirable Induction Variable Simplification?
...ttps://urldefense.proofpoint.com/v2/url?u=https-3A__godbolt.org_z_-5Fwxzut&d=DwMD-g&c=DPL6_X_6JkXFx7AXWqB0tg&r=VEV8gWVf26SDOqiMtTxnBloZmItAauQlSqznsCc0KxY&m=xzJTtah1fNUz56fRe1yh10OCSBFg7IbzUhFcn8BPyJk&s=-qhi7IRwOrqjcv_cxlhP6lbVWspNKWeDT4amCIHR1sU&e=>
As you can see, when rewriteLoopExitValues is not disabled Clang generates worse code due to additional spills, because Ind Vars rewrites all exit values of 'a' to recompute it's value instead of reusing the value from the loop body. This requires extra registers for the new "a after the loop" value (since it's not...
2019 Aug 16
2
How to best deal with undesirable Induction Variable Simplification?
...ttps://urldefense.proofpoint.com/v2/url?u=https-3A__godbolt.org_z_-5Fwxzut&d=DwMD-g&c=DPL6_X_6JkXFx7AXWqB0tg&r=VEV8gWVf26SDOqiMtTxnBloZmItAauQlSqznsCc0KxY&m=xzJTtah1fNUz56fRe1yh10OCSBFg7IbzUhFcn8BPyJk&s=-qhi7IRwOrqjcv_cxlhP6lbVWspNKWeDT4amCIHR1sU&e=>
As you can see, when rewriteLoopExitValues is not disabled Clang generates worse code due to additional spills, because Ind Vars rewrites all exit values of 'a' to recompute it's value instead of reusing the value from the loop body. This requires extra registers for the new "a after the loop" value (since it's not...
2008 Dec 04
0
[LLVMdev] 32bit math being promoted to 64 bit
instcombine doesn't seem to be doing it. From my testing it seems to
only occur when I use -indvars after a long string of commands.
For example:
llvm-as < test_fc_27.ll | opt -preverify -domtree -verify
-lowersetjmp -raiseallocs -simplifycfg -domtree -domfrontier
-mem2reg -globalopt -globaldce -ipconstprop -deadargelim
-instcombine -simplifycfg -ba
siccg -prune-eh -inline
2008 Dec 04
2
[LLVMdev] 32bit math being promoted to 64 bit
On Thu, Dec 4, 2008 at 7:08 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Dec 4, 2008, at 8:58 AM, Villmow, Micah wrote:
>
> What optimization pass promotes 32 bit math operations to 64 bit operations
> so I can disable it? I have code that works fine with optimizations turned
> off but fails with it turned on because of this stage.
>
>
> Do you have a