[PATCHv2 0/4] ROP support

2021-05-13 Thread Bill Schmidt via Gcc-patches
This is version 2 of the ROP support patch, addressing comments by Will Schmidt and Segher Boessenkool. I've attempted to implement all of your excellent suggestions; otherwise the series is unchanged. I decided to repost the whole series rather than just the patches needing further approval,

[PATCH 3/4] rs6000: Conditionally define __ROP_PROTECT__

2021-05-13 Thread Bill Schmidt via Gcc-patches
2021-05-13 Bill Schmidt gcc/ * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define __ROP_PROTECT__ if -mrop-protect is selected. --- gcc/config/rs6000/rs6000-c.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/config/rs6000/rs6000-c.c

[PATCH] rs6000: Remove old psabi warnings

2021-05-18 Thread Bill Schmidt via Gcc-patches
Hi! Long ago we were forced to make some small ABI breaks to correct errors in the implementation, and we added warning messages for the changes from GCC 4.9 to GCC 5. Enough time has passed that these are now just irritants, so let's remove them. Also clean up associated macros using

Re: [PATCH] rs6000: Remove old psabi warnings

2021-05-18 Thread Bill Schmidt via Gcc-patches
On 5/18/21 11:30 AM, Segher Boessenkool wrote: On Tue, May 18, 2021 at 09:09:07AM -0500, Bill Schmidt wrote: Long ago we were forced to make some small ABI breaks to correct errors in the implementation, and we added warning messages for the changes from GCC 4.9 to GCC 5. Enough time has

Re: [PATCH 1/4] rs6000: Add -mrop-protect and -mprivileged flags

2021-05-15 Thread Bill Schmidt via Gcc-patches
Series pushed with recommended changes.  Thank you! Bill On 5/14/21 10:55 AM, Segher Boessenkool wrote: On Thu, May 13, 2021 at 10:34:54PM -0500, Bill Schmidt via Gcc-patches wrote: +mprivileged +Target Var(rs6000_privileged) Init(0) +Enable generation of instructions that require privileged

Re: [PATCH 00/57] Replace the Power target-specific built-in machinery

2021-05-11 Thread Bill Schmidt via Gcc-patches
Hi!  I'd like to ping this series.  This is a big change, so I'd like to get it committed fairly early in stage 1.  I know you have a lot stacked up, though. Thanks! Bill On 4/27/21 10:32 AM, Bill Schmidt wrote: The design of the target-specific built-in function support in the Power back

Re: [PATCH 0/4] [rs6000] ROP support

2021-05-11 Thread Bill Schmidt via Gcc-patches
Hi!  I'd like to ping this series.  It has slightly higher priority from my perspective, since I'd like this to be backported in time for GCC 11.2. Thanks! Bill On 4/25/21 8:50 PM, Bill Schmidt via Gcc-patches wrote: Add POWER10 support for hashst[p] and hashchk[p] operations. When the -mrop

Re: [PATCH 02/57] Support scanning of build-time GC roots in gengtype

2021-05-11 Thread Bill Schmidt via Gcc-patches
Hi!  I'd like to ping this specific patch from the series, which is the only one remaining that affects common code.  I confess that I don't know whom to ask for a review for gengtype; I didn't get any good ideas from MAINTAINERS.  If you know of a good reviewer candidate, please CC them. In

Re: [PATCH 00/57] Replace the Power target-specific built-in machinery

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/20/21 4:57 PM, Segher Boessenkool wrote: Is there some (semi-)automatic way to compare the results of the old and new systems? Yes...very "semi".  There's a patch in the series that updates the information printed from -mdebug=builtin.  I use this to print the builtins generated by the

Re: [PATCH 04/57] rs6000: Add initial input files

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/20/21 5:46 PM, Segher Boessenkool wrote: On Tue, Apr 27, 2021 at 10:32:39AM -0500, Bill Schmidt via Gcc-patches wrote: This patch adds a tiny subset of the built-in and overload descriptions. * config/rs6000/rs6000-builtin-new.def: New. You'll have to rename this to not have

