Re: [PATCH 1/2] PR94600: fix volatile access to the whole of a compound object.

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
> From: Hans-Peter Nilsson > Date: Tue, 7 Jul 2020 06:01:37 +0200 > gcc: > PR middle-end/94600 > * expr.c (expand_constructor): Make a temporary also if we're > storing to volatile memory. Oops, I dropped attribution here, but this patch is by Richard Biener (modulo the

[PATCH 2/2] doc/implement-c.texi: About same-as-scalar-type volatile aggregate accesses, PR94600

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
We say very little about reads and writes to aggregate / compound objects, just scalar objects (i.e. assignments don't cause reads). Let's lets say something safe about aggregate objects, but only for those that are the same size as a scalar type. There's an equal-sounding section (Volatiles) in

[PATCH 1/2] PR94600: fix volatile access to the whole of a compound object.

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
The store to the whole of each volatile object was picked apart like there had been an individual assignment to each of the fields. Reads were added as part of that; see PR for details. The reads from volatile memory were a clear bug; individual stores questionable. A separate patch clarifies

RE: [PATCH] pass correct parameters to c_parser_do_statement

2020-07-06 Thread zhoukaipeng (A)
Sorry for my mistake. The previous patch description is incorrect. A new patch was attached. Can anyone help me install this patch? Thanks, Kaipeng Zhou > -Original Message- > From: zhoukaipeng (A) > Sent: Tuesday, July 7, 2020 11:26 AM > To: gcc-patches@gcc.gnu.org > Subject: [PATCH]

Re: [PATCH] Enable GCC support for AMX

2020-07-06 Thread Hongyu Wang via Gcc-patches
Hi Kirill, could you help review this patch? Hongyu Wang 于2020年7月6日周一 上午9:58写道: > > Hi: > > This patch is about to support Intel Advanced Matrix Extensions (AMX) > which will be enabled in GLC. > > AMX is a new 64-bit programming paradigm consisting of two > compo nents: a set of 2-dimensional

[PATCH] pass correct parameters to c_parser_do_statement

2020-07-06 Thread zhoukaipeng (A)
Hi, It is a patch to pass correct parameters to c_parser_do_statement. Can anyone help me install this patch? Thanks, Kaipeng Zhou code-cleanup-v1.diff Description: code-cleanup-v1.diff

Re: [PATCH] print notes only when -Wmismatched-tags succeeds (c++/96063)

2020-07-06 Thread Jason Merrill via Gcc-patches
On 7/6/20 8:21 PM, Martin Sebor wrote: The code for -Wmismatched-tags tests warn_mismatched_tags and when it's non-zero assumes that calls to warning_at() necessarily succeed, proceeding to call inform() to unconditionally issue informational notes.  This assumption is wrong when

Re: RFA: Fix combine.c combining a move and a non-move into two non-moves, PR93372

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
> From: Segher Boessenkool > Date: Tue, 7 Jul 2020 01:42:47 +0200 (Regarding is_just_move in combine.c.) > But it is *not* supposed to be the same as single_set. > > > I checked the original commit, c4c5ad1d6d1e1e a.k.a r263067 and > > it seems parallels-as-sets were just overlooked and that

Re: RFA: Fix combine.c combining a move and a non-move into two non-moves, PR93372

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
> From: Segher Boessenkool > Date: Tue, 7 Jul 2020 01:42:47 +0200 TL;DR: recognize a parallel with a clobber of TARGET_FLAGS_REGNUM? > Hi! > > On Mon, Jul 06, 2020 at 03:11:17AM +0200, Hans-Peter Nilsson wrote: > > TL;DR: fixing a misdetection of what is a "simple move". > > That is not a

[PATCH] print notes only when -Wmismatched-tags succeeds (c++/96063)

2020-07-06 Thread Martin Sebor via Gcc-patches
The code for -Wmismatched-tags tests warn_mismatched_tags and when it's non-zero assumes that calls to warning_at() necessarily succeed, proceeding to call inform() to unconditionally issue informational notes. This assumption is wrong when -Wmismatched-tags is enabled (and warn_mismatched_tags

Re: [PATCH] rs6000: Split movsf_from_si from high word before reload[PR89310]

2020-07-06 Thread Segher Boessenkool
Hi! On Sun, Jul 05, 2020 at 09:17:57PM -0500, Xionghu Luo wrote: > For extracting high part element from DImode register like: > > {%1:SF=unspec[r122:DI>>0x20#0] 86;clobber scratch;} > > split it before reload with "and mask" to avoid generating shift right > 32 bit then shift left 32 bit. > >

Re: RFA: Fix combine.c combining a move and a non-move into two non-moves, PR93372

2020-07-06 Thread Segher Boessenkool
Hi! On Mon, Jul 06, 2020 at 03:11:17AM +0200, Hans-Peter Nilsson wrote: > TL;DR: fixing a misdetection of what is a "simple move". That is not a very correct characterisation of what this does :-) > Looking into performace degradation after de-cc0 for CRIS, I > noticed combine behaving badly;

[PATCH] middle-end: Improve RTL expansion in expand_mul_overflow,

2020-07-06 Thread Roger Sayle
This patch improves the RTL that the middle-end generates for testing signed overflow following a widening multiplication. During this expansion the middle-end generates a truncation which can get used multiple times. Placing this intermediate value in a pseudo register reduces the amount of

Re: [committed 2/3] libstdc++: Constrain std::make_optional

2020-07-06 Thread Jonathan Wakely via Gcc-patches
On 06/07/20 22:06 +0100, Jonathan Wakely wrote: The standard rquires that std::make_optional is constrained similarly to the std::optional constructors, which our implementation fails to do. As a conforming extension this also adds a noexcept-specifier to each std::make_optional overload.

[committed 3/3] libstdc++: Cleanup whitespace and type trait usage in

2020-07-06 Thread Jonathan Wakely via Gcc-patches
This makes the formatting in consistent and also removes redundant && tokens from template arguments for traits like is_constructible and is_convertible. libstdc++-v3/ChangeLog: * include/std/optional (_Optional_payload_base, _Optional_base) (optional,

[committed 2/3] libstdc++: Constrain std::make_optional

2020-07-06 Thread Jonathan Wakely via Gcc-patches
The standard rquires that std::make_optional is constrained similarly to the std::optional constructors, which our implementation fails to do. As a conforming extension this also adds a noexcept-specifier to each std::make_optional overload. libstdc++-v3/ChangeLog: *

[committed 1/3] libstdc++: Add noexcept to std::optional initialization (PR 96036)

2020-07-06 Thread Jonathan Wakely via Gcc-patches
libstdc++-v3/ChangeLog: PR libstdc++/96036 * include/std/optional (optional): Add noexcept-specifier to every constructor, assignment operator, emplace function and dereference operator. * testsuite/20_util/optional/assignment/noexcept.cc: New test.

Re: [PATCH] PowerPC: Optimize DImode -> vector store.

2020-07-06 Thread Segher Boessenkool
Hi! On Wed, Jul 01, 2020 at 06:43:32PM -0400, Michael Meissner wrote: > This patch fixes a PR that I noticed several years ago during power8 > development. I noticed that the compiler would often create a two element > vector and store the vector. > > Particularly for DImode on power8, this

Re: [PATCH 2/2] PowerPC: Add ISA 3.1 IEEE 128-bit min, max, and cmove.

2020-07-06 Thread Segher Boessenkool
Hi! On Wed, Jul 01, 2020 at 06:20:23PM -0400, Michael Meissner wrote: > This patch adds support for the IEEE 128-bit floating point minimum, maximum, > and compare instructions generating a mask. These instructions were added in > ISA 3.1 (i.e. power10). > (emit_fp_cmove_with_mask_xxsel):

[PATCH] PR fortran/96086 - ICE in gfc_match_select_rank, at fortran/match.c:6645

2020-07-06 Thread Harald Anlauf
More NULL pointer dereferences on invalid code, detected by Gerhard. Regtested on x86_64-pc-linux-gnu. OK for master? Thanks, Harald PR fortran/96086 - ICE in gfc_match_select_rank, at fortran/match.c:6645 Handle NULL pointer dereference on SELECT RANK with an invalid assumed-rank array

[committed] wwwdocs: Editorial changes to the LTO section.

2020-07-06 Thread Gerald Pfeifer
Pushed. Gerald --- htdocs/gcc-10/changes.html | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/htdocs/gcc-10/changes.html b/htdocs/gcc-10/changes.html index 0959e4c4..4e5f6139 100644 --- a/htdocs/gcc-10/changes.html +++ b/htdocs/gcc-10/changes.html @@ -143,17

Re: [PATCH 1/2] PowerPC: Rename FP min/max/cmove functions.

2020-07-06 Thread Segher Boessenkool
Hi! On Wed, Jul 01, 2020 at 06:20:22PM -0400, Michael Meissner wrote: > This patch changes the name of two functions that were added to support power9 > instructions, so that the name of these functions are no longer specific to > power9. > * config/rs6000/rs6000.c (emit_fp_min_max_insn):

Re: [PATCH] Add power10 BRD/BRW/BRH support.

2020-07-06 Thread Segher Boessenkool
Hi! On Wed, Jul 01, 2020 at 01:04:02PM -0400, Michael Meissner wrote: > This patch adds support for the Power10 BRD, BRW, and BRH instructions that do > byte swapping on values in GPRs. > I used '*' for the length attribute where it generates a single instruction. More exactly: those that can

Re: [PATCH] rs6000: Add execution tests for mma builtins.

2020-07-06 Thread Segher Boessenkool
Hi! On Tue, Jun 30, 2020 at 05:32:24PM -0500, Aaron Sawdey via Gcc-patches wrote: > This patch adds execution tests that use the MMA builtins, > checks for the right answer, and checks that __builtin_cpu_supports > and __builtin_cpu_is return sane answers given that the code > executed correctly.

Re: [PATCH] aarch64: Change costs for TX2 to expose more vectorization opportunities

2020-07-06 Thread Richard Sandiford
Joel Jones writes: > I approve of this patch. I'm responsible for GCC for TX2 at Marvell. Andrew > Pinski should certainly chime in if he wants. Ah, in that case, the patch is OK. Thanks, Richard

Re: [EXT] Re: [PATCH] aarch64: Change costs for TX2 to expose more vectorization opportunities

2020-07-06 Thread Joel Jones via Gcc-patches
I approve of this patch. I'm responsible for GCC for TX2 at Marvell. Andrew Pinski should certainly chime in if he wants. Joel On 7/6/20, 10:48 AM, "Gcc-patches on behalf of Richard Sandiford" wrote: External Email

Re: [PATCH] aarch64: Change costs for TX2 to expose more vectorization opportunities

2020-07-06 Thread Richard Sandiford
Anton Youdkevitch writes: > This patch changes some vector costs for TX2 so that > more vectorizations beneficial for TX2 chip can happen. > > The new cost model makes the x264 benchmark of CPU2017 > 7% faster with no negative performance impact on other > benchmarks. > > Bootstrapped on

c++: Always use pushdecl for exception library helpers

2020-07-06 Thread Nathan Sidwell
The ABI exception helpers like __throw were being created by first looking for them, and then adding if not found. Primarily because libitm wasn't declaring them with the correct exception specifiers. I fixed libitm a while back, so let's just use push_library_fn and let the symbol table

Re: [PATCH 7/9] [OpenACC] Do not strip GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for enter/exit data directives

2020-07-06 Thread Thomas Schwinge
Hi Julian! On 2020-06-16T15:39:43-0700, Julian Brown wrote: > When attaching pointers in Fortran, OpenACC 2.6 specifies that a > descriptor must be copied to the target at the same time (see next > patch). That means that stripping GOMP_MAP_TO_PSET (and lesserly, > GOMP_MAP_POINTER), which was

[committed] libstdc++: Fix -Wmismatched-tags warnings (PR 96063)

2020-07-06 Thread Jonathan Wakely via Gcc-patches
libstdc++-v3/ChangeLog: * include/bits/fs_dir.h: Use consistent tag in class-head. * include/bits/localefwd.h: Likwise. * include/bits/regex.h: Likwise. * include/bits/stl_map.h: Likwise. * include/bits/stl_multimap.h: Likwise. *

[PATCH] aarch64: Change costs for TX2 to expose more vectorization opportunities

2020-07-06 Thread Anton Youdkevitch
This patch changes some vector costs for TX2 so that more vectorizations beneficial for TX2 chip can happen. The new cost model makes the x264 benchmark of CPU2017 7% faster with no negative performance impact on other benchmarks. Bootstrapped on linux-aarch64 2020-07-06 Anton

Re: [PATCH] c++: Allow empty-declaration in C++11 and later (PR 96068)

2020-07-06 Thread Nathan Sidwell
On 7/6/20 11:01 AM, Jonathan Wakely wrote: Since C++11 a semim-colon on its own at namespace scope is not invalid, so do not give a pedantic diagnostic about it. gcc/cp/ChangeLog: PR c++/96068 * parser.c (cp_parser_toplevel_declaration): Only do pedwarn for

[PATCH] c++: Allow empty-declaration in C++11 and later (PR 96068)

2020-07-06 Thread Jonathan Wakely via Gcc-patches
Since C++11 a semim-colon on its own at namespace scope is not invalid, so do not give a pedantic diagnostic about it. gcc/cp/ChangeLog: PR c++/96068 * parser.c (cp_parser_toplevel_declaration): Only do pedwarn for empty-declaration in C++98. gcc/testsuite/ChangeLog:

[PATCH] tree-optimization/96075 - fix bogus misalignment calculation

2020-07-06 Thread Richard Biener
This fixes bogus misalignment calculation for negative steps since an assertion a previous comment indicated no longer holds: /* DR_STEP(dr) is the same as -TYPE_SIZE of the scalar type, otherwise we wouldn't be here. */ Thus the following replaces DR_STEP by -TYPE_SIZE.

Re: [PATCH][GCC][Arm] PR target/95646: Do not clobber callee saved registers with CMSE

2020-07-06 Thread Andre Vieira (lists)
On 30/06/2020 14:50, Andre Vieira (lists) wrote: On 29/06/2020 11:15, Christophe Lyon wrote: On Mon, 29 Jun 2020 at 10:56, Andre Vieira (lists) wrote: On 23/06/2020 21:52, Christophe Lyon wrote: On Tue, 23 Jun 2020 at 15:28, Andre Vieira (lists) wrote: On 23/06/2020 13:10, Kyrylo

[Ada] Avoid forced loading of System.Priority in CodePeer mode

2020-07-06 Thread Pierre-Marie de Rodat
The comment for routine Is_RTE explains that it is a more efficient equivalent of an equality testing with routine RTE. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb ---

[Ada] Ada2020: AI12-0198 potentially unevaluated array components

2020-07-06 Thread Pierre-Marie de Rodat
This patch implements AI12-0198-1, which enforces detecting components which belong to a non-static or null range of index values of an array aggregate. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * sem_util.ads (Interval_Lists.Aggregate_Intervals): New

[Ada] Time_IO.Value: Allow subseconds and time zones together

2020-07-06 Thread Pierre-Marie de Rodat
The syntax parsed by GNAT.Calendar.Time_IO.Value allowed a fraction of a second, or a time zone, but not both. This is a violation of the relevant ISO standard ISO-8601. This patch allows both to be specified. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ *

[Ada] Implement Time_IO.Image with Time_Zone

2020-07-06 Thread Pierre-Marie de Rodat
This patch adds a new function Image in GNAT.Time_IO that takes a Time_Zone parameter rather than using local time. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New function. It might seem like the local-time

[Ada] Correct time zone in GNAT.Calendar.Time_IO.Value

2020-07-06 Thread Pierre-Marie de Rodat
This patch fixes a bug in which if GNAT.Calendar.Time_IO.Value is called with an ISO date string, the time zone offset is computed incorrectly. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * libgnat/g-catiio.adb (Parse_ISO_8601): New name for Parse_ISO_8861_UTC.

[Ada] Use Stream_Element_Arrays internally for secure hash computations

2020-07-06 Thread Pierre-Marie de Rodat
Refactor share code for secure hash computations to use Stream_Element_Array instead of String as the internal buffer type. This resolves an issue where we would overlay a String on a user provided Stream_Element_Array when that user array is larger than the largest possible String. Tested on

[Ada] Time_IO.Image: Allow printing the time zone

2020-07-06 Thread Pierre-Marie de Rodat
This patch adds support to Image for the GNU standard format "%:::z", which prints the time zone in the format "+hh", "-hh", "+hh:mm", or "-hh:mm", as appropriate. We do not support any of the other standard GNU time-zone formats (%z, %:z, %::z, %Z). Tested on x86_64-pc-linux-gnu, committed on

[Ada] Improve run-time performance for large initialized allocators

2020-07-06 Thread Pierre-Marie de Rodat
This extends the optimization applied to large aggregates used to reset array objects to the case of allocators initialized by such aggregates. The aggregates must essentially satisfy the same conditions as in the former case, although aggregates explicitly giving the bounds of the allocation are

[Ada] Hang on generic declaration with ambiguous formal package

2020-07-06 Thread Pierre-Marie de Rodat
This patch fixes the compiler whereby malformed code featuring a generic package declaration with a formal package may result in an infinite loop when the name of the formal package is hidden by the formal parameter itself. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ *

[Ada] Crash on declaration with aggregate for unchecked union

2020-07-06 Thread Pierre-Marie de Rodat
This patch fixes a compiler abort on an object declaration whose expression is an aggregate for an unchecked union type. A declaration for an object of such a type is otherwise treated as a renaming of the expression (typically an object of the type), but this does work for an aggregate, which

[Ada] Crash on derived type with rep. clause and renamed discriminant

2020-07-06 Thread Pierre-Marie de Rodat
This patch fixes a compiler abort on a declaration of subtype of a derived type DT whose declaration renames a discriminant of its parent type T, when there is a record representation clause for DT. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * exp_ch5.adb

[Ada] Crash when an exception handler is executed with -gnatdk

2020-07-06 Thread Pierre-Marie de Rodat
In few routines we expect exceptions and handle them by falling back to an appropriate safe value (e.g. in Compile_Time_Known_Value we fall back to False and merely skip some optimizations). This is especially important while processing code with previous errors. However, this behaviour prevents

[Ada] Predicates and the current instance of a subtype (AI12-0068)

2020-07-06 Thread Pierre-Marie de Rodat
AI12-0068 defines a reference to a current instance occurring in an aspect_specification of a type or subtype to be a value, not an object. This means that a Constrained attribute in such a context is always True. It also means that attributes that take a prefix that must be an object are illegal

[Ada] Refine use of access types in unnesting

2020-07-06 Thread Pierre-Marie de Rodat
When we pass an unconstrained value in an activation record, we pass it an access type instead of an address so that we can get the bounds in the nested subprogram. However, the current code does this only when the uplevel reference is a parameter and uses 'Access. There are cases, as introduced

[Ada] Fix bad interaction between Unchecked_Conversion and limited type

2020-07-06 Thread Pierre-Marie de Rodat
This prevents the compiler from aborting or crashing on the instantiation of Unchecked_Conversion on a limited type which is passed the result of a function call. The semantics of this operation are not very clear and the programmer is essentially on his/her own here, but the compiler should try

[Ada] Remove obsolete code in Eval_Attribute

2020-07-06 Thread Pierre-Marie de Rodat
The procedure does not deal with run-time checks at all, except in a very peculiar case, 'Pos applied to an integer type, causing multiple checks to be generated for this case. No functional changes. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * sem_attr.adb

[Ada] Visibility error with aggregate in Declare_Expression

2020-07-06 Thread Pierre-Marie de Rodat
The local objects declared in a Declare_Expression must be available when the expression is resolved. THis patch makes these objects visible during resolution, by reinstalling the scope created during prior analysis of the Declare_Expression. This scope exists only for visibility processing and

[Ada] Fix evaluation of Enum_Rep applied to imported constant

2020-07-06 Thread Pierre-Marie de Rodat
Fixes an illegal call to Compile_Time_Known_Value with Empty parameter, which is now reported as a crash with switch -gnatdk. This is clearly a corner case; in preparation for a cleanup of some dubious code for Enum_Rep attribute. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/

[Ada] Small cleanup throughout Exp_Ch9

2020-07-06 Thread Pierre-Marie de Rodat
This mostly replaces verbose lines with calls to the Entry_Index_Type accessor functions and also changes Collect_Entry_Families to using the same method as Build_Entry_Count_Expression to determine whether an entry family is large. No functional changes. Tested on x86_64-pc-linux-gnu, committed

[Ada] Set range checks flag on 'Update for GNATprove in expansion

2020-07-06 Thread Pierre-Marie de Rodat
Range check flag on scalar expression in attribute Update was originally set when this attribute is expanded into a sequence of assignment. However, in GNATprove mode we have a custom expansion, which does nothing with attribute Update; in particular, it didn't set the required range check. As a

[Ada] Wording problems with predicates (AI12-0099)

2020-07-06 Thread Pierre-Marie de Rodat
AI12-0099 corrects the RM wording for two issues. One is that the "not" operator is allowed in predicate-static expressions, which is already supported properly by GNAT. The other is that predicates get inherited in the case of concurrent types that extend from an interface with a predicate. For

[Ada] Remove special case for processing null range in GNATprove

2020-07-06 Thread Pierre-Marie de Rodat
Historically both low and high range bounds were resolved with the range type, but we decided to resolve high bound with the range's base type. This appears to be necessary for having proper range checks in GNATprove mode, especially for null ranges, but it is no longer needed. This patch reverts

[Ada] AI12-0376 Relax RM 13.1(10) rule wrt primitive operations

2020-07-06 Thread Pierre-Marie de Rodat
After discussions at the ARG, the rule in RM 13.1(10) limiting representation aspects on derived types is removed by AI12-0376. It has also been confirmed that Default_Component_Value is a representation aspect. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * aspects.ads

Re: RFC: make combine do as advertised (cheaper-than)?

2020-07-06 Thread Hans-Peter Nilsson via Gcc-patches
> From: Richard Sandiford > Date: Mon, 6 Jul 2020 11:48:25 +0200 > Out of interest, how do the results change if we still allow the > combination for equal costs if the new sequence is shorter than > the original? I think that still counts as "cheaper than", > but maybe I'm too RISC-centric.

Re: [PATCH] analyzer: Fix -Wanalyzer-possible-null-argument warning

2020-07-06 Thread Jonathan Wakely via Gcc-patches
On 05/07/20 21:48 -0400, David Malcolm wrote: On Wed, 2020-07-01 at 18:29 +0100, Jonathan Wakely wrote: On 30/06/20 17:43 +0100, Jonathan Wakely wrote: > gcc/testsuite/ChangeLog: > >* g++.dg/analyzer/pr94028.C: Make operator new non-throwing so >that the compiler doesn't implicitly mark

Re: [Patch 1/3] aarch64: New Straight Line Speculation (SLS) mitigation flags

2020-07-06 Thread Richard Sandiford
Matthew Malcomson writes: > + aarch64_sls_hardening = SLS_NONE; > + if (strcmp (const_str, "none") == 0) > +{ > + aarch64_sls_hardening = SLS_NONE; > + return; Gah, I totally misread the previous patch and didn't see that you were already setting aarch64_sls_hardening to SLS_NONE

Re: RFC: make combine do as advertised (cheaper-than)?

2020-07-06 Thread Richard Sandiford
Hans-Peter Nilsson via Gcc-patches writes: > Most comments, including the second sentence in the head comment > of combine_validate_cost, the main decision-maker of the combine > pass, refer to the function as returning true if the new > insns(s) *cheaper* than the old insns, when in fact the

Re: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions emitted at -O3

2020-07-06 Thread Richard Sandiford
xiezhiheng writes: >> -Original Message- >> From: Richard Biener [mailto:richard.guent...@gmail.com] >> Sent: Thursday, July 2, 2020 10:46 PM >> To: xiezhiheng >> Cc: gcc-patches@gcc.gnu.org >> Subject: Re: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions >> emitted at -O3 >> >>

RE: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions emitted at -O3

2020-07-06 Thread xiezhiheng
> -Original Message- > From: Richard Biener [mailto:richard.guent...@gmail.com] > Sent: Thursday, July 2, 2020 10:46 PM > To: xiezhiheng > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions > emitted at -O3 > > On Thu, Jul 2, 2020 at 3:22

Re: RFC: make combine do as advertised (cheaper-than)?

2020-07-06 Thread Richard Biener via Gcc-patches
On Mon, Jul 6, 2020 at 4:03 AM Hans-Peter Nilsson via Gcc-patches wrote: > > Most comments, including the second sentence in the head comment > of combine_validate_cost, the main decision-maker of the combine > pass, refer to the function as returning true if the new > insns(s) *cheaper* than the

[PATCH] rs6000: Refine RTL unroll adjust hook

2020-07-06 Thread guojiufu via Gcc-patches
For very small loops (< 6 insns), it would be fine to unroll 4 times to use cache line better. Like below loops: `while (i) a[--i] = NULL; while (p < e) *d++ = *p++;` And for very complex loops which may cause negative impacts: branch-miss or cache-miss. Like below loop: there are calls,

Re: [PATCH] PR fortran/95709 - [9/10/11 Regression] ICE in gfc_resolve_code, at fortran/resolve.c:11807

2020-07-06 Thread Thomas Koenig
Hi Harald, OK for master / backports? OK. Thanks for the patch! Regards Thomas

Re: [PATCH] PR fortran/95980 - ICE in get_unique_type_string, at fortran/class.c:485

2020-07-06 Thread Thomas Koenig
Hi Harald, Early ping. OK. Thanks for the patch! Regards Thomas