]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years ago PR translation/90011
jakub [Tue, 9 Apr 2019 13:19:16 +0000 (13:19 +0000)] 
PR translation/90011
* typeck2.c (check_narrowing): Remove trailing space from diagnostics.

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

5 years agoHi there,
matmal01 [Tue, 9 Apr 2019 11:39:59 +0000 (11:39 +0000)] 
Hi there,

The "*neon_mov<mode>" patterns for 128 bit sized quantities uses the "Dn"
constraint to match vmov.f32 and vmov.i<vec-width> patterns.
This constraint boils down to using the `neon_immediate_valid` function.
Once the constraint has matched, the output C statement asserts that function
passes.

The output C statement calls `neon_immediate_valid` with the mode taken from the
iterator, while the constraint takes the mode from the operand.
This can cause a discrepency when the operand is a CONST_INT, as the constraint
passes VOIDmode which `neon_immediate_valid` treats as DImode, while the C
statement passes the mode of the iterator which can be TImode.
When this happens, the `neon_immediate_valid` can fail in the second call (if
e.g. the CONST_INT is a valid immediate in DImode but not TImode) which would
trigger the assertion.

The testcase added with this patch triggers this when compiled with an arm cross
compiler using the command line below.
gcc -march=armv8-a -c neon-immediate-timode.c -O1 -mfloat-abi=hard -mfpu=neon-fp-armv8

This patch splits the original "Dn" constraint into three new constraints, "DN"
for TImode CONST_INT, "Dn" for DImode CONST_INT, and "Dm" for CONST_VECTOR.
Splitting things up this way requires using one extra alternative in the
"*neon_mov<mode>" patterns, but makes it clear from the constraint what mode is
being used.

We also remove the behaviour of treating VOIDmode as DImode in
`neon_valid_immediate` since the original "Dn" constraint was the only place
that functionality was used.  VOIDmode is now never passed to that function.
An assertion has been added to the function to ensure this problem is caught
earlier on.

Bootstrapped on arm-none-linux-gnueabihf
Regtested on cross-compiler arm-none-eabi

