[llvm] r251839 - [IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader

Chen Li via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 3 11:47:01 PST 2015


> On Nov 3, 2015, at 12:00 AM, Tobias Grosser <tobias at grosser.es> wrote:
> 
> On 11/03/2015 08:19 AM, Tobias Grosser via llvm-commits wrote:
>> On 11/02/2015 11:00 PM, Chen Li via llvm-commits wrote:
>>> Author: chenli
>>> Date: Mon Nov  2 16:00:15 2015
>>> New Revision: 251839
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=251839&view=rev
>>> Log:
>>> [IndVarSimplify] Rewrite loop exit values with their initial values
>>> from loop preheader
>>> 
>>> Summary:
>>> This patch adds support to check if a loop has loop invariant
>>> conditions which lead to loop exits. If so, we know that if the exit
>>> path is taken, it is at the first loop iteration. If there is an
>>> induction variable used in that exit path whose value has not been
>>> updated, it will keep its initial value passing from loop preheader.
>>> We can therefore rewrite the exit value with
>>> its initial value. This will help remove phis created by LCSSA and
>>> enable other optimizations like loop unswitch.
>> 
>> Hi Chen Li,
>> 
>> this commit broke some of my bots. I reverted it in r251901. As it may
>> have just triggered a bug in my code, I will investigate first and send
>> you more information subsequently.
> 
> The revert fixed the Polly buildbots, but also a an aarach64 bot that does not use any Polly:
> 
> http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/1978 <http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/1978>
> http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/1979 <http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/1979>
> 
> For the polly buildbot I confirmed that the issues also showed up when running with --mllvm=-polly --mllvm=-polly-only-scop-detection. In this configuration Polly is running an additional round of indvarsimplify at the beginning of the pass pipeline, but no polly specific transformation
> passes.
> 
> Hence, it seems the issues we see here are indeed miscompiles due to this enhanced version of indvarsimplify.

Hi Tobias,

Sorry for the bug. Could you please give me some instructions to reproduce the crash? Thanks!

best,
chen


> 
> Best,
> Tobisa

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151103/d685c1e9/attachment.html>


More information about the llvm-commits mailing list