OSDN Git Service

* doc/invoke.texi: Delete mcmodel=medium from powerpc options.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index fdd72da..52583f1 100644 (file)
+2010-06-25  Alan Modra  <amodra@gmail.com>
+
+       * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
+       * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
+       * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
+       CMODEL_LARGE as default.
+       * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
+       (offsettable_ok_by_alignment): Delete.
+       (rs6000_emit_move): Remove mcmodel=medium optimization.
+
+2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
+
+       With large parts from Jim Wilson:
+       PR target/43902
+       * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
+       WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
+       * optabs.c (optab_for_tree_code): Likewise.
+       (expand_widen_pattern_expr): Likewise.
+       * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
+       out of execute_optimize_widening_mul.
+       (convert_plusminus_to_widen): New function.
+       (execute_optimize_widening_mul): Use the two new functions.
+       * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
+       Remove code to generate widening multiply-accumulate.  Add support
+       for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
+       * gimple-pretty-print.c (dump_ternary_rhs): New function.
+       (dump_gimple_assign): Call it when appropriate.
+       * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
+       * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
+       (expand_gimple_stmt_1): Likewise.
+       (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
+       WIDEN_MULT_MINUS_EXPR.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+       * tree-inline.c (estimate_operator_cost): Likewise.
+       * gimple.c (extract_ops_from_tree_1): Renamed from
+       extract_ops_from_tree.  Add new arg for a third operand; fill it.
+       (gimple_build_assign_stat): Support operations with three operands.
+       (gimple_build_assign_with_ops_stat): Likewise.
+       (gimple_assign_set_rhs_from_tree): Likewise.
+       (gimple_assign_set_rhs_with_ops_1): Renamed from
+       gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
+       (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
+       (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
+       WIDEN_MULT_MINUS_EXPR.
+       * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
+       (extract_ops_from_tree_1): Adjust declaration.
+       (gimple_assign_set_rhs_with_ops_1): Likewise.
+       (gimple_build_assign_with_ops): Pass NULL for last operand.
+       (gimple_build_assign_with_ops3): New macro.
+       (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
+       gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
+       functions.
+       * tree-cfg.c (verify_gimple_assign_ternary): New static function.
+       (verify_gimple_assign): Call it.
+       * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
+       (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
+       functions for dealing with three-operand statements.
+       * tree.c (commutative_ternary_tree_code): New function.
+       * tree.h (commutative_ternary_tree_code): Declare it.
+       * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
+       statements.
+       (gimple_assign_nonzero_warnv_p): Likewise.
+       * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
+       * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
+       (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
+       * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
+       (struct hashtable_expr): New member ternary in the union.
+       (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
+       (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
+       (iterative_hash_hashable_expr): Likewise.
+       (print_expr_hash_elt): Handle EXPR_TERNARY.
+       * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
+       * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
+       statements.  Handle GIMPLE_TERNARY_RHS.
+
+2010-06-25  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
+
+2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       PR c/44517
+       * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
+       parameters are not good.
+       (c_parser_parameter_declaration): Error unknown type name if the type
+       name can't start declaration specifiers.
+
+2010-06-25  Joseph Myers  <joseph@codesourcery.com>
+
+       * gcc.c (translate_options): Don't mention +e in comment.
+       (process_command): Don't handle +e specially.
+
+2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
+
+       * ira-build.c (merge_hard_reg_conflicts): New function.
+       (create_cap_allocno, copy_info_to_removed_store_destinations,
+       propagate_some_info_from_allocno, propagate_allocno_info): Use it.
+       (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
+       (remove_unnecessary_allocnos, remove_low_level_allocnos)
+       copy_nifo_to_removed_store_destination): Use them.
+       * ira-lives.c (make_hard_regno_born): New function, split out of
+       make_regno_born.
+       (make_allocno_born): Likewise.
+       (make_hard_regno_dead): New function, split out of make_regno_dead.
+       (make_allocno_dead): Likewise.
+       (inc_register_pressure): New function, split out of set_allocno_live.
+       (dec_register_pressure): New function, split out of clear_allocno_live.
+       (mark_pseudo_regno_live): New function, split out of mark_reg_live.
+       (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
+       (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
+       (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
+       (make_pseudo_conflict): Use mark_pseudo_regno_dead and
+       mark_pseudo_regno_live.
+       (process_bb_node_lives): Use mark_pseudo_regno_live,
+       make_hard_regno_born and make_allocno_dead.
+       (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
+       set_allocno_live, clear_allocno_live): Delete functions.
+
+       * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
+       * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
+       functions.
+       (ira_flattening): Use ira_parent_allocno.
+       * ira-conflicts.c (process_regs_for_copy, propagate_copies)
+       build_allocno_conflicts): Use ira_parent_or_cap_allocno.
+
+       * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
+       statement.
+
+       * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
+       TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
+       minmax_set_iter_cond, minmax_set_iter_next,
+       FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
+       CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
+       ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
+       ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
+       uses changed.
+
+       * ira-int.h (struct live_range, live_range_t): Renamed from struct
+       ira_allocno_live_range and allocno_live_range_t; all uses changed.
+       * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
+       All uses changed.
+
+2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
+
+       * thumb2.md (thumb2_tlobits_cbranch): Delete.
+       (peephole2 to convert zero_extract/compare of single bit to
+        lshift/compare): New.
+
+2010-06-24  Anatoly Sokolov  <aesok@post.ru>
+
+       * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
+       recursive call and call to 'int_const_binop'.
+       (build_range_check, fold_cond_expr_with_comparison, unextend,
+       fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
+       multiple_of_p): Adjust call to const_binop.
+
+2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
+       determine size of XFmode operand.
+       (XFmode extended DFmode push splitter): Ditto.
+       (XFmode extended SFmode push splitter): Ditto.
+
+2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44588
+       * config/i386/i386.md (extract_code): New.
+       (<u>divmodqi4): Likewise.
+       (divmodhiqi3): Likewise.
+       (udivmodhiqi3): Likewise.
+       (<u>divqi3): Remvoved.
+
+2010-06-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/44492
+       * recog.h (struct recog_data): Add is_asm field.
+       * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
+       present in constraints of inline-asm operand and memory operand
+       contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
+       (extract_insn): Initialize recog_data.is_asm.
+       * doc/md.texi (Constraints): Document operand side-effect rules.
+
+2010-06-24  Andi Kleen  <ak@linux.intel.com>
+
+       * c-parser.c (c_parser_conditional_expression): Call
+       warn_for_omitted_condop.
+       * doc/invoke.texi: Document omitted condop warning.
+
+2010-06-24  Nick Clifton<nickc@redhat.com>
+
+       * loop-unswitch.c (compare_and_jump_seq): Assert that the last
+       insn in the sequence is a jump insn before setting its label.
+
+2010-06-24  Alan Modra  <amodra@gmail.com>
+
+       * collect2.c (main): Match exactly --version and --help.
+
+2010-06-24  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c-pragma.c: Don't include rtl.h.
+
+2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
+       using X87MODEF mode iterator.
+       (pushsf splitter): Macroize splitter using P mode iterator.
+       (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
+       mode iterator.
+
+       (*movxf_internal): Rename from *movxf_integer.
+       (*movxf_internal_nointeger): Rename from *movxf_nointeger.
+       (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
+       (*movdf_internal): Rename from *movdf_integer.
+       (*movdf_internal_nointeger): Rename from *movdf_nointeger.
+       (*movsf_internal): Rename from *movdf_1.
+
+2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
+       (const_gimple_seq_node): Removed typedefs.
+
+       * gimple.h: (gimple_seq_node_d, gimple_seq_node)
+       (const_gimple_seq_node): Added typedefs moved from coretypes.h.
+
+2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
+       CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
+       CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
+       and CODE_FOR_vec_extract_lo_v4df.
+
+       * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
+       Changed to define_insn_and_split.
+       (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
+       (vec_extract_lo_v16hi): Likewise.
+       (vec_extract_lo_v32qi): Likewise.
+       (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
+       (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
+
+2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR target/44640
+       * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
+       * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
+       (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
+       (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
+       (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
+
+       PR target/44640
+       * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
+
+       PR other/44644
+       * df-core.c (struct df): Rename to df_d.
+       * df.h (struct df): Likewise.
+       * dse.h (struct df): Remove forward declaration.
+       * recog.h (struct insn_data): Rename to:
+       (struct_insn_data_d).  Adjusted all users.
+
+2010-06-23  Arnaud Charlet  <charlet@adacore.com
+
+       PR ada/22220
+       * doc/install.texi: Update requirements to build GNAT.
+
+2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
+       enum type.
+       (m68k_sched_attr_opx_type): Remove unreachable return.
+       (m68k_sched_attr_opy_type): Likewise.
+       (m68k_sched_attr_size): Likewise.
+       (sched_get_opxy_mem_type): Likewise.
+       (m68k_sched_attr_op_mem): Likewise.
+
+2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
+       new statement and adjust VDEF only if necessary.  Remove superfluous
+       call to maybe_clean_or_replace_eh_stmt.
+       * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
+       copy the flags.
+       * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
+       * tree-inline.c (copy_bb): ...and not there.
+
+2010-06-22  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf2out.c (is_nested_in_subprogram): New function.
+       (should_move_die_to_comdat): Use it.
+       (copy_ancestor_tree): Don't mark DIEs here.
+       (copy_decls_walk): Start walk from root of newly-added tree;
+       mark DIEs here instead.
+
+2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (unit): Also check sseishft1.
+
+2010-06-22  Jan Hubicka  <jh@suse.cz>
+
+       * gimple.h (gimple_expr_code): Do checking on when gimple checking is
+       enabled.
+
 2010-06-22  Jan Hubicka  <jh@suse.cz>
 
-       * df-problems.c (df_rd_confluence_n, df_lr_confluence_n, df_live_confluence_n,
-       df_byte_lr_confluence_n, df_md_confluence_n): Return true if something changed.
+       * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
+       df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
+       Return true if something changed.
        * df.h (df_confluence_function_n): Return bool.
-       * df-core.c (df_worklist_propagate_forward, df_worklist_propagate_backward):
-       track changes and ages.
+       * df-core.c (df_worklist_propagate_forward,
+       df_worklist_propagate_backward): Track changes and ages.
        (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
        track ages.
        * dse.c (dse_confluence_n): Return always true.
        (SWI48x): Ditto.
        (SWI12): Ditto.
        (SWI24): Ditto.
-       
+
        (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
        SWI1248x mode iterator.
        (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
        (analyze_access_subtree): Pass negative allow_replacements to children
        if the current type is scalar.
 
-2010-06-09  Joern Rennecke  <amylaar@spamcop.net>
+2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
 
        PR testsuite/42843
        * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".