>> gcc/
>> PR tree-optimization/98598
>> * Makefile.in (OBJS): Add tree-ssa-loop-mgo.o.
>> * common.opt (-ftree-loop-mgo): New option.
>
> Just a quick comment - -ftree-loop-mgo is user-facing and it isn't really a
> good
> name. -floop-mgo would be better but still I'd h
A change to check glvalue_p rather than specifically for TARGET_EXPR
revealed issues with the coroutines code's use of the 'rvalue' function,
which shouldn't be used on class glvalues, so I've removed those calls.
In build_co_await I just dropped them, because I don't see anything in the
co_await
PowerPC64 ELFv2 dual entry point functions have a couple of problems
with -fpatchable-function-entry. One is that the nops added after the
global entry land in the global entry code which is constrained to be
a power of two number of instructions, and zero global entry code has
special meaning for
This reverts commit b680b9049737198d010e49cf434704c6a6ed2b3f now
that the PowerPC64 ELFv1 regression is fixed properly.
PR testsuite/98125
* targhooks.h (default_print_patchable_function_entry_1): Delete.
* targhooks.c (default_print_patchable_function_entry_1): Delete.
On PowerPC64 ELFv1 function symbols are defined on function
descriptors in an .opd section rather than in the function code.
.opd is not split up by the PowerPC64 backend for comdat groups or
other situations where per-function sections are required. Thus
SECTION_LINK_ORDER can't use the function
This series of patches fixes -fpatchable-function-entry on PowerPC64
ELFv1 so that SECTION_LINK_ORDER (.section 'o' arg) is now supported,
and on PowerPC64 ELFv2 to not break the global entry code.
Bootstrapped powerpc64le-linux and x86_64-linux all langs. I did see
one regression on both targets
Hi Segher,
>>
>> I think this should be postponed to stage 1 though? Or is there
>> anything very urgent in it?
>>
>
> Yeah, I agree that this belongs to stage1, and there isn't anything
> urgent about it. Thanks for all further comments above!
>
Gentle ping this:
https://gcc.gnu.org/piperma
Hi,
This patch is to teach forwprop to optimize some cases where the
permutated operands of vector permutation are from two same type
CTOR and CTOR or one CTOR and one VECTOR CST. It aggressively
takes VIEW_CONVERT_EXPR as trivial copies and transform the vector
permutation into vector CTOR.
Bo
Gentle ping.
Original message:
https://gcc.gnu.org/pipermail/gcc-patches/2020-October/555871.html
Thanks,
Jiufu Guo.
Hi,
For some cases that when we load unsigned char/short values from
the appropriate unsigned char/short memories and convert them to
double/single precision floating point value, there would be
implicit conversions to int first. It makes GCC not leverage the
P9 instructions lxsibzx/lxsihzx. Thi
Hi,
We noticed that SPEC2017 503.bwaves_r run time degrades by about 8%
on P8 and P9 if we enabled vectorization at O2 fast-math.
Comparing to Ofast, compiler doesn't do the loop interchange on the
innermost loop, it's not profitable to vectorize it then. Since
with loop vectorization, the loop
Hi,
When I was investigating density_test heuristics, I noticed that
the current rs6000_density_test could be used for single scalar
iteration cost calculation, through the call trace:
vect_compute_single_scalar_iteration_cost
-> rs6000_finish_cost
-> rs6000_density_test
It looks u
On 5/6/21 8:32 AM, Aldy Hernandez wrote:
On 5/5/21 9:26 AM, Richard Biener wrote:
On Wed, May 5, 2021 at 1:32 AM Martin Sebor via Gcc-patches
wrote:
With no optimization, -Wformat-overflow and -Wformat-truncation
runs early to detect a subset of simple bugs. But as it turns out,
the pass r
When the preprocessor lexes preprocessing numbers in lex_number, it
accepts digit separators in more cases than actually permitted in
pp-numbers by the standard syntax.
One thing this accepts is adjacent digit separators; there is some
code to reject those later, but as noted in bug 83873 it fails
Hi
Considering your feedback on backtrace in debug mode is going to
take me some time so here is another one.
Compared to latest submission I've added a _Hash_arg_t partial
specialization for std::hash<>. It is not strictly necessary for the
moment but when we will eventually remove
On Thu, 6 May 2021, Jakub Jelinek via Gcc-patches wrote:
Though, (x&1) == x is equivalent to both (x&~1)==0 and to x < 2U
and from the latter two it isn't obvious which one is better/more canonical.
On aarch64 I don't see differences in number of insns nor in their size:
10:13001c00
It's 46991 of course.
Many thanks
Paul
On Thu, 6 May 2021 at 17:15, Paul Richard Thomas <
paul.richard.tho...@gmail.com> wrote:
> Blast! Thanks for pointing it out. The testcase is in a directory
> ~/prs/pr46691, which I then took from the editor. Original sin and all
> that.
>
> Paul
>
>
Blast! Thanks for pointing it out. The testcase is in a directory
~/prs/pr46691, which I then took from the editor. Original sin and all
that.
Paul
On Thu, 6 May 2021 at 17:06, Jonathan Wakely wrote:
> PR 46691 is the wrong PR number:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46691
>
On Thu, May 06, 2021 at 04:21:40PM +0200, Tobias Burnus wrote:
> * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
> a truth_value_p reduction variable is nonintegral.
> (lower_rec_input_clauses): Also handle SIMT part
> for complex/float recution with && and ||.
On 5/5/21 9:26 AM, Richard Biener wrote:
On Wed, May 5, 2021 at 1:32 AM Martin Sebor via Gcc-patches
wrote:
With no optimization, -Wformat-overflow and -Wformat-truncation
runs early to detect a subset of simple bugs. But as it turns out,
the pass runs just a tad too early, before SSA. Th
PR 46691 is the wrong PR number:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46691
The comment in the testcase is wrong, and the ChangeLog file will get
auto-updated with the wrong number overnight (you can manually edit it
and push the fix tomorrow after it's been generated).
On 06.05.21 15:12, Tom de Vries wrote:
WIP patch below tries that approach and fixes the ICE,
Thanks!
but this simple example still doesn't work:
...
#pragma omp target parallel reduction(&&: andf)
Try: map(andf). [Cf. PR99928 with pending patch at
https://gcc.gnu.org/pipermail/gcc-patche
On 5/6/21 3:12 PM, Tom de Vries wrote:
> On 5/6/21 12:30 PM, Jakub Jelinek wrote:
>> On Thu, May 06, 2021 at 12:17:03PM +0200, Tobias Burnus wrote:
>>> OpenMP: Fix SIMT for complex/float reduction with && and ||
>>>
>>> gcc/ChangeLog:
>>>
>>> * omp-low.c (lower_rec_input_clauses): Also handle S
On Thu, May 06, 2021 at 03:12:59PM +0200, Tom de Vries wrote:
> + if (truth_value_p (OMP_CLAUSE_REDUCTION_CODE (c))
> + && TREE_CODE (TREE_TYPE (new_var)) != BOOLEAN_TYPE)
I would use && !INTEGRAL_TYPE_P (TREE_TYPE (new_var))
Especially in C code using || or && with int or
On 5/6/21 12:30 PM, Jakub Jelinek wrote:
> On Thu, May 06, 2021 at 12:17:03PM +0200, Tobias Burnus wrote:
>> OpenMP: Fix SIMT for complex/float reduction with && and ||
>>
>> gcc/ChangeLog:
>>
>> * omp-low.c (lower_rec_input_clauses): Also handle SIMT part
>> for complex/float recution wi
This avoids too deep stacks of timevars during incremental
SSA rewrite and basically use TV_TREE_INTO_SSA for all into-SSA
rewrite work and TV_TREE_SSA_INCREMENTAL for update_ssa.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
2021-05-06 Richard Biener
* timevar.def (TV_
On 05/05/21 22:14 +0100, Jonathan Wakely wrote:
On 05/05/21 21:57 +0200, François Dumont via Libstdc++ wrote:
On 05/05/21 2:01 pm, Jonathan Wakely via Libstdc++ wrote:
Passing plain char to isdigit is undefined if the value is negative.
libstdc++-v3/ChangeLog:
* include/std/charconv (
I originally defined std::remove_cvref_t in terms of the internal
__remove_cvref_t trait, to avoid instantiating the remove_cvref class
template. However, as described in P1715R0 that is observable by users
and is thus non-conforming.
This defines remove_cvref_t as specified in the standard.
libs
We already take care to not apply loop splitting to IL produced
by splitting so we should be able to delay updating SSA and
loop-closed SSA that was left broken after loop versioning
until after we processed all opportunities.
Bootstrapped and tested on x86_64-unknown-linux-gnu, I've also
built SP
This makes DSE consider aggregate LHS of calls as dead, for pure
or const calls the whole stmt and for others by removing the LHS.
Bootstrapped and tested on x86_64-unknown-linux-gnu.
I wonder if there's a more canonical test for call LHS that cannot
be removed than
+ if (gimple_call_return
On Thu, May 06, 2021 at 12:17:03PM +0200, Tobias Burnus wrote:
> OpenMP: Fix SIMT for complex/float reduction with && and ||
>
> gcc/ChangeLog:
>
> * omp-low.c (lower_rec_input_clauses): Also handle SIMT part
> for complex/float recution with && and ||.
>
> libgomp/ChangeLog:
>
>
On 05/05/21 16:23 -0400, Patrick Palka via Libstdc++ wrote:
Tested on x86_64-pc-linux-gnu, does this look OK for trunk/10/11?
Yes, thanks.
libstdc++-v3/ChangeLog:
* include/std/ranges (filter_view::_Iterator::base): Make the
const& overload return a const reference and remove
On 05/05/21 16:23 -0400, Patrick Palka via Libstdc++ wrote:
Tested on x86_64-pc-linux-gnu, does this look OK for trunk/10/11?
Yes, thanks.
libstdc++-v3/ChangeLog:
* include/bits/stl_iterator.h (move_iterator::base): Make the
const& overload return a const reference and remove
On Wed, May 05, 2021 at 06:52:27PM +0200, Jakub Jelinek via Gcc-patches wrote:
> On Wed, May 05, 2021 at 01:45:29PM +0200, Marc Glisse wrote:
> > On Tue, 4 May 2021, Jakub Jelinek via Gcc-patches wrote:
> >
> > > 2) the pr94589-2.C testcase should be matching just 12 times each, but
> > > runs
>
The complex/float && and || reduction patch missed a target testcase
(→ attached) which revealed that also a SIMT needed some special
handling, but just runs on non-SIMT systems.
The omp-low.c patch is rather simple - and I think it semantically
okay.
[Note to the change: It looks more completed
On Thu, 6 May 2021, Jakub Jelinek wrote:
> Hi!
>
> Various functions in phiopt are also called with a gphi * but use
> gimple * argument for it. Fixed thusly, bootstrapped/regtested on
> x86_64-linux and i686-linux, ok for trunk?
Yes (obvious even).
Richard.
> 2021-05-06 Jakub Jelinek
>
>
Jeff Law via Gcc-patches writes:
> Removes references to CC_STATUS_INIT from the avr port, which should get
> it to the point of building again.
>
>
> Committed to the trunk.
Thanks, I was about to send a patch for that.
Regards
Senthil
>
>
> Jeff
> -Original Message-
> From: Christophe Lyon
> Sent: Thursday, May 6, 2021 10:23 AM
> To: Tamar Christina
> Cc: gcc Patches ; nd
> Subject: Re: [PATCH 3/4][AArch32]: Add support for sign differing dot-
> product usdot for NEON.
>
> On Wed, 5 May 2021 at 19:39, Tamar Christina via Gcc-
On Wed, 5 May 2021 at 19:39, Tamar Christina via Gcc-patches
wrote:
>
> Hi All,
>
> This adds optabs implementing usdot_prod.
>
> The following testcase:
>
> #define N 480
> #define SIGNEDNESS_1 unsigned
> #define SIGNEDNESS_2 signed
> #define SIGNEDNESS_3 signed
> #define SIGNEDNESS_4 unsigned
>
Hi Paul,
this and the Changelog LGTM at least for 12. Give it a consolidation time before
applying to 11. Having had some issues in the vicinity of the code you addressed
I am quite happy to see how easy the fix looks.
Any chances you can take a look at
https://gcc.gnu.org/pipermail/fortran/
On Wed, May 05, 2021 at 07:44:46PM +0200, Jakub Jelinek via Gcc-patches wrote:
> So perhaps just the vd->e[dr].mode in there could change to
> GET_MODE (src) and drop the previous PR98694 change?
I've bootstrapped/regtested that successfully on the trunk
(on {x86_64,i686}-linux), though haven't at
Hi!
Various functions in phiopt are also called with a gphi * but use
gimple * argument for it. Fixed thusly, bootstrapped/regtested on
x86_64-linux and i686-linux, ok for trunk?
2021-05-06 Jakub Jelinek
* tree-ssa-phiopt.c (value_replacement, minmax_replacement,
abs_replacem
Hi all,
The PR shows us attaching REG_CFA_ADJUST_CFA notes to stack pointer
adjustments emitted in cmse_nonsecure_call_inline_register_clear (when
-march=armv8.1-m.main). However, the stack pointer is not guaranteed to
be the CFA reg. If we're at -O0 or we have -fno-omit-frame-pointer, then
the fr
On Thu, 6 May 2021, guojiufu wrote:
> On 2021-05-03 20:18, Richard Biener wrote:
> > On Thu, 29 Apr 2021, Jiufu Guo wrote:
> >
> >> When there is the possibility that overflow may happen on the loop index,
> >> a few optimizations would not happen. For example code:
> >>
> >> foo (int *a, int *b
On 5/6/21 9:56 AM, Marius Hillenbrand wrote:
> Hi,
>
> this patch fixes the check of immediate operands to the builtin vec_permi and
> adds a new test for this built-in.
>
> Reg-rested and bootstrapped on s390x.
>
> Is it OK for master? Is it OK for backporting to gcc-11?
>
> Regards,
> Marius
> -Original Message-
> From: Srinath Parvathaneni
> Sent: 05 May 2021 14:32
> To: gcc-patches@gcc.gnu.org
> Cc: Kyrylo Tkachov ; Richard Earnshaw
>
> Subject: [GCC-10 backport][PATCH] arm: Fix testisms introduced with fix for
> pr target/95646.
>
> Hi,
>
> This is a backport to gcc-1
> -Original Message-
> From: Srinath Parvathaneni
> Sent: 05 May 2021 14:32
> To: gcc-patches@gcc.gnu.org
> Cc: Kyrylo Tkachov ; Richard Earnshaw
>
> Subject: [GCC-10 backport][PATCH] arm: PR target/95646: Do not clobber
> callee saved registers with CMSE.
>
> Hi,
>
> This is a backp
Hi All,
Please find below a corrected ChangeLog.
Sorry that I didn't get it right first go.
Paul
Fortran: Assumed and explicit size class arrays [PR46691/99819].
2021-05-06 Paul Thomas
gcc/fortran/ChangeLog
PR fortran/46691
PR fortran/99819
* class.c (gfc_build_class_symbol): Remove the e
emutls figured that tls uses in debug-insns need lowering but
that obviously has effects on code-generation as can be seen
in the following IL diff with the new testcase:
[local count: 1073741824]:
- a = 0;
+ # DEBUG BEGIN_STMT
_4 = __builtin___emutls_get_address (&__emutls_v.b);
+ # DEB
While doing bogus call LHS removal I noticed that cloning with
dropping a return value creates a bogus replacement for a
DECL_BY_REFERENCE DECL_RESULT, resulting in MEM_REFs of
aggregates rather than pointers. The following fixes this
latent issue.
I don't have a testcase that ICEs without doing
This patch is a partial implementation of the semantics mandated in
AI12-0195 concerning class-wide preconditions on dispatching calls: the
precondition that applies is that of the denoted subprogram entity, not
that of the body that is actually executed.
Tested on x86_64-pc-linux-gnu, committed o
Don't call Analyse just before Process_Range_Expr_In_Decl, because the
latter starts with a call to Analyze_And_Resolve anyway.
This fixes a violation with the required sequencing in resolution of
overloaded nodes that requires the Etype being Any_Type and
Is_Overloading being False before calling
When dealing with -gnato2 inside an if expression, we might drop on the
floor the If or Else_Nodes.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch4.adb (Expand_N_If_Expression):
Apply_Arithmetic_Overflow_Check will not deal with
Then/Else_Actions so s
This AI adds in Interfaces.C a binding to the C type _Bool/bool. Note
that this AI makes ambiguous the construct pragma Assert (False) when
using Interfaces.C. To hopefully provide slightly better backward
compatibility, we make Interfaces.C.Extensions.bool a renaming of
Interfaces.C.bool so that
After a change done for GNATProve in 2016, CodePeer_Mode was not using
the regular exception mechanism. This resulted in imprecise control-flow
graphs in some cases. Revert that change for CodePeer. And, since for
GNATprove_Mode Operating_Mode is never Generate_Code, we can simplify
the code a bit.
Compiler fails to reject an Others_Clause in an aggregate for a
constrained array type when previous components of the aggregate cover
the full index range of the array subtype, and the expression in the
Others_Clause has a type incompatible with the component type of the
array. The Others_Clause d
Is_Inline_Pragma isn't always dealing properly with N not being a list
member and Spec_Id being null. This is now fixed.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
list member in both branches.diff --
This defers to the hardware implementation for the handling of underflow
in the Scaling routine also in the case where denormals are not supported.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/s-fatgen.adb (Scaling): Use single handling of
underflow. Add
Routine Apply_Compile_Time_Constraint_Error, when operating in GNAT
mode, always sets Raises_Constraint_Error flag, so there is no need to
follow it with calls to Set_Raises_Constraint_Error. These calls only
had an effect in GNATprove mode, but they were following few calls to
Apply_Compile_Time_C
The reason for this change is two-fold:
- There is code duplication between Is_OK_Static_Subtype and
Is_Static_Subtype
- Is_Static_Subtype is more correct than Is_OK_Static_Subtype (e.g. the
dynamic predicate checks are more complete in Is_Static_Subtype).
Tested on x86_64-pc-linux-gnu, commit
This is basically done on all x86/x86-64 native systems except for Linux
and makes it possible to work around other precision settings, e.g Java's.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* init.c (__gnat_init_float): Use full version on Linux too.diff --git a/gcc/ada/
Gradual underflow needs to be used for one more exponent.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb
--- a/gcc/ada/libgnat/s-fatgen.
This patch fixes an error in the compiler whereby a spurious constraint
error is raised at runtime on type conversions between
access-to-discriminanted types when the object being converted is null.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* checks.adb (Make_Discriminan
The comparison of any denormalized number with 0.0 may return True on
hardware not supporting denormals, so we need to do a bit comparison.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
when denormalized nu
When trying to compare two fields, one that's a packed array of known
length and one that's a packed array of unknown length, Expand_Packed_Eq
converts each side of the equality to its packed array type
and then says that's enough if the types are modular integer types.
That's correct, however, onl
Pragma Warnings in the generic formal vectors library was only
suppressing a message in one specific instantiation within one specific
GNATprove test. This pragma was referring to "type T defined at line
4", which is exactly the type declared in that test; the suppression
didn't work for any other
This changes the implementation of floating-point exponentiation from
using Long_Long_Float for all floating-point types to using a base type
tailored to the type being operated on.
The computation is done in double precision internally, which gives more
accurate results for Long_Float and Long_Lo
Restriction No_Enumeration_Maps was only checked on Value attribute (and
its Wide and Wide_Wide variants). Now it is checked also on Img, Image
and its Wide and Wide_Wide variants, just like described in the GNAT RM.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_attr.a
Remove an initial value of a local variable that were never used. Static
analysis tools like CodePeer should easily recognize that this variable
is only accessed after being written.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* osint.adb (Read_Library_Info_From_Full): Cle
The compiler aborts on an if_expression used as an index when the object
being indexed is a discriminant-dependent component, and the frontend
generates an improper range check on the expression instead of the
required index check.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
When iterating with First_Component/Next_Component we don't need to
check that the Ekind of the iterator variable is E_Component.
Code cleanup related to record equality and unchecked unions; behaviour
is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch3.a
Routine Error_Msg_Ada_2012_Feature includes a test on Ada_Version, so
there is no need to explicitly test the same condition just before the
call.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_attr.adb (Analyze_Image_Attribute): Remove redundant
condition; add
On 2021-05-03 20:18, Richard Biener wrote:
On Thu, 29 Apr 2021, Jiufu Guo wrote:
When there is the possibility that overflow may happen on the loop
index,
a few optimizations would not happen. For example code:
foo (int *a, int *b, unsigned k, unsigned n)
{
while (++k != n)
a[k] = b[k]
Hi,
this patch fixes the check of immediate operands to the builtin vec_permi and
adds a new test for this built-in.
Reg-rested and bootstrapped on s390x.
Is it OK for master? Is it OK for backporting to gcc-11?
Regards,
Marius
--8<--8<-8<-
The builtin vec_permi is pe
On Thu, May 6, 2021 at 12:44 AM Tom Tromey wrote:
>
> This changes godump to use the new htab_eq_string function.
OK.
> gcc
>
> * godump.c (string_hash_eq): Remove.
> (go_finish): Use htab_eq_string.
> ---
> gcc/godump.c | 14 +++---
> 1 file changed, 3 insertions(+), 11
On Thu, May 6, 2021 at 12:43 AM Tom Tromey wrote:
>
> This changes one spot in GCC to use the new htab_eq_string function.
OK.
> gcc
>
> * gengtype-state.c (read_state): Use htab_eq_string.
> (string_eq): Remove.
> ---
> gcc/gengtype-state.c | 11 +--
> 1 file changed, 1
On Thu, May 6, 2021 at 12:41 AM Tom Tromey wrote:
>
> The libiberty hash table includes a helper function for strings, but
> no equality function. Consequently, this equality function has been
> reimplemented a number of times in both the gcc and binutils-gdb
> source trees. This patch adds the
On Wed, May 5, 2021 at 7:29 PM Martin Sebor wrote:
>
> On 5/5/21 1:32 AM, Richard Biener wrote:
> > On Wed, May 5, 2021 at 4:20 AM Martin Sebor via Gcc-patches
> > wrote:
> >>
> >> Even when explicitly enabled, -Walloca-larger-than doesn't run
> >> unless optimization is enabled as well. This pr
78 matches
Mail list logo