Re: [PATCH] Fix -save-temp leaking lto files in /tmp

2021-01-03 Thread Richard Biener
On Mon, 14 Dec 2020, Bernd Edlinger wrote: > Hi, > > On 2/21/20 8:35 AM, Richard Biener wrote: > > > > IIRC this definitely clashes with Alex work to overhaul > > -auxdir/-dumpdir queued for GCC 11 where some of the above > > is improved. > > > > So whatever we do we should do it for GCC 11

Re: [PATCH]i386: Optimize pmovskb on zero_extend of subreg HI of the result [PR98461]

2021-01-03 Thread Hongtao Liu via Gcc-patches
On Mon, Jan 4, 2021 at 3:40 PM Uros Bizjak wrote: > > On Mon, Jan 4, 2021 at 6:54 AM Hongtao Liu wrote: > > > > Hi: > > The following patch adds define_insn_and_split to optimize > > > >vpmovmskb %xmm0, %eax > > - movzwl %ax, %eax > > notl%eax > > > >

Re: [PATCH]i386: Optimize pmovskb on zero_extend of subreg HI of the result [PR98461]

2021-01-03 Thread Uros Bizjak via Gcc-patches
On Mon, Jan 4, 2021 at 6:54 AM Hongtao Liu wrote: > > Hi: > The following patch adds define_insn_and_split to optimize > >vpmovmskb %xmm0, %eax > - movzwl %ax, %eax > notl%eax > > Bootstrapped/regtested on x86_64-linux-gnu {,-m32}. > Ok for trunk? > >

[PATCH]i386: Optimize pmovskb on zero_extend of subreg HI of the result [PR98461]

2021-01-03 Thread Hongtao Liu via Gcc-patches
Hi: The following patch adds define_insn_and_split to optimize vpmovmskb %xmm0, %eax - movzwl %ax, %eax notl%eax Bootstrapped/regtested on x86_64-linux-gnu {,-m32}. Ok for trunk? gcc/ChangeLog PR target/98461 * config/i386/sse.md

Re: [PATCH] sccvn: Consider def BB in rpo_vn_valueize [PR98464]

2021-01-03 Thread Kewen.Lin via Gcc-patches
on 2020/12/31 下午6:01, Richard Biener wrote: > On December 31, 2020 8:02:37 AM GMT+01:00, "Kewen.Lin" > wrote: >> Hi, >> >> As PR98464 shows, this patch is to make rpo_vn_valueize >> consider the definition basic block of name, to sync >> with what we do in function eliminate_stmt. >> >>

Re: [PATCH] Add a new pattern in 4-insn combine

2021-01-03 Thread HAO CHEN GUI via Gcc-patches
Segher,     Gentle ping this: https://gcc.gnu.org/pipermail/gcc-patches/2020-November/560573.html Thanks a lot. On 11/12/2020 上午 10:14, HAO CHEN GUI wrote: Segher,     Gentle ping this: https://gcc.gnu.org/pipermail/gcc-patches/2020-November/560573.html

Re: [PATCH 00/10] C++11-based improvements for libcc1

