+2011-05-31 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
+ to ...
+ (forward_propagate_into_comparison_1): ... this.
+ (forward_propagate_comparison): Rename to ...
+ (forward_propagate_into_comparison): ... this. Split out
+ real forward propagation code to ...
+ (forward_propagate_comparison): ... this.
+ (forward_propagate_into_gimple_cond): Remove looping.
+ (forward_propagate_into_cond): Likewise.
+ (simplify_not_neg_expr): Return whether we have done something.
+ (simplify_gimple_switch): Likewise.
+ (tree_ssa_forward_propagate_single_use_vars): Rename to ...
+ (ssa_forward_propagate_and_combine): ... this. Re-structure
+ to do a forward forward-propagation walk on BBs and a backward
+ stmt combining walk on BBs. Consistently re-scan changed
+ statements.
+ (pass_forwprop): Adjust.
+
+2011-05-30 Ian Lance Taylor <iant@google.com>
+
+ * godump.c (go_format_type): Correct length of name added to
+ obstack for anonymous field.
+
+2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/49186
+ * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
+ part of the second operand is 0.
+
+2011-05-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
+ to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
+ to memory for !TARGET_MEMORY_MISMATCH_STALL.
+ (*movdf_internal_rex64): Do not penalize F->r alternative.
+ (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
+ memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
+ when optimizing function for size. Do not move CONST_DOUBLEs
+ directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
+ (FP move splitters): Merge {TF,XF,DF}mode move splitters. Do not
+ handle SUBREGs. Do not check for MEM_P operands in the insn condition,
+ check for ANY_FP_REGNO_P instead.
+ * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
+ TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
+ function for speed.
+ * config/i386/i386.c (ix86_option_override_internal): Do not
+ set TARGET_INTEGER_DFMODE_MOVES here.
+
+2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/49168
+ * config/i386/i386.md (*movtf_internal): Handle misaligned
+ load/store.
+
+2011-05-30 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
+ DW_TAG_rvalue_reference_type even for
+ -gdwarf-4 -fno-debug-types-section.
+
+2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/46728
+ * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
+ (build_and_insert_binop): New.
+ (gimple_expand_builtin_pow): Reorder args for
+ build_and_insert_call; use build_and_insert_binop; add more
+ optimizations for fractional exponents.
+
+2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
+
+ PR bootstrap/49190
+
+ Revert:
+ 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (struct tree_identifier): Inherit from tree_typed, not
+ tree_common.
+ (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
+ * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
+ TS_BASE instead of TS_COMMON.
+ * varasm.c (assemble_name): Remove assert.
+
+2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config.gcc: Keep obselete list sorted.
+
+2011-05-30 Jakub Jelinek <jakub@redhat.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
+ crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
+ there is a DRAP register and arg_pointer_rtx is the CFA pointer.
+ (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
+ (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
+
+2011-05-30 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_types_compatible_p_1): Compare record
+ and union type members properly.
+
+2011-05-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/49210
+ * ipa-split.c (split_function): Care for the case where the
+ call result is not trivially convertible to the result holding
+ variable.
+
+2011-05-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/49218
+ * tree-vrp.c (adjust_range_with_scev): Properly check whether
+ overflow occured.
+
+2011-05-30 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_into_comparison):
+ New function split out from ...
+ (forward_propagate_into_gimple_cond): ... here. Adjust.
+ (forward_propagate_into_cond): Likewise.
+ (forward_propagate_comparison): Also propagate into
+ comparisons on assignment RHS. Change return value to
+ behave similar to forward_propagate_into_cond.
+ (tree_ssa_forward_propagate_single_use_vars): Handle
+ strict-overflow warnings properly for forward_propagate_comparison.
+
+2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
+ from plugin linker.
+ * configure: Regenerate.
+
+2011-05-30 Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/49199
+ * tree-vect-loop.c (vect_is_slp_reduction): Check that the
+ non-reduction operands are either defined in the loop or by induction.
+
+2011-05-29 Xinliang David Li <davidxl@google.com>
+
+ * opts-global.c (handle_common_deferred_options): Handle new options.
+ * passes.c (register_one_dump_file): Call register_pass_name.
+ (execute_one_pass): Check explicit enable/disable flag.
+ (passr_hash): New function.
+ (passr_eq): Ditto.
+ (register_pass_name): Ditto.
+ (get_pass_by_name): Ditto.
+ (pass_hash): Ditto.
+ (pass_eq): Ditto.
+ (enable_pass): Ditto.
+ (disable_pass): Ditto.
+ (is_pass_explicitly_enabled_or_disabled): Ditto.
+
+2011-05-29 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movoi_internal_avx): Use
+ standard_sse_constant_opcode for alternative 0.
+ (*movti_internal_sse): Ditto.
+ (*movti_internal_rex64): Use standard_sse_constant_opcode for
+ alternative 2.
+ (*movdi_internal_rex64): Use standard_sse_constant_opcode for
+ sselog1 type moves.
+ (*movsi_internal): Ditto.
+ (*movdi_internal): Ditto. Add ssecvt type moves.
+
+2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/48830
+ * rtlanal.c (simplify_subreg_regno): Adjust comment.
+
+2011-05-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/49095
+ * config/i386/predicates.md (plusminuslogic_operator): New predicate.
+ * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
+
+2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/43995
+ * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
+ recurse_p argument. Only follow register copies if it is set,
+ and prevent mips_find_pic_call_symbol from recursing.
+ (mips_find_pic_call_symbol): Add a recurse_p argument.
+ Pass it to mips_pic_call_symbol_from_set.
+ (mips_annotate_pic_calls): Update accordingly.
+
+2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * emit-rtl.c (try_split): Use a loop to search for
+ NOTE_INSN_CALL_ARG_LOCATIONs.
+
+2011-05-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/49217
+ * ipa-pure-const.c (propagate_pure_const): Fix typos.
+
+2011-05-28 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
+ length.
+ (string_slot_free): Remove
+ (create_output_block): Initialize obstack.
+ (destroy_output_block): Free obstack.
+ (lto_string_index): Add PERSISTENT parameter; do not duplicate
+ the string unless it needs to be added into the hash.
+ (lto_output_string_with_length): Add persistent attribute;
+ handle NULL strings.
+ (lto_output_string): Add PERSISTENT parameter.
+ (output_string_cst, output_identifier): Simplify.
+ (lto_output_location_bitpack): Update.
+ (lto_output_builtin_tree): Update.
+ * lto-streamer.h (struct output_block): Add obstack.
+ (lto_output_string, lto_output_string_with_length): Remove
+ declarations; functions are static now.
+
+2011-05-28 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
+ pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
+ pack_ts_function_decl_value_fields, lto_output_builtin_tree,
+ output_cfg, output_gimple_stmt): Use enum and variable length i/o.
+ * lto-streamer-in.c (input_cfg, input_gimple_stmt,
+ unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
+ unpack_ts_decl_with_vis_value_fields,
+ unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
+ lto_get_builtin_tree): Use enum and variable length i/o.
+ * basic-block.h (profile_status_d): Add PROFILE_LAST.
+ * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
+ New functions.
+ (bp_pack_enum, bp_unpack_enum): New macros.
+
+2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * genrecog.c: Remove redundant forward declarations.
+
+2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config.gcc: Deprecate mips*-*-openbsd*.
+
+2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR bootstrap/49195
+ * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
+ for match_op_dup.
+
+2011-05-27 Andrew Pinski <pinskia@gmail.com>
+
+ PR middle-end/48981
+ * gengtype.c (vec_prefix_type): New function.
+ (note_def_vec): Use vec_prefix_type and change the length
+ attribute to be based on the prefix.
+ * vec.c: Include coretypes.h before vec.h.
+ (struct vec_prefix): Remove.
+ (vec_gc_p_reserve): Change the offsetof to sizeof.
+ (vec_gc_p_reserve_exact): Likewise.
+ (vec_heap_p_reserve): Likewise.
+ (vec_heap_p_reserve_exact): Likewise.
+ (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
+ (vec_stack_p_reserve): Change the offsetof to sizeof.
+ (vec_stack_p_reserve_exact): Likewise.
+ * vec.h (struct vec_prefix): New struct definition.
+ (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
+ (VEC_T_GTY(T,B)): Likewise.
+ (DEF_VEC_FUNC_P(T)): Use prefix field.
+ (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
+ (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
+
+2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/46728
+ * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
+ (powi_as_mults): Add gimple_set_location.
+ (build_and_insert_call): New.
+ (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
+ 0.5, 0.25, 0.75, 1./3., or 1./6.
+
+2011-05-27 Alexander Monakov <amonakov@ispras.ru>
+
+ * doc/contrib.texi: Update copyright years.
+ (Contributors): Add Zdenek Sojka.
+
+2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
+
+ * c-decl.c (c_push_function_context): Copy the current statement
+ list stack.
+ (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
+ (finish_struct): Call building_stmt_list_p instead of checking
+ cur_stmt_list.
+ * c-parser.c (c_parser_postfix_expression): Likewise.
+ * c-typeck.c (c_end_compound_stmt): Likewise.
+ * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
+ * tree-iterator.c (stmt_list_cache): Change to a VEC.
+ (alloc_stmt_list): Adjust for stmt_list_cache's new type.
+ (free_stmt_list): Likewise.
+ * tree.h (struct tree_statement_list): Include typed_tree instead
+ of tree_common.
+ * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
+ as TS_TYPED instead of TS_COMMON.
+
+2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
+ (HAVE_AS_IX86_TLSGDPTL): Define.
+ (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
+ (HAVE_AS_IX86_TLSLDMPLT): Define.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
+ * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
+ TARGET_SUN_TLS, use @tlsgdplt or @plt.
+ (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
+ (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
+ @tlsldmplt or @plt.
+ (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
+
+2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
+
+ * sched-int.h (struct _haifa_deps_insn_data): New members cond
+ and reverse_cond.
+ (INSN_COND, INSN_REVERSE_COND): New macros.
+ * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
+ once.
+ (sched_get_condition_with_rev): Cache the results, and look them up
+ if possible.
+ (sched_analyze_insn): Destroy INSN_COND of previous insns if they
+ are clobbered by the current insn.
+ * target.def (exposed_pipline): New sched data hook.
+ * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
+ * doc/tm.texi: Regenerate.
+
+2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/49170
+ * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
+ sincos or cexp.
+
+2011-05-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/49189
+ * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
+ of comparisons.
+
+2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
+
+ * haifa-sched.c (sched_scan_info): Remove.
+ (schedule_block): Call sched_extend_luids rather than sched_init_luids
+ with NULL args.
+ (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
+ Remove functions.
+ (sched_scan): Remove.
+ (sched_extend_luids): Renamed from luids_extend_insn and no longer
+ static. All callers changed.
+ (sched_init_insn_luid): Renamed from luids_init_insn and no longer
+ static. All callers changed.
+ (sched_init_luids): Remove all arguments except the first. All
+ callers changed. Don't use sched_scan.
+ (haifa_init_h_i_d): Likewise.
+ (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
+ manually rather than using sched_init_luids. Likewise with
+ extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
+ * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
+ rather than sched_init_luids with NULL args.
+ * sel-sched-ir.c (new_insns): Remove variable.
+ (sched_scan): New static function, previously in haifa-sched.c. Remove
+ all arguments but the first two; all callers changed.
+ (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
+ rather than sched_init_luids.
+ (sel_init_bbs): Remove second argument. All callers changed.
+ (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
+ with NULL arguments.
+ (create_insn_rtx_from_pattern): Likewise.
+ * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
+ * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
+ (sched_init_insn_luid, sched_extend_luids): Declare.
+ (sched_scan_info_def, sched_scan_info, sched_scan): Remove
+ declarations.
+
+2011-05-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/49177
+ * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
+ A CMP B ? (T) true : (T) false for non-integral types T again.
+
+2011-05-27 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
+ so 0 means NULL string.
+ (lto_output_string_with_length): ... here.
+ (lto_output_string, output_string_cst, output_identifier): Update
+ handling of NULL strings.
+ (lto_output_location_bitpack): New function.
+ (lto_output_location): Use it.
+ (lto_output_tree_ref): Use output_record_start.
+ (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
+ len values.
+ * lto-streamer-in.c (string_for_index): Break out from ...; offset
+ values by 1.
+ (input_string_internal): ... here;
+ (input_string_cst, input_identifier, lto_input_string): Update handling
+ of NULL strings.
+ (lto_input_location_bitpack): New function
+ (lto_input_location): Use it.
+ (unpack_ts_type_common_value_fields): Pack align & alias in var len
+ values.
+ * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
+ bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
+ (bp_pack_value): Sanity check the value range.
+ * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
+ New functions.
+ * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
+ New functions.
+
+2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
+ call_arg_location instructions down the floor.
+
+2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/49154
+ * ira.c (setup_pressure_classes): Process class without sublcasses
+ as a candidate for pressure classes.
+
+2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/48575
+ * genrecog.c (position_type): New enum.
+ (position): New structure.
+ (decision): Use position structure instead of a string.
+ (root_pos, peep2_insn_pos_list): New variables.
+ (next_position, compare_positions): New functions.
+ (new_decision): Use position structures instead of strings.
+ (maybe_both_true): Likewise.
+ (change_state): Likewise.
+ (write_tree): Likewise.
+ (make_insn_sequence): Likewise.
+
+2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
+ TS_BASE instead of TS_COMMON.
+ (find_decls_types_r): Check for TS_TYPED structure before looking at
+ TREE_TYPE.
+ * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
+ Add chain field.
+ (BLOCK_CHAIN): Use new chain field.
+
+2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
+ moves expensive on Power7 also.
+
2011-05-26 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_unary_loc): Remove bogus code.
2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
- The instruction is then expanded explicitly.
+ The instruction is then expanded explicitly.
(supported_compare): Callable instruction.
(compare): Likewise.
2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
+ PR target/43700
* config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
registers.