OSDN Git Service

2009-05-10 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 83b14c3..6c0177b 100644 (file)
@@ -1,3 +1,151 @@
+2009-05-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40081
+       Revert
+       * tree-sra.c (instantiate_element): Instantiate scalar replacements
+       using the main variant of the element type.  Do not fiddle with
+       TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
+
+       * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
+       structs with volatile fields.
+
+2009-05-10  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
+       (estimate_move_cost): Assert that it does not get called for VOID_TYPE_P.
+       (estimate_num_insns): Skip VOID types in argument handling.
+       (optimize_inline_calls): Delete unreachable blocks and verify that
+       callgraph is valid.
+
+2009-05-10  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
+       * cgraph.c (cgraph_mark_address_taken_node): New function.
+       (dump_cgraph_node): Dump new flag.
+       * cgraph.h (struct cgraph_node): Add address_taken.
+       (cgraph_mark_address_taken_node): New function.
+       * ipa.c (cgraph_postorder): Prioritize functions with address taken
+       since new direct calls can be born.
+
+2009-05-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
+       tok->val.node.node.
+
+2009-05-10  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/40084
+       * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
+       argument; rewrite.
+       (cgraph_update_edges_for_call_stmt): Take old_decl argument.
+       * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
+       * tree-inline.c (copy_bb): Set frequency correctly.
+       (fold_marked_statements): Update call to
+       cgraph_update_edges_for_call_stmt.
+
+2009-05-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
+       identifiers in diagnostics.
+       * config/arm/arm.c (arm_handle_fndecl_attribute,
+       arm_handle_isr_attribute): Likewise.
+       * config/avr/avr.c (avr_handle_progmem_attribute,
+       avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
+       Likewise.
+       * config/bfin/bfin.c (handle_int_attribute,
+       bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
+       bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
+       bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
+       Likewise.
+       * config/darwin.c (darwin_handle_kext_attribute,
+       darwin_handle_weak_import_attribute): Likewise.
+       * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
+       h8300_handle_eightbit_data_attribute,
+       h8300_handle_tiny_data_attribute): Likewise.
+       * config/i386/i386.c (ix86_handle_cconv_attribute,
+       ix86_handle_abi_attribute, ix86_handle_struct_attribute):
+       Likewise.
+       * config/i386/winnt.c (ix86_handle_shared_attribute,
+       ix86_handle_selectany_attribute): Likewise.
+       * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
+       * config/m32c/m32c.c (function_vector_handler): Likewise.
+       * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
+       m68hc11_handle_fntype_attribute): Likewise.
+       * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
+       * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
+       * config/mips/mips.c (mips_insert_attributes,
+       mips_merge_decl_attributes, mips_expand_builtin): Likewise.
+       * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
+       rs6000_handle_struct_attribute): Likewise.
+       * config/sh/sh.c (sh_insert_attributes,
+       sh_handle_resbank_handler_attribute,
+       sh_handle_interrupt_handler_attribute,
+       sh2a_handle_function_vector_handler_attribute,
+       sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
+       Likewise.
+       * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
+       * config/spu/spu.c (spu_handle_fndecl_attribute,
+       spu_handle_vector_attribute): Likewise.
+       * config/stormy16/stormy16.c
+       (xstormy16_handle_interrupt_attribute): Likewise.
+       * config/v850/v850-c.c (ghs_pragma_section): Likewise.
+       * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
+
+2009-05-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * pretty-print.h (struct pretty_print_info): Add
+       translate_identifiers.
+       (pp_translate_identifiers): New.
+       (pp_identifier): Only conditionally translate identifier to locale
+       character set.
+       * pretty-print.c (pp_construct): Set pp_translate_identifiers.
+       (pp_base_tree_identifier): Only conditionally translate identifier
+       to locale character set.
+       * c-pretty-print.c (M_): Define.
+       (pp_c_type_specifier, pp_c_primary_expression): Mark English
+       fragments for conditional translation with M_.
+       * tree-pretty-print.c (maybe_init_pretty_print): Disable
+       identifier translation.
+
+2009-05-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40081
+       * tree-sra.c (instantiate_element): Instantiate scalar replacements
+       using the main variant of the element type.  Do not fiddle with
+       TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
+
+2009-05-09  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/40080
+       * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
+       indirect calls; verify cgraph afterwards.
+
+2009-05-09  Jan Hubicka  <jh@suse.cz>
+
+       PR bootstrap/40082
+       * ipa.c (update_inlined_to_pointer): New function.
+       (cgraph_remove_unreachable_nodes): Use it.
+
+2009-05-09  Jan Hubicka  <jh@suse.cz>
+
+       * tree-eh.c (struct leh_state): Remove prev_try.
+       (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
+       not track prev_try.
+       * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
+       copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
+       remove_eh_handler_and_replace, foreach_reachable_handler,
+       verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
+       * except.h (struct eh_region): Remove eh_region_u_cleanup.
+       (gen_eh_region_cleanup): Update prototype.
+
+2009-05-09  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/40043
+       * except.c (copy_eh_region): Always set prev_try.
+       (redirect_eh_edge_to_label): Find outer try.
+       (foreach_reachable_handler): When looking for prev try
+       handle case where previous try is not going to be taken.
+
 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR tree-optimization/40049
 
 2009-05-08  Jan Hubicka  <jh@suse.cz>
 
-       * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument;
-       handle correctly when profile is absent.
+       * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
+       argument; handle correctly when profile is absent.
        (build_cgraph_edges): Update.
        (rebuild_cgraph_edges): Update.
-       * cgraph.c: Do not include varrau.h 
-       (cgraph_set_call_stmt_including_clones, cgraph_create_edge_including_clones):
-       New function
-       (cgraph_update_edges_for_call_stmt_node): New stati cfunction.
+       * cgraph.c: Do not include varray.h.
+       (cgraph_set_call_stmt_including_clones): New function.
+       (cgraph_create_edge_including_clones): Likewise
+       (cgraph_update_edges_for_call_stmt_node): New static cfunction.
        (cgraph_update_edges_for_call_stmt): Handle clones.
        (cgraph_remove_node): Handle clone tree.
        (cgraph_remove_node_and_inline_clones): New function.
        (dump_cgraph_node): Dump clone tree.
        (cgraph_clone_node): Handle clone tree.
-       (clone_function_name): Bring here from tree-inline.c
+       (clone_function_name): Bring here from tree-inline.c.
        (cgraph_create_virtual_clone): New function.
-       * cgraph.h (ipa_replace_map): Move ehre from ipa.h
-       (cgraph_clone_info): New function
+       * cgraph.h (ipa_replace_map): Move here from ipa.h.
+       (cgraph_clone_info): New function.
        (strut cgraph_node): Add clone_info and new clone tree pointers.
-       (cgraph_remove_node_and_inline_clones, cgraph_set_call_stmt_including_clones,
-       cgraph_create_edge_including_clones, cgraph_create_virtual_clone): Declare.
+       (cgraph_remove_node_and_inline_clones,
+       cgraph_set_call_stmt_including_clones,
+       cgraph_create_edge_including_clones,
+       cgraph_create_virtual_clone): Declare.
        (cgraph_function_versioning): Use VEC argument.
        (compute_call_stmt_bb_frequency): Update prototype.
        (cgraph_materialize_all_clones): New function.
        (cgraph_optimize): Materialize clones.
        (cgraph_function_versioning): Update for VECtors.
        (save_inline_function_body): Use clone tree.
-       (cgraph_materialize_clone, cgraph_materialize_all_clones): New functions.
+       (cgraph_materialize_clone): New function.
+       (cgraph_materialize_all_clones): Likewise.
        * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
        * ipa.c: Include gimple.h.
        (cgraph_remove_unreachable_nodes): Use clone tree.
-       * ipa-prop.c (ipa_note_param_call): Update call of compute_call_stmt_bb_frequency.
+       * ipa-prop.c (ipa_note_param_call): Update call to
+       compute_call_stmt_bb_frequencycall.
        * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
-       * tree-inline.c: Do not include varray.h; do not include gt-tree-inline.h
+       * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
        (copy_bb): Handle updating of clone tree; add new edge when new call
        appears.
        (expand_call_inline): Be strict about every call having edge.
        (clone_fn_id_num, clone_function_name): Move to cgraph.c.
        (delete_unreachable_blocks_update_callgraph): New function.
-       (tree_function_versioning): Use VECtors; always remove unreachable blocks
-       and fold conditionals.
-       * tree-inline.h: Do not include varray.h
+       (tree_function_versioning): Use VECtors; always remove unreachable
+       blocks and fold conditionals.
+       * tree-inline.h: Do not include varray.h.
        (tree_function_versioning): Remove.
        * Makefile.in (GTFILES): Remove tree-inline.c
        * passes.c (do_per_function): Do only functions having body.
-       * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle cone tree.
+       * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
+       tree.
 
 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
            Andrew Morrow  <acm@google.com>
 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
 
        PR rtl-optimization/33928
-        * loop-invariant.c (record_use): Fix && vs. || mishap.
+       * loop-invariant.c (record_use): Fix && vs. || mishap.
 
 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
 
        PR rtl-optimization/33928
-        * loop-invariant.c (struct use): Add addr_use_p.
-        (struct def): Add n_addr_uses.
-        (struct invariant): Add cheap_address.
-        (create_new_invariant): Set cheap_address.
-        (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
-        (record_uses): Pass df_ref to record_use.
-        (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses used
-       only as such.
+       * loop-invariant.c (struct use): Add addr_use_p.
+       (struct def): Add n_addr_uses.
+       (struct invariant): Add cheap_address.
+       (create_new_invariant): Set cheap_address.
+       (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
+       (record_uses): Pass df_ref to record_use.
+       (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
+       used only as such.
 
 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 
        * doc/invoke.texi (Debugging Options): Document change of debugging
        dump location.
-        * opts.c (decode_options): Make dump_base_name relative to
+       * opts.c (decode_options): Make dump_base_name relative to
        aux_base_name directory.
 
 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
 
        * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
-       Remove wrong description of "nand" functionality.
+       Remove wrong description of "nand" operation.
 
 2009-05-06  Richard Guenther  <rguenther@suse.de>
            Adam Nemet  <anemet@caviumnetworks.com>
 
 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
 
-       * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
+       * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
        * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
        * gcc/explow.c (memory_address): Use target hook.
        * gcc/targhooks.c (default_legitimize_address): New.