+2009-09-18 Neil Vachharajani <nvachhar@google.com>
+
+ * value-prof.c (interesting_stringop_to_profile_p): Added output
+ argument to indicate which parameter is the size parameter.
+ * value-prof.c (gimple_stringop_fixed_value): Use
+ INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
+ * value-prof.c (gimple_stringops_transform): Update call sites to
+ INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
+ * testsuite/gcc.dg/tree-prof/val-prof-7.c: Added test case.
+
+2009-09-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/38288
+ From David Binderman <dcb314@hotmail.com>:
+ * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
+ local variable f. Remove stale comments.
+ (ix86_compute_frame_layout): Remove useless local variable total_size.
+ Remove #if 0'd code.
+ (legitimate_address_p): Remove useless local variables
+ reason_rtx and reason.
+ (ix86_split_copysign_const): Remove useless local variable op1.
+ (scale_counter): Remove useless local variable piece_size_mask.
+
+2009-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
+ output decl.
+
+2009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at>
+
+ PR target/40913
+ * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
+
+2009-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
+ TYPE_STUB_DECL.
+
+2009-09-17 Alexandre Oliva <aoliva@redhat.com>
+
+ * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
+ DW_OP_implicit_value even without dwarf_version 4.
+
+2009-09-17 Jan Hubicka <jh@suse.cz>
+
+ * dwarf2out.c: Include tree-pass.h and gimple.h.
+ (loc_list_plus_const): New function.
+ (loc_descriptor_from_tree_1): Rename to ...
+ (loc_descriptor_from_tree): ... remove original.
+ (loc_list_from_tree): New function.
+ (add_AT_location_description): Accept location list.
+ (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
+ (concatn_mem_loc_descriptor): Remove.
+ (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
+ returning NULL.
+ (secname_for_decl): Move up.
+ (hidden_reference_p): New function; break out from ...
+ (loc_by_refernece): ... here; move up.
+ (dw_loc_list): New function.
+ (single_element_loc_list): New function.
+ (single_element_loc_list_p): New function.
+ (add_loc_descr_to_each): New function.
+ (add_loc_list): New function.
+ (loc_descr_from_tree): Make wraper of loc_list_from_tree.
+ (loc_list_from_tree): Reroganized from loc_descr_from_tree;
+ add diagnostics why expansion failed.
+ (add_location_or_const_value_attribute): Support location lists.
+ (add_bound_info): Likewise.
+ (descr_info_loc): Update call of loc_descriptor_from_tree.
+ (gen_variable_die): Work on location lists.
+ * final.c (pass_final): Add dump file.
+ * Makefile.in (dwarf2out.o): Add new dependencies.
+
+2009-09-17 Janis Johnson <janis187@us.ibm.com>
+
+ PR c/41049
+ * real.c decimal_from_integer, decimal_integer_string): New.
+ (real_from_integer): Use them as special case for decimal float.
+ * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
+ (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
+ Do not append zero after the decimal point in string to convert.
+
+2009-09-17 Alexander Monakov <amonakov@ispras.ru>
+
+ * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
+ for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
+
+2009-09-17 Martin Jambor <mjambor@suse.cz>
+
+ * common.opt (fipa-sra): New switch.
+ * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
+ * timevar.def (TV_IPA_SRA): New timevar.
+ * params.def (ipa-sra-ptr-growth-factor): New parameter.
+ * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
+ * tree-sra.c: Include cgraph.c.
+ (enum sra_mode): Added SRA_MODE_EARLY_IPA.
+ (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
+ and grp_not_necessarilly_dereferenced.
+ (func_param_count): New variable.
+ (encountered_apply_args): New variable.
+ (bb_dereferences): New variable.
+ (final_bbs): New variable.
+ (no_accesses_representant): New variable.
+ (no_accesses_p): New function.
+ (dump_access): Dump the new fields.
+ (sra_initialize): Set encountered_apply_args to false.
+ (get_ssa_base_param): New function.
+ (mark_parm_dereference): New function.
+ (create_access): Caring for INIDRECT_REFs and different handling of
+ varialble length accesses in early IPA SRA. Store the stmt - a new
+ parameter - to the new access.
+ (build_access_from_expr_1): New parameter stmt, passed to
+ create_access. Handle INDIRECT_REFs.
+ (build_access_from_expr): Pass the current statement to
+ build_access_from_expr_1.
+ (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
+ passes.
+ (build_accesses_from_assign): Pass the current statement to
+ build_access_from_expr_1. Do not create assign links in IPA-SRA.
+ (scan_function): Call handle_ssa_defs on phi nodes. Set bits in
+ final_bbs when necessary. Check for calls to __builtin_apply_args.
+ Fixup EH info if anythng was changed.
+ (is_unused_scalar_param): New function.
+ (ptr_parm_has_direct_uses): New function.
+ (find_param_candidates): New function.
+ (mark_maybe_modified): New function.
+ (analyze_modified_params): New function.
+ (propagate_dereference_distances): New function.
+ (dump_dereferences_table): New function.
+ (analyze_caller_dereference_legality): New function.
+ (unmodified_by_ref_scalar_representative): New function.
+ (splice_param_accesses): New function.
+ (decide_one_param_reduction): New function.
+ (enum ipa_splicing_result): New type.
+ (splice_all_param_accesses): New function.
+ (get_param_index): New function.
+ (turn_representatives_into_adjustments): New function.
+ (analyze_all_param_acesses): New function.
+ (get_replaced_param_substitute): New function.
+ (get_adjustment_for_base): New function.
+ (replace_removed_params_ssa_names): New function.
+ (sra_ipa_reset_debug_stmts): New function.
+ (sra_ipa_modify_expr): New function.
+ (sra_ipa_modify_assign): New function.
+ (convert_callers): New function.
+ (modify_function): New function.
+ (ipa_sra_preliminary_function_checks): New function.
+ (ipa_early_sra): New function.
+ (ipa_early_sra_gate): New function.
+ (pass_early_ipa_sra): New variable.
+ * Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
+
+2009-09-17 Michael Matz <matz@suse.de>
+
+ PR middle-end/41347
+ * tree.c (build_type_attribute_qual_variant): Export.
+ * tree.h (build_type_attribute_qual_variant): Declare.
+ * tree-inline.c (remap_type_1): Use it to build variants with
+ the original qualifiers and attributes.
+
+2009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * cfglayout.c (fixup_reorder_chain): Accept conditional jumps
+ without a fallthrough edge.
+
+2009-09-16 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
+ chip and ignore the "fast_interrupt" attribute if so.
+
+2009-09-16 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/41360
+ * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
+ barrier fix.
+
+2009-09-16 Richard Henderson <rth@redhat.com>
+
+ PR target/41246
+ * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
+ is set only if DECL_NO_STATIC_CHAIN is unset.
+ * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
+ (FOR_EACH_NEST_INFO): New.
+ (walk_all_functions): Use it.
+ (finalize_nesting_tree): Likewise.
+ (unnest_nesting_tree): Likewise.
+ (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
+ (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
+ (convert_gimple_call): Early out if gimple_call_chain already set.
+ (convert_all_function_calls): Iterate until no new functions
+ require a static chain.
+ (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
+ when building a trampoline. Use dump_function_to_file instead
+ of dump_function.
+ (lower_nested_functions): Open dump_file. Validate that decls
+ that have DECL_NO_STATIC_CHAIN from the front end don't have that
+ bit reset by this pass.
+
+2009-09-16 Michael Matz <matz@suse.de>
+
+ PR fortran/41212
+ * tree.h (struct tree_decl_common): Add decl_restricted_flag,
+ shorten decl_common_unused.
+ (DECL_RESTRICTED_P): New accessor.
+ * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
+ to disambiguate marked decls and restrict pointers.
+
+2009-09-16 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/41360
+ * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.
+
+2009-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ * integrate.c (set_block_abstract_flags): Call
+ set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
+
+2009-09-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34011
+ * tree-flow-inline.h (may_be_aliased): Compute readonly variables
+ as non-aliased.
+
+2009-09-16 DJ Delorie <dj@redhat.com>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
+ (sh_expand_prologue): Update calls to output_stack_adjust.
+ (sh_expand_epilogue): Likewise.
+
+2009-09-15 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR bootstrap/41349
+ * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
+ trying to limit the extent of searches in the insn stream.
+
+2009-09-15 Nathan Froyd <froydnj@codesourcery.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR target/41175
+ PR target/40677
+ * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
+ problem.
+ (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
+ SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
+ (rs6000_savres_strategy): Always save FP registers inline if the
+ target doesn't support hardware double-precision. Set the above
+ bits in return value when needed.
+ (rs6000_savres_routine_sym): Fix computation for cache selector.
+ Mark the generated symbol as a function. Rename exitp argument to
+ lr. Move code for determining the name of the symbol...
+ (rs6000_savres_routine_name): ...here. New function. Add cases for
+ getting the names right on AIX and 64-bit Linux.
+ (savres_routine_name): New variable.
+ (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert
+ lr isn't set when savep. Use r12 resp. r1 instead of r11 depending
+ on what the target routine uses as a base register. If savep && lr
+ describe saving of r0 into memory slot.
+ (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of
+ line calls for AIX ABI.
+ (rs6000_output_function_prologue): Use rs6000_savres_routine_name to
+ determine FP save/restore functions.
+ (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
+ frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of
+ gen_addsi3.
+ (rs6000_emit_epilogue): Adjust computation of restore_lr.
+ Duplicate restoration of LR and execute the appropriate one
+ depending on whether GPRs are being restored inline. Set r11 from
+ offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
+ r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3.
+ Fix out of line calls for AIX ABI.
+ * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
+ New insn.
+ * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
+ register 11.
+ (*restore_gpregs_spe): Likewise.
+ (*return_and_restore_gpregs_spe): Likewise.
+ * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
+ Define to empty string unconditionally.
+ * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
+ Define to empty string unconditionally.
+ (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
+ !TARGET_64BIT.
+
+2009-09-15 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
+ * params.def (inline-insns-auto): Likewise.
+
+2009-09-15 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-inline.c (estimate_function_body_sizes): Dump info about
+ individual statements only at TDF_DETAILS dump level. Format
+ source for 80 characters per line.
+
+2009-09-15 Christian Bruel <christian.bruel@st.com>
+
+ * regrename.c (do_replace): Update REG_DEAD notes.
+
+2009-09-15 Revital Eres <eres@il.ibm.com>
+
+ * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
+ * targhooks.c (default_builtin_support_vector_misalignment):
+ New builtin function.
+ * targhooks.h (default_builtin_support_vector_misalignment):
+ Declare.
+ * target.h (builtin_support_vector_misalignment):
+ New field in struct gcc_target.
+ * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
+ new builtin function.
+ * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
+ Define.
+ * config/rs6000/rs6000.c
+ (rs6000_builtin_support_vector_misalignment): New function.
+ (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.
+
2009-09-15 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P