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
> 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 comment
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,
earl
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
> -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 P
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
>>
>>
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 func
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
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
> 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. ;-)
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 (I
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 t
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
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 (Eval_Attribu
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 pl
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/
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
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
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
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
to
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 wo
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 must
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 (Find_Component)
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
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/
* sem
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 u
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 x86_
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 tru
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/
* libgnat/g-catii
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 Ima
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. 86
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
subprogram.
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
---
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 Tkachov
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.
Bootstra
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:
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
empty-declara
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 Youdkevitc
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.
* include/bits/stl_mul
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 b
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 machine
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 linux-aar
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
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
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.
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 us
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): R
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 +143
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 decla
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):
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 coul
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.
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:
* include/std/optiona
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, __optional_hash_call_base)
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.
libst
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 cod
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; it
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.
>
>
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 i
> 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 very
> 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 th
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 -Wmismatched-tag
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
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 re
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]
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 the
66 matches
Mail list logo