OSDN Git Service

* doc/invoke.texi: Delete mcmodel=medium from powerpc options.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4bc8725..52583f1 100644 (file)
@@ -1,3 +1,701 @@
+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.h (df_confluence_function_n): Return bool.
+       * 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.
+
+2010-06-22  Jan Hubicka  <jh@suse.cz>
+
+       * bitmap.c (bitmap_clear_bit): Micro optimize.
+
+2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (SWI1248x): New mode iterator.
+       (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
+       using SWI124 mode iterator.
+       (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
+       mode iterator.
+       (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
+       *pushdi2_prologue_rex64 using P mode iterator.
+       (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
+       using SWI48 mode iterator.
+       (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
+       (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
+       using SWI1248x mode iterator.
+       (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
+       (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
+       SWI48 mode iterator.
+       (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
+       iterator.
+       (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
+       (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
+       SWI12 mode iterator.
+       (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
+       SWI12 mode iterator.
+       (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
+       (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
+       SWI24 mode iterator.
+       (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
+       SWI48 mode iterator.
+       (mov<mode>_insn_1): New expander.
+       (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
+       using SWI48x mode iterator.
+
+       (*movoi_internal_avx): Rename from *movoi_internal.
+       (*movti_internal_rex64): Rename from *movti_rex64.
+       (*movti_internal_sse): Rename from *movti_sse.
+       (*movdi_internal_rex64): Rename from *movdi_1_rex64.
+       (*movdi_internal): Rename from *movdi_2.
+       (*movsi_internal): Rename from *movsi_1.
+       (*movhi_internal): Rename from *movhi_1.
+       (*movqi_internal): Rename from *movqi_1.
+
+       (insv): Update the call to gen_movsi_insv_1 for rename.
+       * config/i386/i386.c (promote_duplicated_reg): Ditto.
+
+2010-06-22  Jan Hubicka  <jh@suse.cz>
+
+       * passes.c (execute_function_todo): Move call of statistics_fini_pass
+       to ...
+       (execute_todo) ... this one.
+
+2010-06-22  Alan Modra  <amodra@gmail.com>
+
+       PR target/44364
+       * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
+       * caller-save.c (insert_restore, insert_save): Use non-validate
+       form of adjust_address.
+
+2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/39690
+       * config/pa/pa.c (override_options): Disable
+       -freorder-blocks-and-partition.
+
+2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44615
+       * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
+
+       * config/i386/i386.md (type): Add sseishft1
+
+       * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
+       (ppro_insn_load): Likewise.
+       (ppro_insn_store): Likewise.
+       (ppro_insn_both): Likewise.
+
+       * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
+       (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
+       for type.
+       (*vec_extractv2di_1_avx): Likewise.
+       (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
+       type.  Remove atom_unit.
+       (*vec_extractv2di_1_sse2): Likewise.
+
+2010-06-21  DJ Delorie  <dj@redhat.com>
+
+       * diagnostic.h (diagnostic_classification_change_t): New.
+       (diagnostic_context): Add history and push/pop list.
+       (diagnostic_push_diagnostics): Declare.
+       (diagnostic_pop_diagnostics): Declare.
+       * diagnostic.c (diagnostic_classify_diagnostic): Store changes
+       from pragmas in a history chain instead of the global table.
+       (diagnostic_push_diagnostics): New.
+       (diagnostic_pop_diagnostics): New.
+       (diagnostic_report_diagnostic): Scan history chain to find state
+       of diagnostics as of the diagnostic location.
+       * opts.c (set_option): Pass UNKNOWN_LOCATION to
+       diagnostic_classify_diagnostic.
+       (enable_warning_as_error): Likewise.
+       * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
+       use in the history chain.
+       * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
+       allow these pragmas anywhere.
+       * doc/extend.texi: Document pragma GCC diagnostic changes.
+
+2010-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (add_linkage_name): New function.  Don't add
+       anything to DW_TAG_member DIEs.
+       (add_name_and_src_coords_attributes): Use it.
+       (gen_variable_die): Call it for C++ static data members if
+       specification is DW_TAG_member.
+
+       * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
+       C++ char16_t and char32_t.
+
+       * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
+       * genattrtab.c: Include vecprim.h.
+       (cached_attrs, cached_attr_count, attrs_seen_once,
+       attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
+       attrs_cached_after): New variables.
+       (find_attrs_to_cache): New function.
+       (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
+       (write_test_expr): Add attrs_cached argument, return it too,
+       attempt to cache non-const attributes used more than once in
+       a single case handling.
+       (write_attr_get): Use find_attrs_to_cache, for caching candidates
+       emit cached_* variables.  Adjust write_attr_set callers.
+       (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
+       to find attributes that should be cached in this block.  Adjust
+       write_test_expr callers.
+       (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
+       callers.
+       (make_automaton_attrs): Adjust write_test_expr caller.
+
+       * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
+       * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
+       (make_automaton_attrs): If find_tune_attr returns non-NULL,
+       write separate internal_dfa_insn_code_* and insn_default_latency_*
+       functions for each attribute's value and emit init_sched_attrs
+       function and function pointers.
+       * genattr.c (const_attrs, reservations): New variables.
+       (gen_attr): Add const attributes to const_attrs vector.
+       (check_tune_attr, find_tune_attr): New functions.
+       (main): Add reservations to reservations vector.  If find_tune_attr
+       returns true, add prototype for init_sched_attrs and make
+       internal_dfa_insn_code and insn_default_latency function pointers,
+       otherwise define init_sched_attrs as dummy macro.
+       * cfgexpand.c: Include insn-attr.h.
+       (gimple_expand_cfg): Call init_sched_attrs.
+
+       * stmt.c (resolve_asm_operand_names): Fix handling of %%.
+
+       PR target/44575
+       * config/i386/i386.c (ix86_gimplify_va_arg): When copying
+       va_arg from a set of register save slots into a temporary,
+       if the container is bigger than type size, do the copying
+       using smaller mode or using memcpy.
+
+       PR bootstrap/44426
+       * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
+       prototype.
+       (sel_print_to_dot): Remove macro.
+       (sel_print): Likewise.  New prototype.
+       * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
+       (sel_print): New function.
+
+2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
+       __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
+
+2010-06-21  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.h (PTRDIFF_TYPE): Define.
+       (SMALL_REGISTER_CLASS): Define (to zero).
+       (PRINT_OPERAND): Delete.
+       (PRINT_OPERAND_ADDRESS): Delete.
+       * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
+       (rx_print_operand_address): Delete prototype.
+       * config/rx/rx.c (rx_print_operand): Make static.
+       Allow %H and %L to handle CONST_DOUBLEs.
+       (rx_print_operand_address): Make static.
+       (rx_gen_move_template): Rename local variable 'template' to
+       out_template.
+       (rx_function_arg): Do not pass unknown sized objects in registers.
+       (TARGET_PRINT_OPERAND): Define.
+       (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
+
+2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.c (ix86_compute_frame_layout): Avoid
+       stack-alignment for simple leaf-functions.
+
+2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
+
+       * doc/install.texi: Document bootstrap-lto.
+
+2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/44248
+       * lto-streamer-in.c (input_bb): Leave debug stmts alone.
+       (input_function): Drop them here, if VTA is disabled.
+
+2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/44546
+       * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
+       New predicate.
+       * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
+       ix86_swapped_fp_comparsion_operator instead of
+       ix86_fp_comparison_operator.
+
+       (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
+       (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
+       (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
+       (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
+       (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
+       (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
+
+2010-06-20  Joseph Myers  <joseph@codesourcery.com>
+
+       PR other/32998
+       * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
+       OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
+       * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
+       (decode_cmdline_option): Update for this return value.  Set
+       orig_option_with_args_text field.  Set arg field for unknown
+       options.  Make static.
+       (decode_cmdline_options_to_array): New.
+       (prune_options): Update handling of find_opt return value.
+       * opts.c (read_cmdline_option): Take decoded option.  Return void.
+       (read_cmdline_options): Take decoded options.
+       (decode_options): Add parameters for decoded options.  Use
+       decode_cmdline_options_to_array.  Use decoded options for -O
+       scan.  Use integral_argument for -O parameters.  Update call to
+       read_cmdline_options.
+       (enable_warning_as_error): Update handling of find_opt return value.
+       * opts.h: Update comment on unknown options.
+       (struct cl_decoded_option): Update comments on opt_index and arg.
+       Add orig_option_with_args_text.
+       (decode_cmdline_option): Remove.
+       (decode_cmdline_options_to_array): Declare.
+       (decode_options): Update prototype.
+       * toplev.c (save_argv): Remove.
+       (save_decoded_options, save_decoded_options_count): New.
+       (read_integral_parameter): Remove.
+       (print_switch_values): Use decoded options.
+       (toplev_main): Don't set save_argv.  Update call to decode_options.
+       * toplev.h (read_integral_parameter): Remove.
+       * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
+
+2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/44072
+       * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
+       immediate.
+       * constraints.md (Pw, Px): New constraints.
+       * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
+
+2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (fma4modesuffixf4): Removed.
+       (ssemodesuffixf2s): Likewise.
+       (ssemodesuffixf4): Likewise.
+       (ssemodesuffixf2c): Likewise.
+       (ssescalarmodesuffix2s): Likewise.
+       (avxmodesuffixf2c): Likewise.
+       (ssemodesuffix): New.
+       (ssescalarmodesuffix): Likewise.
+       Update patterns with ssemodesuffix and ssescalarmodesuffix.
+
+2010-06-19  Philip Herron  <herron.philip@googlemail.com>
+
+       * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
+
+2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * stor-layout.c (debug_rli): Remove unused local variables.
+
+2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/40900
+       * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
+       original expression for later reuse.
+       <expand_decl_rtl>: Use promote_function_mode to compute the signedness
+       of the promoted RTL for a SSA_NAME on the LHS of a call statement.
+
+2010-06-18  Anatoly Sokolov  <aesok@post.ru>
+
+       * double-int.h (double_int_to_shwi, double_int_to_uhwi,
+       double_int_fits_in_uhwi_p): Implement as static inline.
+       (double_int_xor): New inline function.
+       (double_int_lrotate, double_int_rrotate, double_int_max,
+       double_int_umax, double_int_smax, double_int_min, double_int_umin,
+       double_int_smin): Declare.
+       (lrotate_double, rrotate_double): Remove declaration.
+       * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
+       double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
+       (double_int_lrotate, double_int_rrotate, double_int_max,
+       double_int_umax, double_int_smax, double_int_min, double_int_umin,
+       double_int_smin): New function.
+       * fold-const.c (int_const_binop): Clean up, use double_int_*
+       functions.
+       * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
+       double_int_* and immed_double_int_const functions.
+
+2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * function.h (types_used_by_cur_var_decl): Change type to a VEC.
+       * function.c (types_used_by_cur_var_decl): Likewise.
+       (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
+
+2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * tree.h (record_layout_info): Change type of pending_statics field
+       to a VEC.
+       * stor-layout.c (start_record_layout): Store NULL into
+       pending_statics.
+       (debug_rli): Call debug_vec_tree instead of debug_tree.
+       (place_field): Likewise.
+       (finish_record_layout): Likewise.
+
+2010-06-18  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
+
+2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/43740
+       * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
+       for SET source operand from SET destination operand.
+
+2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR rtl-optimization/39871
+       * reload1.c (init_eliminable_invariants): For flag_pic, disable
+       equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
+       (function_invariant_p): Rule out a plus of frame or arg pointer with
+       a SYMBOL_REF.
+       * ira.c (find_reg_equiv_invariant_const): Likewise.
+
+2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
+
+       * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
+       print_operand_address and puts to output the operand for CONST.
+
+2010-06-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44572
+       * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
+       hook.
+
+2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * v850-protos.h (print_operand): Delete.
+       (print_operand_address): Delete.
+       * v850.h (PRINT_OPERAND): Delete.
+       (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+       (PRINT_OPERAND_ADDRESS): Delete.
+       * v850.c (print_operand_address): Rename to...
+       (v850_print_operand_address): ...this.  Make static. Call
+       v850_print_operand.
+       (print_operand): Rename to...
+       (v850_print_operand): ...this.  Make static.  Call
+       v850_print_operand_address.
+       (v850_print_operand_punct_valid_p): New function.
+       (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
+       (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
+
 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
 
        * config/sh/sh-protos.h (print_operand): Delete.
 
 2010-06-16  Richard Guenther  <rguenther@suse.de>
 
-       * tree-inline.c (remap_gimple_op_r): Recurse using
-       remap_gimple_op_r.
+       * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
 
 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
 
        (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
        new static functions.
        (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
-       (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New 
+       (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
        static functions.
        (print_die): New case dw_val_class_vms_delta.
        (attr_checksum): Likewise.
        (PRINT_OPERAND_PUNCT_VALID_P): Delete.
        (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
        (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
-       * config/arm/arm.c (arm_print_operand_address): ...here.  New
-       function.
+       * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
        (arm_print_operand): Make static.
        (arm_print_operand_punct_valid_p): New function.
        (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
        (bitset): Remove early clobber from destination.
        (bitset_in_memory): Likewise.
        (lrintsf2): Clobber the cc0 register.
-       * config/rx/rx.c (rx_notice_update_cc):
-       Handle CC_SET_ZSC.
+       * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
        (rx_print_operand): Handle %N.
 
 2010-06-16  Jan Hubicka  <jh@suse.cz>
        * config.in: Regenerate.
        * config/rs6000/linux64.opt (mcmodel): New.
        * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
-       (TARGET_CMODEL): Define.
+       (TARGET_CMODEL, SET_CMODEL): Define.
        (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
        select CMODEL_MEDIUM default.
        * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
        (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".
 2010-05-29  Jan Hubicka  <jh@suse.cz>
 
        * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
-       refs and body; not the whole node for masters of materialized
-       clones.
+       refs and body; not the whole node for masters of materialized clones.
 
 2010-05-29  Mike Stump  <mikestump@comcast.net>
 
        * gcc.c (inform, warning, inform): New functions.
        (fatal_ice): Rename to internal_error; change cmsgid parameter to
        gmsgid.  All callers changed.
-       (notice): Rename to fnotice; add parameter fp.  All callers
-       changed.
+       (notice): Rename to fnotice; add parameter fp.  All callers changed.
        (fatal_error): Rename to fatal_signal.  All users changed.
        (fatal): Rename to fatal_error; change cmsgid parameter to
        gmsgid.  All callers changed.
        (warning): Declare.
        * config/darwin-driver.c (darwin_default_min_version): Use warning
        instead of fprintf for warnings.
-       * cppspec.c (lang_specific_driver): Use fatal_error instead of
-       fatal.
+       * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
 
 2010-05-28  Julian Brown  <julian@codesourcery.com>