Commit Graph

167810 Commits

Author SHA1 Message Date
Harald Anlauf
aace91e285 re PR fortran/89904 (ICE in gfortran starting with r270045)
2019-04-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/89004
	* check.c (gfc_check_transfer): Reject procedures as actual
	arguments for SOURCE and MOLD of TRANSFER intrinsic.

	PR fortran/89004
	* gfortran.dg/pr85797.f90: Adjust testcase.

From-SVN: r270150
2019-04-04 20:38:33 +00:00
Paolo Carlini
3a36c1806a re PR c++/65619 (friend declaration with template template parameter not recognized)
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65619
	* g++.dg/template/friend67.C: New.

From-SVN: r270146
2019-04-04 15:49:30 +00:00
Paolo Carlini
a7f70a0925 re PR c++/61327 (Problem with friend template object)
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61327
	* g++.dg/cpp0x/friend4.C: New.
	* g++.dg/cpp0x/friend5.C: Likewise.

From-SVN: r270145
2019-04-04 15:38:05 +00:00
Paolo Carlini
7b74bfb106 re PR c++/56643 (Failure to match noexcept specifier of friend template function in template class)
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56643
	* g++.dg/cpp0x/noexcept40.C: New.

From-SVN: r270144
2019-04-04 15:15:59 +00:00
Christophe Lyon
f97cd76eb2 Fix typo in ChangeLog
From-SVN: r270143
2019-04-04 09:48:56 +02:00
Richard Sandiford
6541e97d4d DF usage in loop-invariant.c (PR46590)
- df_live is already present at -O2, so we only need to add it and
  mark all blocks dirty for -O

- df_process_deferred_rescans should be enough to force a rescan of
  blocks affected by moving invariants, but calling it in find_defs
  means that we don't do any rescans for the final loop

2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR rtl-optimization/46590
	* loop-invariant.c (find_defs): Move df_remove_problem and
	df_process_deferred_rescans to move_invariants.
	Move df_live_add_problem and df_live_set_all_dirty calls
	to move_invariants.
	(move_invariants): Likewise.
	(move_loop_invariants): Likewise, making the df_live calls
	conditional on -O.  Remove the problem again if we added it
	locally.

From-SVN: r270142
2019-04-04 07:35:34 +00:00
GCC Administrator
325d3f4642 Daily bump.
From-SVN: r270141
2019-04-04 00:16:12 +00:00
Jason Merrill
e53ec543e6 PR c++/81866 - ICE with member template and default targ.
This testcase manages to find a way to look up the partial instantiation of
B for the default argument of C before we've created the partial
instantiation of B as part of the normal instantiation of the members of A.
Which we can deal with, but we were getting confused because the partial
instantiation was stored with a RECORD_TYPE specialization rather than
TEMPLATE_DECL.

	* pt.c (tsubst_template_decl): Handle getting a type from
	retrieve_specialization.

From-SVN: r270138
2019-04-03 17:51:36 -04:00
Dominique d'Humieres
c17bad5326 [multiple changes]
2019-04-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68567
	* expr.c (gfc_reduce_init_expr): Add extra check to avoid
	dereferencing a null pointer.

2019-04-03  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/68567
	* gfortran.dg/parameter_array_error_1.f90: New test.

From-SVN: r270137
2019-04-03 23:32:13 +02:00
Jason Merrill
7a506c3c63 PR c++/86586 - -fcompare-debug=-Wsign-compare.
This patch limits constexpr folding for -Wsign-compare to only cases that we
would warn for without considering constant values, avoiding the folding in
the testcase in question.

gcc/c-family/
	* c-warn.c (warn_for_sign_compare): Call fold_for_warn.
gcc/cp/
	* typeck.c (cp_build_binary_op): Don't fold for -Wsign-compare.

From-SVN: r270136
2019-04-03 16:12:00 -04:00
Jason Merrill
b8836dbec1 PR c++/89331 - ICE with offsetof in incomplete class.
We were aborting when build_base_path returned an error because of the
derived class not being complete yet, which wasn't considered by the assert.
Fixed by checking for complete type first.  The semantics.c change avoids
a duplicate error message.

	* semantics.c (finish_offsetof): Handle error_mark_node.
	* typeck.c (build_class_member_access_expr): Call
	complete_type_or_maybe_complain before converting to base.

