libbacktrace patch committed: Update test file

2020-02-15 Thread Ian Lance Taylor
This libbacktrace patch updates the test file used for comparisons with zlib. The file that the test was previously using, from libgo, no longer exists. Use its replacement file instead. Bootstrapped and ran libbacktrace tests on x86_64-pc-linux-gnu. Committed to mainline. Ian 2020-02-15

[committed] c++: Add -std=c++20.

2020-02-15 Thread Jason Merrill
It's probably past time for this, but definitely now that we're done with the final committee meeting of C++20. This patch only adds the option and adjusts the testsuite to recognize it; more extensive changes can wait for the published standard. Tested x86_64-pc-linux-gnu, applying to trunk.

Re: [PATCH] libstdc++: Move code after an early exit constexpr if to under an else branch

2020-02-15 Thread Jonathan Wakely
On 15/02/20 11:28 -0500, Patrick Palka wrote: This avoids instantiating dead code when the true branch of the constexpr if is taken. [ diffstat generated with -w to ignore noisy whitespace changes ] libstdc++-v3/ChangeLog: * include/bits/ranges_algo.h

Re: [RFC PATCH v0] PPC64: Implement POWER Architecure Vector Function ABI.

2020-02-15 Thread GT
‐‐‐ Original Message ‐‐‐ On Friday, February 14, 2020 6:46 PM, Segher Boessenkool wrote: > On Fri, Feb 14, 2020 at 08:24:30PM +, GT wrote: > > > Function rs6000_simd_clone_adjust, even though it's body is empty, > > cannot simply be removed. I tried it. It resulted in ICE. In my > >

libgo patch committed: Update to 1.14rc1

2020-02-15 Thread Ian Lance Taylor
I've committed a patch to update libgo to the 1.14rc1 release (this is a release candidate for the 1.14 Go release). Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian patch.txt.bz2 Description: application/bzip

libgo patch committed: On 32-bit systems, limit default GOMAXPROCS to 32

2020-02-15 Thread Ian Lance Taylor
This libgo patch limits the default value of GOMAXPROCS to 32 on 32-bit systems. Otherwise we can easily run out of stack space for threads. The user can still override by setting GOMAXPROCS. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian

[PATCH] libstdc++: Move code after an early exit constexpr if to under an else branch

2020-02-15 Thread Patrick Palka
This avoids instantiating dead code when the true branch of the constexpr if is taken. [ diffstat generated with -w to ignore noisy whitespace changes ] libstdc++-v3/ChangeLog: * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()): Move code after an early exit

Re: [PATCH 1/3] libstdc++: Fold some ranges algo subroutines into their only caller

2020-02-15 Thread Patrick Palka
On Sat, 15 Feb 2020, Jonathan Wakely wrote: > On 14/02/20 10:35 -0500, Patrick Palka wrote: > > These subroutines have only a single call site, so it might be best and > > simplest > > to eliminate them before we convert the algos into function objects. > > > > libstdc++-v3/ChangeLog: > > > >

[PATCH 09/10] i386: Use ix86_output_ssemov for SFmode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to V16SFmode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. gcc/ PR target/89229 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov for TYPE_SSEMOV. Remove

[PATCH 10/10] i386: Use ix86_output_ssemov for MMX TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. Remove ext_sse_reg_operand since it is no longer needed. PR target/89229 * config/i386/mmx.md (MMXMODE:*mov_internal): Call

