[M3devel] newer versions might obviate some of our changes

Jay K jay.krell at cornell.edu
Wed May 26 09:50:40 CEST 2010


I haven't tracked down everything, but in a few cases, I notice that functions we modified
are removed. It appears we might have been fixing bugs that got fixed by gcc later.

Here is an example:

We changed mark_non_addressable in tree-ssa-alias.c.

First it changed to something else:

2008-06-04  Richard Guenther  <rguenther at suse.de>

    * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
    (is_call_clobbered): Always check var_ann->call_clobbered.
    (mark_call_clobbered): Always set var_ann->call_clobbered.
    (clear_call_clobbered): Always clear var_ann->call_clobbered.
    * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.


then that something else got removed:


2009-04-03  Richard Guenther  <rguenther at suse.de>

    PR middle-end/13146
    PR tree-optimization/23940
... many ..
    * tree-flow-inline.h (gimple_aliases_computed_p,
    gimple_addressable_vars, gimple_call_clobbered_vars,
    gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
    factoring_name_p, mark_call_clobbered, clear_call_clobbered,
    compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
    gimple_mem_ref_stats): Remove.


In tree-cfg.c, we modified remove_useless_stmts_bind:

      /* Removing the BIND_EXPR will break Modula-3 debug information by  
         making explicitly programmed blocks disappear. */ 
      && ( write_symbols == NO_DEBUG
           || debug_info_level == DINFO_LEVEL_NONE
           || debug_info_level == DINFO_LEVEL_TERSE ))


the change seems dubious to me -- generating symbols should NOT change codegen.

Anyway, this function and a lot around it is gone now:


2009-10-08  Michael Matz  <matz at suse.de>

    PR middle-end/41573
...
    * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
    remove_useless_stmts_cond, remove_useless_stmts_tf,
    remove_useless_stmts_tc, remove_useless_stmts_bind,
    remove_useless_stmts_goto, remove_useless_stmts_label,
    remove_useless_stmts_1, remove_useless_stmts,
    pass_remove_useless_stmts): Remove.


also, some of the OpenBSD patches got applied, at least x86 and sparc64.
Not clear about powerpc and amd64. (maybe amd64 is x86 -m64? powerpc
definitely seems to be missing).


I should look more closely, see if they were fixing something similar to what we were
and make sure they didn't just move the problem elsewhere.


Later,
 - Jay
 		 	   		  


More information about the M3devel mailing list