From-SVN: r270135
2019-04-03 16:09:17 -04:00
Qing Zhao
bc53dee0ba re PR tree-optimization/89730 (-flive-patching=inline-only-static should grant always_inline attribute for extern function)
2019-04-03  qing zhao  <qing.zhao@oracle.com>

	PR tree-optimization/89730
	* ipa-inline.c (can_inline_edge_p): Delete the checking for
	-flive-patching=inline-only-static.
	(can_inline_edge_by_limits_p): Add the checking for 
	-flive-patching=inline-only-static and grant always_inline
	even when -flive-patching=inline-only-static is specified. 

	* gcc.dg/live-patching-4.c: New test.

From-SVN: r270134
2019-04-03 19:00:25 +00:00
Clément Chigot
c1d9a8f590 go-torture.exp: Only add lto to TORTURE_OPTIONS if it is supported.
* lib/go-torture.exp: Only add lto to TORTURE_OPTIONS if it is
	supported.

From-SVN: r270133
2019-04-03 18:21:38 +00:00
Jonathan Wakely
0bf12a5253 Fix typo in comment
* files.c (search_path_exhausted): Fix typo in comment.

From-SVN: r270132
2019-04-03 18:56:41 +01:00
Jeff Law
9427422dda re PR rtl-optimization/81025 (gcc ICE while building glibc for MIPS soft-float multi-lib variant)
PR rtl-optimization/81025
        * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.

From-SVN: r270129
2019-04-03 10:03:37 -06:00
Christophe Lyon
c13e978820 [testsuite] PR71598: Fix testcases
2019-04-13  Christophe Lyon  <christophe.lyon@linaro.org>

	PR c/71598
	* gcc.dg/torture/pr71598-1.c: Skip if short_enums target.
	* gcc.dg/torture/pr71598-2.c: Skip if not short_enums target.

From-SVN: r270126
2019-04-03 15:17:04 +02:00
Richard Biener
c51b04ec33 re PR rtl-optimization/84101 (-O3 and -ftree-vectorize trying too hard for function returning trivial pair-of-uint64_t-structure)
2019-04-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84101
	* tree-vect-stmts.c: Include explow.h for hard_function_value,
	regs.h for hard_regno_nregs.
	(cfun_returns): New helper.
	(vect_model_store_cost): When vectorizing a store to a decl
	we return and the function ABI returns in a multi-reg location
	account for the possible spilling that will happen.

	* gcc.target/i386/pr84101.c: New testcase.

From-SVN: r270123
2019-04-03 12:30:16 +00:00
Andreas Krebbel
615792b72e S/390: Reject long disp for vector load/store early
The vector memory instructions only support short displacements.
Reject invalid displacements early to prevent plenty of lay
instructions to be generated later which then cannot be merged
properly.

gcc/ChangeLog:

2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_legitimate_address_p): Reject long
	displacement addresses for vector mode operands.

From-SVN: r270122
2019-04-03 11:26:09 +00:00
Jonathan Wakely
487efcfdac Fix previous ChangeLog entry
From-SVN: r270121
2019-04-03 11:11:30 +01:00
Claudiu Zissulescu
8f84521301 [ARC] Restore blink first when optimizing for speed.
When not optimizing for size, we can restore first blink, hence the return
instruction will be executed faster.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (GMASK_LEN): Define.
	(arc_restore_callee_saves): Restore first blink when
	!optimize_size.

From-SVN: r270120
2019-04-03 12:08:04 +02:00
Sudakshina Das
deb012a19d [GCC, DOCS, AArch64] Add missing documenation for mbranch-protection
This patch add the missing documentation bits for -mbranch-protection in both
extend.texi and invoke.texi.

*** gcc/ChangeLog ***

2019-04-03  Sudakshina Das  <sudi.das@arm.com>

	* doc/extend.texi: Add deprecated comment on sign-return-address
	function attribute and add mbranch-protection.
	* doc/invoke.texi: Add bti to the options for mbranch-protection.

