Simple Value Range Propagation

Daniel Jacobowitz drow@mvista.com
Sun Jun 8 20:48:00 GMT 2003


On Sun, Jun 08, 2003 at 10:20:33PM +0200, Josef Zlomek wrote:
> Hi,
> 
> this patch contains a simple Value Range Propagation.
> It tracks const -> reg and reg -> reg stores,
> and also branches, for example:
> 
> if (i > 0)
>    foo;		// i is in range [1,max_val] here
> else
>    bar;		// i is in range [min_val,0] here
> 
> It also deletes (more accuratelly let cleaup_cfg delete)
> code unreachable because of conditions, for example:
> 
> if (i < 0)
> {
>   if (i > 5)
>      delete_this;
> }
> 
> It takes 2% of compile time and adds 0.5 % overall performance on SPECint2000.
> 
> Bootstrapped/regtested x86-64.
> OK for mainline?

Is it really necessary to add new essentially high-level optimizers at
the RTL level?  This pass would be quite straightforward on tree-ssa.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



More information about the Gcc-patches mailing list