Re: [PATCH 05/57] rs6000: Add file support and functions for diagnostic support

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/20/21 6:03 PM, Segher Boessenkool wrote: Hi! On Tue, Apr 27, 2021 at 10:32:40AM -0500, Bill Schmidt via Gcc-patches wrote: * config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope variable. What makes it interesting that this var has file scope? Did you mean

Re: [PATCH 2/4] rs6000: Emit ROP-mitigation instructions in prologue and epilogue

2021-05-14 Thread Bill Schmidt via Gcc-patches
On 5/14/21 1:44 PM, Segher Boessenkool wrote: Please make this an unspec_volatile? Oops!  Sorry for missing that the first time. Thanks for the review!! Bill

Re: [PATCH 06/57] rs6000: Add helper functions for parsing

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/21/21 1:51 PM, Segher Boessenkool wrote: Hi! On Tue, Apr 27, 2021 at 10:32:41AM -0500, Bill Schmidt via Gcc-patches wrote: +/* Used as a sentinel for range constraints on integer fields. No field can + be 32 bits wide, so this is a safe sentinel value. */ +#define MININT INT32_MIN

Re: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store [PR100085]

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/2/21 7:46 PM, Xionghu Luo wrote: Hi, On 2021/6/3 06:20, Segher Boessenkool wrote: On Wed, Jun 02, 2021 at 03:19:32AM -0500, Xionghu Luo wrote: On P8LE, extra rot64+rot64 load or store instructions are generated in float128 to vector __int128 conversion. This patch teaches pass swaps to

Re: rs6000: Require ELFv2 ABI for ROP test (PR100750)

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/1/21 7:44 PM, Segher Boessenkool wrote: It would be nice if we had a selector for when we can use -mrop-protect, instead of assuming it is only for ELFv2. Agreed -- I'll take a note and try to get to this sometime.

Re: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store [PR100085]

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/3/21 3:19 PM, Segher Boessenkool wrote: On Thu, Jun 03, 2021 at 08:09:36AM -0500, Bill Schmidt wrote: Note also that swap optimization can handle more general cases than simplify-rtx. Do you have examples? That should be fixed (unless it is something Power-specific?) It is

Re: [PATCH 02/57] Support scanning of build-time GC roots in gengtype

2021-06-04 Thread Bill Schmidt via Gcc-patches
On 5/20/21 5:24 PM, Segher Boessenkool wrote: On Tue, May 11, 2021 at 11:01:22AM -0500, Bill Schmidt wrote: Hi!  I'd like to ping this specific patch from the series, which is the only one remaining that affects common code.  I confess that I don't know whom to ask for a review for gengtype; I

Re: [PATCH 06/57] rs6000: Add helper functions for parsing

2021-06-01 Thread Bill Schmidt via Gcc-patches
On 5/21/21 6:43 PM, Segher Boessenkool wrote: Yes, wrappers is a no-go. But you could just have added the features you need to the generic code? Was there a technical reason not to do that? It sounds useful in many places, not just here. I agree it would be nice if all the gen* tools had

rs6000: Require ELFv2 ABI for ROP test (PR100750)