From-SVN: r270119
2019-04-03 10:02:23 +00:00
Vineet Gupta
67a9a71183 [ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros
simple test such as below was failing.

| void main(int argc, char *argv[])
| {
|    size_t total_time = 115424;                       // expected 115.424
|    double secs = (double)total_time/(double)1000;
|    printf("%s %d %lf\n", "secs", total_time, secs);  // prints 113.504
|    printf("%d\n", (size_t)secs);
| }

The printf eventually called into glibc stdlib/divrem.c:__mpn_divrem()
which uses the __arc__ specific inline asm macros from longlong.h which
were causing miscompilation.

include/
2019-03-28  Vineet Gupta <vgupta@synopsys.com>

        PR 89877

        * longlong.h [__arc__] (add_ssaaaa): Add cc clobber
        (sub_ddmmss): Likewise.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>

From-SVN: r270118
2019-04-03 11:53:03 +02:00
Jonathan Wakely
59e36c85e7 PR libstdc++/85184 remove debug assertions from std::variant
The __glibcxx_assert macro should be used to check preconditions that
users must meet, not to check postconditions that the implementation
must meet. We have tests to verify std::variant meets its
postconditions, users shouldn't pay for those checks at runtime.

	PR libstdc++/85184
	* include/std/variant (_Copy_assign_base, _Move_assign_base, variant):
	Remove assertions.
	(variant::emplace<_Tp>): Remove result of emplace<N> directly.

From-SVN: r270117
2019-04-03 10:47:51 +01:00
Jonathan Wakely
0cb78ef4bc Define std::hash specializations for C++17 PMR strings
These hash specializations should have been added when the pmr::string
and related typedefs were added.

	* include/std/string (__hash_string_base): New class template defining
	operator() for hashing strings.
	(hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
	(hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
	* testsuite/21_strings/basic_string/hash/hash.cc: New test.
	* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.

From-SVN: r270116
2019-04-03 10:47:47 +01:00
Dominique d'Humieres
3a3976b14e re PR fortran/89375 (fortran/expr.c:4723:5: warning: logical ‘or’ of equal expressions [-Wlogical-op])
2019-04-03  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/89375
	* expr.c (comp_pointer): Remove redundant condition.

From-SVN: r270115
2019-04-03 11:00:27 +02:00
Richard Biener
bb52a82aff re PR lto/89896 (-flto=4 is confused by presence of 'all.c' in a local directory. -flto=1 is not.)
2019-04-03  Richard Biener  <rguenther@suse.de>

	PR lto/89896
	* lto-wrapper.c (run_gcc): Avoid implicit rules making
	the all target phony.

From-SVN: r270112
2019-04-03 08:46:00 +00:00
Jason Merrill
a337918676 PR c++/89917 - ICE with lambda in variadic mem-init.
A mem-initializer is not a type, and we don't want to turn autos within it
into packs.

	* pt.c (make_pack_expansion): Change type_pack_expansion_p to false.

From-SVN: r270111
2019-04-03 00:48:45 -04:00
GCC Administrator
38802907f2 Daily bump.
From-SVN: r270110
2019-04-03 00:16:11 +00:00
Jeff Law
5e4ea79dc2 * gcc.target/visium/bit_shift.c: xfail.
From-SVN: r270105
2019-04-02 13:45:14 -06:00
Uros Bizjak
f401d62362 re PR target/89902 (ICE: in extract_insn, at recog.c:2310: unrecognizable insn with -mavx512bitalg)
PR target/89902
	PR target/89903
	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
	Return false for variable DImode shifts.
	(dimode_scalar_chain::compute_convert_gain): Do not handle
	register count operand in variable DImode shifts.
	(dimode_scalar_chain::make_vector_copies): Remove support to copy
	count argument of a variable shift instruction to a vector register.
	(dimode_scalar_chain::convert_reg): Remove support to convert
	count argument of a variable shift instruction.

testsuite/ChangeLog:

	PR target/89902
	PR target/89903
	* gcc.target/i386/pr70799-4.c: Remove.
	* gcc.target/i386/pr70799-5.c: Remove.
	* gcc.target/i386/pr89902.c: New test.
	* gcc.target/i386/pr89903.c: Ditto.

From-SVN: r270102
2019-04-02 19:05:59 +02:00
Andrey Belevantsev
6fb8055edd sel-sched: skip outer loop in get_all_loop_exits (PR 84206)
2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/84206
	* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
	iterating over loop headers.

	* gcc.dg/pr84206.c: New test.

From-SVN: r270096
2019-04-02 18:45:57 +03:00
Andrey Belevantsev
7dc69ec076 sel-sched: fixup reset of first_insn (PR 85876)
2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/85876
	* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
	beyond the original fence.

	* gcc.dg/pr85876.c: New test.

From-SVN: r270095
2019-04-02 18:39:22 +03:00
Ulrich Weigand
43f47cdf13 Obsolete Cell Broadband Engine SPU target support
gcc/ChangeLog:
2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>

        * config.gcc: Mark spu* targets as deprecated/obsolete.

From-SVN: r270092
2019-04-02 14:08:06 +00:00
Andreas Krebbel
59f7879992 S/390: arch13: vector float-int conversion builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions. Remove unused types.
	* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
	(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
	(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
	overloaded builtins.
	(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
	(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
	* config/s390/vecintrin.h (vec_float): New builtin macro definition.
	(vec_double, vec_signed, vec_unsigned): Define to use the new
	overloaded builtins.
	* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
	Remove expanders.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-double-compile.c: New test.
	* gcc.target/s390/zvector/vec-float-compile.c: New test.
	* gcc.target/s390/zvector/vec-signed-compile.c: New test.
	* gcc.target/s390/zvector/vec-unsigned-compile.c: New test.

From-SVN: r270091
2019-04-02 11:10:13 +00:00
Andreas Krebbel
49adc46180 S/390: arch13: vector string search builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions.
	* config/s390/s390-builtins.def (s390_vec_search_string_cc)
	(s390_vec_search_string_until_zero_cc): New overloaded builtins.
	(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
	(s390_vstrszh, s390_vstrszf): New low-level builtins.
	* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
	constant definitions.
	* config/s390/vecintrin.h (vec_search_string_cc)
	(vec_search_string_until_zero_cc): New builtin name definitions.
	* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
	expanders.
	("vec_vstrs<mode>"): New insn definition.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-search-string-cc-1.c: New test.
	* gcc.target/s390/zvector/vec-search-string-cc-compile.c: New test.
	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-1.c: New test.
	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-compile.c: New test.

From-SVN: r270090
2019-04-02 11:08:54 +00:00
Andreas Krebbel
ad7a3e3997 S/390: arch13: vector shift double by bit builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function
	types.
	* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
	New overloaded builtins.
	(s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
	s390_vsrd.
	* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
	(UNSPEC_VEC_SLDBYTE): ... this.
	(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
	* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
	definitions.
	* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
	Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
	("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-shift-left-double-by-bit-1.c: New test.
	* gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c: New test.

From-SVN: r270089
2019-04-02 11:07:44 +00:00
Andreas Krebbel
6913111a95 S/390: arch13: vector load byte reversed element and replicate
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
	New insn definition.
	* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
	* config/s390/vector.md (V_HW_HSD): ... here.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/replicate-bswap-1.c: New test.
	* gcc.target/s390/zvector/replicate-bswap-2.c: New test.

From-SVN: r270088
2019-04-02 11:06:30 +00:00
Alexander Monakov
b5e100c5e3 testsuite: do not try to add -m32 (PR 89916)
PR testsuite/89916
	* gcc.dg/pr86928.c: Do not attempt to add -m32.

From-SVN: r270087
2019-04-02 14:04:22 +03:00
Andreas Krebbel
b112d1c928 S/390: arch13: vector load/store byte reversed element for builtins
2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
	("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
	("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
	New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/bswap-and-replicate-1.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-1.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-2.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-3.c: New test.
	* gcc.target/s390/zvector/get-element-bswap-4.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-1.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-2.c: New test.
	* gcc.target/s390/zvector/set-element-bswap-3.c: New test.

From-SVN: r270086
2019-04-02 11:03:40 +00:00
Andreas Krebbel
3278804e59 S/390: arch13: vec_reve element order reversal builtins
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function type.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_reve and low-level builtins for s390_vler and s390_vster.
	* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
	* config/s390/vecintrin.h (vec_reve): New builtin name definition.
	* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
	("eltswap<mode>"): New expander.
	("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
	insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-reve-load-byte-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-byte.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-halfword-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-load-halfword.c: New test.
	* gcc.target/s390/zvector/vec-reve-store-byte-z14.c: New test.
	* gcc.target/s390/zvector/vec-reve-store-byte.c: New test.

From-SVN: r270085
2019-04-02 11:02:22 +00:00
Andreas Krebbel
1b3bbaf647 S/390: arch13: vec_revb vector byte swap builtin
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function types.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_revb. Add low-level builtins for vlbr and vstbr
	instructions.
	* config/s390/vecintrin.h (vec_revb): New builtin name definition.
	* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
	("bswap<mode>"): New expander.
	("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/vec-revb-load-double-z14.c: New test.
	* gcc.target/s390/zvector/vec-revb-load-double.c: New test.
	* gcc.target/s390/zvector/vec-revb-store-double-z14.c: New test.
	* gcc.target/s390/zvector/vec-revb-store-double.c: New test.

From-SVN: r270084
2019-04-02 11:01:06 +00:00
Andreas Krebbel
e633a4f255 S/390: arch13: New vector builtins - preparation
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
	vector builtin version number in __VEC__.

From-SVN: r270083
2019-04-02 10:59:30 +00:00
Andreas Krebbel
026bfe8937 S/390: arch13: Support 32 bit fp-int scalar converts
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
	iterators.
	(SFSI): New mode attribute.
	("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
	("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
	rename to ...
	("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
	("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
	("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
	("floatsi<mode>2"): Add wcefb instruction.

From-SVN: r270082
2019-04-02 10:58:33 +00:00
Andreas Krebbel
4156b05639 S/390: arch13: Support 32 bit fp-int vector converts
gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("xde"): Extend mode attribute to vector
	types.
	* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
	mode iterators.
	("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
	("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
	support 32 bit fp-int conversions. Rename to ...
	("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
	("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
	... to these.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/fp-signedint-convert-1.c: New test.
	* gcc.target/s390/arch13/fp-unsignedint-convert-1.c: New test.

From-SVN: r270081
2019-04-02 10:57:39 +00:00
Andreas Krebbel
618eef38d9 S/390: arch13: Add support for new select instruction
Compared to the load on condition instructions we already have the new
select instruction allows to have a THEN and and ELSE source operand -
but only for register to register loads.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
	if-then-else constructs if we can use the select instruction.
	* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/sel-1.c: New test.

From-SVN: r270080
2019-04-02 10:56:34 +00:00
Andreas Krebbel
25cb5165c1 S/390: arch13: Support new popcount instruction
variant.

The new arch13 popcount instruction counts bits in the entire 64 bit
register instead of just in 8 bit portions.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("*popcountdi_arch13_cc")
	("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
	definition.
	("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
	Append _z196 to make it ...
	("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
	("popcounthi2_z196"): ... this.
	("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
	("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/popcount-1.c: New test.

From-SVN: r270079
2019-04-02 10:55:26 +00:00
Andreas Krebbel
4a9733f3df S/390: arch13: Support new bit operations
Make use of the new bit operation instructions when generating code
for the arch13 level.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_canonicalize_comparison): Convert
	certain compares for arch13 in order to make use of the condition
	code result produced by the new instructions.
	(s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
	nxrk, and nxgrk instruction patterns.
	* config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
	(inv_no): Add new code iterator together with some attributes.
	("*andc_split_<mode>"): Disable splitter for arch13.
	("*<ANDOR:bitops_name>c<GPR:mode>_cc")
	("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
	("*<ANDOR:bitops_name>c<GPR:mode>")
	("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
	("*n<ANDOR:inv_bitops_name><mode>_cconly")
	("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
	("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/arch13/bitops-1.c: New test.
	* gcc.target/s390/arch13/bitops-2.c: New test.
	* gcc.target/s390/md/andc-splitter-1.c: Add -march=z14 build
	option and adjust line numbers.
	* gcc.target/s390/md/andc-splitter-2.c: Likewise.

From-SVN: r270078
2019-04-02 10:51:53 +00:00
Andreas Krebbel
511ea1538b S/390: arch13: Add arch13 as architecture option
This patch enables the command line options and provides the proper
macros for checking.

gcc/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): New
	entry for arch13.
	* config.gcc: Support arch13 with the --with-arch= configure flag.
	* config/s390/driver-native.c (s390_host_detect_local_cpu):
	* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
	* config/s390/s390.c (s390_get_sched_attrmask)
	(s390_get_unit_mask): Add PROCESSOR_ARCH13.
	* config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
	* config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
	(TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
	(TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
	definitions.
	* config/s390/s390.opt: Support arch13 as processor type in
	command line options.

gcc/testsuite/ChangeLog:

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/s390.exp: Run tests in arch13 subdir.
	* lib/target-supports.exp (check_effective_target_s390_vxe2): New
	runtime check for the vxe2 hardware feature on IBM Z.

From-SVN: r270077
2019-04-02 10:50:03 +00:00
Martin Liska
6de6b21052 Fix param description of graphite-max-arrays-per-scop (PR translation/89912).
2019-04-02  Martin Liska  <mliska@suse.cz>

	PR translation/89912
	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
	Fix param description of graphite-max-arrays-per-scop.

From-SVN: r270076
2019-04-02 07:55:30 +00:00
Eric Botcazou
381a3c757f linux64.h (ASAN_REJECT_SPEC): New macro.
* config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
	(ASAN_CC1_SPEC): Use it in 64-bit mode.
	* config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.

From-SVN: r270075
2019-04-02 07:40:30 +00:00