[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