2021-06-01 Thread Bill Schmidt via Gcc-patches
Hi! PR100750 reports a failure on my part to require the ELFv2 ABI for one of the ROP tests. This fixes that. Tested on powerpc64-linux-gnu, committed as obvious. Thanks! Bill PR100750: Require ELFv2 ABI for ROP test 2021-06-01 Bill Schmidt gcc/testsuite/ PR testsuite/100750

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-04 Thread Bill Schmidt via Gcc-patches
On 7/3/21 10:56 AM, Segher Boessenkool wrote: On Fri, Jul 02, 2021 at 01:32:45PM -0500, Peter Bergner wrote: On 7/1/21 2:48 PM, Peter Bergner wrote: On 7/1/21 1:01 PM, Segher Boessenkool wrote: The patch is okay for trunk. Below is the updated patch which is bootstrapping now. I'll commit

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-04 Thread Bill Schmidt via Gcc-patches
Hi Peter, On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote: gcc/ * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): New macros. (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. * config/rs6000/rs6000-call.c

Re: Repost: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:04 PM, Michael Meissner wrote: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10. This patch updates the vector long long multiply and divide tests to supply the correct code information if power10 code generation is used. 2021-07-07 Michael

Re: [PATCH 4/4] rs6000: Add tests for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, Please resubmit this when you resubmit 3/4, in case any adjustments are needed. Thanks! Bill On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: Copy the tests for _mm_blend_pd, _mm_blendv_pd, _mm_blend_ps, _mm_blendv_ps from gcc/testsuite/gcc.target/i386. 2021-06-29 Paul

Re: [PATCH 2/2] rs6000: Add tests for SSE4.1 "ceil" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote: Add the tests for _mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss. Copy a test for _mm_ceil_pd and _mm_ceil_ps from gcc/testsuite/gcc.target/i386. Define __VSX_SSE2__ to pick up some union definitons in typo

Re: [PATCH 1/4] rs6000: Add support for SSE4.1 "test" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: 2021-06-29 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, _mm_test_mix_ones_zeros): New. ---

Re: [PATCH 3/4] rs6000: Add support for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: _mm_blend_epi16 and _mm_blendv_epi8 were added earlier. Add these four to complete the set. 2021-06-29 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, _mm_blend_ps,

Re: Repost: [PATCH] PR 100168: Fix call test on power10.

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, LGTM.  I can't approve, but recommend approval. Thanks, Bill On 7/7/21 3:08 PM, Michael Meissner wrote: [PATCH] PR 100168: Fix call test on power10. Fix a test that was checking for 64-bit TOC calls, to also allow for PC-relative calls. I have verified that this test passes when

Re: [PATCH 3/4] rs6000: Add support for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
On 7/11/21 11:17 AM, Bill Schmidt wrote: Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: _mm_blend_epi16 and _mm_blendv_epi8 were added earlier. Add these four to complete the set. 2021-06-29  Paul A. Clarke  gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_blend_pd,

Re: [PATCH 2/2] rs6000: Add tests for SSE4.1 "floor" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote: Add the tests for _mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss. These are modelled after (and depend upon parts of) the tests for _mm_ceil intrinsics, recently posted. Copy a test for _mm_floor_sd from

Re: [PATCH 2/4] rs6000: Add tests for SSE4.1 "test" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, LGTM.  I can't approve, but recommend approval as is. Thanks, Bill On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: Copy the test for _mm_testz_si128, _mm_testc_si128, _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, _mm_test_mix_ones_zeros from

Re: [PATCH 1/2] rs6000: Add support for SSE4.1 "ceil" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote: 2021-07-01 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss): New. --- gcc/config/rs6000/smmintrin.h | 28 1 file

Re: [PATCH 1/2] rs6000: Add support for SSE4.1 "floor" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote: 2021-07-06 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): New. --- gcc/config/rs6000/smmintrin.h | 28 1

Re: Repost: [PATCH] PR 100170: Fix eq/ne tests on power10.

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, ENOPATCH Thanks, Bill :-) On 7/7/21 3:06 PM, Michael Meissner wrote: [PATCH] PR 100170: Fix eq/ne tests on power10. This patch updates eq/ne tests in the testsuite to adjust the test if power10 code generation is used. I have verified that these tests run on a power10 system using

Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:03 PM, Michael Meissner wrote: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 This patch updates the various tests in the testsuite to treat plxv and pstxv as being vector loads/stores. This shows up if you run the testsuite with a compiler

Re: Repost: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:16 PM, Michael Meissner wrote: On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote: Hi Mike, On 7/7/21 3:04 PM, Michael Meissner wrote: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10. This patch updates the vector long long multiply and

