[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