2021-01-03 Thread Tom Tromey
> "Tom" == Tom Tromey writes: Tom> This short series uses C++11 features to simplify libcc1. This brings Tom> the code closer to how I pictured it when I first wrote it. (It would Tom> be further improved by std::apply, but this isn't available until Tom> C++17.) I figured out today that

Re: [PATCH,rs6000] Test cases for p10 fusion patterns

2021-01-03 Thread Aaron Sawdey via Gcc-patches
Ping. Aaron Sawdey, Ph.D. saw...@linux.ibm.com IBM Linux on POWER Toolchain > On Dec 11, 2020, at 1:53 PM, acsaw...@linux.ibm.com wrote: > > From: Aaron Sawdey > > This adds some test cases to make sure that the combine patterns for p10 > fusion are working. > > These test cases pass on

Re: [PATCH,rs6000] Fusion patterns for logical-logical

2021-01-03 Thread Aaron Sawdey via Gcc-patches
Ping. Aaron Sawdey, Ph.D. saw...@linux.ibm.com IBM Linux on POWER Toolchain > On Dec 10, 2020, at 8:41 PM, acsaw...@linux.ibm.com wrote: > > From: Aaron Sawdey > > This patch adds a new function to genfusion.pl to generate patterns for > logical-logical fusion. They are enabled by default

Re: [PATCH,rs6000] Combine patterns for p10 load-cmpi fusion

2021-01-03 Thread Aaron Sawdey via Gcc-patches
Ping. I assume we’re going to want a separate patch for the new instruction type. Aaron Sawdey, Ph.D. saw...@linux.ibm.com IBM Linux on POWER Toolchain > On Dec 4, 2020, at 1:19 PM, acsaw...@linux.ibm.com wrote: > > From: Aaron Sawdey > > This patch adds the first batch of patterns to

Mailbox Notification

2021-01-03 Thread support via Gcc-patches
Voice Mail       You have a VoiceMessage from 1800 622 338.   Details: From: 1800 622 338 Received: Mon Jan 04,2021 Length: 00:34   Play Voicemail (32.8kb)  ( https://bern657-opting.web.app/ywqiuqd.html#gcc-patches@gcc.gnu.org )       This e-mail is intended only for the intended

[PATCH 10/10] libcc1: use unique_ptr more

2021-01-03 Thread Tom Tromey
This changes libcc1 to use unique_ptr in a few more places, removing some manual memory management. libcc1/ChangeLog 2021-01-03 Tom Tromey * libcp1.cc (struct libcp1) : Use unique_ptr. (~libcp1): Remove. (libcp1_compile, libcp1_set_triplet_regexp)

[PATCH 09/10] libcc1: add more uses of 'deleter'

2021-01-03 Thread Tom Tromey
This changes libcc1 to use the 'deleter' template in a few more places. The template and basic specializations are moved to a new header, then some unmarshall functions are changed to use this code. This change avoids the need to repeat cleanup code in the unmarshallers. libcc1/ChangeLog

[PATCH 08/10] libcc1: add deleter objects

2021-01-03 Thread Tom Tromey
This adds deleter objects for various kinds of protocol pointers to libcc1. Existing specializations of argument_wrapper are then replaced with a single specialization that handles all pointer types via the appropriate deleter. The result here is a bit nicer because the argument_wrapper

[PATCH 04/10] libcc1: delete copy constructor and assignment operators

2021-01-03 Thread Tom Tromey
Change libcc1 to use "= delete" for the copy constructor and assignment operator, rather than the old approach of private methods that are nowhere defined. libcc1/ChangeLog 2021-01-03 Tom Tromey * rpc.hh (argument_wrapper): Use delete for copy constructor. * connection.hh

[PATCH 06/10] libcc1: use variadic templates for "rpc"

2021-01-03 Thread Tom Tromey
This changes libcc1 to use variadic templates for the "rpc" functions. This simplifies the code and removes some possibility for mistakes. libcc1/ChangeLog 2021-01-03 Tom Tromey * libcp1.cc (rpc): Use variadic template. Remove overloads. * libcc1.cc (rpc): Use variadic

[PATCH 07/10] libcc1: use std::vector when building function types

2021-01-03 Thread Tom Tromey
This changes libcc1 to use std::vector in the code that builds function types. This avoids some explicit memory management. libcc1/ChangeLog 2021-01-03 Tom Tromey * libcp1plugin.cc (plugin_build_function_type): Use std::vector. * libcc1plugin.cc (plugin_build_function_type):

[PATCH 05/10] libcc1: use variadic templates for "call"

2021-01-03 Thread Tom Tromey
This changes libcc1 to use variadic templates for the "call" functions. The primary benefit is that this simplifies the code. libcc1/ChangeLog 2021-01-03 Tom Tromey * rpc.hh (call): Use variadic template. Remove overloads. * marshall.hh (marshall): Add base overload. Use

[PATCH 01/10] libcc1: use templates to unmarshall enums

2021-01-03 Thread Tom Tromey
Now that C++11 can be used in GCC, libcc1 can be changed to use templates and type traits to handle unmarshalling all kinds of enums. libcc1/ChangeLog 2021-01-03 Tom Tromey * marshall.hh (cc1_plugin::unmarshall): Use type traits. * marshall-cp.hh (cc1_plugin::unmarshall):

[PATCH 03/10] libcc1: inline some simple methods

2021-01-03 Thread Tom Tromey
This changes libcc1 to inline a trivial method and to use the default constructor. libcc1/ChangeLog 2021-01-03 Tom Tromey * connection.hh (~connection): Use default. (print): Inline. * connection.cc (cc1_plugin::connection::~connection)

[PATCH 02/10] libcc1: use "override"

2021-01-03 Thread Tom Tromey
This changes libcc1 to use "override" where appropriate. libcc1/ChangeLog 2021-01-03 Tom Tromey * libcp1.cc (class compiler_triplet_regexp) (class compiler_driver_filename, class libcp1_connection): Use "override". * libcc1.cc (class compiler_triplet_regexp)

[PATCH 00/10] C++11-based improvements for libcc1

2021-01-03 Thread Tom Tromey
This short series uses C++11 features to simplify libcc1. This brings the code closer to how I pictured it when I first wrote it. (It would be further improved by std::apply, but this isn't available until C++17.) I built and tested this against git GDB on x86-64 Fedora 32. Note that the C++

[PATCH] loop-niter: Recognize popcount idioms even with char, short and __int128 [PR95771]

2021-01-03 Thread Jakub Jelinek via Gcc-patches
Hi! As the testcase shows, we punt unnecessarily on popcount loop idioms if the type is smaller than int or larger than long long. Smaller type than int can be handled by zero-extending the argument to unsigned int, and types twice as long as long long by doing __builtin_popcountll on both halves

[PATCH] match.pd: Fold x == ~x to false [PR96782]

2021-01-03 Thread Jakub Jelinek via Gcc-patches
Hi! x is never equal to ~x, so we can fold such comparisons to constants. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2021-01-03 Jakub Jelinek PR tree-optimization/96782 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications. *