Re: Repost: [PATCH] Change rs6000_const_f32_to_i32 return type.

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 2:59 PM, Michael Meissner wrote: [PATCH] Change rs6000_const_f32_to_i32 return type. The function rs6000_const_f32_to_i32 called REAL_VALUE_TO_TARGET_SINGLE with a long long type and returns it. This patch changes the type to long which is the proper type for

Re: Repost: [PATCH] Fix vec-splati-runnable.c test.

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:11 PM, Michael Meissner wrote: On Mon, Jul 12, 2021 at 10:49:26AM -0500, Bill Schmidt wrote: Hi Mike, On 7/7/21 3:00 PM, Michael Meissner wrote: [PATCH] Fix vec-splati-runnable.c test. I noticed that the vec-splati-runnable.c did not have an abort after one of the tests. If

Re: Repost: [PATCH] Fix vec-splati-runnable.c test.

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:00 PM, Michael Meissner wrote: [PATCH] Fix vec-splati-runnable.c test. I noticed that the vec-splati-runnable.c did not have an abort after one of the tests. If the test was run with optimization, the optimizer could delete some of the tests and throw off the count.

Re: Repost: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:47 PM, Bill Schmidt via Gcc-patches wrote: On 7/12/21 12:16 PM, Michael Meissner wrote: On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote: Hi Mike, On 7/7/21 3:04 PM, Michael Meissner wrote: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-06 Thread Bill Schmidt via Gcc-patches
On 7/6/21 2:29 PM, Peter Bergner wrote: On 7/4/21 11:32 AM, Bill Schmidt wrote On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote: +  if (d[1].icode != CODE_FOR_nothing) +    { +  op[nopnds++] = void_type_node; +  icode = d[1].icode; +    } This hunk

Re: [PATCH v2 1/2] rs6000: Add support for _mm_minpos_epu16

2021-07-09 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote: Add a naive implementation of the subject x86 intrinsic to ease porting. "subject" won't be part of eventual commit, so please specify in commit blurb. 2021-06-08 Paul A. Clarke gcc/ChangeLog: *

Re: [PATCH v2 2/2] rs6000: Add test for _mm_minpos_epu16

2021-07-09 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote: Copy the test for _mm_minpos_epu16 from gcc/testsuite/gcc.target/i386/sse4_1-phminposuw.c, with a few adjustments: - Adjust the dejagnu directives for powerpc platform. - Make the data not be monotonically increasing, such

[PATCH 0/4] [rs6000] ROP support

2021-04-25 Thread Bill Schmidt via Gcc-patches
Add POWER10 support for hashst[p] and hashchk[p] operations. When the -mrop-protect option is selected, any function that loads the link register from memory before returning must have protection in the prologue and epilogue to ensure the link register save location has not been compromised. If

[PATCH 3/4] rs6000: Conditionally define __ROP_PROTECT__

2021-04-25 Thread Bill Schmidt via Gcc-patches
2021-03-25 Bill Schmidt gcc/ * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define __ROP_PROTECT__ if -mrop-protect is selected. --- gcc/config/rs6000/rs6000-c.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/config/rs6000/rs6000-c.c

[PATCH 2/4] rs6000: Emit ROP-protect instructions in prologue and epilogue

2021-04-25 Thread Bill Schmidt via Gcc-patches
Insert the hashst and hashchk instructions when -mrop-protect has been selected. The encrypted save slot for ROP mitigation is placed between the parameter save area and the alloca space (if any; otherwise the local variable space). Note that ROP-mitigation instructions are currently only

[PATCH 4/4] rs6000: Add ROP tests

2021-04-25 Thread Bill Schmidt via Gcc-patches
2021-03-25 Bill Schmidt gcc/testsuite/ * gcc.target/powerpc/rop-1.c: New. * gcc.target/powerpc/rop-2.c: New. * gcc.target/powerpc/rop-3.c: New. * gcc.target/powerpc/rop-4.c: New. * gcc.target/powerpc/rop-5.c: New. ---

