OSDN Git Service

* c-decl.c (grokfield): Allow typedefs for anonymous structs and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index bd83bf8..db8e005 100644 (file)
@@ -1,3 +1,137 @@
+2010-05-15  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-decl.c (grokfield): Allow typedefs for anonymous structs and
+       unions by default if those structs and unions have no tags.  Do
+       not condition anonymous struct and unions handling on flag_iso.
+       Allow anonymous structs and unions for C1X.
+       (finish_struct): Do not diagnose lack of named fields when
+       anonymous structs and unions present for C1X.  Accept flexible
+       array members in structure with anonymous structs or unions but no
+       directly named fields.
+       * doc/extend.texi (Unnamed Fields): Update.
+
+2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.h (compare_field_offset): Rename into...
+       (gimple_compare_field_offset): ...this.
+       * gimple.c (compare_field_offset): Rename into...
+       (gimple_compare_field_offset): ...this.  Compare the full access if
+       the offset is self-referential.
+       (gimple_types_compatible_p): Adjust for above renaming.
+       * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
+       DECL_NONADDRESSABLE_P flag of fields before merging them.
+
+2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * tree.h (ctor_to_list): Delete.
+       * tree.c (ctor_to_list): Delete.
+
+2010-05-15  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-reference.c: Include toplev.h
+       (is_proper_for_analysis): Only add to all_module_statics
+       if it is allocated.
+       (write_node_summary_p, stream_out_bitmap,
+       ipa_reference_write_optimization_summary,
+       ipa_reference_read_optimization_summary): New.
+       (struct ipa_opt_pass_d pass_ipa_reference): Add
+       optimization summary streaming.
+       * lto-cgraph.c (referenced_from_this_partition_p, 
+       reachable_from_this_partition_p): New functions.
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
+       call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
+       * opts.c (decode_options): Enable ipa_reference.
+       * Makefile.in (ipa-reference.o): Add toplev.h dependency.
+       * lto-streamer.h (referenced_from_this_partition_p,
+       reachable_from_this_partition_p): Declare.
+
+2010-05-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44038
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
+       taking the address of a V_C_E of a constant.
+
+2010-05-14  Jan Hubicka  <jh@suse.cz>
+
+       * tree.h (memory_identifier_string): Remove.
+       * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
+       (ipa_reference_global_vars_info_d): Remove statics_not_read and
+       statics_not_written.
+       (ipa_reference_optimization_summary_d): New structure.
+       (ipa_reference_optimization_summary_t): New type and vector.
+       (ipa_reference_vars_info_d): Embedd structures instead of using
+       pointers.
+       (reference_vars_to_consider): Remove out of GGC space.
+       (module_statics_escape): Remove.
+       (global_info_obstack): Rename to ...
+       (optimization_summary_obstack): ... this one.
+       (initialization_status_t): Remove.
+       (memory_identifier_string): Remove.
+       (get_reference_vars_info): Fix indenting.
+       (set_reference_vars_info): Likewise.
+       (get_reference_optimization_summary): New.
+       (set_reference_optimization_summary): New.
+       (get_global_reference_vars_info): Remove.
+       (ipa_reference_get_read_global): Remove.
+       (ipa_reference_get_written_global): Remove.
+       (ipa_reference_get_not_read_global): Update.
+       (ipa_reference_get_not_written_global): Update.
+       (is_proper_for_analysis): Outlaw addressable.
+       (propagate_bits): Update for new datastructures.
+       (analyze_variable): Remove.
+       (init_function_info): Update for new datastructures.
+       (clean_function_local_data): Remove.
+       (clean_function): Remove.
+       (copy_global_bitmap): Use optimizations_summary_obstack.
+       (duplicate_node_data): Duplicate optimization summary only.
+       (remove_node_data): Remove optimization summary only.
+       (generate_summary): Do not analyze variables; do not compute
+       module_statics_escape; do not prune solutions by it.
+       (read_write_all_from_decl): Fix typos in comments.
+       (propagate): Doscover readonly and nonaddressable first;
+       update for new datastructures; share global bitmaps.
+       * ipa-reference.h (ipa_reference_get_read_global,
+       ipa_reference_get_written_global): Remove.
+       * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
+       * Makefile.in: Remove ipa-refereference from GT files.
+
+2010-05-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44112
+       * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
+       for all SYMBOL_REF_DECLs.
+
+2010-05-14  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
+       (varpool_all_refs_explicit_p): New inline function.
+       * ipa-reference.c: Update comment.
+       (module_statics_written): Remove.
+       (get_static_decl): Remove.
+       (ipa_init): Do not initialize module_statics_written.
+       (analyze_function): Likewise.
+       (generate_summary): Likewise; do not compute module_statics_readonly
+       and do not update variable flags.
+       (propagate): Call ipa_discover_readonly_nonaddressable_vars.
+       * ipa.c: Inlucde flags.h
+       (cgraph_local_node_p): New.
+       (cgraph_remove_unreachable_nodes): Return early when not optimizing;
+       promote functions to local.
+       (ipa_discover_readonly_nonaddressable_vars): New function.
+       (function_and_variable_visibility): Use cgraph_local_node_p.
+       * varpool.c (varpool_finalize_decl): Set force_output for
+       DECL_PRESERVE_P vars.
+
+2010-05-14  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
+
+2010-05-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44119
+       * tree-ssa-pre.c (eliminate): Properly mark replacement of
+       a PHI node necessary.
+
 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.