+2011-05-14 Tobias Burnus <burnus@net-b.de>
+
+ * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
+
+2011-05-13 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.c (ipa_cst_from_jfunc): New function.
+ * ipa-prop.h (ipa_cst_from_jfunc): Declare.
+ * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
+ (evaluate_conditions_for_ipcp_clone): Removed.
+ (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
+ * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
+ * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
+
+2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
+ * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
+ lieu of MAY_HAVE_DEBUG_STMTS.
+ * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
+ debug statements if !MAY_HAVE_DEBUG_STMTS.
+
+2011-05-13 Martin Thuresson <martint@google.com>
+
+ PR gcov-profile/47793
+ * libgcov.c (gcov_exit): Support relative profile paths.
+ * doc/invoke.texi (-fprofile-dir): Update for above change.
+
+2011-05-13 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_canonical_types_compatible_p): Do not use
+ type-pair caching, do not compare hashes.
+
+2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR middle-end/48965
+ * tree-cfg.c (edge_to_cases_cleanup): Return true.
+ (verify_expr) [CASE_LABEL_EXPR]: Add checking.
+
+2011-05-13 Kai Tietz <ktietz@redhat.com>
+
+ * gimplify.c (gimplify_expr): Make sure operand is boolified.
+ * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
+ compatible type for TRUTH_NOT_EXPR.
+
+2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_save_reg): Change return type to bool.
+ (ix86_hard_regno_mode_ok): Change return value to bool. Use
+ can_create_pseudo_p ().
+
+2011-05-13 Richard Guenther <rguenther@suse.de>
+
+ PR lto/48978
+ * gimple.c (iterative_hash_gimple_type): Revert change in
+ pointer target and function result and argument hashing.
+
+2011-05-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
+ (*movxf_internal_nointeger): Ditto.
+ (*movdf_internal_rex64): Ditto.
+ (*movdf_internal): Ditto.
+ (*movdf_internal_nointeger): Ditto.
+ (*movsf_internal): Ditto.
+ (sincos splitters): Use can_create_pseudo ().
+
+2011-05-13 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/i386-opts.h: New.
+ * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
+ ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
+ ix86_section_threshold): Remove.
+ (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
+ OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
+ OPT_mbranch_cost_.
+ (ix86_option_override_internal): Don't decode strings for options
+ other than -march=, -mtune= and -mfpmath=. Don't allow for
+ __attribute__ uses in remaining diagnostics for options with
+ string arguments. Don't check for integer arguments being negative.
+ * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
+ enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
+ (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
+ ix86_branch_cost, ix86_section_threshold): Remove.
+ * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
+ HeaderInclude.
+ (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
+ but not Var.
+ (masm=): Use Enum and Init.
+ (asm_dialect): New Enum and EnumValue entries.
+ (mbranch-cost=): Use UInteger.
+ (mlarge-data-threshold=): Use UInteger and Init.
+ (mcmodel=): Use Enum and Init.
+ (cmodel): New Enum and EnumValue entries.
+ (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
+ (mpreferred-stack-boundary=, mincoming-stack-boundary=,
+ mregparm=): Use UInteger.
+ (mstringop-strategy=): Use Enum and Init.
+ (stringop_alg): New Enum and EnumValue entries.
+ (mtls-dialect=): Use Enum and Init.
+ (tls_dialect): New Enum and EnumValue entries.
+ (mabi=): Use Enum and Init.
+ (calling_abi): New Enum and EnumValue entries.
+ (mveclibabi=): Use Enum and Init.
+ (ix86_veclibabi): New Enum and EnumValue entries.
+
+2011-05-13 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
+ * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
+
+2011-05-13 Kai Tietz <ktietz@redhat.com>
+
+ PR middle-end/48984
+ * gimplify.c (gimplify_expr): Check for boolean_type_node instead
+ for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
+ (gimple_boolify): Check for cast for boolean_type_node instead for
+ BOOLEAN_TYPE.
+
+2011-05-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48172
+ * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
+ multiplying by number of iterations for equal step.
+ (vect_create_cond_for_alias_checks): Likewise.
+
+2011-05-13 Andreas Schwab <schwab@redhat.com>
+
+ * configure.ac: Use AS_HELP_STRING throughout.
+ * configure: Regenerate.
+
+2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
+ (ix86_emit_restore_regs_using_mov): Likewise.
+ (ix86_emit_restore_sse_regs_using_mov): Likewise.
+
+2011-05-12 Anatoly Sokolov <aesok@post.ru>
+
+ * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
+ SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
+ (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
+ * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
+ RTX_OK_FOR_OLO10_P): ...here.
+ (sparc_mode_dependent_address_p): Use symbolic_operand instead of
+ SYMBOLIC_CONST.
+
+2011-05-12 Kai Tietz <ktietz@redhat.com>
+
+ * gimplify.c (gimple_boolify): Re-boolify expression
+ arguments even if expression type is of kind BOOLEAN_TYPE.
+ (gimplify_boolean_expr): Removed.
+ (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
+ and XOR. Additional take care that we keep expression's type.
+ * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
+ of TRUTH_AND|OR|XOR_EXPR.
+
+2011-05-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/48975
+ * tree-if-conv.c (combine_blocks): Call free_bb_predicate
+ on all bbs here and free and clear ifc_bbs at the end.
+
+2011-05-12 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
+ NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
+ until after simple checks.
+ (gimple_types_compatible_p): Likewise.
+ (iterative_hash_gimple_type): Always hash pointer targets
+ and function return and argument types.
+ (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
+ hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
+ (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
+ handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
+ completely in the simple compare section.
+ (gimple_register_canonical_type): Query the cache again after
+ registering.
+
+2011-05-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48172
+ * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
+ the number of iterations from the segment size calculation.
+ (vect_create_cond_for_alias_checks): Adjust.
+
+2011-05-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/48967
+ * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
+ if validate_subreg fails.
+
+2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
+ accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
+ early.
+
+2011-05-12 DJ Delorie <dj@redhat.com>
+
+ * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
+ (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
+ created builtin into rx_builtins array.
+ (rx_builtin_decl): New function.
+ (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
+
+2011-05-12 DJ Delorie <dj@redhat.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
+ * config/rx/rx.c (CC_FLAG_FP): Fix comment.
+ (rx_is_legitimate_address): Add pre-decrement and post-increment
+ addressing in HImode and QImode. Fix test for out of range
+ REG+INT addressing.
+ (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
+ (rx_align_for_label): Test label before extracting its usage count.
+ (rx_adjust_insn_lengths): Fix selection of insn codes.
+ (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
+
+2011-05-11 Jason Merrill <jason@redhat.com>
+
+ * tree.c (type_hash_canon): Use struct tree_type_non_common.
+
+2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
+ reindent the subsequent block.
+
+2011-05-11 Satoru Takabayashi <satorux@google.com>
+ Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * doc/install.texi (Configuration): Document --with-linker-hash-style.
+ * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
+ * config.in: Add LINKER_HASH_STYLE.
+ * configure.ac: Add --with-linker-hash-style.
+ * configure: Regenerate.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/48964
+ * gimple.c (iterative_hash_canonical_type): Fix typo.
+
+2011-05-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (legitimize_tls_address)
+ <TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
+ expanders directly for TARGET_GNU2_TLS. Determine pic and
+ __tls_get_addr symbol reference here. Update call to
+ gen_tls_global_dynamic_{32,64} for added arguments.
+ <TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
+ expanders directly for TARGET_GNU2_TLS. Determine
+ __tls_get_addr symbol reference here. Update call to
+ gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
+ unique UNSPEC REG_EQUIV to libcall block.
+ (ix86_tls_get_addr): Declare static.
+ * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
+ * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
+ Do not determine pic and __tls_get_addr symbol reference here. Do not
+ call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
+ (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
+ (tls_global_dynamic_64): Add operand 2. Do not determine
+ __tls_get_addr symbol reference here. Do not call
+ gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
+ (tls_local_dynamic_base64): Ditto for operand 1.
+
+2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * function.c (expand_function_start): Initialize stack_check_probe_note
+ only if the generic stack checking mechanism is used.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/15256
+ * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
+ (A & B) | C, combine (A op CST1) op CST2.
+ (tree_ssa_forward_propagate_single_use_vars): Only bother to
+ visit assigns that have uses.
+
+2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
+
+ * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
+ * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
+ (unpack_ts_type_common_value_fields): ...this. Update comment.
+ (unpack_value_fields): Adjust for renaming.
+ (lto_input_ts_type_tree_pointers): Split into...
+ (lto_input_ts_type_common_tree_pointer): ...this and...
+ (lto_input_ts_type_non_common_tree_pointers): ...this.
+ (lto_input_tree_pointers): Adjust for above split.
+ * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
+ (pack_ts_type_common_value_fields): ...this. Update comment.
+ (lto_output_ts_type_tree_pointers): Split into...
+ (lto_output_ts_type_common_tree_pointers): ...this and...
+ (lto_output_ts_type_non_common_tree_pointers): ...this.
+ (lto_output_tree_pointers): Adjust for above split.
+ * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
+ TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
+ * stor-layout.c (vector_type_mode): Adjust location of mode field.
+ * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
+ Define.
+ (struct tree_type): Split into...
+ (struct tree_type_common: ...this and...
+ (struct tree_type_with_lang_specific): ...this and...
+ (struct tree_type_non_common): ...this. Adjust accessor macros
+ accordingly.
+ (TYPE_VALUES_RAW): Define.
+ (union tree_node): Update for above changes.
+ * tree.c (tree_node_structure_for_code) [tcc_type]: Return
+ TS_TYPE_NON_COMMON.
+ (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
+ Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
+ (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
+ * treestructu.def (TS_TYPE): Remove.
+ (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
+ Define.
+
+2011-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/48159
+ * tree-ssa.c (reset_debug_uses): New function.
+ * tree-flow.h (reset_debug_uses): New prototype.
+ * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
+ * tree-loop-distribution.c (generate_loops_for_partition): Call
+ reset_debug_uses on the stmts that will be removed. Keep around
+ all debug stmts, don't count them as bits in partition bitmap.
+ (generate_builtin): Don't count debug stmts or labels as bits in
+ partition bitmap.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_type_hash_1): Merge with ...
+ (gimple_type_hash): ... this.
+ (gtc_visit): Remove mode parameter and simplify accordingly.
+ (gimple_types_compatible_p_1): Likewise.
+ (gimple_types_compatible_p): Likewise.
+ (iterative_hash_gimple_type): Likewise.
+ (visit): Likewise.
+ (gimple_type_eq): Adjust.
+
+2011-05-11 Revital Eres <revital.eres@linaro.org>
+
+ * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
+ enters the branch create an anti edge in the opposite direction
+ to prevent the creation of reg-moves.
+ * modulo-sched.c: Adjust comment to reflect the fact we are
+ scheduling closing branch.
+ (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
+ (stage_count): New field in struct partial_schedule.
+ (calculate_stage_count): New function.
+ (normalize_sched_times): Rename to reset_sched_times and handle
+ incrementing the sched time of the nodes by a constant value
+ passed as parameter.
+ (duplicate_insns_of_cycles): Skip closing branch.
+ (sms_schedule_by_order): Schedule closing branch.
+ (ps_insn_find_column): Handle closing branch.
+ (sms_schedule): Call reset_sched_times and adjust the code to
+ support scheduling of the closing branch.
+ (ps_insert_empty_row): Update calls to normalize_sched_times
+ and rotate_partial_schedule functions.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/48953
+ * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
+
+2011-05-11 Joseph Myers <joseph@codesourcery.com>
+
+ * opts.c (finish_options): Move warning settings from process_options.
+ * toplev.c (process_options): Move warning settings to finish_options.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/18041
+ * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
+ (simplify_bitwise_binary): ... this. Handle operand conversions
+ by applying them to the result instead.
+ (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
+
+2011-05-11 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_canonical_types_compatible_p): Split out
+ from gimple_types_compatible_p and friends. Do not recurse
+ to pointed-to types.
+ (gimple_canonical_type_eq): Use it.
+ (iterative_hash_canonical_type): Split out from
+ iterative_hash_gimple_type and friends. Do not recurse
+ to pointed-to types.
+ (gimple_canonical_type_hash): Use it, allocate the hash here.
+