PR target/48496
	* recog.c (constrain_operands): If extra constraints are present, also
	accept pseudo-registers with equivalent memory locations during reload.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187150 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Richard Guenther  <rguenther@suse.de>

	* common.opt (flto-report): Do not mark as Optimization.

	lto/
	* lang.opt (fwpa): Do not mark as Optimization.
	(fltrans): Likewise.

	* gcc.dg/lto/pr53214_0.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187151 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53168
	* tree-ssa-pre.c (phi_translate_1): Only handle type-punned
	memory reads when the result is a constant we can pun.

	* gcc.dg/torture/pr53168.c: New testcase.
	* gcc.dg/tree-ssa/ssa-pre-30.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187153 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR lto/50602
	* lto-wrapper.c (merge_and_complain): Complain about mismatches
	of -freg-struct-return and -fpcc-struct-return.
	(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
	from the input file options and ignore those from the link
	command line.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187155 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
	(vect_handle_widen_op_by_const): Use it instead of open-coding test.
	(vect_recog_widen_mult_pattern): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187156 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-vect-patterns.c (vect_single_imm_use): New function.
	(vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187157 138bc75d-0d04-0410-961f-82ee72b054a4
	gcc/
	PR tree-optimization/52633
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
	vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
	(vect_recog_over_widening_pattern): Remove handling of code that was
	already detected as over-widening pattern.  Remove special handling
	of "unsigned" cases.  Instead, support general case of conversion
	of the shift result to another type.

	gcc/testsuite/
	PR tree-optimization/52633
	* gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
	recognized as widening shifts instead of over-widening.
	* gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
	* gcc.target/arm/pr52633.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187158 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (*movmem_short, *clrmem_short)
	(*cmpmem_short): Move the mode check from the insn condition to
	the match_scratch.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187159 138bc75d-0d04-0410-961f-82ee72b054a4
libgo: Update to Go 1.0.1 release.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187163 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53166
	* pt.c (instantiate_class_template_1): Increase / decrease
	c_inhibit_evaluation_warnings around the tsubst_expr call
	for STATIC_ASSERT_CONDITION.
	(tsubst_expr, case STATIC_ASSERT): Likewise.
	* typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
	c_inhibit_evaluation_warnings in the OPT_Waddress warnings.

/testsuite
2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53166
	* g++.dg/cpp0x/static_assert7.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187165 138bc75d-0d04-0410-961f-82ee72b054a4
Enable -Wunused-local-typedefs when -Wall or -Wunused is on

Now that the libstdc++ testsuite is run with -ftrack-macro-location by
default, this patch triggers the -Wunused-local-typedefs warning when
-Wunused (and -Wall) is turned on.

The patch has been reviewed and accepted[1] a while ago, but was waiting
for the -ftrack-macro-expansion work to go in first.

Bootstrapped and tested again on x86_64-unknown-linux-gnu against
trunk.

Applied to the mainline.

[1]: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00605.html

gcc/

	* opts.c (finish_options): Activate -Wunused-local-typedefs if
	-Wunused is activated.
	* doc/invoke.texi: Update blurb of -Wunused-local-typedefs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187167 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53228
	* config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
	(TARGET_CMOV): Rename from TARGET_CMOVE.
	(TARGET_CMOVE): New define.
	* config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
	Do not set TARGET_CMOVE here.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187168 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53111
        * resolve.c (resolve_fl_derived): Fix -std=f95
        diagnostic for generic vs. DT names.

2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53111
        * gfortran.dg/constructor_7.f90: New.
        * gfortran.dg/constructor_8.f90: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187174 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53175
        * resolve.c (resolve_variable): Set public_used
        if a private module variable is used in a (public)
        specification expression.
        * trans-decl.c (gfc_finish_var_decl): Mark those
        TREE_PUBLIC.

2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53175
        gfortran.dg/public_private_module_5.f90: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187175 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: Correct parse of for with possible composite literal.

Fixes, e.g., "for first := true; first; first = false {".


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187176 138bc75d-0d04-0410-961f-82ee72b054a4

	* rtl.def (ATTR_FLAG): Remove probability indicating flags.
	* genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
	ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
	* reorg.c (get_jump_flags): Do not set the removed flags.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187178 138bc75d-0d04-0410-961f-82ee72b054a4
        * doc/md.texi (attr_flag): Update for changes of previous revision.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187179 138bc75d-0d04-0410-961f-82ee72b054a4
	PR other/29442
	* read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
	(print_md_ptr_loc, print_c_condition): Use them.
	* read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
	* genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
	attr_file, dfa_file, latency_file): New global variables.
	(write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
	write_upcase, write_indent, write_length_unit_log, write_test_expr,
	write_attr_get, write_insn_cases, write_eligible_delay,
	write_const_num_delay_slots): Accept FILE pointer and toss it around.
	Update all callers.
	(write_header, open_outfile, handle_arg): New funcions.
	(make_automaton_attrs): Write prototypes as extern to the output
	files.
	(main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
	names from the command line.  Open the output files and write out
	internal functions for DFA functions to dfa_file_name, insn latency
	functions to latency_file_name, and everything else to attr_file.
	* Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
	(BACKEND): Build libbackend first.
	(MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
	(.PRECIOUS): Likewise.
	(insn-dfatab.o): New rule.
	(insn-latencytab.o): New rule.
	(simple_rtl_generated_c): Do not include insn-attrtab.c.
	(s-attrtab): New rule.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187181 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-04  Andrew Pinski  <apinski@cavium.com>

	* expr.c (get_def_for_expr_class): New function.
	(convert_tree_comp_to_rtx): New function.
	(expand_cond_expr_using_cmove): New function.
	(expand_expr_real_2 <case COND_EXPR>): Call
	expand_cond_expr_using_cmove first and return if it succeeds.
	Remove the check for HAVE_conditional_move since we should have
	already converted it to a conditional move.
	* config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
	modes of DImode for 32bits and TImode.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187183 138bc75d-0d04-0410-961f-82ee72b054a4