Commit Graph

144225 Commits

Author SHA1 Message Date
Martin Jambor
fe621379bc [hsa] Atomic assess memory model fixes
2016-01-29  Martin Jambor  <mjambor@suse.cz>

	* hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
	Use short lowercase names.
	(get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
	MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
	acq_rel one.  Protect warning agains segfaults if
	get_memory_order_name returns NULL.
	(gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
	with release semantics.  Do not warn if get_memory_order already did.
	(gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
	semantics.  Fix check for relaxed or acquire semantics.  Do not warn
	if get_memory_order already did.

From-SVN: r233000
2016-01-29 23:53:28 +01:00
Jakub Jelinek
3a5d2ba4fc re PR debug/69518 (Flag -g causes "error: type variant has different TYPE_VFIELD")
PR debug/69518
	* c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
	all type variants, not just TYPE_MAIN_VARIANT.

	* gcc.dg/torture/pr69518.c: New test.

From-SVN: r232998
2016-01-29 21:37:25 +01:00
Sebastian Pop
c661a43de3 document that isl-0.16 is supported
* config/isl.m4: Add comments about isl-0.16.
	* configure: Regenerate.

gcc/
	* doc/install.texi: Document that isl-0.16 is supported.

From-SVN: r232997
2016-01-29 20:26:04 +00:00
Vladimir Makarov
9eb1ca69e1 re PR target/69299 (-mavx performance degradation with r232088)
2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69299
	* config/i386/constraints.md (Bm): Describe as special memory
	constraint.
	* doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
	* genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* genpreds.c (struct constraint_data): Add is_special_memory.
	(have_special_memory_constraints, special_memory_start): New
	static vars.
	(special_memory_end): Ditto.
	(add_constraint): Add new arg is_special_memory.  Add code to
	process its true value.  Update have_special_memory_constraints.
	(process_define_constraint): Pass the new arg.
	(process_define_register_constraint): Ditto.
	(choose_enum_order): Process special memory.
	(write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
	function insn_extra_special_memory_constraint.
	(main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* gensupport.c (process_rtx): Process
	DEFINE_SPECIAL_MEMORY_CONSTRAINT.
	* ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
	* ira-lives.c (single_reg_class): Use
	insn_extra_special_memory_constraint.
	* ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
	* lra-constraints.c (process_alt_operands): Ditto.
	(curr_insn_transform): Use insn_extra_special_memory_constraint.
	* recog.c (asm_operand_ok, preprocess_constraints): Process
	CT_SPECIAL_MEMORY.
	* reload.c (find_reloads): Ditto.
	* rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
	* stmt.c (parse_input_constraint): Use
	insn_extra_special_memory_constraint.

From-SVN: r232993
2016-01-29 18:47:17 +00:00
H.J. Lu
6bbacdb544 Revert revsion 229087 changes in lra-spills.c
r229087, which caused PR 69530, was supposed to fix PR 67609.  r229458
has made r229087 unnecessary.

gcc/

	PR target/69530
	* lra-splill.c (lra_final_code_change): Revert r229087 by
	removing all sub-registers.

gcc/testsuite/

	PR target/69530
	* gcc.target/i386/pr69530.c: New test.

From-SVN: r232991
2016-01-29 10:03:42 -08:00
Steve Ellcey
af932cdb8a re PR target/65604 (MIPS -fno-delayed-branch generates incorrect code with -mcheck-zero-division)
PR target/65604
	* gcc.target/mips/div-delay.c: New test.

From-SVN: r232986
2016-01-29 16:31:18 +00:00
Steve Ellcey
87a5ab58c5 re PR target/65604 (MIPS -fno-delayed-branch generates incorrect code with -mcheck-zero-division)
PR target/65604
	* config/mips/mips.c (mips_output_division): Check flag_delayed_branch.

From-SVN: r232985
2016-01-29 16:29:58 +00:00
Jakub Jelinek
33e89989f6 re PR target/69551 (Wrong code with single element vector insert)
PR target/69551
	* config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
	SSE1, copy target into the temporary reg first before recursing
	on it.

	* gcc.target/i386/pr69551.c: New test.

From-SVN: r232982
2016-01-29 15:14:56 +01:00
Jakub Jelinek
26658b7c9e re PR target/66137 (ICE with -ffixed-ebp)
PR target/66137
	* gcc.target/i386/pr66137.c: New test.

From-SVN: r232981
2016-01-29 15:07:40 +01:00
Andrew Bennett
401116b5a4 p5600-bonding.c (dg-options): Force the test to be always built for p5600.
testsuite/
2016-01-29  Andrew Bennett  <andrew.bennett@imgtec.com>

       * gcc.target/mips/p5600-bonding.c (dg-options): Force the test to be
       always built for p5600.
       * gcc.target/mips/mips.exp (mips-dg-options): Add support for the
       isa=p5600 dg-option.

From-SVN: r232980
2016-01-29 13:54:53 +00:00
H.J. Lu
96db298a71 Use vm in sse2_cvtps2pd<mask_name>
sse2_cvtps2pd<mask_name> has

(define_insn "sse2_cvtps2pd<mask_name>"
  [(set (match_operand:V2DF 0 "register_operand" "=v") 
        (float_extend:V2DF
          (vec_select:V2SF
            (match_operand:V4SF 1 "vector_operand" "vBm") 
            (parallel [(const_int 0) (const_int 1)]))))]

The memory operand size is 8 bytes (2 floats).  We should use vm instead
of vBm.

	* config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
	with vm.

From-SVN: r232979
2016-01-29 05:03:51 -08:00
Martin Jambor
86b3a101ff Add myself as a hsa maintainer
2016-01-29  Martin Jambor  <mjambor@suse.cz>

	* MAINTAINERS (hsa maintainers): Add myself.

From-SVN: r232978
2016-01-29 13:47:56 +01:00
Jonathan Wakely
382ead25f4 Test __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__
* ginclude/stdarg.h: Test __cplusplus instead of
	__GXX_EXPERIMENTAL_CXX0X__.

From-SVN: r232977
2016-01-29 12:29:42 +00:00
Richard Biener
d4abfcc561 re PR middle-end/69547 (no-op array initializer emits an empty loop)
2016-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69547
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
	Do not mark clobbers necessary.
	(mark_all_reaching_defs_necessary_1): Likewise.

	* g++.dg/tree-ssa/pr69547.C: New testcase.

From-SVN: r232976
2016-01-29 11:21:19 +00:00
Jakub Jelinek
16b77b321e re PR debug/66869 (-Wunused-function no longer warns for static declarations without definition)
PR debug/66869
	* decl.c (wrapup_globals_for_namespace): Warn about unused static
	function declarations.

	* g++.dg/warn/Wunused-function2.C: New test.

From-SVN: r232975
2016-01-29 12:14:42 +01:00
Jonathan Wakely
f597d5f73c Fix Cygwin bootstrap error due to TM symbols
PR libstdc++/69506
	* config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r232974
2016-01-29 10:52:08 +00:00
Dominik Vogt
6eb422f0cf S/390: Use %qs in error messages.
gcc/ChangeLog

	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
	declaration name with %qs and print it in both error messages.  Also
	fix indentation.

From-SVN: r232973
2016-01-29 10:17:03 +00:00
Dominik Vogt
647ffdb76f PR other/69006: S/390: Fix extra newlines after diagnostics.
gcc/ChangeLog

	PR other/69006
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
	trailing blank line from error message.

From-SVN: r232972
2016-01-29 10:12:11 +00:00
Dominik Vogt
a1c9546419 S/390: Require a hardware vector support for test to succeed.
The test case works on S/390 too, but only with -march=z13 or later
(i.e. if Gcc can make use of hardware vector support).  Otherwise the
optimization gets too complex.  The attached patch forces Gcc to use
-march=z13 instead of xfail'ing the test on S/390.

gcc/testsuite/ChangeLog

	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Require a hardware vector support for
	test to succeed.

From-SVN: r232971
2016-01-29 10:09:13 +00:00
Jonathan Wakely
00ec75a0a2 PR c++/69462: Provide FLT_EVAL_METHOD and DECIMAL_DIG in float.h.
gcc/ChangeLog

	PR c++/69462
	* ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
	for C++-11.

From-SVN: r232970
2016-01-29 10:03:26 +00:00
Marek Polacek
5453bfed48 re PR c++/69509 (infinite loop compiling a VLA in a recursive constexpr function)
PR c++/69509
	PR c++/69516
	* constexpr.c (cxx_eval_array_reference): Give the "array subscript
	out of bound" error earlier.
	* init.c (build_vec_init): Change NE_EXPR into GT_EXPR.  Update the
	commentary.

	* g++.dg/ext/constexpr-vla2.C: New test.
	* g++.dg/ext/constexpr-vla3.C: New test.
	* g++.dg/ubsan/vla-1.C: Remove dg-shouldfail.

From-SVN: r232969
2016-01-29 09:25:14 +00:00
Richard Biener
452ec2a5ec re PR middle-end/69537 (Incorrect -Wmaybe-uninitialized warning with enum variable)
2016-01-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/69537
	* match.pd: Allow all integral types when simplifying a
	widening or sign-changing conversion.

	* gcc.dg/uninit-21.c: New testcase.

From-SVN: r232968
2016-01-29 08:36:04 +00:00
Sebastian Pop
8dffffd00c PR69545: revert patch
Revert 'assert instead of silently failing code gen' that produces an ICE with isl-0.14.

From-SVN: r232966
2016-01-29 04:31:40 +00:00
Patrick Palka
e9f690692b Fix cp_binding_level reuse logic
gcc/cp/ChangeLog:

	* name-lookup.c (begin_scope): After reusing a cp_binding_level
	structure, update free_binding_level before the structure's
	level_chain field gets cleared, not after.

From-SVN: r232965
2016-01-29 01:51:03 +00:00
GCC Administrator
3a7d8a85a3 Daily bump.
From-SVN: r232963
2016-01-29 00:16:13 +00:00
Jakub Jelinek
4bda59463f re PR pch/68176 (all pch tests fail on eglibc systems (with bits/predefs.h))
PR pch/68176
	* files.c (_cpp_find_file): Set file->implicit_preinclude even if
	included from file->implicit_preinclude header.

From-SVN: r232956
2016-01-28 23:35:20 +01:00
Uros Bizjak
aec0b19e79 re PR target/69459 (wrong code with -O2 and vector arithmetics @ x86_64)
PR target/69459
	* config/i386/constraints.md (C): Only accept constant zero operand.
	(BC): New constraint.
	* config/i386/sse.md (*mov<mode>_internal): Use BC constraint
	instead of C constraint.
	* doc/md.texi (Machine Constraints): Update description
	of C constraint.

testsuite/ChangeLog:

	PR target/69459
	* gcc.target/i386/pr69459.c: New test.

From-SVN: r232955
2016-01-28 23:32:47 +01:00
Steve Ellcey
df113ce7de re PR target/68400 (ICE in change_address_1, at emit-rtl.c:2125)
PR target/68400
	* gcc.target/mips/mips.exp (mips_option_groups): Add stack-protector.
	* gcc.target/mips/pr68400.c: New test.

From-SVN: r232954
2016-01-28 22:28:04 +00:00
Steve Ellcey
0b16c7b99c re PR target/68400 (ICE in change_address_1, at emit-rtl.c:2125)
2016-01-28  Steve Ellcey  <sellcey@imgtec.com>

	PR target/68400
	* config/mips/mips.c (and_operands_ok): Add MIPS16 check.

From-SVN: r232952
2016-01-28 22:25:55 +00:00
Martin Sebor
494de84f5e PR target/17381 - Unnecessary register move for float extend
2016-01-28  Martin Sebor  <msebor@redhat.com>

	PR target/17381
	* gcc.target/powerpc/pr17381.c: New test.

From-SVN: r232947
2016-01-28 14:05:39 -07:00
Jakub Jelinek
eb1b1f0156 re PR middle-end/69542 (-fcompare-debug failure in simplify-rtx.c on i?86 since r232905)
PR middle-end/69542
	* lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
	non-debug insns.

	* gcc.dg/torture/pr69542.c: New test.

From-SVN: r232946
2016-01-28 22:01:51 +01:00
Pat Haugen
d7e2ecf330 rs6000.c (output_cbranch): Don't statically predict branches if using guessed profile.
* config/rs6000/rs6000.c (output_cbranch): Don't statically predict
	branches if using guessed profile.

From-SVN: r232945
2016-01-28 20:34:49 +00:00
H.J. Lu
2036f41326 Fix optimize_isl dump
* graphite-optimize-isl.c (optimize_isl): Fix dump.

From-SVN: r232939
2016-01-28 10:23:24 -08:00
Richard Henderson
ef22810a29 re PR target/69305 (wrong code with -O and int128 @ aarch64)
PR target/69305

  * config/aarch64/aarch64-modes.def (CC_Cmode): New
  * config/aarch64/aarch64-protos.h: Update.
  * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
  (aarch64_select_cc_mode): Add check for use of CC_Cmode.
  (aarch64_get_condition_code_1): Handle CC_Cmode.
  * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
  (*add<mode>3_compareC_cconly_imm): New.
  (*add<mode>3_compareC_cconly): New.
  (*add<mode>3_compareC_imm): New.
  (add<mode>3_compareC): New.
  (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
  to be first.  Use aarch64_carry_operation.
  (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
  (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
  (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
  (subti3): Use subdi3_compare1.
  (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
  (sub<mode>3_compare1): New.
  (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
  (*sub<mode>3_carryin): Use aarch64_borrow_operation.
  (*subsi3_carryin_uxtw): Likewise.
  (*ngc<mode>, *ngcsi_uxtw): Likewise.
  (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
  * config/aarch64/iterators.md (DWI): New.
  * config/aarch64/predicates.md (aarch64_carry_operation): New.
  (aarch64_borrow_operation): New.

From-SVN: r232936
2016-01-28 09:48:22 -08:00
Abderrazek Zaafrani
8d18bd108a make debug comment more explicit
2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>

	* graphite-optimize-isl.c (optimize_isl): Print a different debug
	message when isl does not return a valid schedule.

From-SVN: r232935
2016-01-28 16:39:18 +00:00
Sebastian Pop
16bccd7a73 remove out of sync comments
* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
	Remove comments from class declarations: they are already in the code
	close by the defs.

From-SVN: r232934
2016-01-28 16:39:10 +00:00
Sebastian Pop
0baa616ac8 use codegen_error_p
* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call codegen_error_p.
	(ternary_op_to_tree): Same.
	(unary_op_to_tree): Same.
	(nary_op_to_tree): Same.
	(gcc_expression_from_isl_expr_op): Same.
	(gcc_expression_from_isl_expression): Same.
	(graphite_create_new_loop): Same.
	(graphite_create_new_loop_guard): Same.
	(build_iv_mapping): Same.
	(graphite_create_new_guard): Same.
	(translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
	(translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.

From-SVN: r232933
2016-01-28 16:39:01 +00:00
Sebastian Pop
9b496f67e7 assert instead of silently failing code gen
* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert instead of
	setting codegen_error to fail codegen.

From-SVN: r232932
2016-01-28 16:38:52 +00:00
Jason Merrill
9925bb881f * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
From-SVN: r232931
2016-01-28 10:45:44 -05:00
Wilco Dijkstra
6dfeb7ceac A recent change added UNSPEC to the CCMP patterns to stop combine optimizing the immediate in a rare case.
A recent change added UNSPEC to the CCMP patterns to stop combine optimizing
the immediate in a rare case.  This requires a fix to the CCMP cost
calculation as the CCMP instruction with unspec is no longer recognized.
Fix the ccmp_1.c test by adding -ffinite-math-only so FCCMPE is emitted on
relational compares.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
	* config/aarch64/aarch64.c (aarch64_if_then_else_costs):
	Remove CONST_INT_P check in CCMP cost calculation.

    gcc/testsuite/
	* gcc.target/aarch64/ccmp_1.c: Fix test issue.

From-SVN: r232930
2016-01-28 15:41:46 +00:00
Jason Merrill
e448880c20 re PR c++/67407 (ice in friend_accessible_p)
PR c++/67407

	* search.c (dfs_walk_once, dfs_walk_once_r)
	(dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
	hash_set instead of BINFO_MARKED.
	(dfs_unmark_r): Remove.

From-SVN: r232929
2016-01-28 10:07:56 -05:00
Jakub Jelinek
e2eb505656 * directives.c (destringize_and_run): Adjust prototype.
From-SVN: r232928
2016-01-28 15:33:55 +01:00
David Edelsohn
4b7471a4c0 pr65980.c: Skip on AIX.
* gcc.dg/pr65980.c: Skip on AIX.
        * gcc.dg/pr66688.c: Same.

From-SVN: r232927
2016-01-28 08:52:06 -05:00
David Edelsohn
b271fd2183 re PR target/63679 ([AArch64] Failure to constant fold.)
PR target/63679
        * gcc.dg/tree-ssa/sra-17.c: Adjust regex for more label styles.
        * gcc.dg/tree-ssa/sra-18.c: Same.

From-SVN: r232926
2016-01-28 08:48:00 -05:00
John David Anglin
69b0daeb4a re PR libstdc++/69450 (libstdc++-v3/include/math.h:66:1 2: error: 'constexpr bool std::isnan(double)' conflicts with a previous declaration)
PR libstdc++/69450
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
	isinf and isnan functions into two independent checks.  Check on hpux.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/c_global/cmath (isinf(double), isnan(double)): Use
	_GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
	respectively.

From-SVN: r232925
2016-01-28 13:09:23 +00:00
Eric Botcazou
e0ef6912de gigi.h (enum attr_type): Rename into...
* gcc-interface/gigi.h (enum attr_type): Rename into...
	(enum attrib_type): ...this.
	(struct attrib): Adjust.
	* gcc-interface/decl.c (prepend_one_attribute): Likewise.

From-SVN: r232923
2016-01-28 11:59:14 +00:00
Wilco Dijkstra
c428f91cb7 Add support for vector permute cost since various permutes can expand into a complex sequence of instructions.
Add support for vector permute cost since various permutes can expand
into a complex sequence of instructions.  This fixes major performance
regressions due to recent changes in SLP vectorizer (which now vectorizes
more aggressively and emits many complex permutes).  Set the cost to > 1
for all microarchitectures so that the number of permutes is usually zero
and regressions disappear.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (generic_vector_cost):
	Set vec_permute_cost.
	(cortexa57_vector_cost): Likewise.
	(exynosm1_vector_cost): Likewise.
	(xgene1_vector_cost): Likewise.
	(aarch64_builtin_vectorization_cost): Use vec_permute_cost.
	* config/aarch64/aarch64-protos.h (cpu_vector_cost):
	Add vec_permute_cost entry.

From-SVN: r232922
2016-01-28 11:52:08 +00:00
Wilco Dijkstra
e2b691c420 Several instructions disassemble a zero immediate as wzr/xzr due to using a register operand in the disassembly.
Several instructions disassemble a zero immediate as wzr/xzr due to
using a register operand in the disassembly.  Avoid this by removing
the register operand.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.md (ccmp<mode>): Disassemble
	immediate as %1.
	(add<mode>3_compare0): Likewise.
	(addsi3_compare0_uxtw): Likewise.
	(add<mode>3nr_compare0): Likewise.
	(compare_neg<mode>): Likewise.
	(<optab><mode>3): Likewise.

From-SVN: r232921
2016-01-28 11:45:06 +00:00
Andre Vehreschild
f4d7b52072 Added missing testcase of r232919.
From-SVN: r232920
2016-01-28 12:41:10 +01:00
Andre Vehreschild
874108a905 re PR fortran/62536 (ICE (segfault) for invalid END BLOCK statement)
gcc/fortran/ChangeLog:

2016-01-28  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/62536
	* decl.c (gfc_match_end): Only unnest and remove BLOCK namespaces
	when the END encountered does not match a BLOCK's end.

gcc/testsuite/ChangeLog:

2016-01-28  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/62536
	* gfortran.dg/block_15.f08: New test.
	* gfortran.dg/block_end_error_1.f90: Need to catch additional error
	on incorrectly closed BLOCK.

From-SVN: r232919
2016-01-28 12:34:03 +01:00