This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tree-SSA self checking infrastructure
- From: Richard Henderson <rth at redhat dot com>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 19 Nov 2003 10:56:48 -0800
- Subject: Re: Tree-SSA self checking infrastructure
- References: <20031119174450.GI11681@kam.mff.cuni.cz>
On Wed, Nov 19, 2003 at 06:44:50PM +0100, Jan Hubicka wrote:
> b) verifying gimple types is almost impossible now. The reason is
> ssa_useless_type_conversion. Where we got about the plans to make it
> transitive and symteric?
I'm working on some of this this afternoon, verifying that the types
match across ADDR_EXPR, INDIRECT_REF, ARRAY_REF only. My interest
here comes out of wanting to fix ...
> c) I commonly got hit by the feature of gimple allowing almost
> arbitrarily complex constant operands. What about restricting it
> into primitive constants +
> (plus_expr (nop_expr (addr_exr )) (integer_cst) as the most complex
> form?
... this. After my fold_stmt changes as of this morning, the only
way (that I know of so far) of producing *(&var + 8) is for there to
be a front-end bug wrt types. Try to produce one of these from the
C level and you'll get a cast which will prevent propagating the
address into the dereference.
I've found more than a dozen such bugs so far.
At present, NOP_EXPRs are *not* valid gimple operands. Believe it
or not, but allowing that is even more complex than the PLUS_EXPR
that we currently allow.
> Doing fold_stmt as part of
> remove_useless_* uncovers latent bugs in fold_stmt. Any plans on
> fixing the folders and any progress on this?
Try again.
r~