[PATCH] Fix SSA constant propagation deleting reachable blocks [Was Re: memory leak in ssa-ccp.c]

Jan Hubicka jh@suse.cz
Sun Aug 26 04:58:00 GMT 2001


> with -O1 -fssa -fssa-ccp on sparc-sun-solaris2.8 I get:
> 
> /tmp/ccp/crash/t1.c: In function `cprop_test3':
> /tmp/ccp/crash/t1.c:8: Unrecognizable insn:
> 
> (insn 27 37 29 (set (reg:SI 110)
>         (const_int 4097 [0x1001])) -1 (nil)
>     (expr_list:REG_EQUAL (const_int 4097 [0x1001])
>         (nil)))
> 
> The problem is that the generated constant (4097) is too big for that
> insn. 
> If you use   int j = 4093; in the example above everything works
> just fine. 
> 
> One way to fix this is not generate that insn in the first place, but
> that's probably not the best solution....
I believe that this fits the concept of unfinished mid-level RTL in the
SSA optimizers.
One of properties I would expect from such mid level language is that
each constant is directly loadable and useable.

Honza



More information about the Gcc-patches mailing list