[PATCH] IndVarSimplify : do not recompute an IV value used outside of the loop if it is trivially known not to be beneficial

Andrew Trick atrick at apple.com
Tue Mar 19 10:55:19 PDT 2013


On Mar 19, 2013, at 3:09 AM, Arnaud A. de Grandmaison <arnaud.adegm at gmail.com> wrote:

> Ping ?

Sorry for the delay. This was easier to review than I thought. Go ahead and commit!

-Andy

> On 03/14/2013 11:08 PM, Arnaud de Grandmaison wrote:
>> On Tuesday 05 March 2013 10:14:37 Andrew Trick wrote:
>>> On Mar 5, 2013, at 7:30 AM, "Arnaud A. de Grandmaison" 
>> <arnaud.adegm at gmail.com> wrote:
>>>>> I would at least gather optimization stats across llvm test-suite before
>>>>> supressing exit value replacement to make sure we're not preventing
>>>>> other optimization.> 
>>>> I have never done that before, but that's a good time to start :)
>>> There should be a way to gather stats with lnt, but I don't know how.
>>> Unfortunately, I still use the TEST=nightly like this:
>>> 
>>> make build -j8 TEST=nightly \
>>> TARGET_FLAGS="-arch x86_64 -Wno-error=implicit-function-declaration" \
>>> OPTFLAGS=-O3 ARCH=x86_64 CC_UNDER_TEST_TARGET_IS_X86_64=1 \
>>> ENABLE_BUILT_CLANG=1 LLVMCC_OPTION=clang CC_UNDER_TEST_IS_CLANG=1
>>> 
>>> And the attached python script to compare runs.
>>> 
>>> -Andy
>> Hi Andy
>> 
>> Thanks for the pointers and apologize for the delay. It took me some time to 
>> be able to use the lnt, I believe this time is worth the investment.
>> 
>> The attached patch addresses the different points we have discussed. I have 
>> also added another testcase. I have not noticed any performance regression 
>> with lnt as this optimization is not triggered --- with lnt's stock testcases. 
>> On the other hand, the optimization triggers on real code on my targets.
>> 
>> Cheers,
>> --
>> Arnaud de Grandmaison
> 
> 
> -- 
> Arnaud A. de Grandmaison
> 




More information about the llvm-commits mailing list