[PATCH 1/4] rs6000: Add -mrop-protect and -mprivileged flags

2021-04-25 Thread Bill Schmidt via Gcc-patches
2021-03-25 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000_option_override_internal): Disable shrink wrap when inserting ROP-protect instructions. * config/rs6000/rs6000.opt (mrop-protect): New option. (mprivileged): Likewise. * doc/invoke.texi:

Re: [PATCH 0/4] [rs6000] ROP support

2021-04-26 Thread Bill Schmidt via Gcc-patches
On 4/26/21 11:01 AM, will schmidt wrote: On Sun, 2021-04-25 at 20:50 -0500, Bill Schmidt via Gcc-patches wrote: Add POWER10 support for hashst[p] and hashchk[p] operations. When the -mrop-protect option is selected, any function that loads the link register from memory before returning must

Re: [PATCH 4/4] rs6000: Add ROP tests

2021-04-26 Thread Bill Schmidt via Gcc-patches
On 4/26/21 11:04 AM, will schmidt wrote: On Sun, 2021-04-25 at 20:50 -0500, Bill Schmidt via Gcc-patches wrote: 2021-03-25 Bill Schmidt gcc/testsuite/ * gcc.target/powerpc/rop-1.c: New. * gcc.target/powerpc/rop-2.c: New. * gcc.target/powerpc/rop-3.c: New

[PATCH 05/57] rs6000: Add file support and functions for diagnostic support

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope variable. (ovld_file): Likewise. (header_file): Likewise. (init_file): Likewise. (defines_file): Likewise. (pgm_path): Likewise.

[PATCH 41/57] rs6000: Always initialize vector_pair and vector_quad nodes

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove TARGET_EXTRA_BUILTINS guard. --- gcc/config/rs6000/rs6000-call.c | 51 - 1 file changed, 24 insertions(+), 27 deletions(-) diff --git

[PATCH 46/57] rs6000: Builtin expansion, part 2

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Implement. (rs6000_expand_ldst_mask): Likewise. (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. --- gcc/config/rs6000/rs6000-call.c | 101

[PATCH 55/57] rs6000: Test case adjustments

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/testsuite/ * gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-insert-exp-5.c:

[PATCH 53/57] rs6000: Debug support

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_debug_type): New function. (def_builtin): Change debug formatting for easier parsing and include more information. (rs6000_init_builtins): Add dump of autogenerated builtins.

[PATCH 52/57] rs6000: Miscellaneous uses of rs6000_builtin_decls_x

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use rs6000_builtin_decls_x when appropriate. (add_condition_to_bb): Likewise. (rs6000_atomic_assign_expand_fenv): Likewise. --- gcc/config/rs6000/rs6000.c | 19

[PATCH 39/57] rs6000: Darwin builtin support

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-04 Bill Schmidt gcc/ * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new decl when new_builtins_are_live. * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New built-in. --- gcc/config/rs6000/darwin.h | 8 ++--

[PATCH 51/57] rs6000: Update rs6000_builtin_decl

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. (rs6000_builtin_decl): Call it. --- gcc/config/rs6000/rs6000-call.c | 20 1 file changed, 20 insertions(+) diff --git

[PATCH 48/57] rs6000: Builtin expansion, part 4

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (elemrev_icode): Implement. (ldv_expand_builtin): Likewise. (lxvrse_expand_builtin): Likewise. (lxvrze_expand_builtin): Likewise. (stv_expand_builtin): Likewise. ---

[PATCH 57/57] rs6000: Adjust to late-breaking change

2021-04-27 Thread Bill Schmidt via Gcc-patches
After this patch set was developed, a small change was made to overload handling for VEC_INSERT. Reflecting that into the new support here. 2021-04-27 Bill Schmidt gcc/ * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): Change P8-vector test to