[PATCH 07/10] i386: Use ix86_output_ssemov for TFmode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
gcc/ PR target/89229 * config/i386/i386.md (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV. gcc/testsuite/ PR target/89229 * gcc.target/i386/pr89229-5a.c: New test. * gcc.target/i386/pr89229-5b.c: Likewise. *

[PATCH 01/10] i386: Properly encode vector registers in vector move

2020-02-15 Thread H.J. Lu
On x86, when AVX and AVX512 are enabled, vector move instructions can be encoded with either 2-byte/3-byte VEX (AVX) or 4-byte EVEX (AVX512): 0: c5 f9 6f d1 vmovdqa %xmm1,%xmm2 4: 62 f1 fd 08 6f d1 vmovdqa64 %xmm1,%xmm2 We prefer VEX encoding over EVEX since VEX is

[PATCH 08/10] i386: Use ix86_output_ssemov for DFmode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode nor V8DFmode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. gcc/ PR target/89229 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov for TYPE_SSEMOV. Remove

[PATCH 04/10] i386: Use ix86_output_ssemov for TImode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. gcc/ PR target/89229 * config/i386/i386.md (*movti_internal): Call ix86_output_ssemov for TYPE_SSEMOV. Remove

[PATCH 05/10] i386: Use ix86_output_ssemov for DImode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. gcc/ PR target/89229 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov for TYPE_SSEMOV. Remove

[PATCH 06/10] i386: Use ix86_output_ssemov for SImode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode since ix86_output_ssemov can properly encode xmm16-xmm31 registers with and without AVX512VL. gcc/ PR target/89229 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov for TYPE_SSEMOV. Remove

[PATCH 03/10] i386: Use ix86_output_ssemov for OImode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
There is no need to set mode attribute to XImode since ix86_output_ssemov can properly encode ymm16-ymm31 registers with and without AVX512VL. PR target/89229 * config/i386/i386.md (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand

[PATCH 00/10] i386: Properly encode xmm16-xmm31/ymm16-ymm31 for vector move

2020-02-15 Thread H.J. Lu
This patch set was originally submitted in Feb 2019: https://gcc.gnu.org/ml/gcc-patches/2019-02/msg01841.html I broke it into 10 smaller patches for easy review. On x86, when AVX and AVX512 are enabled, vector move instructions can be encoded with either 2-byte/3-byte VEX (AVX) or 4-byte EVEX

[PATCH 02/10] i386: Use ix86_output_ssemov for XImode TYPE_SSEMOV

2020-02-15 Thread H.J. Lu
PR target/89229 * config/i386/i386.md (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV. --- gcc/config/i386/i386.md | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index

[committed] c++: Fix lambda in atomic constraint [PR92556]

2020-02-15 Thread Jason Merrill
find_template_parameters needs to find the mention of T in the lambda. Fixing that leaves this as a hard error, which may be surprising but is consistent with lambdas in other SFINAE contexts like template argument deduction. Tested x86_64-pc-linux-gnu, applying to trunk. gcc/cp/ChangeLog

Re: [committed] c++: Fix constexpr if and braced functional cast.

2020-02-15 Thread Jason Merrill
On 2/13/20 12:42 AM, Jason Merrill wrote: While partially instantiating a generic lambda, we can encounter pack expansions or constexpr if where we can't actually do the substitution immediately, and instead remember a partial instantiation context in *_EXTRA_ARGS. This includes any

Re: [PATCH] match.pd: Disallow side-effects in GENERIC for non-COND_EXPR to COND_EXPR simplifications [PR93744]

2020-02-15 Thread Richard Biener
On February 15, 2020 7:09:51 AM GMT+01:00, Jakub Jelinek wrote: >Hi! > >As the following testcases show (the first one reported, last two >found by code inspection), we need to disallow side-effects >in simplifications that turn some unconditional expression into >conditional >one. From my

[PATCH] libstdc++: Update __cpp_lib_erase_if macro (P1115R3)

2020-02-15 Thread Jonathan Wakely
Now that this feature has been approved for C++20 we can define the macro to the official value. * include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L. * include/std/deque: Likewise. * include/std/forward_list: Likewise. * include/std/list: Likewise.

[PATCH] libstdc++: Implement LWG 3150 for std::uniform_random_bit_generator

2020-02-15 Thread Jonathan Wakely
* include/bits/random.h (uniform_random_bit_generator): Require min() and max() to be constant expressions and min() to be less than max(). * testsuite/26_numerics/random/concept.cc: Check additional cases. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust