OSDN Git Service

* ipa-inline.c (cgraph_early_inlining): Handle flattening too.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 66b4543..addc094 100644 (file)
@@ -1,3 +1,845 @@
+2010-04-17  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
+
+2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (negdi2): Remove redundant code to force values into a
+       register.
+
+2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/bpabi.S: Add EABI alignment attributes to objects.
+       * arm/bpabi-v6m.S: Likewise.
+       * arm/crti.asm: Likewise.
+       * arm/crtn.asm: Likewise.
+       * arm/lib1funcs.asm: Likewise.
+       * arm/libunwind.S: Likewise.
+
+2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm-protos.h (tune_params): New structure.
+       * arm.c (current_tune): New variable.
+       (arm_constant_limit): Delete.
+       (struct processors): Add pointer to the tune parameters.
+       (arm_slowmul_tune): New tuning option.
+       (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
+       (all_cores): Adjust to pick up the tuning model.
+       (arm_constant_limit): New function.
+       (arm_override_options): Select the appropriate tuning model.  Delete
+       initialization of arm_const_limit.
+       (arm_split_constant): Use the new constant-limit model.
+       (arm_rtx_costs): Pick up the current tuning model.
+       * arm.md (is_strongarm, is_xscale): Delete.
+       * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
+       for Xscale variant architectures.
+       (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
+
+2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.c (arm_gen_constant): Remove unused variable
+       can_shift.
+       (arm_rtx_costs_1): Remove unused variable extra_cost.
+       (arm_unwind_emit_set): Use variable offset.
+       (thumb1_output_casesi): Remove unused variable flags.
+
+2010-04-16  Jeff Law  <law@redhat.com>
+
+       * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
+       needing assignment rather than doing a two-phase assignment.  Remove
+       unused variable 'm'.
+
+2010-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/43767
+       * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
+
+2010-04-16  Doug Kwan  <dougkwan@google.com>
+
+       * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
+       (next_operand_entry_id): New static variable.
+       (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
+       (add_to_ops_vec): Assigned unique ID to operand entry.
+       (struct oecount_s): New field ID.
+       (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
+       (undistribute_ops_list): Assign unique IDs to oecounts.
+       (init_reassoc): reset next_operand_entry_id.
+
+2010-04-16  Doug Kwan  <dougkwan@google.com>
+
+       * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
+       missing left parenthesis.
+       
+2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
+       *btdi_rex64 using SWI48 mode iterator.
+       (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
+       (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
+       *jcc_btdi_mask_rex64.
+
+2010-04-16  Anatoly Sokolov  <aesok@post.ru>
+
+       * double-int.h (tree_to_double_int): Convert to macro.
+       * double-int.c (tree_to_double_int): Remove.
+
+2010-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43762
+       * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
+       with want_address 2 and in case a single element list might be
+       possible, call it again with want_address 0.
+
+2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
+
+       * config/h8300/h8300.c (print_operand) : Modify case 'V' and
+       case 'W' print operands for HI mode.
+       * config/h8300/h8300.h (Y0, Y2) : New constraints.
+       * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
+       (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
+       * config/h8300/predicate.md (bit_register_indirect_operand): New.
+
+       * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
+
+       * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx, 
+       cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
+       #xx:3 and #xx:4 mode.
+
+       * config/h8300/h8300.md (inverted load with HImode dest): Add
+       support for H8300SX.
+
+       * config/h8300/predicate.md (bit_operand): Allow immediate values that
+       satisfy 'U' constraint.
+
+2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
+       flavor.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
+       works.
+
+2010-04-16  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (struct tree_decl_minimal): Move pt_uid ...
+       (struct tree_decl_common): ... here.
+       (DECL_PT_UID): Adjust.
+       (SET_DECL_PT_UID): Likewise.
+       (DECL_PT_UID_SET_P): Likewise.
+
+2010-04-16  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43572
+       * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
+       * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
+       * tree-flow.h (is_call_clobbered): Remove.
+       * tree-flow-inline.h (is_call_clobbered): Likewise.
+       * tree-dfa.c (dump_variable): Do not dump call clobber state.
+       * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
+       (execute_return_slot_opt): Adjust.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Remove
+       check for call clobbered vars here.
+       (find_tail_calls): Move tailcall verification to the
+       proper place.
+
+2010-04-16  Diego Novillo  <dnovillo@google.com>
+
+       * doc/invoke.texi: Explain how are unrecognized -Wno- warnings
+       handled.
+
+2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/40603
+       * config/arm/arm.md (cbranchqi4): New pattern.
+       * config/arm/predicates.md (const0_operand,
+       cbranchqi4_comparison_operator): New predicates.
+
+2010-04-16  Richard Guenther  <rguenther@suse.de>
+
+       * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
+       (dump_gimple_stmt): Likewise.
+
+2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * recog.h (struct recog_data): New field is_operator.
+       (struct insn_operand_data): New field is_operator.
+       * recog.c (extract_insn): Set recog_data.is_operator.
+       * genoutput.c (output_operand_data): Emit code to set the
+       is_operator field.
+       * reload.c (find_reloads): Use it rather than testing for an
+       empty constraint string.
+
+       PR target/41514
+       * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
+       If the previous insn is a cbranchsi4_insn with the same arguments,
+       omit the compare instruction.
+
+       * config/arm/arm.md (addsi3_cbranch): If destination is a high
+       register, inputs must be low registers and we need a low register
+       scratch.  Handle alternative 2 like alternative 3.
+
+2010-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
+       don't call get_addr on both.  If one expression is a VALUE and
+       the other a REG, check VALUE's locs if the REG isn't among them.
+
+2010-04-16  Christian Bruel  <christian.bruel@st.com>
+
+       * config/sh/sh.h (sh_frame_pointer_required): New function.
+       * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
+       (flag_omit_frame_pointer) Set.
+       (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
+       (rounded_frame_size): Adjust size with outgoing_args_size.
+       (sh_set_return_address): Must return from stack pointer.
+       * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
+       (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
+       (ACCUMULATE_OUTGOING_ARGS): Define.
+       * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
+       * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
+
+2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/43471
+       * config/sh/sh.c (sh_legitimize_reload_address): Use
+       MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
+       Remove a unneeded check for offset_base.
+
+2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_call_save_register_used): Switch back
+       to HARD_REGNO_NREGS.
+
+2010-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * alias.c (alias_set_subset_of): Handle alias-set zero
+       child properly.
+
+2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
+           Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
+       alternatives according to use of high and low regs.
+       * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
+       * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
+       optimizing for size on Thumb-2.
+
+2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
+
+       * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
+
+2010-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (struct variable_info): Add
+       is_fn_info flag.
+       (new_var_info): Initialize it.
+       (dump_constraints): Support printing last added constraints.
+       (debug_constraints): Adjust.
+       (dump_constraint_graph): Likewise.
+       (make_heapvar_for): Check for NULL cfun.
+       (get_function_part_constraint): New function.
+       (get_fi_for_callee): Likewise.
+       (find_func_aliases): Properly implement IPA PTA constraints.
+       (process_ipa_clobber): New function.
+       (find_func_clobbers): Likewise.
+       (insert_into_field_list_sorted): Remove.
+       (create_function_info_for): Properly allocate vars for IPA mode.
+       Do not use insert_into_field_list_sorted.
+       (create_variable_info_for): Properly generate constraints for
+       global vars in IPA mode.
+       (dump_solution_for_var): Always dump the solution.
+       (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
+       (find_what_var_points_to): Adjust.
+       (pt_solution_set): Change.
+       (pt_solution_ior_into): New function.
+       (pt_solution_empty_p): Export.
+       (pt_solution_includes_global): Adjust.
+       (pt_solution_includes_1): Likewise.
+       (pt_solutions_intersect_1): Likewise.
+       (dump_sa_points_to_info): Check some invariants.
+       (solve_constraints): Move constraint dumping ...
+       (compute_points_to_sets): ... here.
+       (ipa_pta_execute): ... and here.
+       (compute_may_aliases): Do not re-compute points-to info
+       locally if IPA info is available.
+       (ipa_escaped_pt): New global var.
+       (ipa_pta_execute): Properly implement IPA PTA.
+       * tree-into-ssa.c (dump_decl_set): Support dumping
+       decls not in referenced-vars.
+       * tree-flow.h (struct gimple_df): Add ipa_pta flag.
+       * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
+       (dump_points_to_solution): Likewise.
+       * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
+       * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
+       (remap_gimple_stmt): Reset call clobber/use information if
+       necessary.
+       (copy_decl_to_var): Copy DECL_PT_UID.
+       (copy_result_decl_to_var): Likewise.
+       * tree.c (make_node_stat): Initialize DECL_PT_UID.
+       (copy_node_stat): Copy it.
+       * tree.h (DECL_PT_UID): New macro.
+       (SET_DECL_PT_UID): Likewise.
+       (DECL_PT_UID_SET_P): Likewise.
+       (struct tree_decl_minimal): Add pt_uid member.
+       * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
+       (pt_solution_empty_p): Declare.
+       (pt_solution_set): Adjust.
+       (ipa_escaped_pt): Declare.
+       * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
+       * gimple-pretty-print.c (pp_points_to_solution): New function.
+       (dump_gimple_call): Dump call clobber/use information.
+       * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
+       * tree-pass.h (TDF_ALIAS): New dump option.
+       * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
+       * doc/invoke.texi (-fipa-pta): Update documentation.
+
+2010-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (OBJS-common): Add gimple-fold.o.
+       (gimple-fold.o): New rule.
+       * tree.h (maybe_fold_offset_to_reference,
+       maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
+       prototypes ...
+       * gimple.h: ... here.
+       * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
+       may_propagate_address_into_dereference): Move prototypes ...
+       * gimple.h: ... here.
+       * tree-ssa-ccp.c (get_symbol_constant_value,
+       may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
+       maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
+       maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
+       maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
+       ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
+       fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
+       gimplify_and_update_call_from_tree): Move ...
+       * gimple-fold.c: ... here.  New file.
+       (ccp_fold_builtin): Rename to ...
+       (gimple_fold_builtin): ... this.
+       * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
+
+2010-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
+       fit_double_type, force_fit_type_double, add_double_with_sign,
+       neg_double, mul_double_with_sign, lshift_double, rshift_double,
+       lrotate_double, rrotate_double, div_and_round_double): Move ...
+       * double-int.c: ... here.
+       * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
+       add_double, neg_double, mul_double_with_sign, mul_double,
+       lshift_double, rshift_double, lrotate_double, rrotate_double,
+       div_and_round_double): Move prototypes ...
+       * double-int.h: ... here.
+
+2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/43742
+       * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
+       matching constraints to ensure inputs match the output.
+
+2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/43742
+       * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
+       in an input-only operand.       
+
+2010-04-15  Anatoly Sokolov  <aesok@post.ru>
+
+       * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
+       (double_int_not, double_int_lshift, double_int_rshift): Declare.
+       (double_int_negative_p): Convert to static inline function.
+       * double-int.c (double_int_lshift, double_int_lshift): Add new function.
+       (double_int_negative_p): Remove.
+       * tree.h (lshift_double, rshift_double): 
+       * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
+       * fold-const.c (fold_convert_const_int_from_real,
+       fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
+       (lshift_double): Change type of arith argument to bool.
+       (rshift_double): Change type of arith argument to bool. Correct
+       comment.
+       * expmed.c (mask_rtx, lshift_value): (Ditto.).
+
+2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
+       
+       PR target/21803
+       * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
+       at the start and end of the then/else blocks, and omit them from the
+       conversion.
+       * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
+       argument; all callers changed.  Pass zero to old_insns_match_p instead.
+       (flow_find_head_matching_sequence): New function.
+       (old_insns_match_p): Check REG_EH_REGION notes for calls.
+       * basic-block.h (flow_find_cross_jump,
+       flow_find_head_matching_sequence): Declare functions.
+
+2010-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/36625
+       * c-common.c (attribute_takes_identifier_p): New fn.
+       * c-common.h: Declare it.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
+       splitter condition.
+       (*udivmod<mode>4): Ditto.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (maxmin_int): Rename code attribute from
+       maxminiprefix and update all users.
+       (maxmin_float): Ditto from maxminfprefix.
+       (logic): Ditto from logicprefix.
+       (absneg_mnemonic): Ditto from absnegprefix.
+       * config/i386/mmx.md: Update all users of maxminiprefix,
+       maxminfprefix and logicprefix for rename.
+       * config/i386/sse.md: Ditto.
+       * config/i386/sync.md (sync_<code><mode>): Update for
+       logicprefix rename.
+
+2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR 42966
+       * diagnostics.c (diagnostic_report_diagnostic): Mark specially
+       warnings converted to errors.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
+       used insn_type variable.
+       (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
+       to avoid set-but-not-used warning.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * df-core.c (df_ref_debug): Change format string placeholder
+       from 0x%x to %#x.
+       * dwarf2asm.c (dw2_asm_output_data_raw,
+       dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
+       dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
+       * dwarf2out.c (output_cfi, output_cfi_directive,
+       dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
+       output_cfa_loc_raw, output_die, output_ranges, output_file_names):
+       Ditto.
+       * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
+       * print-rtl.c (print_rtx): Ditto.
+
+2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR middle-end/42694
+       * builtins.c (expand_builtin_pow_root): New function to expand pow
+       calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
+       series of sqrt and cbrt calls under -ffast-math.
+       (expand_builtin_pow): Call it.
+
+2010-04-14  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/42963
+       * tree-cfg.c (touched_switch_bbs): New static variable.
+       (group_case_labels_stmt): New function broken out from ...
+       (group_case_labels): ... here, use the above.
+       (start_recording_case_labels): Allocate touched_switch_bbs.
+       (end_recording_case_labels): Deallocate it, call
+       group_case_labels_stmt.
+       (gimple_redirect_edge_and_branch): Remember index of affected BB.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
+       from insn template.
+
+2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
+
+2010-04-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
+       of optimized out static functions.
+       (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
+       cost computation.  Also sanity check for overflows.
+       (update_caller_keys): Update cgraph_edge_badness call; properly
+       update fibheap and sanity check that it is up to date.
+       (add_new_edges_to_heap): Update cgraph_edge_badness.
+       (cgraph_decide_inlining_of_small_function): Likewise;
+       add sanity checking that badness in heap is up to date;
+       improve dumping of reason; Update badness of calls to the
+       offline copy of function currently inlined; dump badness
+       of functions not inlined because of unit growth limits.
+
+2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/32628
+       * c-common.c (pointer_int_sum): Disregard overflow that occured only
+       because of sign-extension change when converting to sizetype here...
+       * fold-const.c (fold_convert_const_int_from_int): ...and not here.
+
+       * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
+       the folding to constants.  Remove redundant final conversion.
+       (fold_binary) <associate>: Do not associate if the re-association of
+       constants alone overflows.
+       (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
+       to the end of the list.
+       (multiple_of_p) <COND_EXPR>: New case.
+
+2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * opt-functions.awk (opt_sanitized_name): New.
+       (opt_enum): New.
+       * optc-gen.awk: Use it
+       * opth-gen.awk: Use it.
+
+2010-04-13  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
+       (sra_modify_assign): Delete stmts loading dead data even if racc has no
+       children.  Call replace_uses_with_default_def_ssa_name to handle
+       SSA_NAES on lhs.
+
+2010-04-13  Michael Matz  <matz@suse.de>
+
+       PR middle-end/43730
+       * builtins.c (expand_builtin_interclass_mathfn): Also create
+       a register if the predicate doesn't match.
+
+2010-04-13  Diego Novillo  <dnovillo@google.com>
+
+       * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
+       * c-pch.c: Include timevar.h.
+       (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
+       (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
+       * ggc-common.c: Include timevar.h.
+       (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
+       * timevar.def (TV_PCH_SAVE): Define.
+       (TV_PCH_CPP_SAVE): Define.
+       (TV_PCH_PTR_REALLOC): Define.
+       (TV_PCH_PTR_SORT): Define.
+       (TV_PCH_RESTORE): Define.
+       (TV_PCH_CPP_RESTORE): Define.
+
+2010-04-13  Michael Matz  <matz@suse.de>
+
+       * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
+       into MINUS_EXPRs.
+       (can_reassociate_p): New function.
+       (break_up_subtract_bb, reassociate_bb): Use it.
+
+2010-04-13  Richard Guenther  <rguenther@suse.de>
+
+       PR bootstrap/43737
+       * builtins.c (c_readstr): Fix assert.
+
+2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
+       when generating cltd insn.
+
+       (*ashl<mode>3_1): Remove special handling for register operand 2.
+       (*ashlsi3_1_zext): Ditto.
+       (*ashlhi3_1): Ditto.
+       (*ashlhi3_1_lea): Ditto.
+       (*ashlqi3_1): Ditto.
+       (*ashlqi3_1_lea): Ditto.
+       (*<shiftrt_insn><mode>3_1): Ditto.
+       (*<shiftrt_insn>si3_1_zext): Ditto.
+       (*<shiftrt_insn>qi3_1_slp): Ditto.
+       (*<rotate_insn><mode>3_1): Ditto.
+       (*<rotate_insn>si3_1_zext): Ditto.
+       (*<rotate_insn>qi3_1_slp): Ditto.
+
+2010-04-13  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (callused_id): Remove.
+       (call_stmt_vars): New.
+       (get_call_vi): Likewise.
+       (lookup_call_use_vi): Likewise.
+       (lookup_call_clobber_vi): Likewise.
+       (get_call_use_vi): Likewise.
+       (get_call_clobber_vi): Likewise.
+       (make_transitive_closure_constraints): Likewise.
+       (handle_const_call): Adjust to do per-call call-used handling.
+       (handle_pure_call): Likewise.
+       (find_what_var_points_to): Remove general callused handling.
+       (init_base_vars): Likewise.
+       (init_alias_vars): Initialize call_stmt_vars.
+       (compute_points_to_sets): Process call-used and call-clobbered
+       vars for call statements.
+       (delete_points_to_sets): Free call_stmt_vars.
+
+2010-04-13  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+       Only add RW dependence for dependence distance zero.
+       Adjust maximal vectorization factor according to dependences.
+       Move alignment handling ...
+       (vect_find_same_alignment_drs): ... here.  New function.
+       (vect_analyze_data_ref_dependences): Adjust.
+       (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
+       (vect_analyze_data_refs): Adjust minimal vectorization factor
+       according to data references.
+       * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
+       dependences before determining the vectorization factor.
+       Analyze alignment after determining the vectorization factor.
+       * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
+       dependences before alignment.
+       * tree-vectorizer.h (vect_analyze_data_ref_dependences):
+       Adjust prototype.
+       (vect_analyze_data_refs): Likewise.
+       (MAX_VECTORIZATION_FACTOR): New define.
+
+2010-04-13  Duncan Sands  <baldrick@free.fr>
+
+       * except.h (lang_eh_type_covers): Remove.
+       * except.c (lang_eh_type_covers): Likewise.
+
+2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+           Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
+       * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
+       UNITS_PER_LONG where it is ABI relevant.
+       (s390_return_addr_rtx): Likewise.
+       (s390_back_chain_rtx): Likewise.
+       (s390_frame_area): Likewise.
+       (s390_frame_info): Likewise.
+       (s390_initial_elimination_offset): Likewise.
+       (save_gprs): Likewise.
+       (s390_emit_prologue): Likewise.
+       (s390_emit_epilogue): Likewise.
+       (s390_function_arg_advance): Likewise.
+       (s390_function_arg): Likewise.
+       (s390_va_start): Likewise.
+       (s390_gimplify_va_arg): Likewise.
+       (s390_function_profiler): Likewise.
+       (s390_optimize_prologue): Likewise.
+       (s390_rtx_costs): Likewise.
+       (s390_secondary_reload): Likewise.
+       (s390_promote_function_mode): Likewise.
+       (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
+       (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
+       registers available.
+       (s390_unwind_word_mode): New function.
+       (s390_function_value): Split 64 bit values into register pair if
+       used as return value.
+       (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
+       function call parameters.  Handle parallels.
+       (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
+       (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
+       (DWARF_CIE_DATA_ALIGNMENT): New macro.
+       (s390_expand_setmem): Remove unused variable src_addr.
+       * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
+       deal with 64 bit registers.
+       * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
+       Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
+       (UNITS_PER_LONG): New macro.
+       * libjava/include/s390-signal.h: Define extended ucontext
+       structure containing the upper halfs of the 64 bit registers.
+
+2010-04-13  Simon Baldwin  <simonb@google.com>
+
+       * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
+
+2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
+       rvalue on the RHS if the LHS is of a non-renamable type.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
+
+2010-04-13  Matthias Klose  <doko@ubuntu.com>
+
+       * gcc.c (cc1_options): Handle -iplugindir before processing
+       the cc1 spec. Only add -iplugindir once.
+       (cpp_unique_options): Add -iplugindir option if -fplugin* options
+       found.
+       * common.opt (iplugindir): Remove `Separate' property, initialize.
+       * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
+       option.
+       * Makefile.in (check-%, check-parallel-%): Create plugin dir.
+       (distclean): Remove plugin dir.
+       * doc/invoke.texi: Document -iplugindir.
+
+2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * doc/plugins.texi (Loading Plugins): Document short
+       -fplugin=foo option.
+       (Plugin API): Mention default_plugin_dir_name function.
+
+       * gcc.c (find_file_spec_function): Add new declaration.
+       (static_spec_func): Use it for "find-file".
+       (find_file_spec_function): Add new function.
+       (cc1_options): Add -iplugindir option if -fplugin* options found.
+
+       * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
+
+       * plugin.c (add_new_plugin): Updated comment, and handle short
+       plugin name.
+       (default_plugin_dir_name): Added new function.
+
+       * common.opt (iplugindir): New option to set the plugin directory.
+
+2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_rotate): New code iterator.
+       (rotate_insn): New code attribute.
+       (rotate): Ditto.
+       (SWIM124): New mode iterator.
+       (<rotate_insn>ti3): New expander.
+       (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
+       any_rotate code iterator.
+       (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
+       using any_rotate code iterator and SWIM124 mode iterator.
+       (ix86_rotlti3): New insn_and_split pattern.
+       (ix86_rotrti3): Ditto.
+       (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
+       ix86_rotl{di,ti}3 patterns.
+       (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
+       (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
+       and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
+       *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
+       code iterator and SWI mode iterator.
+       (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
+       Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
+       code iterator.
+       (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
+       Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
+       (bswap rotatert splitter): Add splitter.
+       (bswap splitter): Macroize splitter using any_rotate code iterator.
+       Add insn predicate to split only for TARGET_USE_XCHGB or when
+       optimizing function for size.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/pa/pa.c (emit_move_sequence): Remove use of
+       deleted variable flag_argument_noalias.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.gcc: Removed *-*-solaris2.7* from list of obsolete
+       configurations.
+       Add to unsupported targets list.
+       * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
+       sparc*-sun-solaris2.[567]* from target lists.
+       * configure: Regenerate.
+       * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
+       removal.
+       Remove Solaris 7 patch references.
+       (Specific, sparc-sun-solaris2.7): Removed.
+       (sparc-sun-solaris2*): Update Solaris 7 example.
+       (sparc64-*-solaris2*): Likewise.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.build (alpha*-dec-osf4*): Remove.
+       * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
+       of obsolete configurations.
+       (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
+       support.
+       * config/alpha/t-osf4: Renamed to ...
+       * config/alpha/t-osf5: ... this.
+       * config/alpha/osf.h: Renamed to ...
+       * config/alpha/osf5.h: ... this.
+       Merged old osf5.h contents.
+       Update comments.
+       (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
+       (EXTRA_SPECS): Removed.
+       * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
+       reflect removal of Tru64 UNIX V4.0/V5.0 support.
+       Document that.
+
+2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/contrib.texi (Contributors, Rainer Orth): Update.
+
+2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR/43702
+       * config/i386/i386.c (x86_this_parameter): Handle aggregate for
+       __thiscall convention.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
+       orig_base.
+       * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
+
+2010-04-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * function.c (assign_parms_initialize_all): Add unused attribute
+       to fntype.
+
+2010-04-12  Richard Guenther  <rguenther@suse.de>
+
+       * gsstruct.def (GSS_CALL): New.
+       * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
+       * gimple.h: Include tree-ssa-alias.h.
+       (struct gimple_statement_call): New.
+       (union gimple_statement_struct_d): Add gimple_call member.
+       (gimple_call_reset_alias_info): Declare.
+       (gimple_call_use_set): New function.
+       (gimple_call_clobber_set): Likewise.
+       * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
+       * gimple.c (gimple_call_reset_alias_info): New function.
+       (gimple_build_call_1): Call it.
+       * lto-streamer-in.c (input_gimple_stmt): Likewise.
+       * tree-inline.c (remap_gimple_stmt): Likewise.
+       (expand_call_inline): Remove callused handling.
+       * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
+       * tree-dfa.c (dump_variable): Likewise.
+       * tree-parloops.c (parallelize_loops): Likewise.
+       * tree-ssa.c (init_tree_ssa): Likewise.
+       (delete_tree_ssa): Likewise.
+       * tree-flow-inline.h (is_call_used): Remove.
+       * tree-flow.h (struct gimple_df): Remove callused member.
+       * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
+       * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
+       (ref_maybe_used_by_call_p_1): Simplify.
+       (call_may_clobber_ref_p_1): Likewise.
+       * tree-ssa-structalias.c (compute_points_to_sets): Set
+       the call stmt used and clobbered sets.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
+       (find_tail_calls): Verify the tail call.
+
+2010-04-12  Richard Guenther  <rguenther@suse.de>
+
+       * ipa.c (cgraph_postorder): Adjust postorder to guarantee
+       single-iteration always-inline inlining.
+       * ipa-inline.c (cgraph_mark_inline): Do not return anything.
+       (cgraph_decide_inlining): Do not handle always-inline specially.
+       (try_inline): Remove always-inline cycle detection special case.
+       Do not recurse on always-inlines.
+       (cgraph_early_inlining): Do not iterate if not optimizing.
+       (cgraph_gate_early_inlining): remove.
+       (pass_early_inline): Run unconditionally.
+       (gate_cgraph_decide_inlining): New function.
+       (pass_ipa_inline): Use it.  Do not run the IPA inliner if
+       not inlining or optimizing.
+       (cgraph_decide_inlining_of_small_functions): Also consider
+       always-inline functions.
+       (cgraph_default_inline_p): Return true for nodes which should
+       disregard inline limits.
+       (estimate_function_body_sizes): Assume zero size and time for
+       nodes which are marked as disregarding inline limits.
+       (cgraph_decide_recursive_inlining): Do not perform recursive
+       inlining on always-inline nodes.
+
+2010-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/43699
+       * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
+       for exprs satisfying handled_component_p.
+
+2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
+       non-constant aggregate elements.
+
+       * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
+       is a real initialization.
+
 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
 
        PR c/36774
        * config/i386/i386.md (any_shiftrt): New code iterator.
        (shiftrt_insn): New code attribute.
        (shiftrt): Ditto.
-       (<shiftrt_insn><mode>3): Macroize expander from ashr<mode>3 and
-       lshr<mode>3 using any_shiftrt code iterator.
+       (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
+       using any_shiftrt code iterator.
        (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
-       *ashr<mode>3_doubleword and *lshr<mode>3_doubleword using
-       any_shiftrt code iterator.
+       *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
        (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
        pattern from corresponding peephole2 patterns.
-       (*<shiftrt_insn><mode>3_1): Macroize insn from *ashr<mode>3_1
-       and *lshr<mode>3_1 using any_shiftrt code iterator.
-       (*<shiftrt_insn>si3_1_zext): Ditto from *ashrsi3_1_zext
-       and *lshrsi3_1_zext.
-       (*<shiftrt_insn>qi3_1_slp): Ditto from *ashrqi3_1_slp
-       and *lshrqi3_1_slp.
-       (*<shiftrt_insn><mode>3_cmp): Ditto from *ashr<mode>3_cmp
-       and *lshr<mode>3_cmp.
-       (*<shiftrt_insn><mode>3_cmp_zext): Ditto from *ashr<mode>3_cmp_zext
-       and *lshr<mode>3_cmp_zext.
-       (*<shiftrt_insn><mode>3_cconly): Ditto from *ashr<mode>3_cconly
-       and *lshr<mode>3_cconly.
+       (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
+       using any_shiftrt code iterator.
+       (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
+       (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
+       (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
+       (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
+       *{ashr,lshr}<mode>3_cmp_zext.
+       (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
 
 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
 
        (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
        from corresponding peephole2 patterns.
        (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
-       *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
-       and *lshrdi3_cmp_rex64 using SWI mode iterator.
+       *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
+       and *lshrdi3_1_rex64 using SWI mode iterator.
        (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
        (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
        (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
        (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
        and x86_64_shift_adj_3 using SWI48 mode iterator.
        (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
-       *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
-       and *ashrdi3_cmp_rex64 using SWI mode iterator.
+       *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
+       and *ashrdi3_1_rex64 using SWI mode iterator.
        (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
        (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
        (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
        (arm_output_addr_const_extra): Output expression for new pattern.
        * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
 
-2010-04-10  Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
 
        * ira-costs.c (record_reg_classes): Ignore alternatives that are
        not enabled.
        * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
 
 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
-           Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+           Bernd Schmidt  <bernds@codesourcery.com>
 
        * loop-invariant.c (replace_uses): New static function.
        (move_invariant_reg): Use it to ensure we can replace the uses.
        * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
        an error.
 
-2010-03-19  Bernd Schmidt  <bernd.schmidt@codesourcery.com>
+2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
 
        PR rtl-optimization/42258
        * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a