[PATCH 44/57] rs6000: Support for vectorizing built-in functions

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000-builtins.h): New include. (rs6000_new_builtin_vectorized_function): New function. (rs6000_new_builtin_md_vectorized_function): Likewise. (rs6000_builtin_vectorized_function): Call

[PATCH 45/57] rs6000: Builtin expansion, part 1

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New forward decl. (rs6000_invalid_new_builtin): New stub function. (rs6000_expand_builtin): Call rs6000_expand_new_builtin. (rs6000_expand_ldst_mask): New stub

[PATCH 47/57] rs6000: Builtin expansion, part 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_cpu_expand_builtin): Implement. --- gcc/config/rs6000/rs6000-call.c | 100 1 file changed, 100 insertions(+) diff --git a/gcc/config/rs6000/rs6000-call.c

[PATCH 42/57] rs6000: Handle overloads during program parsing

2021-04-27 Thread Bill Schmidt via Gcc-patches
Although this patch looks quite large, the changes are fairly minimal. Most of it is duplicating the large function that does the overload resolution using the automatically generated data structures instead of the old hand-generated ones. This doesn't make the patch terribly easy to review,

[PATCH 50/57] rs6000: Builtin expansion, part 6

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_htm_spr_num): New function. (new_htm_expand_builtin): Implement. (rs6000_expand_new_builtin): Handle 32-bit and endian cases. --- gcc/config/rs6000/rs6000-call.c | 202 1

[PATCH 49/57] rs6000: Builtin expansion, part 5

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-25 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_mma_expand_builtin): Implement. --- gcc/config/rs6000/rs6000-call.c | 92 + 1 file changed, 92 insertions(+) diff --git a/gcc/config/rs6000/rs6000-call.c

[PATCH 43/57] rs6000: Handle gimple folding of target built-ins

2021-04-27 Thread Bill Schmidt via Gcc-patches
This is another patch that looks bigger than it really is. Because we have a new namespace for the builtins, allowing us to have both the old and new builtin infrastructure supported at once, we need versions of these functions that use the new builtin namespace. Otherwise the code is unchanged.

[PATCH 21/57] rs6000: Write output to the builtins init file, part 3 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. (TYPE_MAP_SIZE): New defined constant. (type_map): New initialized filescope variable. (map_token_to_type_node): New function. (write_type_node): Likewise.

[PATCH "58/57"] rs6000: Avoid problems with undefined decimal float types

2021-04-30 Thread Bill Schmidt via Gcc-patches
On 4/27/21 10:32 AM, Bill Schmidt wrote: The design of the target-specific built-in function support in the Power back end has not stood the test of time. The machinery is grossly inefficient, confusing, and arcane; and adding new built-in functions is inefficient and error-prone. This patch

[PATCH "59/57"] rs6000: Fix builtins that should have been available everywhere

2021-04-30 Thread Bill Schmidt via Gcc-patches
On 4/27/21 10:32 AM, Bill Schmidt wrote: The design of the target-specific built-in function support in the Power back end has not stood the test of time. The machinery is grossly inefficient, confusing, and arcane; and adding new built-in functions is inefficient and error-prone. This patch

[PATCH "60/57"] rs6000: Fix AltiVec builtin marked as VSX

2021-04-30 Thread Bill Schmidt via Gcc-patches
On 4/27/21 10:32 AM, Bill Schmidt wrote: The design of the target-specific built-in function support in the Power back end has not stood the test of time. The machinery is grossly inefficient, confusing, and arcane; and adding new built-in functions is inefficient and error-prone. This patch

[PATCH 40/57] rs6000: Add sanity to V2DI_type_node definitions

2021-04-27 Thread Bill Schmidt via Gcc-patches
It seems quite strange for these to be "vector long" for 64-bit and "vector long long" for 32-bit, when "vector long long" will do for both. 2021-03-04 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change initialization of V2DI_type_node and

