[llvm-commits] [llvm-gcc-4.2] r63023 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Evan Cheng echeng at apple.com
Tue Jan 27 00:00:08 PST 2009


On Jan 26, 2009, at 11:13 PM, Devang Patel wrote:

>
> On Jan 26, 2009, at 10:55 AM, Evan Cheng wrote:
>
>> Author: evancheng
>> Date: Mon Jan 26 12:55:10 2009
>> New Revision: 63023
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=63023&view=rev
>> Log:
>> Do not run aggressive loop unswitch at -O2.
>>
>> Modified:
>>   llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
>>
>> Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=63023&r1=63022&r2=63023&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
>> +++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Mon Jan 26 12:55:10 2009
>> @@ -438,7 +438,7 @@
>>    PM->add(createReassociatePass());           // Reassociate
>> expressions
>>    PM->add(createLoopRotatePass());            // Rotate Loop
>>    PM->add(createLICMPass());                  // Hoist loop
>> invariants
>> -    PM->add(createLoopUnswitchPass(optimize_size ? true : false));
>> +    PM->add(createLoopUnswitchPass(optimize_size || optimize < 3));
>
> Pl. do
> 	if (optimize >= 3)
> 	  PM->add(createLoopUnswitchPass(optimize_size || optimize < 3));
>
> LoopUnswitchPass constructor accepts a boolean flag that indicates
> whether we're optimize for size or not. Right now loop-unswitch pass
> does not unswitch loop if optimizing for size, but that is
> implementation detail. If you want to disable the pass for -O2 then
> pl. avoid indirect approach because -O2 does not mean optimize for  
> size.

Looks like there are confusion about the semantics of the value being  
passed to createLoopUnswitchPass. My understanding is if it's true  
then it does loop switching but not aggressively. That is, it reduces  
the aggressiveness so it doesn't bloat code size. From your statement,  
that doesn't seem like the case?

At -O2, we want to do this optimization, but we want to limit code  
size increase.

Evan

>
>
> Thanks,
> -
> Devang
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list