Commit Graph

112638 Commits

Author SHA1 Message Date
David S. Miller
4d1a883835 Fix sparc so that reload doesn't try to load non-trivial vector consts directly.
* config/sparc/predicates.md (input_operand): Disallow vector
	constants other than 0 and -1.
	* config/sparc/sparc.c (sparc_preferred_reload_class): Return
	NO_REGS for vector constants other than 0 and -1.

From-SVN: r180351
2011-10-23 14:51:16 -07:00
David S. Miller
5a53588ff0 Use a macro instead of a constant to test for sparc integer regnos.
* config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
	SPARC_INT_REG_P): Define.
	(HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
	(REGNO_OK_FOR_INDEX_P): Likewise.
	* config/sparc/sparc.c (gen_df_reg): Likewise.
	(eligible_for_return_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	(sparc_legitimate_address_p): Likewise.
	(emit_save_or_restore_regs): Likewise.
	(registers_ok_for_ldd_peep): Likewise.
	* config/spac/sparc.md (DI mode splitters): Likewise.
	(SF mode const splitters): Likewise.
	(DF mode splitters): Likewise.
	(32-bit DI mode logical op splitters): Likewise.

From-SVN: r180350
2011-10-23 14:50:56 -07:00
Paolo Carlini
0bcf216b2a re PR c++/50841 (bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180349
2011-10-23 21:15:08 +00:00
Paolo Carlini
5f53c2438d re PR c++/50841 (bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180348
2011-10-23 20:59:43 +00:00
Eric Botcazou
be98aaf0bc * gcc-interface/decl.c (create_concat_name): Add explicit cast.
From-SVN: r180347
2011-10-23 20:21:06 +00:00
Uros Bizjak
0d459eaed8 sse.md (avx2_lshl<mode>3): Remove insn pattern.
* config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
	(VI248_256): Remove mode iterator.
	* config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
	instead of gen_avx2_lshlv4di3.
	(bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
	CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.

From-SVN: r180346
2011-10-23 21:48:41 +02:00
Ian Lance Taylor
de27caacfb Implement new syscall package.
Calls to library functions now use entersyscall and
exitsyscall as appropriate.  This is a first step toward
multiplexing goroutines onto threads.

From-SVN: r180345
2011-10-23 19:04:37 +00:00
Uros Bizjak
7b45b87f01 sse.md (sseintprefix): Rename from gthrfirstp.
* config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
	pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
	*avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
	iterator.  Use sseintprefix mode attribute.
	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
	pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
	*avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
	iterator.  Use sseintprefix mode attribute.
	(*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
	attributes.
	(*avx2_gatherdi<mode>): Ditto.
	(*avx2_gatherdi<mode>256): Ditto.
	(VI48_AVX2): Remove mode iterator.
	(gthrlastfp): Remove mode attribute.

From-SVN: r180344
2011-10-23 20:43:11 +02:00
Paolo Carlini
263734e172 re PR c++/50810 (c++0x-compat does not warn about narrowing conversions)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180343
2011-10-23 18:34:45 +00:00
Tom de Vries
19b6a33daa re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* gcc.dg/pr50763.c: New test.

From-SVN: r180342
2011-10-23 16:06:40 +00:00
Tom de Vries
4cbdcd40fa re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored out
	of ...
	(same_succ_flush_bbs): Use same_succ_flush_bb.
	(purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
	release_last_vdef and delete_basic_block.
	(unlink_virtual_phi): New function.
	(update_vuses): Add and use vuse1_phi_args argument.  Set var to
	SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that def_stmt2
	is NULL.  Use phi result as phi arg in case vuse1 or vuse2 is NULL_TREE.
	Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code to limit
	replacement of uses.  Propagate phi argument for phis with a single
	argument.
	(replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
	Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add vuse1_phi_args
	as argument to call to update_vuses.  Call release_last_vdef,
	same_succ_flush_bb, delete_basic_block.  Update CDI_DOMINATORS info.
	(tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
	call to free_dominance_info.  Only call calculate_dominance_info once.

From-SVN: r180341
2011-10-23 16:06:32 +00:00
Eric Botcazou
4db183a2d5 re PR tree-optimization/44683 (Optimization bug with copysign builtin)
* fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.

	PR tree-optimization/44683
	* tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
	we can be sure that there are no signed zeros involved.

From-SVN: r180340
2011-10-23 15:57:09 +00:00
Jan Hubicka
d621a5fb6d * ipa-inline.c (estimate_badness): Scale up and handle overflows.
From-SVN: r180336
2011-10-23 14:30:24 +00:00
Uros Bizjak
fe646a69c7 re PR target/50788 (ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256)
PR target/50788
	* config/i386/sse.md (avx2_maskload<ssemodesuffix><avxsizesuffix>):
	Remove (match_dup 0).
	(*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
	(*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
	(*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.

testsuite/ChangeLog:

2011-10-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50788
	* testsuite/gcc.target/i386/pr50788.c: New test.

From-SVN: r180335
2011-10-23 16:18:08 +02:00
Ira Rosen
5bfdb7d889 re PR tree-optimization/50819 (missed SLP vectorization)
PR tree-optimization/50819
        * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
        the last argument.
        * tree-vect-loop.c (vect_analyze_loop_2): Update call to
        vect_analyze_data_ref_dependences.
        * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
        Remove the last argument.  Check load-after-store dependence
        for unknown dependencies in basic blocks.
        (vect_analyze_data_ref_dependences): Update call to
        vect_analyze_data_ref_dependences.
        * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix
        typo.
        * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies):
        Remove.
        (vect_slp_analyze_bb_1): Update call to
        vect_analyze_data_ref_dependences.  Don't call
        vect_bb_vectorizable_with_dependencies.

From-SVN: r180334
2011-10-23 12:13:49 +00:00
GCC Administrator
b0ed0a6f21 Daily bump.
From-SVN: r180333
2011-10-23 00:18:37 +00:00
Jonathan Wakely
3b2eeb43cf re PR libstdc++/50196 ([C++0x] std::thread not available under macos)
PR libstdc++/50196
	* acinclude.m4 (GLIBCXX_HAS_GTHREADS): Don't depend on _POSIX_TIMEOUTS.
	* configure: Regenerate.
	* include/std/mutex (timed_mutex, recursive_timed_mutex): Define
	conditionally on GTHREADS_HAS_MUTEX_TIMEDLOCK.
	* testsuite/lib/libstdc++.exp (check_v3_target_gthreads_timed): Define.
	* testsuite/lib/dg-options.exp (dg-require-gthreads-timed): Define.
	* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
	Use dg-require-gthreads-timed instead of dg-require-gthreads.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/
	typesizes.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
	Likewise.
	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/timed_mutex/requirements/standard_layout.cc:
	Likewise.
	* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.

From-SVN: r180329
2011-10-22 22:31:24 +01:00
Dodji Seketeli
ad2305adb4 Fix cpp_peek_token behaviour (PR bootstrap/50778)
libcpp/

	* include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
	context to act upon.
	* lex.c (_cpp_remaining_tokens_num_in_context): Likewise.  Update
	comment.
	(cpp_token_from_context_at): Likewise.
	(cpp_peek_token): Use the context to peek tokens from.

From-SVN: r180328
2011-10-22 19:49:18 +02:00
Ian Lance Taylor
94bf1a5fb7 Update Go library to r60.3 release.
From-SVN: r180327
2011-10-22 16:19:46 +00:00
David S. Miller
89b925a660 Remove unused functions from sparc backend.
* config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
	* config/sparc/sparc-protos.h (short_branch, reg_unused_after):
	Get rid of declarations.

From-SVN: r180325
2011-10-22 01:01:58 -07:00
David S. Miller
f0237267ba Make sparc's "struct processor_costs" private to sparc.c
* config/sparc/sparc.h (sparc_costs): Remove extern decl.
	(struct processor_costs): Move from here..
	* config/sparc/sparc.c (struct processor_costs): To here.
	(sparc_costs): Mark static.

From-SVN: r180324
2011-10-22 00:30:12 -07:00
David S. Miller
9dc98917cc Convert sparc over to TARGET_SECONDARY_RELOAD.
gcc/

	* config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
	SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
	* config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
	(sparc_secondary_reload): New function.

From-SVN: r180323
2011-10-22 00:05:32 -07:00
DJ Delorie
40c4cbcd82 obstack.h [!GNUC] (obstack_free): Avoid cast to int.
* obstack.h [!GNUC] (obstack_free): Avoid cast to int.
* ansidecl.h (ENUM_BITFIELD): Always use enum in C++

From-SVN: r180321
2011-10-21 21:35:29 -04:00
GCC Administrator
799ae3ed41 Daily bump.
From-SVN: r180320
2011-10-22 00:19:07 +00:00
Steven G. Kargl
6d8c9e5c9a re PR fortran/50821 (3 new GCC HEAD@180266 regressions)
2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/50821
	* check.c (gfc_check_ishftc): Check args are constant before 
	extracting the integer.

From-SVN: r180316
2011-10-21 22:48:39 +00:00
Paul Brook
74b388c339 c6x.c (c6x_asm_emit_except_personality, [...]): New functions.
* config/c6x/c6x.c (c6x_asm_emit_except_personality,
	c6x_asm_init_sections): New functions.
	(TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS):
	Define.

From-SVN: r180314
2011-10-21 21:04:13 +00:00
Paul Brook
56dc349e1a * unwind-arm-common.inc: Handle ID3/4 unwinding data.
From-SVN: r180313
2011-10-21 21:00:11 +00:00
Paolo Carlini
d2e312d7e5 re PR c++/45385 (missing -Wconversion for method calls)
/cp
2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45385
	* init.c (build_vec_init): Early return error_mark_node if
	maxindex is -1.

/c-family
2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45385
	* c-common.c (conversion_warning): Remove code looking for
	artificial operands.

/testsuite
2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45385
	* g++.dg/warn/Wconversion4.C: New.

From-SVN: r180312
2011-10-21 20:01:31 +00:00
Jakub Jelinek
9956ad4d14 re PR target/50813 (gcc.dg/torture/vshuf-{v4di,v8si}.c fail on AVX target)
PR target/50813
	* config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
	V4DImode and V8SImode for !TARGET_AVX2.

	* gcc.dg/torture/vshuf-32.inc: Add broadcast permutation
	from element other than first and reverse permutation.
	* gcc.dg/torture/vshuf-16.inc: Likewise.
	* gcc.dg/torture/vshuf-8.inc: Likewise.
	* gcc.dg/torture/vshuf-4.inc: Likewise.

From-SVN: r180311
2011-10-21 21:32:20 +02:00
Bernd Schmidt
f561ef0f49 re PR bootstrap/50825 (bootstrap fails at stage1 libgcc from r180302)
PR bootstrap/50825
	* sched-deps.c (add_dependence): If not doing predication, promote
	REG_DEP_CONTROL to REG_DEP_ANTI.

From-SVN: r180310
2011-10-21 18:38:44 +00:00
Paolo Carlini
fe66170d5b re PR c++/31423 (Improve upon "invalid use of member (did you forget the '&' ?)")
/cp
2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31423
	* typeck2.c (cxx_incomplete_type_diagnostic): Improve error message
	for invalid use of member function.

/testsuite
2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31423
	* g++.dg/parse/error43.C: New.
	* g++.dg/parse/error44.C: Likewise.

From-SVN: r180309
2011-10-21 18:18:55 +00:00
Georg-Johann Lay
c1a330ef7f avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X instead of X to avr_legitimize_reload_address.
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
	instead of X to avr_legitimize_reload_address.
	* config/avr/avr-protos.h (avr_legitimize_reload_address): Change
	first argument's type from rtx to rtx*.
	* config/avr/avr.c (avr_legitimize_reload_address): Ditto.
	Pass PX to push_reload instead of &X.  Change log messages for
	better distinction.

From-SVN: r180308
2011-10-21 15:46:32 +00:00
Roland Stigge
9200b30225 re PR translation/47064 (params.def: Translatable string compilatoin (vs. compilation))
2011-10-21  Roland Stigge  <stigge@antcom.de>

	PR translation/47064
	* params.def: Fix typo "compilatoin" -> "compilation".

From-SVN: r180307
2011-10-21 14:55:42 +00:00
Uros Bizjak
d25f2fb9d6 * ChangeLog: Add missing PR reference.
From-SVN: r180305
2011-10-21 16:34:51 +02:00
H.J. Lu
2c9b39efcb re PR driver/50740 (CPUID leaf 7 for BMI/BMI2/AVX2 feature detection not qualified with max_level and doesn't use subleaf)
PR target/50740
	* config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
	if max_level allows that.

testsuite/ChangeLog:

	PR target/50740
	* gcc.target/i386/avx2-check.h (main): Check CPUID level correctly.
	* gcc.target/i386/bmi2-check.h: Ditto.

From-SVN: r180304
2011-10-21 16:32:32 +02:00
Bernd Schmidt
e2724e63c6 reg-notes.def (DEP_CONTROL): New.
* reg-notes.def (DEP_CONTROL): New.
	* sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
	not doing speculation.
	* rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
	record_hard_reg_uses_1, record_hard_reg_uses): New functions.
	* function.c (record_hard_reg_sets, record_hard_reg_uses,
	record_hard_reg_uses_1): Remove; move to rtlanal.c.
	* lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
	* haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
	(MUST_RECOMPUTE_SPEC_P): New macro.
	(real_insn_for_shadow): New function.
	(cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
	toggle_cancelled_flags): New static functions.
	(schedule_insn): Relax an assert to only check for empty hard back
	dependencies.  Skip cancelled dependencies.  Call
	check_clobbered_conditions.
	(copy_insn_list): Remove function, renamed moved to lists.c.
	(save_backtrack_point): Use new spelling copy_INSN_LIST.
	(unschedule_insns_until): Ensure TODO_SPEC is reset properly.
	(restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
	(estimate_insn_tick): Ignore cancelled dependencies.
	(haifa_speculate_insn): Move declaration.
	(try_ready): Move code into recompute_todo_spec and call it.  Tweak
	some asserts.  Ensure predicated patterns are restored if necessary.
	Dump DEP_CONTROL flag.
	(haifa_change_pattern): Merge with sched_change_pattern.
	(sched_change_pattern): Remove function.
	* sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
	uses changed to simply not test NON_FLUSH_JUMP_P.
	(ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
	REG_DEP_CONTROL.
	(dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
	(reg_pending_control_uses, control_dependency_cache): New static
	variables.
	(sched_get_reverse_condition_uncached): New function.
	(sd_find_dep_between): Remove pointless assert.  Look in
	control_dependency_cache.
	(ask_dependency_caches, set_dependency_caches, sd_delete_dep,
	extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
	and control_dependency_cache.
	(sd_unresolve_dep): Use dep_spec_p.
	(add_dependence): Now a wrapper around add_dependence_1, handling
	REG_DEP_CONTROL specially.
	(flush_pending_lists): Clear pending_jump_insns.
	(sched_analyze_1): Handle pending_jump_insns like a memory flush.
	(sched_analyze_2): Unconditionally add to pending memory flushes,
	keep previous behaviour but apply it to pending_jump_insns instead.
	(sched_analyze_insn): Defer adding jump reg dependencies using
	reg_pending_control_uses; add them to the control_uses list.  Handle
	pending_jump_insns and control_uses when adding dependence lists.
	(deps_analyze_insn): Update INSN_COND_DEPS.
	(deps_analyze_insn): Add jumps to pending_jump_insns rather than
	last_pending_memory_flush.
	(init_deps): Initialize pending_jump_insns.
	(free_deps): Free control_uses.
	(remove_from_deps): Remove from pending_jump_insns.
	(init_deps_global): Allocate reg_pending_control_uses).
	(finish_deps_global): Free it.
	(add_dependence_1): Renamed from add_dependence.  Handle
	REG_DEP_CONTROL.
	* rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
	(copy_INSN_LIST, concat_INSN_LIST): Declare.
	* sched-int.h (struct deps_reg): Add control_uses.
	(struct deps_desc): Add pending_jump_insns.
	(struct _haifa_deps_insn_data): Add cond_deps.
	(struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
	(INSN_COND_DEPS, PREDICATED_PAT): New macros.
	(BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
	(DEP_CONTROL): New macro.
	(DEP_TYPES): Include it.
	(HARD_DEP): Adjust definition.
	(DEP_CANCELLED): New macro.
	(enum SCHED_FLAGS): Add DO_PREDICATION.
	(sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
	* sched-rgn.c (concat_INSN_LIST): Remove function.
	(deps_join): Handle pending_jump_insns.
	(free_pending_lists): Likewise.
	* config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
	schedule.

From-SVN: r180302
2011-10-21 13:35:44 +00:00
Ville Voutilainen
b9af306b97 re PR c++/50811 ([C++0x] G++ rejects class-virt-specifier if class-head-name includes nested-name-specifier)
PR c++/50811
	* parser.c (cp_parser_class_head): Parse virt-specifiers
	regardless of whether an id is present

From-SVN: r180301
2011-10-21 09:31:21 -04:00
Rainer Orth
d75b27217b Fix gnat.dg testing with linker plugin check
* lib/gcc-dg.exp (GCC_UNDER_TEST): Set before calling
	check_linker_plugin_available.

From-SVN: r180300
2011-10-21 12:53:09 +00:00
Georg-Johann Lay
d573919e7c re PR target/50820 ([avr] Use EIND consistently)
PR target/50820
	* config/avr/libgcc.S (__EIND__): New define to 0x3C.
	(__tablejump__): Consistently use EIND for indirect jump/call.
	(__tablejump_elpm__): Ditto.

From-SVN: r180299
2011-10-21 12:48:04 +00:00
Bernd Schmidt
8076c3e3e4 c6x.md (attr "op_pattern"): New.
* config/c6x/c6x.md (attr "op_pattern"): New.
	(load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
	* config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
	Likewise.
	* config/c6x/c6x-mult.md: Regenerate.
	* config/c6x/c6x.c: Include "regrename.h".
	(unit_req_table): New typedef.
	(unit_reqs): Use it for the declaration.
	(unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
	get_unit_operand_masks, try_rename_operands, reshuffle_units): New
	static functions.
	(count_unit_reqs): New arg reqs.  All callers changed.  Use
	get_unit_reqs, and don't merge here.
	(res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
	using unit_req_factor.
	(hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
	count_unit_reqs.
	(c6x_reorg): Add reg notes problem, and call df_analyze.
	* Makefile.in ($(out_object_file)): Depend on regrename.h.

From-SVN: r180296
2011-10-21 11:54:25 +00:00
Kai Tietz
bb35fdd04a branch-cost1.c: New test.
* gcc.target/i386/branch-cost1.c: New test.
        * gcc.target/i386/branch-cost2.c: New test.
        * gcc.target/i386/branch-cost3.c: New test.
        * gcc.target/i386/branch-cost4.c: New test.

        * fold-const.c (simple_operand_p_2): Handle integral
        casts from boolean-operands.

From-SVN: r180295
2011-10-21 13:50:42 +02:00
Rainer Orth
b867358a06 Fix several ChangeLog errors.
From-SVN: r180294
2011-10-21 11:41:15 +00:00
Jan Hubicka
25e2c40dd7 cgraph.c (dump_cgraph_node): Dump alias flag.
* cgraph.c (dump_cgraph_node): Dump alias flag.
	* cgraphunit.c (handle_alias_pairs): Handle weakrefs with no destination.
	(get_alias_symbol): New function.
	(output_weakrefs): Output also weakrefs with no destinatoin.
	(lto_output_node): Output weakref alias flag when at function boundary.

From-SVN: r180292
2011-10-21 11:04:20 +00:00
Andrew Stubbs
49008cb98e re PR target/50809 (driver-arm.c:55:11: error: anonymous type with no linkage used to declare variable '<anonymous struct> vendors []' with linkage [-Werror])
2011-10-21  Andrew Stubbs  <ams@codesourcery.com>

	PR target/50809

	gcc/
	* config/arm/driver-arm.c (vendors): Make static.

From-SVN: r180289
2011-10-21 10:31:48 +00:00
Uros Bizjak
efc1540576 i386.c (ix86_emit_swdivsf): Force b into register.
* config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
	(ix86_emit_swsqrtsf): Force a into register.

From-SVN: r180287
2011-10-21 09:30:24 +02:00
Mike Stump
3147591f60 regcprop.c (copyprop_hardreg_forward_1): Update recog_data after validate_change wipes it out.
* regcprop.c (copyprop_hardreg_forward_1): Update recog_data
	after validate_change wipes it out.

From-SVN: r180284
2011-10-21 02:14:32 +00:00
Ulrich Weigand
b66cf46e4d spu.md ("vec_permv16qi"): Reduce selector modulo 32 before using the shufb instruction.
* config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
	before using the shufb instruction.

From-SVN: r180283
2011-10-21 01:27:36 +00:00
GCC Administrator
d2a80c9fbd Daily bump.
From-SVN: r180282
2011-10-21 00:19:02 +00:00
Steve Ellcey
7ec254da41 vect-120.c: Add vect_floatint_cvt requirement.
2011-10-20  Steve Ellcey  <sje@cup.hp.com>

	* gcc.dg/vect/vect-120.c: Add vect_floatint_cvt requirement.

From-SVN: r180278
2011-10-20 21:29:20 +00:00
Steve Ellcey
926ac8d494 re PR testsuite/50722 (FAIL: gcc.dg/pr49994-3.c (test for excess errors))
2011-10-20  Steve Ellcey  <sje@cup.hp.com>

	PR testsuite/50722
	* gcc.dg/pr49994-3.c: Skip on HP-UX.

From-SVN: r180277
2011-10-20 21:26:01 +00:00