+2011-06-07 Jason Merrill <jason@redhat.com>
+
+ * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
+
+2011-06-07 Xinliang David Li <davidxl@google.com>
+ * passes.c (enable_disable_pass): Handle assembler name.
+ (is_pass_explicitly_enabled_or_disabled): Ditto.
+
+2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR tree-optimization/48497
+ * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
+
+2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/46728
+ * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
+ to use gimple_val_nonnegative_real_p.
+ * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
+ * gimple.h (gimple_val_nonnegative_real_p): New declaration.
+
+2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (*movsf_internal): Optimize AVX check.
+
+2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
+
+ * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
+ constant vectors.
+
+2011-06-07 Richard Guenther <rguenther@suse.de>
+
+ * stor-layout.c (initialize_sizetypes): Initialize all
+ sizetypes based on target definitions.
+ (set_sizetype): Remove.
+ * tree.c (build_common_tree_nodes): Do not call set_sizetype.
+ * tree.h (set_sizetype): Remove.
+
+2011-06-07 Nick Clifton <nickc@redhat.com>
+
+ * config.gcc: Unify V850 architecture options and add support for
+ newer V850 architectures.
+ * config/v850/t-v850e: Delete.
+
+2011-06-07 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (build_common_tree_nodes): Also initialize size_type_node.
+ Call set_sizetype from here.
+
+2011-06-07 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
+ (*maddhisi4tb, *maddhisi4tt): New define_insns.
+
+2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
+ Andrew Stubbs <ams@codesourcery.com>
+
+ * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
+ multiplies.
+ * doc/md.texi (Canonicalization of Instructions): Document widening
+ multiply canonicalization.
+
+2011-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR gcov-profile/49299
+ * value-prof.c (gimple_ic): Don't assume icall has
+ a fallthru edge.
+
+2011-06-07 Ira Rosen <ira.rosen@linaro.org>
+
+ * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
+ a pointer.
+ * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
+ vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
+ vect_recog_pow_pattern): Likewise.
+ (vect_pattern_recog_1): Remove declaration.
+ (widened_name_p): Remove declaration. Add new argument to specify
+ whether to check that both types are either signed or unsigned.
+ (vect_recog_widen_mult_pattern): Update documentation. Handle
+ unsigned patterns and multiplication by constants.
+ (vect_pattern_recog_1): Update vect_recog_func references. Use
+ statement information from the statement returned from pattern
+ detection functions.
+ (vect_pattern_recog): Update vect_recog_func reference.
+ * tree-vect-stmts.c (vectorizable_type_promotion): For widening
+ multiplication by a constant use the type of the other operand.
+
+2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/49145
+ * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
+
+2011-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/49262
+ * dwarf2out.c (native_encode_initializer): Decrement count in each
+ iteration.
+
+ PR debug/49294
+ * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
+ non-MODE_INT modes.
+
+ PR c++/49264
+ * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
+ if stmt folded into nothing.
+ * tree-inline.c (fold_marked_statements): If a builtin at the
+ end of a bb folded into nothing, just update cgraph edges
+ and move to next bb.
+ * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
+ to be NULL. Don't compute count and frequency if new_call is NULL.
+
+2011-06-04 Diego Novillo <dnovillo@google.com>
+
+ * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
+ (cgraph.o): Likewise.
+ (cgraphunit.o): Likewise.
+ * cgraphunit.c: Include lto-streamer.h
+ (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
+ if LTO is enabled.
+ * lto-streamer-in.c (unpack_value_fields): Call
+ streamer_hooks.unpack_value_fields if set.
+ (lto_materialize_tree): For unhandled nodes, first try to
+ call lto_streamer_hooks.alloc_tree, if it exists.
+ (lto_input_ts_decl_common_tree_pointers): Move reading of
+ DECL_INITIAL to lto_streamer_read_tree.
+ (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
+ (lto_streamer_read_tree): New.
+ (lto_reader_init): Rename from lto_init_reader.
+ Move initialization code to lto/lto.c.
+ * lto-streamer-out.c (pack_value_fields): Call
+ streamer_hooks.pack_value_fields if set.
+ (lto_output_tree_ref): For tree nodes that are not
+ normally indexable, call streamer_hooks.indexable_with_decls_p
+ before giving up.
+ (lto_output_ts_decl_common_tree_pointers): Move handling
+ for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
+ lto_streamer_write_tree.
+ (lto_output_tree_header): Call streamer_hooks.is_streamable
+ instead of lto_is_streamable.
+ Call lto_streamer_hooks.output_tree_header if set.
+ (lto_write_tree): Call lto_streamer_hooks.write_tree if
+ set.
+ (lto_streamer_write_tree): New.
+ (lto_output): Call lto_streamer_init directly.
+ (lto_writer_init): Remove.
+ * lto-streamer.c (streamer_hooks): New.
+ (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
+ instead of lto_preload_common_nodes.
+ (lto_is_streamable): Move from lto-streamer.h
+ (lto_streamer_hooks_init): New.
+ (streamer_hooks): New.
+ (streamer_hooks_init): New.
+ * lto-streamer.h (struct output_block): Forward declare.
+ (struct lto_input_block): Likewise.
+ (struct data_in): Likewise.
+ (struct bitpack_d): Likewise.
+ (struct streamer_hooks): Declare.
+ (streamer_hooks): Declare.
+ (lto_streamer_hooks_init): Declare.
+ (lto_streamer_write_tree): Declare.
+ (lto_streamer_read_tree): Declare.
+ (streamer_hooks_init): Declare.
+ (lto_is_streamable): Move to lto-streamer.c
+
+2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * longlong.h (smul_ppmm): The resulting register pair contains the
+ higher order word first.
+
+2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/46728
+ * builtins.c (powi_table): Remove.
+ (powi_lookup_cost): Remove.
+ (powi_cost): Remove.
+ (expand_powi_1): Remove.
+ (expand_powi): Remove.
+ (expand_builtin_pow_root): Remove.
+ (expand_builtin_pow): Remove.
+ (expand_builtin_powi): Eliminate handling of constant exponent.
+ (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
+
+2011-06-06 Alexandre Oliva <aoliva@redhat.com>
+
+ * cprop.c (local_cprop_pass): Don't set changed for debug insns.
+
+2011-06-06 Alexandre Oliva <aoliva@redhat.com>
+
+ * dce.c (reset_unmarked_insns_debug_uses): New.
+ (delete_unmarked_insns): Skip debug insns.
+ (prescan_insns_for_dce): Likewise.
+ (rest_of_handle_ud_dce): Reset debug uses of removed sets.
+ * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
+ active reg can be found.
+ (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
+ (convert_regs_1): Use it.
+
+2011-06-06 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-pretty-print.c (dump_function_header): Add flags.
+ Don't dump decl_uid with nouid.
+ * tree-pretty-print.h (dump_function_header): Adjust.
+ * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
+ * passes.c (pass_init_dump_file): Pass dump_flags on.
+ * tree-cfg.c (gimple_dump_cfg): Pass flags on.
+
+2011-06-06 Alexandre Oliva <aoliva@redhat.com>
+
+ PR bootstrap/49270
+ * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
+
+2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR tree-optimization/49243
+ * calls.c (setjmp_call_p): Also check if fndecl has the
+ returns_twice attribute.
+
+2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
+ -ffast-math etc.
+
+2011-06-06 Richard Henderson <rth@redhat.com>
+ Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/42210
+ * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
+ New predicates.
+ * config/avr/avr.md ("insv"): New insn expander.
+ ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
+ "*insv.not.io", "*insv.reg"): New insns.
+
+2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/49285
+ * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
+ predicate to nonimmediate_operand from memory_operand for the
+ operand that is to be forced to memory by the expander. Lose
+ the constraints.
+
+2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/sparc.c (output_return): Fix thinko in the output of an
+ EH return when delayed branches are disabled.
+
+2011-06-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
+ Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
+ calculation.
+ (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
+ Simplify MODE_V1DF and MODE_V2SF handling.
+ (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
+ Simplify MODE_SF handling.
+
+2011-06-04 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/48893
+ PR tree-optimization/49091
+ PR tree-optimization/49179
+ * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
+ Bounds check.
+
+2011-06-04 Jan Hubicka <jh@suse.cz>
+
+ PR lto/48954
+ * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
+
+2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
+
+2011-06-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/49281
+ * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
+ to be strictly smaller than 1 << shiftcount.
+
+2011-06-04 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimize/48929
+ * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
+ of empty predicate.
+
+2011-06-04 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/48333
+ * calls.c (emit_call_1): Prefer the __builtin declaration of
+ builtin functions.
+
+2011-06-03 Diego Novillo <dnovillo@google.com>
+
+ * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
+ (lto_input_tree_pointers): Likewise.
+ * lto-streamer-out.c (pack_value_fields): Likewise.
+ (lto_output_tree_pointers): Likewise.
+ * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
+ and OPTIMIZATION_NODE.
+
+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
+ * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
+ * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
+ * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
+ * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
+ * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
+ * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
+ * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
+ * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
+ * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
+ * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
+ * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
+ * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
+ * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
+ * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
+ * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
+ * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
+ * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
+ * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
+ * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
+ * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
+ * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
+ * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
+ * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
+ * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
+ * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
+ * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
+ * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
+ * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
+ * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
+ * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
+ * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
+ * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
+ * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
+ * system.h (MD_UNWIND_SUPPORT): Poison.
+ * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
+ * doc/tm.texi: Regenerate.
+ * unwind-dw2.c: Include md-unwind-support.h instead of
+ MD_UNWIND_SUPPORT.
+ * config/ia64/unwind-ia64.c: Likewise.
+ * config/xtensa/unwind-dw2-xtensa.c: Likewise.
+
+2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ * varpool.c (varpool_extra_name_alias): Return NULL, not false.
+
+2011-06-03 Richard Henderson <rth@redhat.com>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
+ (sigill_hdlr): Correct insn, insn size.
+ (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
+
+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
+ t-slibgcc-dummy.
+ * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
+ * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
+ * config/mips/t-iris: Remove.
+ * config/mips/t-irix6: New file.
+ * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
+
+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * Makefile.in (LIB2ADDEHDEP): Remove.
+ * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
+ * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
+ * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
+ * config/t-darwin (LIB2ADDEHDEP): Remove.
+ * config/t-freebsd (LIB2ADDEHDEP): Remove.
+ * config/t-linux (LIB2ADDEHDEP): Remove.
+
+2011-06-03 Diego Novillo <dnovillo@google.com>
+
+ * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
+ (lto_register_var_decl_in_symtab): Likewise.
+ (lto_register_function_decl_in_symtab): Likewise.
+ (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
+ logic to uniquify_nodes.
+
+2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/alpha/t-osf5: Remove.
+ * config/alpha/t-osf-pthread: Remove.
+ * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
+ * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
+
+2011-06-03 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
+ (strongarm1110): Use strongarm tuning.
+ * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
+ * config/arm/arm.c (arm_strongarm_tune): New.
+ (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
+ (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
+ (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
+ setting, using previous defaults or 1 for Cortex-A5.
+ (arm_option_override): Set max_insns_skipped from current tuning.
+
+2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
+
+ * doc/install.texi (Options specification): Document --with-specs.
+
+2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ * config/arm/neon.md (orndi3_neon): Actually split it.
+
+2011-06-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
+ * var-tracking.c (reverse_op): Limite recurse depth to 5.
+
+2011-06-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/47590
+ * target.def (delay_sched2, delay_vartrack): New.
+ * doc/tm.texi.in: Update.
+ * doc/tm.texi: Rebuild.
+ * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
+ * var-tracking.c (gate_handle_var_tracking): Likewise.
+ * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
+ (bfin_flag_var_tracking): Drop.
+ (output_file_start): Don't save and override flag_var_tracking.
+ (bfin_option_override): Ditto flag_schedule_insns_after_reload.
+ (bfin_reorg): Test original variables.
+ (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
+ * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
+ (ia64_flag_var_tracking): Drop.
+ (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
+ (ia64_file_start): Don't save and override flag_var_tracking.
+ (ia64_override_options_after_change): Ditto
+ flag_schedule_insns_after_reload.
+ (ia64_reorg): Test original variables.
+ * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
+ (picochip_flag_var_tracking): Drop.
+ (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
+ (picochip_option_override): Don't save and override
+ flag_schedule_insns_after_reload.
+ (picochip_asm_file_start): Ditto flag_var_tracking.
+ (picochip_reorg): Test original variables.
+ * config/spu/spu.c (spu_flag_var_tracking): Drop.
+ (TARGET_DELAY_VARTRACK): Define.
+ (spu_var_tracking): New.
+ (spu_machine_dependent_reorg): Call it.
+ (asm_file_start): Don't save and override flag_var_tracking.
+
+2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/49163
+ * config/sh/predicates.md (general_movsrc_operand): Return 0
+ for memory and memory subreg of which address is an invalid
+ indexed address for QI and HImode.
+ (general_movdst_operand): Likewise.
+
+2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
+ edges only, when there is a non-local label in the function.
+ * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
+
+2011-06-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/constraints.md (Y3): New register constraint.
+ * config/i386/sse.md (*vec_interleave_highv2df): Merge with
+ *sse3_interleave_highv2df and *sse2_interleave_highv2df.
+ (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
+ *sse2_interleave_lowv2df.
+
+2011-06-02 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
+ * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
+ (arm_cortex_a5_tune): New.
+
+2011-06-02 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
+ * config/arm/arm.c (arm_default_branch_cost): New.
+ (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
+ (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
+ (arm_fa726_tune): Set branch_cost field using
+ arm_default_branch_cost.
+ * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
+ current_tune structure.
+ * dojump.c (tm_p.h): Include file.
+
+2011-06-02 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
+ tuning.
+ (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
+ (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
+ * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
+ field.
+ * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
+ (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
+ (arm_fa726te_tune): Add prefer_constant_pool setting.
+ (arm_v6t2_tune, arm_cortex_tune): New.
+ * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
+ prefer_constant_pool setting.
+
+2011-06-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
+ switch statement.
+ * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
+ (*movdf_internal) <case 6,7,8>: Ditto.
+
+ * config/i386/constraints.md (Y4): New register constraint.
+ * config/i386/sse.md (vec_set<mode>_0): Merge with
+ *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
+ (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
+ *vec_extractv2di_1_sse.
+ (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
+ and *vec_concatv2di_rex64_sse.
+
+2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
+
+ PR target/48807
+ * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
+ of cgraph_local_info for null before attempting to use it.
+
+2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * function.h (struct stack_usage): Remove dynamic_alloc_count field.
+ (current_function_dynamic_alloc_count): Delete.
+ * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
+ (expand_builtin_nonlocal_goto): Remove obsolete comment.
+ (expand_builtin_update_setjmp_buf): Remove dead code.
+ * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
+ * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
+ support.
+ * function.c (instantiate_virtual_regs): Likewise.
+ * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
+ for a block with a single abnormal incoming edge.
+ * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
+ (SETJMP_VIA_SAVE_AREA): Delete.
+ * config/sparc/sparc-protos.h (load_got_register): Declare.
+ * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
+ (load_got_register): Make global.
+ (sparc_frame_pointer_required): Add 'static'.
+ (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
+ (sparc_builtin_setjmp_frame_value): New function.
+ * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
+ (save_stack_nonlocal): New expander.
+ (restore_stack_nonlocal): Likewise.
+ (nonlocal_goto): Remove modes, adjust predicates and reimplement.
+ (nonlocal_goto_internal): New insn.
+ (goto_handler_and_restore): Delete.
+ (builtin_setjmp_setup): Likewise.
+ (do_builtin_setjmp_setup): Likewise.
+ (setjmp): Likewise.
+ (builtin_setjmp_receiver): New expander.
+
+2011-06-01 David Li <davidxl@google.com>
+
+ PR middle-end/49261
+ * tree-pretty-print.c (dump_function_header): Format cleanup.
+
+2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/49238
+ * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
+ needed when original operands are used for msw_skip comparison.
+
+2011-06-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/49250
+ * var-tracking.c (add_uses, add_stores): Don't call
+ cselib_subst_to_values on ENTRY_VALUE.
+
+2011-06-01 Diego Novillo <dnovillo@google.com>
+
+ * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
+ output_record_start with LTO_null instead of output_zero.
+ (lto_output_ts_binfo_tree_pointers): Likewise.
+ (lto_output_tree): Likewise.
+ (output_eh_try_list): Likewise.
+ (output_eh_region): Likewise.
+ (output_eh_lp): Likewise.
+ (output_eh_regions): Likewise.
+ (output_bb): Likewise.
+ (output_function): Likewise.
+ (output_unreferenced_globals): Likewise.
+ * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
+ instead of NUM_TREE_CODES.
+ (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
+ (lto_output_int_in_range): Change << to >> when shifting VAL.
+
+2011-06-01 Diego Novillo <dnovillo@google.com>
+
+ * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
+ Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
+
+2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/45074
+ * optabs.h (valid_multiword_target_p): Declare.
+ * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
+ doing multi-word operations.
+ * optabs.c (expand_binop): Likewise.
+ (expand_doubleword_bswap): Likewise.
+ (expand_absneg_bit): Likewise.
+ (expand_unop): Likewise.
+ (expand_copysign_bit): Likewise.
+ (multiword_target_p): New function.
+
+2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/48830
+ PR rtl-optimization/48808
+ PR rtl-optimization/48792
+ * reload.c (push_reload): Check contains_reg_of_mode.
+ * reload1.c (strip_paradoxical_subreg): New function.
+ (gen_reload_chain_without_interm_reg_p): Use it to handle
+ paradoxical subregs.
+ (emit_output_reload_insns, gen_reload): Likewise.
+
+2011-06-01 David Li <davidxl@google.com>
+
+ * predict.c : Change pass name
+ * ipa.c: Ditto.
+ * dce.c: Ditto.
+ * tree-profile.c: Ditto.
+ * except.c: Ditto.
+
+2011-06-01 David Li <davidxl@google.com>
+
+ * tree-pretty-print.c (dump_function_header): New function.
+ * final.c (rest_of_clean_state): Use header dumper.
+ * tree-cfg.c (gimple_dump_cfg): Use header dumper.
+ * passes.c (pass_init_dump_file): Use header dumper.
+
+2011-06-01 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
+ ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
+ popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
+ New functions.
+ (mem_loc_descriptor): Use them.
+
+ * var-tracking.c (create_entry_value): New function.
+ (vt_add_function_parameter): Use it.
+
+2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
+ Include <signal.h>, <ucontext.h>.
+ (sigill_caught): Define.
+ (sigill_hdlr): New function.
+ (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
+ insns can be executed.
+ * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
+ * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
+
+2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/t-slibgcc-darwin: Move to ...
+ * config/t-slibgcc-dummy: ... this. Clarify comments.
+ * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
+ powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
+ (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
+ (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
+ Remove i386/t-crtstuff from tmake_file.
+ (i[34567]86-*-solaris2*): Remove t-svr4,
+ t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
+ t-slibgcc-dummy.
+ (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
+ (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
+ sparc/t-crtfm from tmake_file.
+ (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
+ t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
+ Remove extra_parts.
+ * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
+ * config/i386/t-nwld (SHLIB_LINK): Remove.
+ * config/i386/t-rtems-i386: Rename to ...
+ * config/i386/t-rtems: ... this.
+ ($(T)crti.o, $(T)crtn.o): Remove.
+ (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
+ (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
+ (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
+ * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
+ EXTRA_MULTILIB_PARTS): Remove.
+ * config/sparc/t-sol2-64: Likewise.
+ * config/sparc/t-sol2: Remove.
+ * config/sparc/t-crtin: Remove.
+ * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
+ * config/i386/gmon-sol2.c: Remove.
+ * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
+ * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
+ * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
+ * config/i386/sol2-gc1.asm: Remove.
+ * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
+ * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
+ * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
+ * config/t-slibgcc-sld: Remove.
+
+2011-06-01 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
+ base_type_for_mode with op_mode instead of mode.
+
+2011-06-01 Paul Brook <paul@cpodesourcery.com>
+
+ * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
+ Cortex-A15.
+ * config/arm/arm-tune.md: Regenerate.
+ * config/arm/arm-tables.opt: Regenerate.
+ * config/arm/arm.c (FL_DIV): Rename...
+ (FL_THUMB_DIV): ... to this.
+ (FL_ARM_DIV): Define.
+ (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
+ (arm_arch_hwdiv): Remove.
+ (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
+ (arm_issue_rate): Add cortexr5.
+ * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
+ __ARM_ARCH_EXT_IDIV__.
+ (TARGET_IDIV): Define.
+ (arm_arch_hwdiv): Remove.
+ (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
+ * config/arm/arm.md (tune_cortexr4): Add cortexr5.
+ (divsi3, udivsi3): New patterns.
+ * config/arm/thumb2.md (divsi3, udivsi3): Remove.
+ * doc/invoke.texi: Document ARM -mcpu=cortex-r5
+
+2011-06-01 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-utils.c (ipa_dfs_info): New field scc_no.
+ * ipa-utils.c (searchc): Set scc_no.
+
+2011-06-01 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-utils.c (searchc_env): New field allow_overwritable.
+ (searchc): do not ignore edges to overwritable nodes if indicated
+ by env->allow_overwritable.
+ (ipa_reduced_postorder): Set env.allow_overwritable.
+
+2011-06-01 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (free_lang_data): Do not reset boolean_type_node nor
+ char_type_node.
+ * lto-streamer.c (lto_record_common_node): Take node pointer,
+ do not register types.
+ (lto_preload_common_nodes): Explicitly skip preloading nodes
+ that differ between frontends.
+
+2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
+ NON_FLOAT_REGS.
+
+2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
+ parameter value for dump. Dump cost on outermost call only.
+ (rs6000_memory_move_cost): Dump cost on outermost call only.
+
+2011-05-31 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
+ DW_OP_GNU_convert ops.
+
+ * cselib.c (promote_debug_loc): Allow l->next non-NULL for
+ cselib_preserve_constants.
+ (cselib_lookup_1): If cselib_preserve_constants,
+ a new VALUE is being created for REG and there is a VALUE for the
+ same register in wider mode, add another loc with lowpart SUBREG of
+ the wider VALUE.
+ (cselib_subst_to_values): Handle ENTRY_VALUE.
+ * var-tracking.c (replace_expr_with_values): Return NULL for
+ ENTRY_VALUE too.
+ * dwarf2out.c (convert_descriptor_to_signed): New function.
+ (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
+ instead of two shifts.
+ (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
+ the right mode if needed.
+ (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
+ (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
+ convert_descriptor_to_signed.
+ (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
+ BSWAP, ROTATE, ROTATERT>: Handle these rtls.
+
+ PR target/48688
+ * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
+
+2011-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
+ of X87MODEI12 and SWI48x instead of SSEMODEI24.
+ (SWI248x): New mode iterator, rename from X87MODEI.
+ (X87MODEI): Remove mode iterator.
+ (X87MODEI12): Ditto.
+ (SSEMODEI24): Ditto.
+
+2011-05-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
+ * doc/invoke.texi: Document max-vartrack-expr-depth.
+ * var-tracking.c (EXPR_DEPTH): New.
+ (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
+
+2011-05-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
+ * config/i386/sse.md: Add n to negated FMA pattern names.
+
+2011-05-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
+
+2011-05-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * gengtype-state.c (read_state_params_structs): Initialize previous.
+
+2011-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
+ (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
+
+2011-05-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movtf_internal): Avoid allocating general
+ registers. Penalize F*r->o alternative to prevent partial memory
+ stalls. Slightly penalize *roF->*r alternative. Generate SSE
+ CONST_DOUBLE immediates when optimizing function for size. Do not move
+ CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
+ (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
+ (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
+ (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
+ alternatives.
+ (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
+
+ (fp_register_operand splitters): Use fp_register_operand
+ constraint. Do not use FP_REG_P in insn condition.
+ (any_fp_register_operand splitters): Use any_fp_register_operand
+ constraint. Do not use ANY_FP_REG_P in insn condition.
+
+2011-05-31 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (cgraph_inline_failed_t): Give enum a name
+ * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
+ (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
+ (lto_output_edge): Use output_enum and var_len_unsigned.
+ (lto_output_varpool_node): Likewise.
+ (input_overwrite_node): Do not take resolution parameter;
+ extract it from a bitpack.
+ (input_node): Do not read resolution; use input_enum and
+ var_len_unsigned.
+ (input_varpool_node): Likewise.
+ (input_edge): Likewise.
+ (input_cgraph_1): Likewise.
+
+2011-05-31 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (gimple_register_canonical_type): Do not register
+ any types via gimple_register_type.
+
+2011-05-31 Jan Hubicka <jh@suse.cz>
+
+ * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
+ of thunks.
+
+2011-05-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/49235
+ * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
+ (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
+
+2011-05-31 Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/49093
+ * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
+ data references.
+
+2011-05-31 Dodji Seketeli <dodji@redhat.com>
+
+ PR debug/49047
+ * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
+ for concrete functions containing the code of cloned functions.
+
+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 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 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-26 Bernd Schmidt <bernds@codesourcery.com>
+
+ * Makefile.in (srcdirify): Change order so that libgcc_objdir is
+ substituted first.
+ * libgcc-std.ver: Delete file.
+
+2011-05-26 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48702
+ * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
+ only when we know the base address is within bounds.
+ * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
+ assume the base address of TARGET_MEM_REFs is in bounds.
+
+2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/49099
+ * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
+ declaration in TARGET_SOLARIS.
+
+2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
+ The instruction is then expanded explicitly.
+ (supported_compare): Callable instruction.
+ (compare): Likewise.
+
2011-05-26 Jakub Jelinek <jakub@redhat.com>
PR c++/49165
2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR target/49002
- * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
- Properly handle load cast.
+ * config/i386/sse.md
+ (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
+ load cast.
2011-05-18 Jakub Jelinek <jakub@redhat.com>
(warn_uninitialized_var): Pass warning code.
* tree-flow.h: Interface change.
-
2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
+ PR target/43700
* config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
registers.