OSDN Git Service

2011-12-15 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7668767..cdfac22 100644 (file)
@@ -1,3 +1,287 @@
+2011-12-15  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/51564
+       * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
+       STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
+       uses documentation.
+       (TREE_ASM_WRITTEN): Update documentation to mention its use
+       on TYPE_DECLs from debug info generation.
+       * tree-streamer-out.c (pack_ts_base_value_fields): Stream
+       TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
+       all other types.
+
+2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/51050
+       * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
+       (avr_prologue_setup_frame): Ditto.
+
+2011-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/51517
+       * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
+       !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
+
+2012-12-15  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       PR lto/48437
+       * lto-streamer-out.c (tree_is_indexable): Exclude block-local
+       extern declarations.
+
+       PR lto/48508
+       PR lto/48437
+       * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
+       VAR_DECLs and FUNCTION_DECLs locally.
+
+2011-12-14  Richard Henderson  <rth@redhat.com>
+
+       * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
+       (*compare_negsi_si, *compare_addsi2_op0): Likewise.
+       (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
+       (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
+       propagating all kinds of constants.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/51497
+       * lto-streamer-in.c (lto_read_body): Fixup local types
+       TYPE_CANONICAL and variant chain.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (free_lang_data_in_type): Do not clear fields
+       dependent on debuginfo level setting.
+       (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
+       * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
+
+2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50931
+       * config/avr/avr.md (mulpsi3): New expander.
+       (*umulqihipsi3, *umulhiqipsi3): New insns.
+       (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
+       (mulsqipsi3, *mulpsi3): New insn-and-splits.
+       (ashlpsi3): Turn to expander.  Move insn code to...
+       (*ashlpsi3): ...this new insn.
+
+2011-12-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (replace_uses_by): Only mark blocks altered
+       that will make a difference.  Only recompute ADDR_EXPR
+       invariantness if it could possibly have changed.  Do so
+       before folding the statement.
+
+2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
+       * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
+       * lto-streamer-in.c (lto_read_body): Likewise.
+       (lto_input_toplevel_asms): Likewise.
+       * lto-section-in.c (lto_create_simple_input_block): Likewise.
+       * ipa-inline-analysis.c (inline_read_section): Likewise.
+       * ipa-prop.c (ipa_prop_read_section): Likewise.
+
+       * df.h (DF_NOTE): Fix typo in comment.
+
+2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
+
+       * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
+       DECL_LANG_SPECIFIC.
+
+2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
+
+2011-12-13  Andrew Pinski  <apinski@cavium.com>
+           Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips-cpus.def: Add Octeon2.
+       * config/mips/mips-tables.opt: Regenerate.
+       * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
+       * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
+       * config/mips/octeon.md (octeon_arith): Add Octeon2.
+       (octeon_condmove): Likewise.
+       (octeon_load): Rename to ..
+       (octeon_load_o1): this.
+       (octeon_load_o2): New reserve.
+       (octeon_cop_o2): New reserve.
+       (octeon_store):  Match Octeon2 also.
+       (octeon_brj): Rename to ..
+       (octeon_brj_o1): this.
+       (octeon_brj_o2): New reserve.
+       (octeon_imul3): Rename to ...
+       (octeon_imul3_o1): this.
+       (octeon_imul3_o2): New reserve.
+       (octeon_imul): Rename to ...
+       (octeon_imul_o1): this.
+       (octeon_imul_o2): New reserve.
+       (octeon_mfhilo): Rename to ...
+       (octeon_mfhilo_o1): This.
+       (octeon_mfhilo_o2): New reserve.
+       (octeon_imadd): Rename to ...
+       (octeon_imadd_o1): this.
+       (octeon_imadd_o2): New reserve.
+       (octeon_idiv): Rename to ..
+       (octeon_idiv_o1): This.
+       (octeon_idiv_o2_si): New reserve.
+       (octeon_idiv_o2_di): Likewise.
+       (octeon_unknown): Match Octeon2 also.
+       * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
+       (mips_issue_rate): Octeon2 can issue 2 at a time.
+       * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
+       (TARGET_OCTEON2): New define.
+       (TUNE_OCTEON): Match Octeon2 also.
+
+2011-12-13  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/tso.h: New file.
+       * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
+       * config/sparc/sparc.c (sparc_option_override): Honor
+       SUBTARGET_DEFAULT_MEMORY_MODEL.
+       * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
+
+2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR middle-end/51443
+       * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
+       (diagnose_tm_1): Same.
+       (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
+       (ipa_tm_scan_irr_function): Return gracefully when no
+       DECL_STRUCT_FUNCTION.
+       (ipa_tm_scan_irr_block): Believe the user on TM attributes.
+
+2011-12-13  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/50628
+       * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
+       sub-accesses of scalar accesses.
+
+2011-12-13  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/51362
+       * ipa-cp.c (estimate_local_effects): When estimated size of a
+       specialized clone is zero, bump it to one.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48354
+       * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
+       * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
+       Stream DECL_ORIGINAL_TYPE.
+       * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
+       Likewise.
+
+2011-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+       Revert
+       2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51481
+       * gimple-fold.c (gimple_fold_call): Call
+       maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
+       edges, but gimple_fold_builtin result can't throw.
+
+2011-12-13  Jakub Jelinek  <jakub@redhat.com>
+           Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/51117
+       * tree-eh.c (sink_clobbers): New function.
+       (execute_lower_eh_dispatch): Call it for BBs ending with
+       internally throwing RESX.
+       * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
+       at the first real instruction.
+
+2011-12-13  Tristan Gingold  <gingold@adacore.com>
+
+       * final.c (final_scan_insn): Guard the call to begin_epilogue
+       debug hook.
+
+2011-12-13  Tristan Gingold  <gingold@adacore.com>
+
+       * vmsdbgout.c (vmsdbgout_write_source_line): New function.
+       (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
+       (vmsdbgout_begin_epilogue): Likewise.
+       (vmsdbgout_end_epilogue): Likewise.
+       (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51481
+       * tree-cfg.c (replace_uses_by): Pass proper arguments to
+       maybe_clean_or_replace_eh_stmt.
+
+2011-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/51519
+       * ipa-inline.c (edge_badness): Use edge growth in non-guessed
+       branch probability case as well.
+
+2011-12-13  Revital Eres  <revital.eres@linaro.org>
+
+       * modulo-sched.c (mark_loop_unsched): Free bbs.
+
+2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/51495
+       * function.c (thread_prologue_and_epilogue_insns): Don't add
+       to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
+       from basic blocks not needing prologue.
+
+       PR tree-optimization/51481
+       * gimple-fold.c (gimple_fold_call): Call
+       maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
+       edges, but gimple_fold_builtin result can't throw.
+
+2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/21617
+       * ira-color.c (bucket_allocno_compare_func): Don't compare
+       allocno classes.  Compare number of hard registers needed.
+
+2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR tree-optimization/50569
+       * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
+       in the expression of MODEL instead of just the last one.
+
+2011-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/51510
+       * calls.c (internal_arg_pointer_based_exp_scan): Don't use
+       VEC_safe_grow_cleared if idx is smaller than VEC_length.
+
+2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR middle-end/50873
+       * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
+       instead of force_reg.  Do nothing if the address is already a
+       non-virtual pseudo register.
+
+2011-12-12  Torvald Riegel  <triegel@redhat.com>
+
+       * gimplify.c (voidify_wrapper_expr): Add default handling for
+       outermost wrapper.
+
+2011-12-12  Torvald Riegel  <triegel@redhat.com>
+
+       * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
+       commits as equal.
+
+2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/darwin-sections.def (zobj_const_data_section): Fix over-
+       length section name.
+
+2011-12-11  Richard Henderson  <rth@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
+       BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
+
 2011-12-11  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/51485
@@ -6,8 +290,7 @@
 
 2011-12-11  Patrick Marlier  <patrick.marlier@gmail.com>
 
-       * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
-       edge.
+       * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
 
 2011-12-10  Richard Henderson  <rth@redhat.com>
 
 
        * ira-color.c (print_hard_regs_subforest): Use
        HOST_WIDEST_INT_PRINT_DEC instead of %lld.
-       (allocno_hard_regs): Change type of cost member
-       to HOST_WIDEST_INT.
+       (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
        (add_allocno_hard_regs): Change type of argument cost
        to HOST_WIDEST_INT.
        * ira-conflict.c (build_conflict_bit_table): Replace use
 
        PR tree-optimization/51482
        * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
-       Make sure to only create REAL_TYPE and INTEGER_TYPE component
-       vectors.
+       Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
 
 2011-12-09  Kai Tietz  <ktietz@redhat.com>
 
 2011-12-08  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/49772
-       * tree-inline.c (optimize_inline_calls): Remove bail out
-       on errors.
+       * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
 
 2011-12-08  Richard Guenther  <rguenther@suse.de>
 
        * config/avr/avr.c (avr_addrspace): New variable.
        (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
        avr_asm_named_section, avr_section_type_flags,
-       avr_asm_select_section, avr_addr_space_address_mode, 
+       avr_asm_select_section, avr_addr_space_address_mode,
        avr_addr_space_convert, avr_emit_movmemhi): Use it.
        (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
        (avr_pgm_segment): Remove.
 2011-12-06  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/51436
-       * gimple-fold.c (gimplify_and_update_call_from_tree): Guard
-       vdef check for the fact we do not have virtual operands when
-       not optimizing.
+       * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
+       for the fact we do not have virtual operands when not optimizing.
 
 2011-12-06  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/51245
        * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
        New function.
-       (vn_reference_lookup_3): Use it.  Properly valueize all refs
-       we create.
+       (vn_reference_lookup_3): Use it.  Properly valueize all refs we create.
 
 2011-12-06  Iain Sandoe  <iains@gcc.gnu.org>
 
        (struct allocno_color_data): Add new member last_process.  Move
        profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
        from object_color_data.
-       (object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
-       Remove.
+       (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
        (curr_allocno_process): New static variable.
        (object_hard_regs_eq, object_hard_regs_htab): Rename to
        allocno_hard_regs_eq and allocno_hard_regs_htab.
        (add_new_object_hard_regs_node_to_forest): Rename to
        add_new_allocno_hard_regs_node_to_forest.
        (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
-       Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
-       (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
-       (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
+       Rename to add_allocno_hard_regs_to_forest and
+       collect_allocno_hard_regs_cover.
+       (setup_object_hard_regs_nodes_parent): Rename to
+       setup_allocno_hard_regs_nodes_parent.
+       (remove_unused_object_hard_regs_nodes): Rename to
+       remove_unused_allocno_hard_regs_nodes.
        (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
-       Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
+       Rename to enumerate_allocno_hard_regs_nodes and
+       allocno_hard_regs_nodes_num.
        (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
        allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
        (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
        allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
-       (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
+       (object_hard_regs_subnode_index): Rename to
+       allocno_hard_regs_subnode_index.
        (setup_object_hard_regs_subnode_index): Rename to
        setup_allocno_hard_regs_subnode_index.
-       (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
-       (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
-       (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
+       (get_object_hard_regs_subnodes_num): Rename to
+       get_allocno_hard_regs_subnodes_num.
+       (form_object_hard_regs_nodes_forest): Rename to
+       form_allocno_hard_regs_nodes_forest.
+       (finish_object_hard_regs_nodes_tree): Rename to
+       form_allocno_hard_regs_nodes_forest
        (finish_object_hard_regs_nodes_forest): Rename to
        finish_allocno_hard_regs_nodes_forest.
-       (setup_left_conflict_sizes_p): Use allocno data instead of object
-       ones.  Process conflict allocnos once.
+       (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
+       Process conflict allocnos once.
        (update_left_conflict_sizes_p): Use allocno data instead of object
        ones.  Change prototype signature.
-       (empty_profitable_hard_regs): Use allocno data instead of object
-       ones.
+       (empty_profitable_hard_regs): Use allocno data instead of object ones.
        (setup_profitable_hard_regs): Ditto.
        (get_conflict_profitable_regs): Rename to
        get_conflict_and_start_profitable_regs.  Use allocno data for
        (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
        record_vop_access, get_vop_accesses, get_vop_stores,
        add_vop_ref_mapping): Remove.
-       (create_vop_ref_mapping_loop): Adjust to simply record all
-       stores.
+       (create_vop_ref_mapping_loop): Adjust to simply record all stores.
        (analyze_memory_references): Adjust.
        (refs_independent_p): Check for not analyzable refs.
        (can_sm_ref_p): Likewise.
 
 2011-12-05  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa.c (verify_ssa): Verify SSA names in the loop
-       over all SSA names.  Remove SSA operand checking, call
-       verify_ssa_operands.
+       * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
+       names.  Remove SSA operand checking, call verify_ssa_operands.
        * tree-ssa-operands.h (verify_ssa_operands): Declare.
        * tree-ssa-operands.c (verify_ssa_operands): New function.
 
        (cgraph_make_edge_direct): Likewise.
        * gimple-streamer-in.c (input_gimple_stmt): Do not
        call gimple_call_set_cannot_inline.
-       * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
-       values.
+       * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
        (gimple_call_set_cannot_inline): Remove.
        (gimple_call_cannot_inline_p): Likewise.
        * ipa-inline-analysis.c (initialize_inline_failed): Look
        (coverage_begin_function): ... here.
        * coverage.c (struct function_list): Rename to ...
        (struct coverage_data): ... this.  Update all uses.
-       (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New
-       globals.
+       (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
        (bbg_file_opened, bbg_function_announced): Remove.
        (get_coverage_counts): Adjust message.
        (coverage_begin_ouput): Rename to ...
        (process_file): Call find_exception_blocks if necessary.
        (read_graph_file): Adjust.  Note if an exceptional edge is seen.
        (find_exception_blocks): New.
-       (add_line_counts): Set line's unexceptional flag if not
-       exceptional.
+       (add_line_counts): Set line's unexceptional flag if not exceptional.
        (output_branch_count): Note exceptional arcs, lines and blocks.
        * gcov-dump.c (tag_arcs): Decode arc flags.
        * doc/gcov.texi: Document '=====' lines.