Original patch series here: https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568840.html
Segher and others, thanks for reviewing the first chunk of patches from this series! Some of the stylistic changes turn out to affect many of the remaining patches, so in addition to addressing the review comments, I've proactively fixed those as well. I've also rebased the series to more recent trunk and fixed up a couple of things as a result of community changes in the meanwhile. As a result of reviews, the original patch 0001 has been dropped, so the patch numbering is off by one compared with the original series. Status of the remaining patches (using new numbering): 0001: Reviewed by Segher and Richi, approved pending understanding of possible problems on mingw 0002: Approved 0003: Approved 0004: Approved with small changes that were made in this series 0005: Needs re-review after changes made in this series 0006: Approved with small changes that were made in this series 0007: Approved 0008: Approved with factor request (addressed in this series) 0009: Approved 0010-0055: Not yet reviewed Thanks again for the ongoing reviews! Bill Bill Schmidt (55): rs6000: Support scanning of build-time GC roots in gengtype rs6000: Initial create of rs6000-gen-builtins.c rs6000: Add initial input files rs6000: Add file support and functions for diagnostic support rs6000: Add helper functions for parsing rs6000: Add functions for matching types, part 1 of 3 rs6000: Add functions for matching types, part 2 of 3 rs6000: Add functions for matching types, part 3 of 3 rs6000: Red-black tree implementation for balanced tree search rs6000: Main function with stubs for parsing and output rs6000: Parsing built-in input file, part 1 of 3 rs6000: Parsing built-in input file, part 2 of 3 rs6000: Parsing built-in input file, part 3 of 3 rs6000: Parsing of overload input file rs6000: Build and store function type identifiers rs6000: Write output to the builtin definition include file rs6000: Write output to the builtins header file rs6000: Write output to the builtins init file, part 1 of 3 rs6000: Write output to the builtins init file, part 2 of 3 rs6000: Write output to the builtins init file, part 3 of 3 rs6000: Write static initializations for built-in table rs6000: Write static initializations for overload tables rs6000: Incorporate new builtins code into the build machinery rs6000: Add gengtype handling to the build machinery rs6000: Add the rest of the [altivec] stanza to the builtins file rs6000: Add VSX builtins rs6000: Add available-everywhere and ancient builtins rs6000: Add power7 and power7-64 builtins rs6000: Add power8-vector builtins rs6000: Add Power9 builtins rs6000: Add available-everywhere and ancient builtins rs6000: Add Power10 builtins rs6000: Add MMA builtins rs6000: Add miscellaneous builtins rs6000: Add Cell builtins rs6000: Add remaining overloads rs6000: Execute the automatic built-in initialization code rs6000: Darwin builtin support rs6000: Add sanity to V2DI_type_node definitions rs6000: Always initialize vector_pair and vector_quad nodes rs6000: Handle overloads during program parsing rs6000: Handle gimple folding of target built-ins rs6000: Support for vectorizing built-in functions rs6000: Builtin expansion, part 1 rs6000: Builtin expansion, part 2 rs6000: Builtin expansion, part 3 rs6000: Builtin expansion, part 4 rs6000: Builtin expansion, part 5 rs6000: Builtin expansion, part 6 rs6000: Update rs6000_builtin_decl rs6000: Miscellaneous uses of rs6000_builtin_decls_x rs6000: Debug support rs6000: Update altivec.h for automated interfaces rs6000: Test case adjustments rs6000: Enable the new builtin support gcc/Makefile.in | 5 +- gcc/config.gcc | 2 + gcc/config/rs6000/altivec.h | 516 +- gcc/config/rs6000/darwin.h | 8 +- gcc/config/rs6000/rbtree.c | 242 + gcc/config/rs6000/rbtree.h | 52 + gcc/config/rs6000/rs6000-builtin-new.def | 3875 +++++++++++ gcc/config/rs6000/rs6000-c.c | 1083 +++ gcc/config/rs6000/rs6000-call.c | 3383 ++++++++- gcc/config/rs6000/rs6000-gen-builtins.c | 2982 ++++++++ gcc/config/rs6000/rs6000-overload.def | 6076 +++++++++++++++++ gcc/config/rs6000/rs6000.c | 219 +- gcc/config/rs6000/rs6000.h | 82 + gcc/config/rs6000/t-rs6000 | 45 +- gcc/gengtype-state.c | 29 +- gcc/gengtype.c | 19 +- gcc/gengtype.h | 5 + .../powerpc/bfp/scalar-extract-exp-2.c | 2 +- .../powerpc/bfp/scalar-extract-sig-2.c | 2 +- .../powerpc/bfp/scalar-insert-exp-2.c | 2 +- .../powerpc/bfp/scalar-insert-exp-5.c | 2 +- .../powerpc/bfp/scalar-insert-exp-8.c | 2 +- .../powerpc/bfp/scalar-test-neg-2.c | 2 +- .../powerpc/bfp/scalar-test-neg-3.c | 2 +- .../powerpc/bfp/scalar-test-neg-5.c | 2 +- .../gcc.target/powerpc/byte-in-set-2.c | 2 +- gcc/testsuite/gcc.target/powerpc/cmpb-2.c | 2 +- gcc/testsuite/gcc.target/powerpc/cmpb32-2.c | 2 +- .../gcc.target/powerpc/crypto-builtin-2.c | 14 +- .../powerpc/fold-vec-splat-floatdouble.c | 4 +- .../powerpc/fold-vec-splat-longlong.c | 10 +- .../powerpc/fold-vec-splat-misc-invalid.c | 8 +- .../gcc.target/powerpc/p8vector-builtin-8.c | 1 + gcc/testsuite/gcc.target/powerpc/pr80315-1.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr80315-2.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr80315-3.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr80315-4.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr88100.c | 12 +- .../gcc.target/powerpc/pragma_misc9.c | 2 +- .../gcc.target/powerpc/pragma_power8.c | 2 + .../gcc.target/powerpc/pragma_power9.c | 3 + .../powerpc/test_fpscr_drn_builtin_error.c | 4 +- .../powerpc/test_fpscr_rn_builtin_error.c | 12 +- gcc/testsuite/gcc.target/powerpc/test_mffsl.c | 3 +- gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c | 2 +- .../gcc.target/powerpc/vsu/vec-all-nez-7.c | 2 +- .../gcc.target/powerpc/vsu/vec-any-eqz-7.c | 2 +- .../gcc.target/powerpc/vsu/vec-cmpnez-7.c | 2 +- .../gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c | 2 +- .../gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c | 2 +- .../gcc.target/powerpc/vsu/vec-xl-len-13.c | 2 +- .../gcc.target/powerpc/vsu/vec-xst-len-12.c | 2 +- 52 files changed, 17921 insertions(+), 823 deletions(-) create mode 100644 gcc/config/rs6000/rbtree.c create mode 100644 gcc/config/rs6000/rbtree.h create mode 100644 gcc/config/rs6000/rs6000-builtin-new.def create mode 100644 gcc/config/rs6000/rs6000-gen-builtins.c create mode 100644 gcc/config/rs6000/rs6000-overload.def -- 2.27.0