search for: cheap_varying_condition

Displaying 4 results from an estimated 4 matches for "cheap_varying_condition".

2012 Oct 18
3
[LLVMdev] SimplifyCFG vs loops
...is of value to us is also a custom analysis pass. Basically, we're using LLVM as an optimization framework for a SIMD language, and the difficulty with the unwanted loop transformation comes when we have code like this: while (uniform_and_expensive_condition_with_side_effects()) { if (cheap_varying_condition()) do_this } If this gets transformed to something like this (which is similar to the example I posted in the earlier thread): while () // outer loop { while () // inner loop { if (!uniform_and_expensive_condition_with_side_effects()) return;...
2012 Oct 18
0
[LLVMdev] SimplifyCFG vs loops
On Thu, Oct 18, 2012 at 10:12 AM, Andrew Clinton <andrew at sidefx.com> wrote: > I actually submitted a patch to fix this very problem quite a while back, > but I don't think it was ever added to the baseline: > > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110711/124136.html > > I have also explained why it is important to avoid the creation of new
2012 Nov 20
0
[LLVMdev] SimplifyCFG vs loops
...ge is of value to us is also a custom analysis pass. Basically, we're using LLVM as an optimization framework for a SIMD language, and the difficulty with the unwanted loop transformation comes when we have code like this: while (uniform_and_expensive_condition_with_side_effects()) { if (cheap_varying_condition()) do_this } If this gets transformed to something like this (which is similar to the example I posted in the earlier thread): while () // outer loop { while () // inner loop { if (!uniform_and_expensive_condition_with_side_effects()) return;...
2012 Oct 18
2
[LLVMdev] SimplifyCFG vs loops
I actually submitted a patch to fix this very problem quite a while back, but I don't think it was ever added to the baseline: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110711/124136.html I have also explained why it is important to avoid the creation of new loops in an optimizer that performs analysis on the looping structure. I now need to keep this patch updated