[PATCH 54/57] rs6000: Update altivec.h for automated interfaces

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/altivec.h: Delete a number of #defines that are now superfluous; include rs6000-vecdefines.h; include some synonyms. --- gcc/config/rs6000/altivec.h | 516 +++- 1 file changed, 41

[PATCH 56/57] rs6000: Enable the new builtin support

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize new_builtins_are_live to 1. --- gcc/config/rs6000/rs6000-gen-builtins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

Re: [PATCH 01/57] Allow targets to specify build dependencies for out_object_file

2021-04-27 Thread Bill Schmidt via Gcc-patches
On 4/27/21 10:57 AM, Jakub Jelinek wrote: On Tue, Apr 27, 2021 at 10:32:36AM -0500, Bill Schmidt wrote: 2021-03-03 Bill Schmidt gcc/ * Makefile.in (OUT_FILE_DEPS): New variable. (out_object_file): Depend on OUT_FILE_DEPS. Why? E.g. gcc/config/i386/t-i386 contains: i386.o:

Re: [PATCH 01/57] Allow targets to specify build dependencies for out_object_file

2021-04-27 Thread Bill Schmidt via Gcc-patches
On 4/27/21 11:47 AM, Jakub Jelinek wrote: On Tue, Apr 27, 2021 at 11:14:00AM -0500, Bill Schmidt wrote: On 4/27/21 10:57 AM, Jakub Jelinek wrote: On Tue, Apr 27, 2021 at 10:32:36AM -0500, Bill Schmidt wrote: 2021-03-03 Bill Schmidt gcc/ * Makefile.in (OUT_FILE_DEPS): New variable.

Re: [PATCH] Fix logic error in 32-bit trampolines, PR target/98952

2021-04-25 Thread Bill Schmidt via Gcc-patches
On 4/23/21 6:58 PM, Segher Boessenkool wrote: On Fri, Apr 23, 2021 at 06:24:07PM -0400, Michael Meissner wrote: On Thu, Apr 22, 2021 at 05:56:32PM -0500, Segher Boessenkool wrote: As Will says, it looks like the ELFv2 version has the same bug. Please fix that the same way. Yes it has the

[PATCH 02/57] Support scanning of build-time GC roots in gengtype

2021-04-27 Thread Bill Schmidt via Gcc-patches
Currently gengtype supports scanning target-specific files for GC roots, but those files must exist in the source tree. This patch extends the support to include header files generated into the build directory. It also allows targets to specify build dependencies for s-gtype to ensure the built

[PATCH 00/57] Replace the Power target-specific built-in machinery

2021-04-27 Thread Bill Schmidt via Gcc-patches
The design of the target-specific built-in function support in the Power back end has not stood the test of time. The machinery is grossly inefficient, confusing, and arcane; and adding new built-in functions is inefficient and error-prone. This patch set introduces a replacement. Because of

[PATCH 04/57] rs6000: Add initial input files

2021-04-27 Thread Bill Schmidt via Gcc-patches
This patch adds a tiny subset of the built-in and overload descriptions. 2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: New. * config/rs6000/rs6000-overload.def: New. --- gcc/config/rs6000/rs6000-builtin-new.def | 199 +++

[PATCH 01/57] Allow targets to specify build dependencies for out_object_file

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * Makefile.in (OUT_FILE_DEPS): New variable. (out_object_file): Depend on OUT_FILE_DEPS. --- gcc/Makefile.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 8a5fb3fd99c..2fd94fc7dba

[PATCH 03/57] rs6000: Initial create of rs6000-gen-builtins.c

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c: New. --- gcc/config/rs6000/rs6000-gen-builtins.c | 165 1 file changed, 165 insertions(+) create mode 100644 gcc/config/rs6000/rs6000-gen-builtins.c diff --git

[PATCH 07/57] rs6000: Add functions for matching types, part 1 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. (basetype): Likewise. (typeinfo): New struct. (handle_pointer): New function. (match_basetype): New stub function. (match_const_restriction): Likewise.

