+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.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
(logic): Ditto from logicprefix.
(absneg_mnemonic): Ditto from absnegprefix.
* config/i386/mmx.md: Update all users of maxminiprefix,
- maxminfprefix and loficprefix for rename.
+ maxminfprefix and logicprefix for rename.
* config/i386/sse.md: Ditto.
* config/i386/sync.md (sync_<code><mode>): Update for
logicprefix rename.
(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