[llvm] r251839 - [IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader
Tobias Grosser via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 3 12:02:16 PST 2015
On 11/03/2015 08:47 PM, Chen Li wrote:
>
>> On Nov 3, 2015, at 12:00 AM, Tobias Grosser <tobias at grosser.es
>> <mailto: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/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!
With Polly, this command caused a execution time failure for me on x86:
mysandbox/bin/lnt runtest nt --sandbox /tmp/bar --cc
/home/grosser/Projects/polly/cmake_opt/bin/clang --cxx
/home/grosser/Projects/polly/cmake_opt/bin/clang++ --test-suite
test-suite/ -j4 --only-test MultiSource/Benchmarks/Prolangs-C/bison
--cflag="-Xclang -load" --cflag="-Xclang
/home/grosser/Projects/polly/cmake_opt/lib/LLVMPolly.so" --mllvm=-polly
--mllvm=-polly-only-scop-detection
Another option may be to look at the other, non-polly bots that got
green after my commit. The aarch64 bot mentioned above is one of them.
Best,
Tobias
More information about the llvm-commits
mailing list