117621 Commits

Author SHA1 Message Date
Steven Bosscher
8ca92d04e1 c-common.h (c_common_print_pch_checksum): Remove.
c-family/
	* c-common.h (c_common_print_pch_checksum): Remove.
	* c-pch.c: Do not include output.h.
	(CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
	(asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
	(asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
	(struct c_pch_header): Remove.
	(get_ident): Update gpch version.
	(pch_init): Do not print executable_checksum to asm_out_file.
	Do not fail if there is no asm_out_file to read back from.  Set
	asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
	(c_common_write_pch): Verify that nothing was written to asm_out_file
	since pch_init was called.  Do not write a c_pch_header, and do not
	copy from asm_out_file to the PCH.
	(c_common_read_pch): Do not read a c_pch_header, and do not restore
	the content of asm_out_file from the PCH.
	(c_common_print_pch_checksum): Remove.
	* c-opts.c (c_common_init): Print out executable_checksum directly.

testsuite/
	* testsuite/gcc.dg/pch/ident-1.c: New test.
	* testsuite/gcc.dg/pch/ident-1.hs: Header file for new test.

From-SVN: r188856
2012-06-21 16:53:45 +00:00
Steven Bosscher
7033abe11e * config/m32c/m32c-pragma.c: Remove unnecessary includes.
From-SVN: r188853
2012-06-21 12:24:52 +00:00
Michael Matz
625ed17217 re PR middle-end/53688 (191.fma3d in SPEC CPU 2000 miscompiled)
PR middle-end/53688
	* builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
	with correct size.

testsuite/
	* gcc.c-torture/execute/pr53688.c: New test.

From-SVN: r188852
2012-06-21 12:18:23 +00:00
Richard Guenther
ccd49f5a69 tree-inline.c (estimate_num_insns): Estimate call cost for tailcalls properly.
2012-06-21  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns): Estimate call cost for
	tailcalls properly.

From-SVN: r188849
2012-06-21 09:24:53 +00:00
GCC Administrator
7cd7b5da2b Daily bump.
From-SVN: r188847
2012-06-21 00:18:59 +00:00
Uros Bizjak
19425621a5 i386.md (SINCOS): New int iterator.
2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SINCOS): New int iterator.
	(sincos): New int attribute.
	(*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
	SINCOS int iterator.
	(*<sincos>_extend<mode>xf2_i387): Macroize insn from
	*{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (RDFSGSBASE): New int iterator.
	(WRFSGSBASE): Ditto.
	(fsgs): New int attribute.
	(rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
	RDFSGSBASE int iterator.
	(wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
	WRFSGSBASE int iterator.

From-SVN: r188843
2012-06-20 21:28:07 +02:00
Jason Merrill
056d8580b6 Makefile.tpl (check-target-libgomp-c++): New.
* Makefile.tpl (check-target-libgomp-c++): New.
	(check-target-libitm-c++): New.
	* Makefile.def (c++): Add them.
	* Makefile.in: Regenerate.

From-SVN: r188842
2012-06-20 14:26:04 -04:00
Rüdiger Sonderfeld
19c1aa2ddf Add DECL_SOURCE_COLUMN.
I'm currently writing a plugin for GCC and I need to extract the
column of a declaration. There exists DECL_SOURCE_FILE/LINE already
and for consistency reasons and ease of use I've added a
DECL_SOURCE_COLUMN macro.

2012-06-20  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>

	* tree.h (DECL_SOURCE_COLUMN): New accessor

From-SVN: r188841
2012-06-20 14:03:10 -04:00
Uros Bizjak
bafda72341 i386.md (<rounding_insn><mode>2): Macroize expander from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
* config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
	from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
	(l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
	from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
	int iterator.

From-SVN: r188840
2012-06-20 19:37:40 +02:00
Steven Bosscher
975667e7fb * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
From-SVN: r188838
2012-06-20 14:49:01 +00:00
David Edelsohn
cc7d0fab84 Fix typo.
From-SVN: r188833
2012-06-20 09:48:40 -04:00
David Edelsohn
54af9de73f locks.h (compare_and_swap): Use GCC atomic intrinsics.
2012-06-20  David Edelsohn  <dje.gcc@gmail.com>
            Alan Modra  <amodra@gmail.com>

        * sysdep/powerpc/locks.h (compare_and_swap): Use GCC atomic
        intrinsics.
        (release_set): Same.
        (compare_and_swap_release): Same.
        (read_barrier): Same.
        (write_barrier): Same.

Co-Authored-By: Alan Modra <amodra@gmail.com>

From-SVN: r188829
2012-06-20 09:02:56 -04:00
Richard Guenther
a75f501709 re PR tree-optimization/30318 (VRP does not create ANTI_RANGEs on overflow)
2012-06-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30318
	* tree-vrp.c (range_int_cst_p): Do not reject overflowed
	constants here.
	(range_int_cst_singleton_p): But explicitely here.
	(zero_nonzero_bits_from_vr): And here.
	(extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
	to cover all cases we can perform arbitrary precision
	arithmetic with double-ints.
	(intersect_ranges): Handle adjacent anti-ranges.

	* gcc.dg/tree-ssa/vrp69.c: New testcase.

From-SVN: r188827
2012-06-20 12:00:20 +00:00
Richard Earnshaw
942ee09149 * g++.dg/debug/dwarf2/nested-3.C: Add ARM comment character to regexp.
From-SVN: r188826
2012-06-20 10:56:19 +00:00
Uros Bizjak
fb124e230f i386.md (rounding_insn): New int attribute.
2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (rounding_insn): New int attribute.
	(<rounding_insn>xf2): Macroize insn from
	{floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
	(l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (IEEE_MAXMIN): New int iterator.
	(ieee_maxmin): New int attribute.
	(*ieee_s<ieee_maxmin><mode>3): Macroize insn from
	*ieee_s{max,min}<mode>3 using IEEE_MAXMIN mode iterator.

From-SVN: r188824
2012-06-20 12:25:17 +02:00
Steven Bosscher
34dd397b05 arm.h (EMIT_EABI_ATTRIBUTE): Remove.
* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
	* config/arm/arm.c: Do not include c-pragma.h.
	(arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
	(arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
	to arm_emit_eabi_attribute.
	* arm-c.c: Do not include output.h.
	(arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
	call to arm_emit_eabi_attribute.
	* config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.

From-SVN: r188823
2012-06-20 10:18:08 +00:00
Richard Guenther
f89dcfd816 tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Allow adjusting alignment of user-aligned decls again.
2012-06-20  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
	Allow adjusting alignment of user-aligned decls again.

From-SVN: r188822
2012-06-20 09:54:35 +00:00
Steven Bosscher
5a77294699 * config/rl78/rl78-c.c: Remove unnecessary includes.
From-SVN: r188821
2012-06-20 09:51:47 +00:00
Rainer Orth
32e36d1a83 Clear hwcap_2 with Sun ld
* gcc.target/i386/clearcapv2.map: New file.
	* gcc.target/i386/i386.exp: Try it first before clearcap.map.

From-SVN: r188820
2012-06-20 09:17:53 +00:00
Steven Bosscher
3e71d9533a cris.c: Include cgraph.h.
* config/cris/cris.c: Include cgraph.h.
	(cris_option_override): Do not set non-existing flag_no_gcc_ident.

From-SVN: r188818
2012-06-20 08:13:39 +00:00
Kaz Kojima
aa5cc52b1a stack-usage-1.c: Remove dg-options line for sh targets and add __sh__ case.
* gcc.dg/stack-usage-1.c: Remove dg-options line for sh targets
	and add __sh__ case.

From-SVN: r188815
2012-06-20 07:37:48 +00:00
Jason Merrill
0a337ebd0a re PR c++/52637 (ICE producing debug info for c++11 code using local class as template argument)
PR c++/52637
	* g++.dg/debug/localclass1.C: New.

From-SVN: r188814
2012-06-20 03:27:07 -04:00
Ville Voutilainen
6830e502a2 parser.c (cp_parser_direct_declarator): Move virt-specifier parsing after late-specified return type parsing.
* parser.c (cp_parser_direct_declarator): Move virt-specifier
	parsing after late-specified return type parsing.

From-SVN: r188808
2012-06-19 21:18:08 -04:00
Jason Merrill
420bf978a7 re PR c++/53651 ([C++11] seg fault when specifying using decltype(...)::method)
PR c++/53651
	* name-lookup.c (constructor_name_p): Don't try to look at the
	name of a DECLTYPE_TYPE.

From-SVN: r188807
2012-06-19 21:17:59 -04:00
Maxim Kuvyrkov
8930883ee9 emit-rtl.c (need_atomic_barrier_p): New function.
* emit-rtl.c (need_atomic_barrier_p): New function.
	* emit-rtl.h (need_atomic_barrier_p): Declare it.
	* config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
	* config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
	* config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
	* config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
	(mips_process_sync_loop): Use generic version instead.

From-SVN: r188806
2012-06-20 01:05:25 +00:00
Maxim Kuvyrkov
ff6191481c mips.c (mips_process_sync_loop): Emit cmp result only if it is used.
2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
	it is used.

From-SVN: r188805
2012-06-20 01:01:00 +00:00
Tom de Vries
6399761a4a constraints.md (ZR): New constraint.
2012-06-19  Tom de Vries  <vries@codesourcery.com>
            Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/constraints.md (ZR): New constraint.
	* config/mips/predicates.md (mem_noofs_operand): New predicate.
	* config/mips/mips.c (mips_print_operand): Handle new print modifier.
        * config/mips/mips.h (TARGET_XLP): Define.
	(TARGET_SYNC_AFTER_SC): Update.
	(ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
	* config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
	XLP-specific swap and ldadd patterns.
	(atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.

Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r188804
2012-06-20 00:59:08 +00:00
Tom de Vries
01c196ea91 2012-06-19 Tom de Vries <vries@codesourcery.com>
Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
	(mips_emit_post_atomic_barrier_p): New static functions.
	(mips_process_sync_loop): Use them.  Emit sync memory barriers in
	accordance with memory model semantics.  Add return of CMP result for
	compare_and_swap.
	* config/mips/mips.md: Update comment.
	(sync_cmp): New attribute.
	(sync_memmodel): New attribute replacing sync_release_barrier.
	* config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
	(UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
	(sync_lock_test_and_set, test_and_set_12): Update.
	(atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
	(atomic_fetch_add, atomic_fetch_add_llsc): New patterns.

Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r188803
2012-06-20 00:57:23 +00:00
GCC Administrator
e98f6824d6 Daily bump.
From-SVN: r188802
2012-06-20 00:18:50 +00:00
Kaz Kojima
9ea722f2c6 stack-usage-1.c: Use sh*-*-* instead of sh-*-*.
* gcc.dg/stack-usage-1.c: Use sh*-*-* instead of sh-*-*.

From-SVN: r188796
2012-06-19 22:29:24 +00:00
Joseph Myers
b513d0fe82 spe.md (*mov_si<mode>_e500_subreg0): Rename to mov_si<mode>_e500_subreg0.
* config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
	mov_si<mode>_e500_subreg0.
	(*mov_si<mode>_e500_subreg0_elf_low)
	(*mov_si<mode>_e500_subreg4_elf_low): New patterns.

testsuite:
	* gcc.c-torture/compile/vector-5.c,
	gcc.c-torture/compile/vector-6.c: New tests.

From-SVN: r188795
2012-06-19 23:08:49 +01:00
Richard Henderson
f49278e65e Set cache parameters for alpha
From-SVN: r188794
2012-06-19 14:08:03 -07:00
Steven Bosscher
70f42967b3 tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE, [...]): Add @hooks.
gcc/
	* doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
	TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
	(ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
	Remove.
	* doc/tm.texi: Regenerate.
	* config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
	.objc_class_name_*.
	* config/darwin-c.c: Include target.h.
	(darwin_objc_declare_unresolved_class_reference): New function.
	(darwin_objc_declare_class_definition): New function.
	(TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
	(TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.

c-family/
	* c-target.def (objc_declare_unresolved_class_reference,
	objc_declare_class_definition): Add new hooks.

objc/
	* objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
	Include c-family/c-target.h.
	(handle_next_class_ref): Rewrite to emit top-level asm statements.
	(handle_next_impent): Likewise.
	* objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.

From-SVN: r188793
2012-06-19 20:44:47 +00:00
Steven Bosscher
c85fd25b17 check_makefile_deps.sh: Look for c-common.o in c-family/.
* check_makefile_deps.sh: Look for c-common.o in c-family/.
	Add a few more crt* files to the list of files to skip.

From-SVN: r188792
2012-06-19 20:01:23 +00:00
Steven Bosscher
a8781821e0 target.def (output_ident): New hook.
gcc/
	* target.def (output_ident): New hook.
	* targhooks.h (default_asm_output_ident_directive): Add prototype.
	* varasm.c (assemble_asm): Only prefix a tab if the string does not
	already start with one.
	(default_asm_output_ident_directive): New function to emit
	.ident as a top-level asm node while parsing, or directly to
	asm_out_file after parsing.
	* toplev.c (compile_file): Print a GCC .ident with
	targetm.asm_out.output_ident.
	* doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
	(TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
	* doc/tm.texi: Update.

	* config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/i386/djgpp.h (IDENT_ASM_OP): Remove.
	* config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
	* config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
	* config/sparc/sparc.h (IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/picochip/picochip.h (IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.

	* config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
	* config/cris/cris.c (cris_asm_output_ident): New function.
	* config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.

	* config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
	Add prototype.
	* config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
	(microblaze_asm_output_ident): Rewrite to work similar to
	default_asm_output_ident_directive for front-end .idents.
	* config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.

	* config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
	* config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.

	* config/rx/rx.c: Include cgraph.h for add_asm_node.
	(rx_asm_output_ident): New function, similar to
	default_asm_output_ident_directive, but handle AS100 syntax also, so
	that #ident also works for rx in AS100 syntax.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/rx/rx.h (IDENT_ASM_OP): Remove.

	* Makefile.in: Fix dependencies for c-family/c-lex.o.

c-family/
	* c-lex.c: Do not include output.h.
	(cb_ident): Try to put out .ident with targetm.asm_out.output_ident.
	Remove uses of ASM_OUTPUT_IDENT.

ada/
	* gcc-interface/trans.c: Include target.h.
	(gigi): Try to put out .ident with targetm.asm_out.output_ident.
	Remove uses of ASM_OUTPUT_IDENT.
	* gcc-interface/Make-lang.in: Fix dependencies.

From-SVN: r188791
2012-06-19 19:55:33 +00:00
Uros Bizjak
e42d5b2d0e i386.md (FIST_ROUNDING): New int iterator.
* config/i386/i386.md (FIST_ROUNDING): New int iterator.
	(rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
	(ROUNDING): Ditto.
	(*fist<mode>2_<rounding>_1): Macroize insn from
	*fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
	(fistdi2_<rounding>): Macroize insn from
	fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
	(fistdi2_<rounding>_with_temp and splitters): Macroize insn and
	corresponding splitters from fistdi2_{floor,ceil} and corresponding
	splitters using FIST_ROUNDING int iterator.
	(fist<mode>2_<rounding>): Macroize insn from
	fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
	(fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
	corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
	splitters using FIST_ROUNDING int iterator.
	(l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
	using FIST_ROUNDING int iterator.

From-SVN: r188789
2012-06-19 20:24:26 +02:00
Richard Henderson
3a6a2759a6 pr33329.c: Change multiplier constant to 12345
From-SVN: r188788
2012-06-19 11:19:37 -07:00
Richard Henderson
73e9d63709 Handle const_vector in mulv4si3 for pre-sse4.1.
From-SVN: r188787
2012-06-19 11:19:26 -07:00
Richard Henderson
84ddb6810c Use synth_mult for vector multiplies vs scalar constant
From-SVN: r188786
2012-06-19 11:19:16 -07:00
Richard Henderson
6bc0ff89a1 Add rtx costs for sse integer ops
From-SVN: r188785
2012-06-19 11:19:03 -07:00
David Edelsohn
b1f75d7653 inclhack.def (aix_mutex_initializer_1): New fix.
* inclhack.def (aix_mutex_initializer_1): New fix.
        (aix_cond_initializer_1): New fix.
        (aix_rwlock_initializer): New fix.
        * fixincl.x: Regenerate.
        * tests/base/pthread.h [AIX_MUTEX_INITIALIZER_1_CHECK]: New.
        [AIX_COND_INITIALIZER_1_CHECK]: New.
        [AIX_RWLOCK_INITIALIZER_1_CHECK]: New.

From-SVN: r188784
2012-06-19 13:55:14 -04:00
Uros Bizjak
b13024e6ad i386.md (FRNDINT_ROUNDING): New int iterator.
* config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
	(rounding): New int attribute.
	(ROUNDING): Ditto.
	(frndintxf2_<rounding>): Macroize insn from
	frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
	(frndintxf2_<rounding>_i387): Macroize insn from
	frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.

From-SVN: r188783
2012-06-19 18:32:57 +02:00
Uros Bizjak
d35d1c0fee lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and __builtin_ia32_pcmpestri128 instead of asm.
* lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
	__builtin_ia32_pcmpestri128 instead of asm.

From-SVN: r188782
2012-06-19 18:28:50 +02:00
Richard Guenther
bbe10a06e0 vrp68.c: Adjust testcase.
2012-06-19  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/tree-ssa/vrp68.c: Adjust testcase.

From-SVN: r188781
2012-06-19 15:28:50 +00:00
Richard Guenther
b54e19c27a tree-vrp.c (union_ranges): New function.
2012-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (union_ranges): New function.
	(vrp_meet_1): Use union_ranges.
	(vrp_meet): Dump what we union and call vrp_meet_1.

From-SVN: r188780
2012-06-19 14:59:39 +00:00
Richard Earnshaw
82981dc4cd arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
* arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
	(attr type): Remove fmul, ffmul, farith, ffarith, float_em
	f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
	(attr write_conflict, attr core_cycles): Update.
	* arm-generic.md (r_mem_f_wbuf): Delete reservation.

From-SVN: r188778
2012-06-19 13:41:43 +00:00
Richard Guenther
105b7208d1 tree-vrp.c (intersect_ranges): Handle more cases.
2012-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (intersect_ranges): Handle more cases.
	(vrp_intersect_ranges): Dump what we intersect and call ...
	(vrp_intersect_ranges_1): ... this.

From-SVN: r188776
2012-06-19 13:06:35 +00:00
Richard Guenther
af4d0d913b re PR middle-end/53708 (Many failures of the objc tests with -O3 -fnext-runtime and -m32)
2012-06-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53708
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
	user-supplied alignment and alignment of decls with the used
	attribute.

From-SVN: r188771
2012-06-19 09:19:07 +00:00
Lawrence Crowl
a910399dfd The intent of the phases was to have a high-level but mutually exclusive accounting of compile time.
The intent of the phases was to have a high-level but mutually exclusive
accounting of compile time.  We want to track compile time in a way that
tells us which conceptual phases are taking the most time.  That intent
is not currently satisfied.  This patch restores that intent.

Add code to verify that the sum of the phase times is less than the total
time, to detect when phases are overlapped.  A slight amount of leeway is
required due to time jitters.  This verification is done as the last step
in printing timevars so that any timevar information is not lost.

Rename the phases to be clearer about what they measure, so that they
are less likely to be modified to be overlapping.  The primary example
is to change TV_PHASE_GENERATE to TV_PHASE_LATE_ASM, meaning late work
on the assembly.  This name change avoids confusion n moving the timevar
start call after the call to lang_hooks.decls.final_write_globals, which
prevents overlapping phases.

Each implementation of lang_hooks.decls.final_write_globals, is responsible
for starting and stopping its own phases.  Each implementation currently has
a first phase of TV_PHASE_DEFERRED for front-end work deferred until after
parsing is complete.  The second phase has been renamed from TV_PHASE_CGRAPH
to TV_PHASE_OPT_GEN, to better reflect its use as the main optimization
and generation phase.  This phase accounts for 70%-80% of compilation time
during bootstrap.  The third phase is TV_PHASE_DBGINFO, except in cp/decl2.c,
where it is TV_PHASE_CHECK_DBGINFO because cc1plus mixes checking in with
debug info generation.  In langhooks.c, write_global_declarations was
using TV_PHASE_CHECK_DBGINFO, but it was doing no checking.  So, it now
uses TV_PHASE_DBGINFO.

The changes to LTO are significant.  First, initialization now uses
TV_PHASE_SETUP.  Reading files now uses TV_PHASE_STREAM_IN.  Writing files
now uses TV_PHASE_STREAM_OUT.  The remaining phase is TV_PHASE_OPT_GEN
(formerly TV_PHASE_CGRAPH).  Finally, because LTO is treated as a front
end, TV_PHASE_PARSING and TV_PARSE_GLOBAL active around it.  It is not
parsing, and so those timers should not be active.  Rather than make all
front ends manage them, we turn them off as the first thing in LTO and turn
them back on as the last thing.

Tested on x86_64.


Index: gcc/ChangeLog

2012-06-18  Lawrence Crowl  <crowl@google.com>

	* timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
	(TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
	(TV_PHASE_STREAM_IN): New.
	(TV_PHASE_STREAM_OUT): New.
	* timevar.c (validate_phases): New.
	(timevar_print): Call validate_phases.
	* c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
	to TV_PHASE_OPT_GEN.
	* langhooks.c (write_global_declarations): Rename use of
	TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Use TV_PHASE_DBGINFO instead of
	TV_PHASE_CHECK_DBGINFO.
	* toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
	TV_PHASE_LATE_ASM.  Move start of TV_PHASE_LATE_ASM to after call to
	lang_hooks.decls.final_write_globals.

Index: gcc/cp/ChangeLog

2012-06-18  Lawrence Crowl  <crowl@google.com>

	* decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
	to TV_PHASE_OPT_GEN.

Index: gcc/lto/ChangeLog

2012-06-18  Lawrence Crowl  <crowl@google.com>

        * lto.c (do_whole_program_analysis):  Rename use of TV_PHASE_CGRAPH to
	TV_PHASE_OPT_GEN.  Use new timevar TV_PHASE_STREAM_OUT around the call
	to lto_wpa_write_files.
	(lto_main):  Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Move
	start of TV_PHASE_OPT_GEN to include call to materialize_cgraph.  Use
	TV_PHASE_SETUP for the call to lto_init.  Use new timevar
	TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
	Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
	to be a front end, but is not one.

From-SVN: r188765
2012-06-19 01:30:31 +00:00
GCC Administrator
1cc7e0d0c3 Daily bump.
From-SVN: r188764
2012-06-19 00:20:02 +00:00