[PATCH 06/57] rs6000: Add helper functions for parsing

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (MININT): New defined constant. (exit_codes): New enum. (consume_whitespace): New function. (advance_line): Likewise. (safe_inc_pos): Likewise. (match_identifier):

[PATCH 08/57] rs6000: Add functions for matching types, part 2 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 64 + 1 file changed, 64 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 09/57] rs6000: Add functions for matching types, part 3 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. (typeinfo): Add restr field. (match_const_restriction): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 136 1 file changed, 136 insertions(+)

[PATCH 11/57] rs6000: Main function with stubs for parsing and output

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. (num_bifs): New filescope variable. (num_ovld_stanzas): Likewise. (num_ovlds): Likewise. (exit_codes): Add more enum values. (parse_codes): New enum.

[PATCH 10/57] rs6000: Red-black tree implementation for balanced tree search

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rbtree.c: New file. * config/rs6000/rbtree.h: New file. --- gcc/config/rs6000/rbtree.c | 233 + gcc/config/rs6000/rbtree.h | 51 2 files changed, 284 insertions(+) create mode 100644

[PATCH 14/57] rs6000: Parsing built-in input file, part 3 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 102 1 file changed, 102 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 12/57] rs6000: Parsing built-in input file, part 1 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum. (curr_bif_stanza): New filescope variable. (stanza_entry): New struct. (stanza_map): New initialized filescope variable. (enable_string): Likewise.

[PATCH 15/57] rs6000: Parsing of overload input file

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. (MAXOVLDSTANZAS): New defined constant. (ovld_stanzas): New filescope variable. (curr_ovld_stanza): Likewise. (MAXOVLDS): New defined constant.

[PATCH 16/57] rs6000: Build and store function type identifiers

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New function. (complete_base_type): Likewise. (construct_fntype_id): Likewise. (parse_bif_entry): Call construct_fntype_id. (parse_ovld_entry): Likewise.

[PATCH 17/57] rs6000: Write output to the builtin definition include file

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_defines_file): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 17 + 1 file changed, 17 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 18/57] rs6000: Write output to the builtins header file

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_autogenerated_header): New function. (write_decls): Likewise. (write_extern_fntype): New callback function. (write_header_file): Implement. ---

[PATCH 13/57] rs6000: Parsing built-in input file, part 2 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. (parse_prototype): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 143 1 file changed, 143 insertions(+) diff --git

[PATCH 24/57] rs6000: Incorporate new builtins code into the build machinery

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-04 Bill Schmidt gcc/ * config.gcc (extra_objs): Include rs6000-builtins.o and rs6000-c.o. * config/rs6000/t-rs6000 (OUT_FILE_DEPS): Add rs6000-builtins.h. (rs6000-gen-builtins.o): New target. (rbtree.o): Likewise. (rs6000-gen-builtins):

[PATCH 20/57] rs6000: Write output to the builtins init file, part 2 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 71 + 1 file changed, 71 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 25/57] rs6000: Add gengtype handling to the build machinery

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-04 Bill Schmidt gcc/ * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. --- gcc/config.gcc | 1 + gcc/config/rs6000/t-rs6000 | 1 + 2 files changed, 2 insertions(+) diff --git a/gcc/config.gcc

[PATCH 23/57] rs6000: Write static initializations for overload tables

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-03-03 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New function. (write_init_file): Call write_ovld_static_init. --- gcc/config/rs6000/rs6000-gen-builtins.c | 53 + 1 file changed, 53 insertions(+) diff

[PATCH 28/57] rs6000: Add available-everywhere and ancient builtins

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add always, power5, and power6 stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 72 1 file changed, 72 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 19/57] rs6000: Write output to the builtins init file, part 1 of 3

2021-04-27 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_fntype): New function. (write_fntype_init): New stub function. (write_init_bif_table): Likewise. (write_init_ovld_table): New function. (write_init_file): Implement. ---

<    1   2   3   4   5   6   7   8   9   10   >