2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove
	__USE_INIT_FINI__.
	* config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192828 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-int.h (lra_assert): Redefine it gcc_checking_assert.
	* lra-constraints.c (check_and_process_move): Remove #if
	ENABLE_ASSERT_CHECKING.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192832 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-constraints.c (process_address): Describe the kinds of address
	that we might see.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192833 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-constraints.c (valid_address_p): New function, split out from...
	(process_address): ...here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192834 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-constraints.c (get_index_scale, can_add_disp_p): New functions.
	(equiv_address_substitution): Use them.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192835 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-constraints.c (process_address): Tighten arguments to
	base_reg_class.  Use simplify_gen_binary to generate PLUS rtxes.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192836 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	PR bootstrap/55049
	* Makefile.in (rtlanal.o): Add dependency on addresses.h.
	* rtl.h (address_info): New structure.
	(strip_address_mutations, decompose_address, decompose_lea_address)
	(decompose_mem_address, update_address, get_index_scale)
	(get_index_code): Declare.
	* rtlanal.c: Include addresses.h.
	(strip_address_mutations, must_be_base_p, must_be_index_p)
	(set_address_segment, set_address_base, set_address_index)
	(set_address_disp, decompose_incdec_address, decompose_automod_address)
	(extract_plus_operands, baseness, decompose_normal_address)
	(decompose_address, decompose_lea_address, decompose_mem_address)
	(update_address, get_index_scale, get_index_code): New functions.
	* lra-constraints.c (strip_subreg): New function.
	(address, extract_loc_address_regs, extract_address_regs)
	(get_index_scale): Delete.
	(process_addr_reg): Apply strip_subreg to the location.
	(uses_hard_regs_p): Use decompose_mem_address.
	(valid_address_p, base_plus_disp_to_reg, can_add_disp_p)
	(equiv_address_substitution): Take an address_info rather
	than an address.  Remove other arguments.  Avoid using Pmode.
	(process_address): Use decompose_mem_address and decompose_lea_address.
	Update calls to above functions.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192837 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/avr/t-rtems: Revert previous commit.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192838 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog/
        * gcc/common/config/i386/i386-common.c
        (OPTION_MASK_ISA_FXSR_SET): New.
        (OPTION_MASK_ISA_XSAVE_SET): Likewise.
        (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise.
        (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options.
        * gcc/config.gcc (i[34567]86-*-*): Add fxsrintrin.h,
        xsaveintrin.h, xsaveoptintrin.h.
        (x86_64-*-*): Likewise.
        * config/i386/fxsrintrin.h: New header.
        * config/i386/xsaveintrin.h: Likewise.
        * config/i386/xsaveoptintrin.h: Likewise.
        * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect
        FXSR/XSAVE/XSAVEOPT support.
        * gcc/config/i386/i386-builtin-types.def
        (VOID_FTYPE_PVOID_INT64): New function type.
        * gcc/config/i386/i386-c.c: Define __FXSR__, __XSAVE__
        and __XSAVEOPT__ if needed.
        * gcc/config/i386/i386.c (ix86_target_string): Define -mfxsr,
         -mxsave and -mxsaveopt options.
        (PTA_FXSR): New.
        (PTA_XSAVE): Likewise.
        (PTA_XSAVEOPT): Likewise.
        (ix86_option_override_internal): Handle new option.
        (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT.
        (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr,
        OPT_mxsave, OPT_mxsaveopt.
        (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR,
        IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64,
        IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT,
        IX86_BUILTIN_XSAVEOPT64.
        (ix86_expand_builtin): Handle these built-ins.
        * gcc/config/i386/i386.h (TARGET_FXSR): New.
        (TARGET_XSAVE): Likewise.
        (TARGET_XSAVEOPT): Likewise.
        * gcc/config/i386/i386.md (ANY_XSAVE): New int iterator.
        (ANY_XSAVE64): Likewise.
        (xsave): New int attribute.
        (fxsave): New instruction.
        (fxsave64): Likewise.
        (fxrstor): Likewise.
        (fxrstor64): Likewise.
        (<xsave>): Likewise.
        (<xsave>_rex64): Likewise.
        (xrstor): Likewise.
        (xrstor_rex64): Likewise.
        (xrstor64): Likewise.
        * gcc/config/i386/i386.opt (mfxsr): New.
        (mxsave): Likewise.
        (mxsaveopt): Likewise.
        * gcc/config/i386/x86intrin.h: Include
        xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h.

testsuite/ChangeLog
        * gcc.target/i386/fxsave-1.c: New.
        * gcc.target/i386/fxsave64-1.c: Ditto.
        * gcc.target/i386/fxrstor-1.c: Ditto.
        * gcc.target/i386/fxrstor64-1.c: Ditto.
        * gcc.target/i386/xsave-1.c: Ditto.
        * gcc.target/i386/xsave64-1.c: Ditto.
        * gcc.target/i386/xrstor-1.c: Ditto.
        * gcc.target/i386/xrstor64-1.c: Ditto.
        * gcc.target/i386/xsaveopt-1.c: Ditto.
        * gcc.target/i386/xsaveopt64-1.c: Ditto.
        * gcc.target/i386/sse-12.c: Add -mfxsr, -mxsaveopt.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * gcc.target/i386/sse-22.c: Ditto.
        * gcc.target/i386/sse-23.c: Ditto.
        * g++.dg/other/i386-2.C: Ditto.
        * g++.dg/other/i386-3.C: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192840 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/54824
	* tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable
	at the end of blocks with no successors.

	* gcc.dg/torture/pr54824.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192841 138bc75d-0d04-0410-961f-82ee72b054a4
        * config/i386/i386.c (insn_is_function_arg) : Add check on CALL
        instruction.
        (ix86_dependencies_evaluation_hook): Insert dependencies in all
        predecessors of call block for non-trivial region avoiding creation
        of loop-carried dependency to avoid cross-block motion of HW registers.



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

	PR c++/54984
	* init.c (build_new): Don't turn a null *init into a pointer to
	empty vector orig_init.

/testsuite
2012-10-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54984
	* g++.dg/template/new11.C: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192846 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26  Martin Jambor  <mjambor@suse.cz>

	PR debug/54971
	* tree-sra.c (struct access): New flag grp_to_be_debug_replaced.
	(dump_access): Dump the new flag.
	(analyze_access_subtree): Set the new flag when appropriate.
	(create_access_replacement): Handle debug replacements differently.
	(generate_subtree_copies): Handle the grp_to_be_debug_replaced flag.
	(init_subtree_with_zero): Likewise.
	(sra_modify_expr): Likewise.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_assign): Likewise.




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

	* ipa-inline-transform.c (inline_call): Only account size changes
	for !DECL_EXTERNAL.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192849 138bc75d-0d04-0410-961f-82ee72b054a4
Avoid conservative behavior in REE by allowing removal of redundant extends
when the def feeds another extend with a different mode. This works because
in merge_def_and_ext only calls combine_set_extension if the candidate for
removal has a wider mode than the def extend's mode, otherwise the def extend
mode is preserved. In combine_set_extension the def is modified to use the
wider candidate's mode.

2012-10-26  Teresa Johnson  <tejohnson@google.com>

	* ree.c (add_removable_extension): Remove unnecessary
	mode check with other extension.
	* testsuite/gcc.c-torture/execute/20111227-2.c: New test.
	* testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192850 138bc75d-0d04-0410-961f-82ee72b054a4
Author: Gunther Nikl <gnikl@users.sourceforge.net>

* common/config/m68k/m68k-common.c (m68k_handle_option): Set
gcc_options fields of opts_set for -m68020-40 and -m68020-60.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192851 138bc75d-0d04-0410-961f-82ee72b054a4
        * tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192852 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/55061
	* configure.ac: Check for _Unwind_GetIPInfo function declaration.
	* configure: Regenerate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192853 138bc75d-0d04-0410-961f-82ee72b054a4
syscall: fix creds_test to reliably close os.File

Uncovered by Uros Bizjak.

Before this patch the test would close the file descriptor but
not the os.File.  When the os.File was GC'ed, the finalizer
would close the file descriptor again.  That would cause
problems if the same file descriptor were returned by a later
call to open in another test.

On my system:

> GOGC=30 go test
--- FAIL: TestPassFD (0.04 seconds)
passfd_test.go:62: 	FileConn: dup: bad file descriptor
FAIL


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192854 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/crtfastmath.c (set_fast_math): Use __builtin_ia32_fxsave.
	Clear only fxsave.mxcsr_mask.  Use saved mxcsr from fxsave structure
	when appropriate.  Correct structure element types.
	* config/i386/t-crtfm (crtfastmath.o): Compile with -mfxsr, remove
	-minline-all-stringops from compile flags.



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