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

Devang Patel dpatel at apple.com
Mon Jan 26 23:13:22 PST 2009


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.

Thanks,
-
Devang



More information about the llvm-commits mailing list