gcc/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
into three.
* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
differences directly.
(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.

gcc/testsuite/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* gcc.dg/torture/neon-immediate-timode.c: New test.

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

5 years ago PR translation/90011
jakub [Tue, 9 Apr 2019 10:27:14 +0000 (10:27 +0000)] 
PR translation/90011
* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
from diagnostics.
* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
diagnostics.
* config/riscv/freebsd.h (LINK_SPEC): Likewise.
* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
trailing space from -gsplit-dwarf diagnostics.

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

5 years ago PR tree-optimization/89998
jakub [Tue, 9 Apr 2019 10:26:13 +0000 (10:26 +0000)] 
PR tree-optimization/89998
* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
instead of integer_type_node if possible, don't add ranges if return
type is not compatible with int.
* gimple-fold.c (gimple_fold_builtin_sprintf,
gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
integer_type_node.

* gcc.c-torture/compile/pr89998-1.c: New test.
* gcc.c-torture/compile/pr89998-2.c: New test.

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

5 years agoCome up with bootstrap-lto-lean config.
marxin [Tue, 9 Apr 2019 08:49:14 +0000 (08:49 +0000)] 
Come up with bootstrap-lto-lean config.

2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Regenerate.
* Makefile.tpl: Pass GENERATOR_CFLAGS
in all stages.
2019-04-09  Martin Liska  <mliska@suse.cz>

* bootstrap-lto-lean.mk: New file.
2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Use GENERATOR_CFLAGS for all generators.
* doc/install.texi: Document the new config.

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

5 years agoSVE fallout from PR90006
rsandifo [Tue, 9 Apr 2019 07:50:51 +0000 (07:50 +0000)] 
SVE fallout from PR90006

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

gcc/
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
use gimple_expr_type for load and store calls.  Skip over the
condition argument in a conditional internal function.
Protect use of TREE_INT_CST_LOW.

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

5 years ago PR target/90015
jakub [Tue, 9 Apr 2019 06:38:07 +0000 (06:38 +0000)] 
PR target/90015
* config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
(riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
trailing period from it too.

* gcc.target/riscv/interrupt-conflict-mode.c (foo): Adjust expected
diagnostics.

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

5 years ago compiler: sort packages in export data more deterministically
ian [Tue, 9 Apr 2019 04:36:51 +0000 (04:36 +0000)] 
compiler: sort packages in export data more deterministically

    We can have multiple packages with the same name, so also sort by pkgpath.
    To avoid an inconsistent sort, sort by symbol and pointer address if
    we somehow get two different packages with the same name and pkgpath.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171032

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

5 years agoDaily bump.
gccadmin [Tue, 9 Apr 2019 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agoFix visit<R> for variant.
ville [Mon, 8 Apr 2019 19:45:48 +0000 (19:45 +0000)] 
Fix visit<R> for variant.

* include/std/variant (__do_visit): Add a template parameter
for enforcing same return types for visit.
(__gen_vtable_impl): Likewise.
(_S_apply_single_alt): Adjust.
(__visit_invoke_impl): New. Handle casting to void.
(__do_visit_invoke): New. Enforces same return types.
(__do_visit_invoke_r): New. Converts return types.
(__visit_invoke): Adjust.
(__gen_vtable):  Add a template parameter for enforcing
same return types for visit.
* testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
different return types.
* testsuite/20_util/variant/visit_neg.cc: New. Ensures that
visitors with different return types don't accidentally
compile with regular visitation.

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

5 years ago * typeck2.c (digest_init_r): Don't condition the object slicing warning
mpolacek [Mon, 8 Apr 2019 19:31:00 +0000 (19:31 +0000)] 
* typeck2.c (digest_init_r): Don't condition the object slicing warning
on flag_checking.

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

5 years ago libgo: update to Go 1.12.2
ian [Mon, 8 Apr 2019 18:36:25 +0000 (18:36 +0000)] 
libgo: update to Go 1.12.2

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170706

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

5 years ago[AArch64] Add tsv110 pipeline scheduling
jgreenhalgh [Mon, 8 Apr 2019 17:08:32 +0000 (17:08 +0000)] 
[AArch64] Add tsv110 pipeline scheduling

Committed on behalf of Wu Yuan:

2019-04-04  wu yuan <wuyuan5@huawei.com>

* config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
* config/aarch64/aarch64.md : Add "tsv110.md"
* config/aarch64/tsv110.md: New file.

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

5 years ago2019-04-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Apr 2019 13:54:02 +0000 (13:54 +0000)] 
2019-04-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90006
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
calls like lrint.

* gcc.dg/vect/bb-slp-pr90006.c: New testcase.

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

5 years agoLOCAL_PATCHES: Add revision.
marxin [Mon, 8 Apr 2019 13:09:26 +0000 (13:09 +0000)] 
LOCAL_PATCHES: Add revision.

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

5 years agoAdd missing libsanitizer extra patch (r259664) (PR sanitizer/89941).
marxin [Mon, 8 Apr 2019 13:08:30 +0000 (13:08 +0000)] 
Add missing libsanitizer extra patch (r259664) (PR sanitizer/89941).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR sanitizer/89941
* sanitizer_common/sanitizer_platform_limits_linux.cc (defined):
Reapply patch from r259664.
* sanitizer_common/sanitizer_platform_limits_posix.h (defined):
Likewise.

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

5 years agoThe fma_forest, fma_root_node and func_fma_steering classes lack a
rearnsha [Mon, 8 Apr 2019 12:59:24 +0000 (12:59 +0000)] 
The fma_forest, fma_root_node and func_fma_steering classes lack a
copy constructor.  However, they contain pointers to allocated memory
so this omission can be regarded as poor style.  We don't need to copy
such objects, so declare the copy constructor private to inhibit
accidental copying.

2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>

PR target/83033
* config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
construction.
(fma_root_node): Likewise.
(func_fma_steering): Likewise.

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

5 years ago PR rtl-optimization/89865
jakub [Mon, 8 Apr 2019 12:36:58 +0000 (12:36 +0000)] 
PR rtl-optimization/89865
* config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.

* gcc.target/i386/pr49095.c: Don't expect any RMW sequences.

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

5 years ago PR rtl-optimization/89865
jakub [Mon, 8 Apr 2019 12:35:22 +0000 (12:35 +0000)] 
PR rtl-optimization/89865
* config/i386/i386.md
(SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
numbers not to clash with the additional operands[4].
(peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
with extra register copy in the middle.

* gcc.target/i386/pr49095.c: Adjust number of expected RMW spots
on ia32.

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

5 years agoAdd data_file to GCOV interm. format (PR gcov-profile/89961).
marxin [Mon, 8 Apr 2019 12:16:15 +0000 (12:16 +0000)] 
Add data_file to GCOV interm. format (PR gcov-profile/89961).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89961
* doc/gcov.texi: Document data_file.
* gcov.c (generate_results): Add data_info into JSON output.

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

5 years ago2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
rguenth [Mon, 8 Apr 2019 11:52:18 +0000 (11:52 +0000)] 
2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>

PR tree-optimization/89725
* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
loop's chrec as invariant symbol.
* tree-chrec.h (chrec_contains_symbols): New parameter.
* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
(build_classic_dist_vector_1, add_other_self_distances): Bypass access
function of loops not in DDR's loop_nest.
* tree-data-ref.h (index_in_loop_nest): Add unreachable check.

* gcc.dg/tree-ssa/pr89725.c: New test.

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

5 years agoFix expected scanned pattern.
marxin [Mon, 8 Apr 2019 08:42:00 +0000 (08:42 +0000)] 
Fix expected scanned pattern.

2019-04-08  Martin Liska  <mliska@suse.cz>

* gcc.target/riscv/arch-1.c: Fix expected scanned pattern.

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

5 years ago/cp
paolo [Mon, 8 Apr 2019 08:13:50 +0000 (08:13 +0000)] 
/cp
2019-04-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89914
* semantics.c (trait_expr_value): Don't use TYPE_NOTHROW_P
when maybe_instantiate_noexcept fails.
(classtype_has_nothrow_assign_or_copy_p): Likewise.
* method.c (implicitly_declare_fn): Avoid passing error_mark_node
to build_exception_variant.

/testsuite
2019-04-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89914
* g++.dg/ext/has_nothrow_constructor-3.C: New.

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

5 years ago[testsuite,libstdc++-v3] Fix 27_io/filesystem/iterators/caching.cc
clyon [Mon, 8 Apr 2019 07:17:30 +0000 (07:17 +0000)] 
[testsuite,libstdc++-v3] Fix 27_io/filesystem/iterators/caching.cc

2019-04-08  Christophe Lyon  <christophe.lyon@linaro.org>

* testsuite/27_io/filesystem/iterators/caching.cc: Add
dg-require-filesystem-ts.

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

5 years ago2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
paulhua [Mon, 8 Apr 2019 06:37:00 +0000 (06:37 +0000)] 
2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>

gcc/
PR target/89623
* config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
Mask.

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

5 years agoDaily bump.
gccadmin [Mon, 8 Apr 2019 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago2019-04-07 Harald Anlauf <anlauf@gmx.de>
anlauf [Sun, 7 Apr 2019 19:42:05 +0000 (19:42 +0000)] 
2019-04-07  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89904
* ChangeLog: Correct ChangeLog entry.

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

5 years ago * ChangeLog: Fix whitespace.
uros [Sun, 7 Apr 2019 19:30:22 +0000 (19:30 +0000)] 
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

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

5 years ago PR target/89945
uros [Sun, 7 Apr 2019 19:19:08 +0000 (19:19 +0000)] 
PR target/89945
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.

testsuite/ChangeLog:

PR target/89945
* gcc.target/i386/pr89945.c: New test.

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

5 years agoRegenerate libiberty/functions.texi
amodra [Sun, 7 Apr 2019 11:30:35 +0000 (11:30 +0000)] 
Regenerate libiberty/functions.texi

This patch just picks up changes made in r231983 (git 2afaef0360)
and r268793 (git 0f7c25df5f).

* functions.texi: Regenerate.

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

5 years agoc-family/
ebotcazou [Sun, 7 Apr 2019 10:34:19 +0000 (10:34 +0000)] 
c-family/
* c-ada-spec.c (is_float128): New predicate extracted from...
(dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128.
<REAL_TYPE>: ...here.  Call it.
ada/
* libgnat/i-cexten.ads (CFloat_128): New type.

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

5 years agoDaily bump.
gccadmin [Sun, 7 Apr 2019 00:16:16 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 6 Apr 2019 22:10:28 +0000 (22:10 +0000)] 
2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/87352
* gfortran.h (gfc_component): Add finalized field.
* class.c (finalize_component): If the component is already
finalized, return early.  Set component->finalized on exit.

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/87352
* gfortran.dg/finalize_28.f90: Adjust count of __builtin_free.
* gfortran.dg/finalize_33.f90: Likewise.
* gfortran.dg/finalize_34.f90: New test.

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

5 years ago2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 6 Apr 2019 14:16:01 +0000 (14:16 +0000)] 
2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89981
* resolve.c (resolve_global_procedure): If the global symbol is an
ENTRY, also look up its name among the entries.

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89981
* gfortran.dg/entry_22.f90: New test.

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

5 years agoDaily bump.
gccadmin [Sat, 6 Apr 2019 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago PR c++/87145 - bogus error converting class type in template arg list.
mpolacek [Fri, 5 Apr 2019 21:22:40 +0000 (21:22 +0000)] 
PR c++/87145 - bogus error converting class type in template arg list.
* pt.c (convert_nontype_argument): Don't call
build_converted_constant_expr if it could involve calling a conversion
function with a instantiation-dependent constructor as its argument.

* g++.dg/cpp0x/constexpr-conv3.C: New test.
* g++.dg/cpp0x/constexpr-conv4.C: New test.

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

5 years agoPR bootstrap/89980 - pointer initialization with empty string folded to zero
msebor [Fri, 5 Apr 2019 19:49:38 +0000 (19:49 +0000)] 
PR bootstrap/89980 - pointer initialization with empty string folded to zero

gcc/cp/ChangeLog:

PR bootstrap/89980
* decl.c (reshape_init_array_1): Avoid treating empty strings
as zeros in array initializers.
Use trivial_type_p () instead of TYPE_HAS_TRIVIAL_DFLT().

gcc/testsuite/ChangeLog:

PR bootstrap/89980
* g++.dg/init/array52.C: New test.

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

5 years agoImplement std::visit<R> for C++2a (P0655R1)
redi [Fri, 5 Apr 2019 18:06:02 +0000 (18:06 +0000)] 
Implement std::visit<R> for C++2a (P0655R1)

* doc/xml/manual/status_cxx2020.xml: Update status.
* include/std/variant (visit<R>): Define for C++2a (P0655R1).
* testsuite/20_util/variant/visit_r.cc: New test.

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

5 years agoUse hidden friends for directory iterator comparisons
redi [Fri, 5 Apr 2019 16:56:31 +0000 (16:56 +0000)] 
Use hidden friends for directory iterator comparisons

The equality operators for directory iterators are not explicitly
specified in the standard, they're only required to meet the iterator
requirements. This means we don't need to declare them at namespace
scope and can implement them as hidden friends.

Also add 'noexcept' to directory_iterator's dereference operators.

* include/bits/fs_dir.h (directory_iterator::operator*)
(directory_iterator::operator->): Add noexcept.
(operator==, operator!=): Replace namespace-scope equality operators
for directory iterators with hidden friends.

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

5 years agoPR libstdc++/89986 export directory_iterator::increment
redi [Fri, 5 Apr 2019 16:56:27 +0000 (16:56 +0000)] 
PR libstdc++/89986 export directory_iterator::increment

PR libstdc++/89986
* config/abi/pre/gnu.ver: Add missing exports.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
increment member.

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

5 years agoShare all recursive_directory_iterator state [LWG 2708]
redi [Fri, 5 Apr 2019 16:56:23 +0000 (16:56 +0000)] 
Share all recursive_directory_iterator state [LWG 2708]

Implement the proposed resolution of LWG 2708 by moving the _M_options
and _M_pending members out of the recursive_directory_iterator into the
shared _Dir_stack object. Because _Dir_stack is an opaque type, the
member functions that access the _M_options and _M_pending variables
cannot be inline. Move them into the library.

As a drive-by fix, add noexcept to the non-throwing member functions of
recursive_directory_iterator.

* config/abi/pre/gnu.ver: Export new symbols.
* include/bits/fs_dir.h (recursive_directory_iterator::options())
(recursive_directory_iterator::recursion_pending())
(recursive_directory_iterator::disable_recursion_pending()): Remove
inline definitions. Make noexcept.
(recursive_directory_iterator::depth())
(recursive_directory_iterator::operator*())
(recursive_directory_iterator::operator->()): Make noexcept.
(recursive_directory_iterator::_M_options)
(recursive_directory_iterator::_M_pending): Remove data members.
* src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
(recursive_directory_iterator::recursive_directory_iterator): Remove
ctor-initializer. Use new constructor for _Dir_stack.
(recursive_directory_iterator::options())
(recursive_directory_iterator::recursion_pending())
(recursive_directory_iterator::disable_recursion_pending()): Add
non-inline definitions.
(recursive_directory_iterator::depth()): Make noexcept.
(recursive_directory_iterator::increment(error_code&))
(recursive_directory_iterator::pop(error_code&)): Adjust to new
location of options and recursion_pending members.
* testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
* testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
user-declared move constructor and assignment operator, to make the
type move-only.

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

5 years agoFix directory_iterator handling of DT_UNKNOWN
redi [Fri, 5 Apr 2019 16:56:18 +0000 (16:56 +0000)] 
Fix directory_iterator handling of DT_UNKNOWN

We need to handle DT_UNKNOWN earlier, not only during directory
recursion, so that the cached file_type value in the directory_entry
won't be used.

* src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle
d_type == DT_UNKNOWN immediately.
(_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown
handling here.
* testsuite/27_io/filesystem/iterators/caching.cc: New test.

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

5 years agoMake filesystem::path safe for self assignment
redi [Fri, 5 Apr 2019 16:56:14 +0000 (16:56 +0000)] 
Make filesystem::path safe for self assignment

The standard says "If *this and p are the same object, has no effect."
Previously we ended up clearing the path.

* include/bits/fs_path.h (path::operator=(path&&)): Check for self
assignment.
* src/c++17/fs_path.cc (path::operator=(const path&)): Likewise.
* testsuite/27_io/filesystem/path/assign/copy.cc: Test self
assignment.

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

5 years agoPR libstdc++/87431 re-adjust never-valueless optimizations
redi [Fri, 5 Apr 2019 16:56:09 +0000 (16:56 +0000)] 
PR libstdc++/87431 re-adjust never-valueless optimizations

Avoid creating arbitrarily large objects on the stack when emplacing
trivially copyable objects into a variant. Currently we provide the
strong exception-safety guarantee for all trivially copyable types, by
constructing a second variant and then doing a non-throwing move
assignment from the temporary. This patch restricts that behaviour to
trivially copyable types that are no larger than 256 bytes. For larger
types the object will be emplaced directly into the variant, and if its
initialization throws then the variant becomes valueless.

Also implement Antony Polukhin's suggestion to whitelist specific types
that are not trivially copyable but can be efficiently move-assigned.
Emplacing those types will never cause a variant to become valueless.
The whitelisted types are: std::shared_ptr, std::weak_ptr,
std::unique_ptr, std::function, and std::any. Additionally,
std::basic_string, std::vector, and __gnu_debug::vector are whitelisted
if their allocator traits give them a non-throwing move assignment
operator. Specifically, this means std::string is whitelisted, but
std::pmr::string is not.

As part of this patch, additional if-constexpr branches are added for
the cases where the initialization is known to be non-throwing (so the
overhead of the try-catch block can be avoided) and where a scalar is
being produced by a potentially-throwing conversion operator (so that
the overhead of constructing and move-assigning a variant is avoided).
These changes should have no semantic effect, just better codegen.

PR libstdc++/87431 (again)
* include/bits/basic_string.h (__variant::_Never_valueless_alt):
Define partial specialization for basic_string.
* include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for
shared_ptr and weak_ptr.
* include/bits/std_function.h (_Never_valueless_alt): Likewise for
function.
* include/bits/stl_vector.h (_Never_valueless_alt): Likewise for
vector.
* include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for
unique_ptr.
* include/debug/vector (_Never_valueless_alt): Likewise for debug
vector.
* include/std/any (_Never_valueless_alt): Define explicit
specialization for any.
* include/std/variant (_Never_valueless_alt): Define primary template.
(__never_valueless): Use _Never_valueless_alt instead of
is_trivially_copyable.
(variant::emplace<N>(Args&&...)): Add special case for non-throwing
initializations to avoid try-catch overhead. Add special case for
scalars produced by potentially-throwing conversions. Use
_Never_valueless_alt instead of is_trivially_copyable for the
remaining strong exception-safety cases.
(variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise.
* testsuite/20_util/variant/87431.cc: Run both test functions.
* testsuite/20_util/variant/exception_safety.cc: New test.
* testsuite/20_util/variant/run.cc: Use pmr::string instead of string,
so the variant becomes valueless.

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

5 years agoGuard notes for -Waddress-of-packed-member on warning emission (PR c/89985)
dmalcolm [Fri, 5 Apr 2019 15:15:37 +0000 (15:15 +0000)] 
Guard notes for -Waddress-of-packed-member on warning emission (PR c/89985)

gcc/c-family/ChangeLog:
PR c/89985
* c-warn.c (check_address_or_pointer_of_packed_member): Add
auto_diagnostic_group.  Guard inform calls by result of
warning_at call.

gcc/testsuite/ChangeLog:
PR c/89985
* c-c++-common/pr89985.c: New test.

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

5 years ago[testsuite] PR71598: Fix testcases again
clyon [Fri, 5 Apr 2019 15:10:12 +0000 (15:10 +0000)] 
[testsuite] PR71598: Fix testcases again

2019-04-05  Christophe Lyon  <christophe.lyon@linaro.org>

PR c/71598
* gcc.dg/torture/pr71598-1.c: dg-prune arm linker messages about
size of enums.
* gcc.dg/torture/pr71598-2.c: Likewise.

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

5 years ago * sched-deps.c (sched_macro_fuse_insns): Check return value of
amylaar [Fri, 5 Apr 2019 15:01:01 +0000 (15:01 +0000)] 
    * sched-deps.c (sched_macro_fuse_insns): Check return value of
        targetm.fixed_condition_code_regs.

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

5 years ago PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
mpolacek [Fri, 5 Apr 2019 14:56:53 +0000 (14:56 +0000)] 
PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
* c-warn.c (check_address_or_pointer_of_packed_member): Check the type
of RHS.

* g++.dg/warn/Waddress-of-packed-member2.C: New test.

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

5 years ago2019-04-05 Richard Biener <rguenther@suse.de>
rguenth [Fri, 5 Apr 2019 11:55:45 +0000 (11:55 +0000)] 
2019-04-05  Richard Biener  <rguenther@suse.de>

PR debug/89892
PR debug/89905
* tree-cfgcleanup.c (remove_forwarder_block): Always move
debug bind stmts but reset them if they are not valid at the
destination.

* gcc.dg/guality/pr89892.c: New testcase.
* gcc.dg/guality/pr89905.c: Likewise.
* gcc.dg/guality/loop-1.c: Likewise.

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

5 years agoFix ChangeLog entries.
marxin [Fri, 5 Apr 2019 09:04:41 +0000 (09:04 +0000)] 
Fix ChangeLog entries.

contrib/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* check-internal-format-escaping.py: Properly detect wrong
apostrophes.

gcc/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* collect-utils.c (collect_execute): Use %< and %>, or %qs in
order to wrap keywords or arguments.
* collect2.c (main): Likewise.
(scan_prog_file): Likewise.
(scan_libraries): Likewise.
* common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise.
(riscv_subset_list::parse_std_ext): Likewise.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise.
* config/arm/arm.c (arm_option_override): Likewise.
* config/cris/cris.c (cris_print_operand): Likewise.
* config/darwin-c.c (darwin_pragma_options): Likewise.
(darwin_pragma_unused): Likewise.
(darwin_pragma_ms_struct): Likewise.
* config/ft32/ft32.c (ft32_print_operand): Likewise.
* config/i386/i386.c (print_reg): Likewise.
(ix86_print_operand): Likewise.
* config/i386/xm-djgpp.h: Likewise.
* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/msp430/msp430.c (msp430_option_override): Likewise.
* config/nds32/nds32.c (nds32_option_override): Likewise.
* config/nvptx/mkoffload.c (main): Likewise.
* config/rx/rx.c (rx_print_operand): Likewise.
(valid_psw_flag): Likewise.
* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
(vms_pragma_nomember_alignment): Likewise.
(vms_pragma_extern_model): Likewise.
* lto-wrapper.c (compile_offload_image): Likewise.
* omp-offload.c (oacc_parse_default_dims): Likewise.
* symtab.c (symtab_node::verify_base): Likewise.
* tlink.c (recompile_files): Likewise.
(start_tweaking): Likewise.
* tree-profile.c (parse_profile_filter): Likewise.

gcc/objc/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
order to wrap keywords or arguments.
(objc_add_synthesize_declaration_for_property): Likewise.

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

5 years agoRemove usage of apostrophes in error and warning messages (PR translation/89935).
marxin [Fri, 5 Apr 2019 08:37:44 +0000 (08:37 +0000)] 
Remove usage of apostrophes in error and warning messages (PR translation/89935).

2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* check-internal-format-escaping.py: Properly detect wrong
apostrophes.
2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* collect-utils.c (collect_execute): Use %< and %>, or %qs in
order to wrap keywords or arguments.
* collect2.c (main): Likewise.
(scan_prog_file): Likewise.
(scan_libraries): Likewise.
* common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise.
(riscv_subset_list::parse_std_ext): Likewise.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise.
* config/arm/arm.c (arm_option_override): Likewise.
* config/cris/cris.c (cris_print_operand): Likewise.
* config/darwin-c.c (darwin_pragma_options): Likewise.
(darwin_pragma_unused): Likewise.
(darwin_pragma_ms_struct): Likewise.
* config/ft32/ft32.c (ft32_print_operand): Likewise.
* config/i386/i386.c (print_reg): Likewise.
(ix86_print_operand): Likewise.
* config/i386/xm-djgpp.h: Likewise.
* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/msp430/msp430.c (msp430_option_override): Likewise.
* config/nds32/nds32.c (nds32_option_override): Likewise.
* config/nvptx/mkoffload.c (main): Likewise.
* config/rx/rx.c (rx_print_operand): Likewise.
(valid_psw_flag): Likewise.
* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
(vms_pragma_nomember_alignment): Likewise.
(vms_pragma_extern_model): Likewise.
* lto-wrapper.c (compile_offload_image): Likewise.
* omp-offload.c (oacc_parse_default_dims): Likewise.
* symtab.c (symtab_node::verify_base): Likewise.
* tlink.c (recompile_files): Likewise.
(start_tweaking): Likewise.
* tree-profile.c (parse_profile_filter): Likewise.
2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
order to wrap keywords or arguments.
(objc_add_synthesize_declaration_for_property): Likewise.

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

5 years agoMake FMA code cope with redundant negates (PR89956)
rsandifo [Fri, 5 Apr 2019 07:31:12 +0000 (07:31 +0000)] 
Make FMA code cope with redundant negates (PR89956)

This patch fixes a case in which, due to forced missed optimisations
in earlier passes, we have:

    _1 = a * b
    _2 = -_1
    _3 = -_1
    _4 = _2 + _3

and treated _4 as two FNMA candidates, once via _2 and once via _3.

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

gcc/
PR tree-optimization/89956
* tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
multiple negates of the same value.

gcc/testsuite/
PR tree-optimization/89956
* gfortran.dg/pr89956.f90: New test.

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

5 years ago PR c++/89948 - ICE with break in statement-expr.
jason [Fri, 5 Apr 2019 02:52:23 +0000 (02:52 +0000)] 
PR c++/89948 - ICE with break in statement-expr.

* constexpr.c (cxx_eval_statement_list): Jumping out of a
statement-expr is non-constant.

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

5 years ago PR c++/89966 - error with non-type auto tparm.
jason [Fri, 5 Apr 2019 02:50:52 +0000 (02:50 +0000)] 
PR c++/89966 - error with non-type auto tparm.

My patch for PR 86932 broke this testcase by passing tf_partial to
coerce_template_template_parms, which prevented do_auto_deduction from
actually replacing the auto.

* pt.c (do_auto_deduction): Clear tf_partial.

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

5 years ago PR c++/86986 - ICE with TTP with parameter pack.
jason [Fri, 5 Apr 2019 02:50:18 +0000 (02:50 +0000)] 
PR c++/86986 - ICE with TTP with parameter pack.

Three separate issues were breaking this testcase.  One, we were trying to
look at the type of a template template parameter to see if it's a valid
non-type template parameter.  Two, we were treating a parameter pack named
in the type of a template parameter pack of a TTP pack as being one of the
packs expanded by the outer pack.  Three, we weren't supplying all the
necessary levels of template arguments when TTP matching.

* pt.c (coerce_template_parameter_pack): Only look at the type of a
non-type parameter pack.
(fixed_parameter_pack_p_1): Don't recurse into the type of a
non-type parameter pack.
(coerce_template_template_parms): Call add_outermost_template_args.

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

5 years agoDaily bump.
gccadmin [Fri, 5 Apr 2019 00:16:13 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agoPR c++/89974 - ICE on a definition of a non-type specialization on a struct object...
msebor [Thu, 4 Apr 2019 23:10:23 +0000 (23:10 +0000)] 
PR c++/89974 - ICE on a definition of a non-type specialization on a struct object with pointer to member function
PR c++/89878 - same specializations on a zero-initialized struct object as a non-type parameter treated as distinct
PR c++/89833 - sorry, unimplemented: string literal in function template signature
PR c++/47488 - sorry, unimplemented: string literal in function template signature

gcc/cp/ChangeLog:

PR c++/89974
PR c++/89878
PR c++/89833
PR c++/47488
* decl.c (reshape_init_array_1): Strip trailing zero-initializers
from arrays of trivial type and known size.
* mangle.c (write_expression): Convert braced initializer lists
to STRING_CSTs.
(write_expression): Trim trailing zero-initializers from arrays
of trivial type.
(write_template_arg_literal): Mangle strings the same as braced
initializer lists.

gcc/testsuite/ChangeLog:

PR c++/89974
PR c++/89878
PR c++/89833
PR c++/47488
* gcc/testsuite/g++.dg/abi/mangle69.C: New test.
* gcc/testsuite/g++.dg/abi/mangle70.C: New test.
* gcc/testsuite/g++.dg/abi/mangle71.C: New test.
* gcc/testsuite/g++.dg/abi/mangle72.C: New test.
* gcc/testsuite/g++.dg/cpp0x/constexpr-array19.C: New test.
* gcc/testsuite/g++.dg/cpp2a/nontype-class15.C: New test.
* gcc/testsuite/g++.dg/cpp2a/nontype-class16.C: New test.
* gcc/testsuite/g++.dg/init/array51.C: New test.

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

5 years agoPR middle-end/89957 - ICE calling strnlen with an int128_t bound in a known range
msebor [Thu, 4 Apr 2019 22:38:10 +0000 (22:38 +0000)] 
PR middle-end/89957 - ICE calling strnlen with an int128_t bound in a known range
PR middle-end/89911 - [9 Regression] ICE in get_attr_nonstring_decl

gcc/ChangeLog:

PR middle-end/89957
PR middle-end/89911
* builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
have the same precision since the function crashes otherwise.
* calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
has non-zero arguments.

gcc/testsuite/ChangeLog:

PR middle-end/89957
PR middle-end/89911
* gcc.dg/Wstringop-overflow-13.c: New test.

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

5 years agoPR middle-end/89934 - ICE on a call with fewer arguments to strncpy declared without...
msebor [Thu, 4 Apr 2019 21:59:49 +0000 (21:59 +0000)] 
PR middle-end/89934 - ICE on a call with fewer arguments to strncpy declared without prototype

gcc/ChangeLog:

PR middle-end/89934
* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
out if the number of arguments is less than expected.

gcc/testsuite/ChangeLog:

PR middle-end/89934
* gcc.dg/Wrestrict-19.c: New test.
* gcc.dg/Wrestrict-5.c: Add comment.  Remove unused code.

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

5 years ago PR rtl-optimization/89399
law [Thu, 4 Apr 2019 20:52:16 +0000 (20:52 +0000)] 
PR rtl-optimization/89399
* ree.c (combine_set_extension): Use single_set rather than
digging into PATTERN for items on the candidate list.
(combine_reaching_defs): Likewise.

PR rtl-optimization/89399
* gcc.c-torture/compile/pr89399.c: New test.

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

5 years ago2019-04-04 Harald Anlauf <anlauf@gmx.de>
anlauf [Thu, 4 Apr 2019 20:38:33 +0000 (20:38 +0000)] 
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.

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

5 years ago2019-04-04 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Thu, 4 Apr 2019 15:49:30 +0000 (15:49 +0000)] 
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

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

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

5 years ago2019-04-04 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Thu, 4 Apr 2019 15:38:05 +0000 (15:38 +0000)] 
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

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

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

5 years ago2019-04-04 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Thu, 4 Apr 2019 15:15:59 +0000 (15:15 +0000)] 
2019-04-04  Paolo Carlini  <paolo.carlini@oracle.com>

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

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

5 years agoFix typo in ChangeLog
clyon [Thu, 4 Apr 2019 07:48:56 +0000 (07:48 +0000)] 
Fix typo in ChangeLog

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

5 years agoDF usage in loop-invariant.c (PR46590)
rsandifo [Thu, 4 Apr 2019 07:35:34 +0000 (07:35 +0000)] 
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.

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

5 years agoDaily bump.
gccadmin [Thu, 4 Apr 2019 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago PR c++/81866 - ICE with member template and default targ.
jason [Wed, 3 Apr 2019 21:51:36 +0000 (21:51 +0000)] 
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.

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

5 years ago2019-04-03 Steven G. Kargl <kargl@gcc.gnu.org>
dominiq [Wed, 3 Apr 2019 21:32:13 +0000 (21:32 +0000)] 
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.

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

5 years ago PR c++/86586 - -fcompare-debug=-Wsign-compare.
jason [Wed, 3 Apr 2019 20:12:00 +0000 (20:12 +0000)] 
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.

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

5 years ago PR c++/89331 - ICE with offsetof in incomplete class.
jason [Wed, 3 Apr 2019 20:09:17 +0000 (20:09 +0000)] 
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.

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

5 years ago2019-04-03 qing zhao <qing.zhao@oracle.com>
qinzhao [Wed, 3 Apr 2019 19:00:25 +0000 (19:00 +0000)] 
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.

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

5 years ago * lib/go-torture.exp: Only add lto to TORTURE_OPTIONS if it is
ian [Wed, 3 Apr 2019 18:21:38 +0000 (18:21 +0000)] 
* lib/go-torture.exp: Only add lto to TORTURE_OPTIONS if it is
supported.

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

5 years agoFix typo in comment
redi [Wed, 3 Apr 2019 17:56:41 +0000 (17:56 +0000)] 
Fix typo in comment

* files.c (search_path_exhausted): Fix typo in comment.

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

5 years ago PR rtl-optimization/81025
law [Wed, 3 Apr 2019 16:03:37 +0000 (16:03 +0000)] 
    PR rtl-optimization/81025
        * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.

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

5 years ago[testsuite] PR71598: Fix testcases
clyon [Wed, 3 Apr 2019 13:17:04 +0000 (13:17 +0000)] 
[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.

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

5 years ago2019-04-03 Richard Biener <rguenther@suse.de>
rguenth [Wed, 3 Apr 2019 12:30:16 +0000 (12:30 +0000)] 
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.

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

5 years agoS/390: Reject long disp for vector load/store early
krebbel [Wed, 3 Apr 2019 11:26:09 +0000 (11:26 +0000)] 
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.

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

5 years agoFix previous ChangeLog entry
redi [Wed, 3 Apr 2019 10:11:30 +0000 (10:11 +0000)] 
Fix previous ChangeLog entry

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

5 years ago[ARC] Restore blink first when optimizing for speed.
claziss [Wed, 3 Apr 2019 10:08:04 +0000 (10:08 +0000)] 
[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.

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

5 years ago[GCC, DOCS, AArch64] Add missing documenation for mbranch-protection
sudi [Wed, 3 Apr 2019 10:02:23 +0000 (10:02 +0000)] 
[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.

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

5 years ago[ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros
claziss [Wed, 3 Apr 2019 09:53:03 +0000 (09:53 +0000)] 
[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>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270118 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR libstdc++/85184 remove debug assertions from std::variant
redi [Wed, 3 Apr 2019 09:47:51 +0000 (09:47 +0000)] 
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.

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

5 years agoDefine std::hash specializations for C++17 PMR strings
redi [Wed, 3 Apr 2019 09:47:47 +0000 (09:47 +0000)] 
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.

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

5 years ago2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Wed, 3 Apr 2019 09:00:27 +0000 (09:00 +0000)] 
2019-04-03  Dominique d'Humieres  <dominiq@gcc.gnu.org>

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

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

5 years ago2019-04-03 Richard Biener <rguenther@suse.de>
rguenth [Wed, 3 Apr 2019 08:46:00 +0000 (08:46 +0000)] 
2019-04-03  Richard Biener  <rguenther@suse.de>

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

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

5 years ago PR c++/89917 - ICE with lambda in variadic mem-init.
jason [Wed, 3 Apr 2019 04:48:45 +0000 (04:48 +0000)] 
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.

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

5 years agoDaily bump.
gccadmin [Wed, 3 Apr 2019 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago * gcc.target/visium/bit_shift.c: xfail.
law [Tue, 2 Apr 2019 19:45:14 +0000 (19:45 +0000)] 
* gcc.target/visium/bit_shift.c: xfail.

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

5 years ago PR target/89902
uros [Tue, 2 Apr 2019 17:05:59 +0000 (17:05 +0000)] 
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.

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

5 years agosel-sched: skip outer loop in get_all_loop_exits (PR 84206)
amonakov [Tue, 2 Apr 2019 15:45:57 +0000 (15:45 +0000)] 
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.

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

5 years agosel-sched: fixup reset of first_insn (PR 85876)
amonakov [Tue, 2 Apr 2019 15:39:22 +0000 (15:39 +0000)] 
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.

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

5 years agoObsolete Cell Broadband Engine SPU target support
uweigand [Tue, 2 Apr 2019 14:08:06 +0000 (14:08 +0000)] 
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.

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

5 years agoS/390: arch13: vector float-int conversion builtins
krebbel [Tue, 2 Apr 2019 11:10:13 +0000 (11:10 +0000)] 
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.

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

5 years agoS/390: arch13: vector string search builtins
krebbel [Tue, 2 Apr 2019 11:08:54 +0000 (11:08 +0000)] 
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.

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

5 years agoS/390: arch13: vector shift double by bit builtins
krebbel [Tue, 2 Apr 2019 11:07:44 +0000 (11:07 +0000)] 
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.

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

5 years agoS/390: arch13: vector load byte reversed element and replicate
krebbel [Tue, 2 Apr 2019 11:06:30 +0000 (11:06 +0000)] 
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.

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

5 years agotestsuite: do not try to add -m32 (PR 89916)
amonakov [Tue, 2 Apr 2019 11:04:22 +0000 (11:04 +0000)] 
testsuite: do not try to add -m32 (PR 89916)

PR testsuite/89916
* gcc.dg/pr86928.c: Do not attempt to add -m32.

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

5 years agoS/390: arch13: vector load/store byte reversed element for builtins
krebbel [Tue, 2 Apr 2019 11:03:40 +0000 (11:03 +0000)] 
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.

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

5 years agoS/390: arch13: vec_reve element order reversal builtins
krebbel [Tue, 2 Apr 2019 11:02:22 +0000 (11:02 +0000)] 
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.

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