+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.