[PATCH 3/3] Power10: Add tests for PCREL_OPT support.
These are the tests for the PCREL_OPT support.
gcc/testsuite/
2020-08-18 Michael Meissner
* gcc.target/powerpc/pcrel-opt-inc-di.c: New PCREL_OPT test.
* gcc.target/powerpc/pcrel-opt-ld-df.c: New PCREL_OPT test.
* gc
[PATCH 2/3] Power10: Add PCREL_OPT store support.
This patch adds support for optimizing power10 stores to an external variable
to eliminate loading the address of the variable, and then doing a subsequent
store using that address.
I have built compilers with and without these set of 3 patches do
[PATCH 1/3] Power10: Add PCREL_OPT load support.
This patch adds support for optimizing power10 loads of an external variable to
eliminate loading the address of the variable, and then doing a subsequent load
using that address.
I have built compilers with and without these set of 3 patches doing
The ELF-v2 ISA 3.1 support for Power10 has relocations to optimize cases where
the code is references an external variable in only one location. This patch
is similar to the optimizations that the linker already does to optimize TOC
accesses.
I will be submitting 3 patches as follow-ups to this m
On Tue, Aug 18, 2020 at 4:23 AM Hongtao Liu wrote:
>
> On Fri, Aug 14, 2020 at 5:57 PM Uros Bizjak wrote:
> >
> > On Fri, Aug 14, 2020 at 8:03 AM Hongtao Liu wrote:
> > >
> > > Hi:
> > > For struct initialization, when it fits in a TImode, gcc will use
> > > pinsr insn which causes poor codege
Hi Richard,
Thanks for the review and explanation.
The previous fix adding if condition of TARGET_FLOAT does crash glibc-2.29.
I checked the past log of writing the function aarch64_init_cumulative_args,
and did not find the reason why Alan Lawrence added TREE_PUBLIC (fndecl) as one
condition
Hi Jojo,
Nowhere is this rule directly stated. But there are indent options
showed in
https://www.gnu.org/prep/standards/html_node/Formatting.html#Formatting
corresponding to recommendations of C formatting style, which use the
defualt 8 clumns tab wide.
On 8/18/20 9:42 AM, Jojo R wrote:
On Fri, Aug 14, 2020 at 5:57 PM Uros Bizjak wrote:
>
> On Fri, Aug 14, 2020 at 8:03 AM Hongtao Liu wrote:
> >
> > Hi:
> > For struct initialization, when it fits in a TImode, gcc will use
> > pinsr insn which causes poor codegen described in PR93897 and PR96562.
>
> You should probably remove T
Hi,
Is there coding rule with it ?
I can not find it from
https://www.gnu.org/prep/standards/html_node/index.html
and https://gcc.gnu.org/codingconventions.html
Could you give me any hints ?
Thanks.
Jojo
在 2020年8月17日 +0800 PM11:05,Xianmiao Qu ,写道:
> Hi
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to master as da7c2773e56c889f4f131b80d4b91f1adbae80a2.
gcc/analyzer/ChangeLog:
* region-model.cc (region_model::get_rvalue_1): Fix name of local.
---
gcc/analyzer/region-model.cc | 4 ++--
1 file changed, 2 insertions(+
The old implementation of region_model::get_rvalue_1 gracefully handled
tree codes it didn't understand, returning "UNKNOWN", whereas the new
implementation (r11-2694-g808f4dfeb3a95f50f15e71148e5c1067f90a126d) had
an assertion left over from development, leading to ICEs.
This patch restores the ol
PR analyzer/96640 reports a ICE within region_model::on_assignment when
failing to handle a WIDEN_MULT_EVEN_EXPR, and various other tree codes.
The old implementation of region_model::on_assignment gracefully handled
tree codes it didn't understand, returning "UNKNOWN", whereas the new
implementat
This patch to the Go fronted exports thunks referenced by inline
functions. Otherwise we get a link time error. The test case is
https://golang.org/cl/248637. This fixes
https://golang.org/issue/40252. Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu. Committed to mainline and GCC 10 b
On Mon, Aug 17, 2020 at 7:06 AM Martin Liška wrote:
>
> Adding libiberty maintainer to CC.
I guess I'm not sure why either of these belong in libiberty.
htab_insert can be written elsewhere as needed. And while perhaps
some sort of stats API would be reasonable, I don't think it should be
someth
Ping (added some Cc:s).
Thanks in advance,
Segher
On Fri, Aug 07, 2020 at 09:51:04PM +, Segher Boessenkool wrote:
> When the compgotos pass copies the tail of blocks ending in an indirect
> jump, there is a micro-optimization to not copy the last one, since the
> original block will then j
On Mon, Aug 17, 2020 at 10:31:08PM +, Joseph Myers wrote:
> On Sat, 15 Aug 2020, Segher Boessenkool wrote:
> > On Sat, Aug 15, 2020 at 12:10:42PM +0100, Roger Sayle wrote:
> > > I'll quote Joseph Myers (many thanks) who describes things clearly as:
> > > > (a) When both arguments are NaNs, the
On Mon, Aug 17, 2020 at 06:05:09PM -0400, David Edelsohn wrote:
> The Power Vector ABI is available at
>
> https://github.com/power8-abi-doc/vector-function-abi
>
> It apparently did not attach correctly to the sourceware wiki or the
> filename is different.
Thanks!
Segher
Hi!
On Fri, Aug 14, 2020 at 05:59:05PM -0500, Aaron Sawdey via Gcc-patches wrote:
> +static rtx
> +gen_lxvl_stxvl_move (rtx dest, rtx src, int length)
> +{
> + gcc_assert (MEM_P (dest) ^ MEM_P (src));
Maybe just "!="?
> + gcc_assert (GET_MODE (dest) == V16QImode && GET_MODE (src) == V16QImode)
On Sat, 15 Aug 2020, Segher Boessenkool wrote:
> Hi!
>
> On Sat, Aug 15, 2020 at 12:10:42PM +0100, Roger Sayle wrote:
> > I'll quote Joseph Myers (many thanks) who describes things clearly as:
> > > (a) When both arguments are NaNs, the return value should be a qNaN,
> > > but sometimes it is an
On Fri, 14 Aug 2020, Jakub Jelinek via Gcc-patches wrote:
> Hi!
>
> The following testcase shows various problems with -Wunused-but-set*
> warnings and _Generic construct. I think it is best to treat the selector
> and the ignored expressions as (potentially) read, because when they are
> parsed
On Thu, 13 Aug 2020, Martin Sebor via Gcc-patches wrote:
> > * Maybe cdk_pointer is followed by cdk_attrs before cdk_id. In this case
> > the code won't return.
>
> I think I see the problem you're pointing out (I just don't see how
> to trigger it or test that it doesn't happen). If the tweak
The Power Vector ABI is available at
https://github.com/power8-abi-doc/vector-function-abi
It apparently did not attach correctly to the sourceware wiki or the
filename is different.
Thanks, David
On Mon, Aug 17, 2020 at 1:44 PM GT wrote:
>
> ‐‐‐ Original Message ‐‐‐
> On Thursday, Aug
On Mon, Aug 17, 2020 at 05:44:46PM +, GT wrote:
> > This is about the Power binding to some OpenMP API, right? It has
> > nothing to do with "vector" or "ABI" -- we have vectors already, and
> > we have ABIs already, more than enough of each.
> >
> > It is very very VERY hard to review this wit
While looking at the reported issue, it appeared that the Fortran frontend
mishandled the conversion of functions of the MIN/MAX variety to inline code.
At the same time, the simplification of expressions using a common and GNU
extension (but non-standard) could result in inconsistent results. The
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to master as r11-2725-gb00a83047574eb6f8d1e670ad439609125873506.
gcc/analyzer/ChangeLog:
PR analyzer/96644
* region-model-manager.cc (get_region_for_unexpected_tree_code):
Handle ctxt being NULL.
gcc/te
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to master as r11-2724-g42c5ae5d7f0ad89b75d93c497fe44b6c66da7e76.
gcc/analyzer/ChangeLog:
PR analyzer/96639
* region.cc (region::get_subregions_for_binding): Check for "type"
being NULL.
gcc/testsuite/Ch
In r11-2708-g2867118ddda9b56d991c16022f7d3d634ed08313 I added support to
the analyzer for initialization from var_decls in the global constant
pool. However, that commit didn't support initialization from
ADDR_EXPR of a STRING_CST leading to an ICE seen in data-model-1.c and
pr94639.c on arm and p
Use parameterized pattern names to simplify calling of named patterns.
2020-08-15 Uroš Bizjak
gcc/ChangeLog:
* config/i386/i386-builtin.def (__builtin_ia32_bextri_u32)
(__builtin_ia32_bextri_u64): Use CODE_FOR_nothing.
* config/i386/i386.md (@tbm_bextri_):
Implement as paramet
Hi all,
This patch enables MVE vsub instructions for auto-vectorization.
It adds RTL templates for MVE vsub instructions using 'minus' instead of
unspec expression to make the instructions recognizable for vectorization.
MVE target is added in sub3 optab. The sub3 optab is
modified to use a mod
Bill:
On Mon, 2020-08-17 at 13:09 -0500, Bill Schmidt wrote:
> >
> > There are three prototypes __builtin_cfuged, __builtin_pdepd,
> > __builtin_pextd defined in the document.
> >
> > The corresponding builtin definitions in GCC are:
> >
> > __builtin_altivec_cfuged, __builtin_altivec_pdep
On 8/17/20 12:13 PM, Carl Love wrote:
Segher, Bill, Peter:
On Fri, 2020-08-14 at 19:42 -0500, Segher Boessenkool wrote:
Do the names agree with the (future) documentation now?
Did not double check on the documentation.
Someone should...
Looking at the box document "Proposed function Prototyp
Hi!
On Mon, Aug 17, 2020 at 01:06:10PM +0200, Uros Bizjak wrote:
> On Mon, Aug 17, 2020 at 12:42 PM Roger Sayle
> wrote:
> > (insn 14 7 15 2 (set (reg/i:SI 0 ax)
> > (subreg:SI (reg:DI 84) 0)) "pr92180.c":5:1 67 {*movsi_internal}
> > (expr_list:REG_DEAD (reg:DI 84)
> > (nil)
‐‐‐ Original Message ‐‐‐
On Thursday, August 13, 2020 6:49 PM, Segher Boessenkool
wrote:
> Hi!
>
> This is about the Power binding to some OpenMP API, right? It has
> nothing to do with "vector" or "ABI" -- we have vectors already, and
> we have ABIs already, more than enough of each.
>
Hi
Here is the new proposal.
As we can't remove template parameters I simply restore those that
I tried to pass differently _H2 and _ExtractKey, so eventually I only
remove usage of _Hash which I renamed in _Unused. Maybe I can keep the
doc about it in hashtable.h and just add a remar
Segher, Bill, Peter:
On Fri, 2020-08-14 at 19:42 -0500, Segher Boessenkool wrote:
> > > Do the names agree with the (future) documentation now?
> >
> > Did not double check on the documentation.
>
> Someone should...
Looking at the box document "Proposed function Prototypes for P10".
There are
Hi Paul,
> The fix for PR9601 is rather trivial and is the last chunk of the patch.
> Finding the fix for PR96100 took a silly amount of time but it now looks
> rather obvious. Trying to evaluate the string length by calling
> gfc_conv_expr_descriptor, when this function is already failing to find
On 8/17/20 6:04 AM, Aldy Hernandez wrote:
On 8/14/20 7:16 PM, Andrew MacLeod wrote:
On 8/14/20 12:05 PM, Aldy Hernandez wrote:
I made some minor changes to the function comments.
gcc/ChangeLog:
* vr-values.c (check_for_binary_op_overflow): Change type of store
to range_query.
(v
On Fri, 2020-08-14 at 17:59 -0500, Aaron Sawdey via Gcc-patches wrote:
Hi,
> This patch adds a few new instructions to inline expansion of
> memcpy/memmove. Generation of all these is controlled by
s/is/are/ ?
> the option -mblock-ops-unaligned-vsx which is set on by default if the
> target has
Hi Jojo,
On 8/17/20 7:09 PM, Jojo R wrote:
diff --git a/gcc/config/csky/csky.c b/gcc/config/csky/csky.c
index 7ba3ed3..b71291a 100644
--- a/gcc/config/csky/csky.c
+++ b/gcc/config/csky/csky.c
@@ -328,6 +328,16 @@ csky_cpu_cpp_builtins (cpp_reader *pfile)
{
builtin_define ("__csky_
On Sat, 2020-08-15 at 16:19 +0200, Christophe Lyon wrote:
> Hi Martin,
>
>
> On Sat, 15 Aug 2020 at 01:14, Martin Sebor via Gcc-patches
> wrote:
> > On 8/13/20 11:44 AM, Martin Sebor wrote:
> > > On 8/13/20 10:21 AM, Jeff Law wrote:
> > > > On Fri, 2020-07-31 at 17:55 -0600, Martin Sebor via Gcc
Hi!
On Mon, Aug 17, 2020 at 10:28:31AM +0800, HAO CHEN GUI wrote:
> >For the reloc, my understanding is the jump table needs to be
> >relocated if it's a non-relative jump table and PIC flag is set at the
> >same time.
Yes, I did say the *existing* code seems sub-optimal, too :-)
> >According
This fixes a number of std::tuple bugs by no longer making use of the
empty base-class optimization. By using the C++20 [[no_unique_address]]
attribute we can always store the element as a data member, while still
compressing the layout of tuples containing empty types.
Since we no longer use inhe
These flags can't be used at the same time as any of the other
sanitizers.
We add an equivalent flag to -static-libasan in -static-libhwasan to
ensure static linking.
The -fsanitize=kernel-hwaddress option is for compiling targeting the
kernel. This flag has defaults that allow compiling KASAN wi
There are four main features to this change:
1) Check pointer tags match address tags.
In the new `hwasan` pass we put HWASAN_CHECK internal functions before
all memory accesses to check that tags in the pointer being used match
the tag stored in shadow memory for the memory region being used.
T
Handling stack variables has three features.
1) Ensure HWASAN required alignment for stack variables
When tagging shadow memory, we need to ensure that each tag granule is
only used by one variable at a time.
This is done by ensuring that each tagged variable is aligned to the tag
granule repres
Adding hwasan tests.
Only interesting thing here is that we have to make sure the tagging mechanism
is deterministic to avoid flaky tests.
gcc/testsuite/ChangeLog:
* c-c++-common/hwasan/aligned-alloc.c: New test.
* c-c++-common/hwasan/alloca-array-accessible.c: New test.
This patch tries to tie libhwasan into the GCC build system in the same way
that the other sanitizer runtime libraries are handled.
libsanitizer/ChangeLog:
* Makefile.am: Build libhwasan.
* Makefile.in: Build libhwasan.
* asan/Makefile.in: Build libhwasan.
* con
Though the library has limited support for x86, we don't have any
support for generating code targeting x86 so there is no point building
for that target.
libsanitizer/ChangeLog:
* Makefile.am: Condition building hwasan directory.
* Makefile.in: Regenerate.
* configure: Re
This is an analogous option to --bootstrap-asan to configure. It allows
bootstrapping GCC using HWASAN.
For the same reasons as for ASAN we have to avoid using the HWASAN
sanitizer when compiling libiberty and the lto-plugin.
Also add a function to query whether -fsanitize=hwaddress has been
pas
Adding libiberty maintainer to CC.
On 8/17/20 4:03 PM, Martin Liška wrote:
Hey.
I'm working on bintuils where I would like to port a hash table
implementation in gas/hash.[ch] to libiberty one.
But it would be handy for me to add 2 new functions.
Thoughts?
Thanks,
Martin
include/ChangeLog:
Hey.
I'm working on bintuils where I would like to port a hash table
implementation in gas/hash.[ch] to libiberty one.
But it would be handy for me to add 2 new functions.
Thoughts?
Thanks,
Martin
include/ChangeLog:
* hashtab.h (htab_insert): New function.
(htab_print_statisti
PING^4
On 7/23/20 1:10 PM, Martin Liška wrote:
PING^3
On 6/24/20 11:09 AM, Martin Liška wrote:
PING^2
On 6/10/20 10:12 AM, Martin Liška wrote:
PING^1
On 5/25/20 3:10 PM, Martin Liška wrote:
On 5/21/20 4:53 PM, Martin Sebor wrote:
On 5/21/20 5:28 AM, Martin Liška wrote:
On 5/18/20 10:37 P
This change is motivated by a patchset that adds bfloat16 debugging
support for new avx512 instructions to GDB. The gdb thread can be found
here: https://sourceware.org/pipermail/gdb-patches/2020-July/170820.html
include:
2020-08-17 Felix Willgerodt
* floatformat.h (floatformat_bfloat1
On 8/17/20 11:15 AM, Martin Liška wrote:
I'm suggesting one more clean up that uses static assert
instead of a run-time check.
I concur that compile-time checks are nicer.
LGTM – it should be able catch this kind of mistakes.
Tobias
Thoughts?
Martin
0001-opnemp-add-static-assert-for-claus
gcc/ChangeLog:
* config/csky/csky.md (CSKY_NPARM_FREGS): New.
(call_value_internal_vs/d): New.
(untyped_call): New.
* config/csky/csky.h (TARGET_SINGLE_FPU): New.
(TARGET_DOUBLE_FPU): New.
(FUNCTION_VARG_REGNO_P): New.
(CSKY_VREG_MODE_P): New
On Mon, Aug 17, 2020 at 12:42 PM Roger Sayle wrote:
>
>
> This patch catches a missed optimization opportunity where GCC currently
> generates worse code than LLVM. The issue, as nicely analyzed in bugzilla,
> boils down to the following three insns in combine:
>
> (insn 6 5 7 2 (parallel [
>
This patch catches a missed optimization opportunity where GCC currently
generates worse code than LLVM. The issue, as nicely analyzed in bugzilla,
boils down to the following three insns in combine:
(insn 6 5 7 2 (parallel [
(set (reg:DI 85)
(ashift:DI (reg:DI 85)
On Fri, Aug 14, 2020 at 10:26 AM Hongtao Liu wrote:
>
> Enable operator or/xor/and/andn/not for mask register, kxnor is not
> enabled since there's no corresponding instruction for general
> registers.
>
> gcc/
> PR target/88808
> * config/i386/i386.md: (*movsi_internal): Adjust co
On 8/14/20 7:16 PM, Andrew MacLeod wrote:
On 8/14/20 12:05 PM, Aldy Hernandez wrote:
I made some minor changes to the function comments.
gcc/ChangeLog:
* vr-values.c (check_for_binary_op_overflow): Change type of store
to range_query.
(vr_values::adjust_range_with_scev): Abstract
On Fri, Aug 14, 2020 at 10:25 AM Hongtao Liu wrote:
>
> 1. Set cost of movement inside mask registers a bit higher than gpr's.
> 2. Set cost of movement between mask register and gpr much higher than
> movement
>inside gpr, but still less equal than load/store.
> 3. Set cost of mask register
On Fri, Aug 14, 2020 at 10:24 AM Hongtao Liu wrote:
>
> Enable direct move between masks and gprs in pass_reload with
> consideration of cost model.
>
> Changelog
> gcc/
> * config/i386/i386.c (inline_secondary_memory_needed):
> No memory is needed between mask regs and gpr.
>
On Fri, Aug 14, 2020 at 10:22 AM Hongtao Liu wrote:
>
> Hi:
> First, since avx512 masks involve both vector isa and general part,
> so i add both maintainers to the maillist.
>
> I'm doing this in 4 steps:
> 1 - Add cost model for operation of mask registers.
> 2 - Introduce new cover clas
On 8/14/20 6:03 PM, Andrew MacLeod wrote:
On 8/11/20 7:53 AM, Aldy Hernandez via Gcc-patches wrote:
-- Forwarded message -
From: Aldy Hernandez
Date: Tue, Aug 4, 2020, 13:55
Subject: [PATCH 1/2] Add statement context to get_value_range.
To:
Cc: , Aldy Hernandez
This is in
On 8/17/20 10:52 AM, Tobias Burnus wrote:
LGTM & thanks! – Sorry for missing it.
That happens.
(I re-checked against the OMP_LIST_* enum and
it seems to be only missing one.)
Good.
I'm suggesting one more clean up that uses static assert
instead of a run-time check.
Thoughts?
Martin
>From
Ping^2.
> -Original Message-
> From: Gcc-patches On Behalf Of Alex
> Coplan
> Sent: 03 August 2020 16:02
> To: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH] driver: Fix several memory leaks
>
> Ping.
>
> > -Original Message-
> > From: Jit On Behalf Of Alex Coplan
> > Sent: 14
Hello,
Given the following C function:
double *f(double *p, unsigned x)
{
return p + x;
}
prior to this patch, GCC at -O2 would generate:
f:
add x0, x0, x1, uxtw 3
ret
but this add instruction uses architecturally-invalid syntax: the width
of the third operand conflicts
The script contrib/download_prerequisites now accepts the command line
argument '--proxy'. Which instructs the fetcher program to use the
specified proxy.
Signed-off-by: Mert Kirpici
---
contrib/download_prerequisites | 23 ++-
1 file changed, 18 insertions(+), 5 deletions(-)
On 8/17/20 10:41 AM, Martin Liška wrote:
Since 21cfe724cbdc30612bf1ef59b26f19ada2210832 there's a new
OMP_LIST_NONTEMPORAL value, but it was missing in
resolve_omp_clauses static array that is defined at the function
beginning:
gcc/fortran/ChangeLog:
* openmp.c (resolve_omp_clauses): Add N
Since 21cfe724cbdc30612bf1ef59b26f19ada2210832 there's a new
OMP_LIST_NONTEMPORAL value, but it was missing in
resolve_omp_clauses static array that is defined at the function
beginning:
./xgcc -B.
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/gomp/nontemporal-1.f90
-fopenmp -c
../../g
Hi,
Currently when building a cross-compiler targeting arm-wrs-vxworks7, the
selftests fail unless the VSB_DIR environment variable is set.
The same !nostdinc condition is used for VXWORKS_ADDITIONAL_CPP_SPEC.
OK for mainline?
Iain.
---
gcc/ChangeLog:
* config/vxworks.h (STARTFILE_PRE
Hi Jakub and Marc,
Here's version #3 of the patch to recognize bswap32 and bswap64 that
now also implements Jakub's suggestion to support addition and xor in
addition to bitwise ior when recognizing the union of highpart and
lowpart (and two additional tests to check for these variants).
This rev
> -Original Message-
> From: Richard Sandiford [mailto:richard.sandif...@arm.com]
> Sent: Wednesday, August 5, 2020 12:26 AM
> To: xiezhiheng
> Cc: Richard Biener ; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions
> emitted at -O3
>
> xiezhih
Ping.
On 31/05/2020 12:20, Iain Buclaw wrote:
> The tile*-*-* targets were marked as obsolete in SVN r259724.
>
> OK?
>
> Regards
> Iain
>
> ---
> contrib/ChangeLog:
>
> * config-list.mk (LIST): Add OPT-enable-obsolete to tilegx-linux-gnu,
> tilegxbe-linux-gnu, and tilepro-linux-gn
Ping.
On 31/05/2020 12:48, Iain Buclaw wrote:
> Hi,
>
> The target files tilegx/mul-tables.c and tilepri/mul-tables.c were
> updated in SVN r255743, but the generator file that produces them
> wasn't, so it was reverting this change during builds.
>
> Only tested by running make all-gcc for all
Please find attached a fix for PR96486.
OK to commit?
[PATCH] Fortran : get_environment_variable runtime error PR96486
Runtime error occurs when the type of the value argument is
character(0): "Zero-length string passed as value...".
The status argument, intent(out), will contain -1 if the v
Please find attached a patch for PR96436.
OK to commit?
[PATCH] Fortran : rejected f0.d edit descriptor PR96436
Zero length f format descriptors are valid for Fortran 95 and
later. For g format descriptors from Fortran 2008 and later.
Finally for D, E, EN and ES for Fortran 2018 and later.
2
On 8/3/20 5:37 PM, Tobias Burnus wrote:
It turned out that the omp_discover_declare_target_tgt_fn_r
discovered all nodes – but as it tagged the C++ alias nodes
and not the streamed-out nodes, no device function was created
and one got link errors if offloading devices were configured.
(Only with
77 matches
Mail list logo