This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Tree-SSA self checking infrastructure


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]