2012-05-14  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Remove odd code.


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

	PR tree-optimization/53340
	* tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187457 138bc75d-0d04-0410-961f-82ee72b054a4
	* attribs.c (decl_attributes): Avoid emitting a warning if
	ATTR_FLAG_BUILT_IN.
	* doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
	codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
	* c-family/c-common.c (DEF_ATTR_STRING): Define and undefine as
	necessary.
	* builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
	define a string "1".
	(ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
	* builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
	BUILT_IN_STRCPY): Use it for these functions.
	* postreload.c (reload_combine): Deal with SETs inside
	CALL_INSN_FUNCTION_USAGE.
	* caller-save.c (setup_save_areas, save_call_clobbered_regs):
	Look for REG_RETURNED notes and use a cheap restore if possible.
	* ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
	(ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
	* ira-build.c (ira_create_allocno, create_cap_allocno,
	propagate_allocno_info, propagate_some_info_from_allocno,
	copy_info_to_removed_store_destination, ira_flattening): Handle it.
	* ira-lives.c (pseudo_regno_single_word_and_live_p,
	find_call_crossed_cheap_reg): New static functions.
	(process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
	and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
	a REG_RETURNED note in that case.
	* ira.c (setup_reg_renumber): Change assert to allow cases where
	allocnos only cross calls for which they are cheap to restore.
	* ira-costs.c (ira_tune_allocno_costs): Compare
	ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
	than 0.
	* reg-notes.def (REG_RETURNED): New note.
	* cse.c (cse_insn): Likewise.
	* sched-deps.c (sched_analyze_insn): Likewise.
	* expr.c (init_block_move_fn): Set a "fn spec" attribute.
	* calls.c (decl_return_flags): New static function.
	(expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
	functions that return one of their arguments.
	* lto/lto-lang.c (handle_fnspec_attribute): New static function.
	(lto_attribute_table): Add "fn spec".
	(DEF_ATTR_STRING): Define and undefine along with the other macros.
	* regcprop.c (struct kill_set_value_data): New.
	(kill_set_value): Interpret data as a pointer to such a struct.
	Do nothing if the caller wants the register to be ignored.
	(copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.

testsuite/
	* gcc.target/i386/retarg.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187459 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
c-family/
	* c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
	Wreorder): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not enable them
	explicitly. Call lang-specific generated functions.
	(c_common_post_options): Do not set them here.
gcc/
	* doc/options.texi: (LangEnabledBy): Document it.
	* optc-gen.awk: Handle LangEnabledBy.
	* opth-gen.awk: Generate declaration for lang-specific functions.
	* opt-read.awk: Record lang numbers.
	* opt-functions.awk (flag_set_p): Ignore the arguments of flags.
	(lang_sanitized_name): New.
ada/
	* gcc-interface/misc.c: Include opts.h and options.h before tm.h.
	(gnat_handle_option): Call lang-specific generated function.
fortran/
	* options.c (gfc_handle_option): Call lang-specific generated function.



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

	PR tree-optimization/53331
	* tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
	strided loads.
	* tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.


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

	* tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
	* omp-low.c (expand_omp_taskreg): Properly conditionalize call
	to update_ssa.
	(expand_omp_for): Likewise.
	(expand_omp_for_generic): Adjust conditional add to referenced vars.
	Use make_rename_temp for temporaries that should be rewritten into
	SSA form.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_atomic_pipeline): Likewise.


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

	* gimplify.c (gimple_regimplify_operands): Only mark the LHS
	of statements for renaming.
	(force_gimple_operand_1): Likewise, consistently for both
	calls to force_gimple_operand and force_gimple_operand_gsi.


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

	* tree-vect-data-refs.c (vect_setup_realignment): Remove
	call to mark_symbols_for_renaming.
	(vect_permute_load_chain): Likewise.
	* tree-vect-loop.c (vect_is_slp_reduction): Update stmt
	instead of calling mark_symbols_for_renaming.
	* tree-vect-stmts.c (read_vector_array): Remove call to
	mark_symbols_for_renaming.
	(write_vector_array): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	* matrix-reorg.c (transform_allocation_sites): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
	(create_expression_by_pieces): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187469 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53344
	* config/avr/avr.c (avr_const_address_lo16): Remove.
	(avr_assemble_integer):  Print ".byte lo8(x)",
	".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
	.warning if 3-byte address is assembled. 
	* doc/extend.texi (AVR Named Address Spaces): Document that
	binutils 2.23 is needed to assemble 3-byte addresses.



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

        PR fortran/49110
        PR fortran/51055
        PR fortran/53329
        * trans-expr.c (gfc_trans_assignment_1): Fix allocation
        handling for assignment of function results to allocatable
        deferred-length strings.
        * trans-decl.c (gfc_create_string_length): For deferred-length
        module variables, include module name in the assembler name.
        (gfc_get_symbol_decl): Don't override the assembler name.

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

        PR fortran/49110
        PR fortran/51055
        PR fortran/53329
        * gfortran.dg/deferred_type_param_4.f90: New.
        * gfortran.dg/deferred_type_param_6.f90: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187472 138bc75d-0d04-0410-961f-82ee72b054a4
	* dwarf2out.c (have_macinfo): Define.
	(dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
	attribute, don't force empty compilation unit and don't emit any
	.debug_macinfo/.debug_macro section if macinfo_table is empty.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187473 138bc75d-0d04-0410-961f-82ee72b054a4
	* dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
	lineno 1 the same as lineno 0 before first start file directive.
	(optimize_macinfo_range): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187475 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-14  Andrew Pinski  <apinski@cavium.com>
	    H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/53315
	* config/i386/i386.md (xbegin_1): Use + in constraint and
	match_dup.
	(xbegin): Updated.

2012-05-14  Andi Kleen <ak@linux.intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/53315
	* gcc.target/i386/i386.exp (check_effective_target_rtm): New.
	* gcc.target/i386/rtm-check.h: New file.
	* gcc.target/i386/pr53315.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187477 138bc75d-0d04-0410-961f-82ee72b054a4
PR 52428 Range checking when reading integer values.

gcc/fortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* gfortran.texi: Update _gfortran_set_options documentation.
	* invoke.texi: Remove runtime behavior description of
	-fno-range-check.
	* trans-decl.c (create_main_function): Don't pass the range-check
	setting to the library.


libgfortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* io/io.h (max_value): Rename to si_max, remove second argument.
	* io/list_read.c (convert_integer): Use unsigned types when
	parsing the digits, set max value depending on the sign.
	* io/read.c (max_value): Rename to si_max, remove second argument,
	simplify.
	(read_decimal): Set max value depending on sign, always check
	overflow.
	(read_radix): Calculate max unsigned value directly.
	* libgfortran.h (struct compile_options_t): Remove range_check
	field.
	* runtime/compile_options.c (set_options): Skip handling
	options[7].
	(init_compile_options): Don't set removed field.


gcc/testsuite ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* gfortran.dg/int_range_io_1.f90: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187478 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-14  Marc Glisse  <marc.glisse@inria.fr>

	PR target/52607
	* config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
	(canonicalize_perm): ... new function.
	(expand_vec_perm_2vperm2f128_vshuf): New function.
	(ix86_expand_vec_perm_const_1): Call it.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187479 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-14  Marc Glisse  <marc.glisse@inria.fr>

        * MAINTAINERS (Write After Approval): Add myself.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187480 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/46098
	* config/i386/i386.c (ix86_expand_special_args_builtin): Always
	generate target register for "load" class builtins.

	Revert:
	2010-10-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46098
	* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
	Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
	(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
	(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
	(<sse>_movu<ssemodesuffix>): New expander.
	(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
	(avx_movdqu<avxmodesuffix>): New expander.
	(*sse2_movdqu): Rename from sse2_movdqu.
	(sse2_movdqu): New expander.

testsuite/ChangeLog:

	* gcc.target/i386/avx256-unaligned-load-[1234].c: Update scan strings.
	* gcc.target/i386/avx256-unaligned-store-[1234].c: Ditto.



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