Skip to content
Snippets Groups Projects
  1. Mar 07, 2023
    • Xi Ruoyao's avatar
      aarch64: testsuite: disable PIE for tests with large code model [PR70150] · a1ccb458
      Xi Ruoyao authored
      These tests set large code model with -mcmodel=large or target pragma for
      AArch64.  But if GCC is configured with --enable-default-pie, it triggers
      "sorry: unimplemented: code model large with -fpic".  Disable PIE to make
      avoid the issue.
      
      gcc/testsuite/ChangeLog:
      
      	PR testsuite/70150
      	* gcc.dg/tls/pr78796.c (dg-additional-options): Add -fno-pie
      	-no-pie for aarch64-*-*.
      	* gcc.target/aarch64/pr63304_1.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/pr70120-2.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/pr78733.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/pr79041-2.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/pr94530.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/pr94577.c (dg-options): Add -fno-pie.
      	* gcc.target/aarch64/reload-valid-spoff.c (dg-options): Add
      	-fno-pie.
      a1ccb458
    • Xi Ruoyao's avatar
      aarch64: testsuite: disable PIE for aapcs64 tests [PR70150] · f30f04b1
      Xi Ruoyao authored
      If GCC is built with --enable-default-pie, a lot of aapcs64 tests fail
      because relocation unsupported in PIE is used.
      
      gcc/testsuite/ChangeLog:
      
      	PR testsuite/70150
      	* gcc.target/aarch64/aapcs64/aapcs64.exp (additional_flags):
      	Add -fno-pie -no-pie.
      f30f04b1
    • Hans-Peter Nilsson's avatar
      testsuite: Support scanning tree-dumps · 1690f928
      Hans-Peter Nilsson authored
      No planned usage.
      
      	* lib/target-supports.exp (check_compile): Support scanning tree-dumps.
      1690f928
    • Hans-Peter Nilsson's avatar
      testsuite: Gate gcc.dg/plugin/must-tail-call-1.c and -2.c on tail_call · e43f970c
      Hans-Peter Nilsson authored
      While gcc.dg/plugin/must-tail-call-2.c passes for all targets even
      without this, the error message is, for a target like cris-elf that
      doesn't implement sibling calls: "error: cannot tail-call: machine
      description does not have a sibcall_epilogue instruction pattern"
      rather than "error: cannot tail-call: callee returns a structure".
      Also, it'd be confusing to exclude must-tail-call-1.c but not
      must-tail-call-2.c
      
      	* gcc.dg/plugin/must-tail-call-1.c, gcc.dg/plugin/must-tail-call-2.c:
      	Gate on effective target tail_call.
      e43f970c
    • Hans-Peter Nilsson's avatar
      doc: Document testsuite check_effective_target_tail_call · 318c9101
      Hans-Peter Nilsson authored
      Spot-checked the PDF output for sanity.
      
      	* doc/sourcebuild.texi: Document check_effective_target_tail_call.
      318c9101
    • Hans-Peter Nilsson's avatar
      testsuite: Add tail_call effective target · 7dde02e9
      Hans-Peter Nilsson authored
      The RTL "expand" dump is the first RTL dump, and it also appears to be
      the earliest trace of the target having implemented sibcalls.
      Including the "," in the pattern searched for, to try and avoid
      possible false matches, but there doesn't appear to be any identifiers
      or target names nearby so this is just belts and suspenders.  Using
      "tail_call" as a shorter and more commonly used term than a derivative
      of "sibling calls", and expecting only gcc folks to have heard of
      "sibcalls".
      
      	* lib/target-supports.exp (check_effective_target_tail_call): New.
      7dde02e9
    • GCC Administrator's avatar
      Daily bump. · 3dd4ada4
      GCC Administrator authored
      3dd4ada4
    • Hans-Peter Nilsson's avatar
      testsuite: Fix gcc.dg/analyzer/allocation-size-multiline-3.c · 1d92cd07
      Hans-Peter Nilsson authored
      For 32-bit newlib targets (such as cris-elf and pru-elf),
      that int32_t is "long int".  See other regexps in the
      testsuite matching "aka (long )?int" (with single-quotes
      where needed) where the pattern in
      allocation-size-multiline-3.c matches plain "int".  Uses the
      special syntax recently introduced for multi-line patterns.
      
      testsuite:
      	* gcc.dg/analyzer/allocation-size-multiline-3.c: Handle
      	int32_t being "long int".
      1d92cd07
    • Hans-Peter Nilsson's avatar
      testsuite: Provide means to regexp in multiline patterns · 82318c57
      Hans-Peter Nilsson authored
      Those multi-line-patterns are literal.  Sometimes a regexp
      needs to be matched.  This is a start: just three elements
      are supported: "(" ")" and the compound ")?" (and on second
      thought, it can be argued that "(...)" alone is not useful).
      Note that Tcl "string map" is documented to have the desired
      effect: a once-over but no re-recognitions of previously
      replaced mapped elements.  Also, drop a doubled "containing".
      
      testsuite:
      	* lib/multiline.exp (_build_multiline_regex): Map
      	"{re:" to "(", similarly ")?" from ":re?}" and the
      	same without question mark.
      82318c57
  2. Mar 06, 2023
    • Joseph Myers's avatar
      Update gcc fr.po, sv.po · dfb14cdd
      Joseph Myers authored
      	* fr.po, sv.po: Update.
      dfb14cdd
    • Michael Meissner's avatar
      PR target/107299: Fix build issue when long double is IEEE 128-bit · 306c7b1a
      Michael Meissner authored
      This patch updates the IEEE 128-bit types used in libgcc.
      
      At the moment, we cannot build GCC when the target uses IEEE 128-bit long
      doubles, such as building the compiler for a native Fedora 36 system.  The
      build dies when it is trying to build the _mulkc3.c and _divkc3 modules.
      
      This patch changes libgcc to use long double for the IEEE 128-bit base type if
      long double is IEEE 128-bit, and it uses _Float128 otherwise.  The built-in
      functions are adjusted to be the correct version based on the IEEE 128-bit base
      type used.
      
      While it is desirable to ultimately have __float128 and _Float128 use the same
      internal type and mode within GCC, at present if you use the option
      -mabi=ieeelongdouble, the __float128 type will use the long double type and not
      the _Float128 type.  We get an internal compiler error if we combine the
      signbitf128 built-in with a long double type.
      
      I've gone through several iterations of trying to fix this within GCC, and
      there are various problems that have come up.  I developed this alternative
      patch that changes libgcc so that it does not tickle the issue.  I hope we can
      fix the compiler at some point, but right now, this is preventing people on
      Fedora 36 systems from building compilers where the default long double is IEEE
      128-bit.
      
      2023-03-06   Michael Meissner  <meissner@linux.ibm.com>
      
      libgcc/
      
      	PR target/107299
      	* config/rs6000/_divkc3.c (COPYSIGN): Use the correct built-in based on
      	whether long double is IBM or IEEE.
      	(INFINITY): Likewise.
      	(FABS): Likewise.
      	* config/rs6000/_mulkc3.c (COPYSIGN): Likewise.
      	(INFINITY): Likewise.
      	* config/rs6000/quad-float128.h (TF): Remove definition.
      	(TFtype): Define to be long double or _Float128.
      	(TCtype): Define to be _Complex long double or _Complex _Float128.
      	* libgcc2.h (TFtype): Allow machine config files to override this.
      	(TCtype): Likewise.
      	* soft-fp/quad.h (TFtype): Likewise.
      306c7b1a
    • Paul-Antoine Arras's avatar
      amdgcn: Add instruction patterns for conditional min/max operations · 553ff252
      Paul-Antoine Arras authored
      gcc/ChangeLog:
      
      	* config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
      	{s|u}{max|min} in QI, HI and DI modes.
      	(<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
      	(cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
      	(cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
      	* config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
      	saved in SGPRs.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/gcn/cond_fmaxnm_1.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_1_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_2.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_2_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_3.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_3_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_4.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_4_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_5.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_5_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_6.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_6_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_7.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_7_run.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_8.c: New test.
      	* gcc.target/gcn/cond_fmaxnm_8_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_1.c: New test.
      	* gcc.target/gcn/cond_fminnm_1_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_2.c: New test.
      	* gcc.target/gcn/cond_fminnm_2_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_3.c: New test.
      	* gcc.target/gcn/cond_fminnm_3_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_4.c: New test.
      	* gcc.target/gcn/cond_fminnm_4_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_5.c: New test.
      	* gcc.target/gcn/cond_fminnm_5_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_6.c: New test.
      	* gcc.target/gcn/cond_fminnm_6_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_7.c: New test.
      	* gcc.target/gcn/cond_fminnm_7_run.c: New test.
      	* gcc.target/gcn/cond_fminnm_8.c: New test.
      	* gcc.target/gcn/cond_fminnm_8_run.c: New test.
      	* gcc.target/gcn/cond_smax_1.c: New test.
      	* gcc.target/gcn/cond_smax_1_run.c: New test.
      	* gcc.target/gcn/cond_smin_1.c: New test.
      	* gcc.target/gcn/cond_smin_1_run.c: New test.
      	* gcc.target/gcn/cond_umax_1.c: New test.
      	* gcc.target/gcn/cond_umax_1_run.c: New test.
      	* gcc.target/gcn/cond_umin_1.c: New test.
      	* gcc.target/gcn/cond_umin_1_run.c: New test.
      	* gcc.target/gcn/smax_1.c: New test.
      	* gcc.target/gcn/smax_1_run.c: New test.
      	* gcc.target/gcn/smin_1.c: New test.
      	* gcc.target/gcn/smin_1_run.c: New test.
      	* gcc.target/gcn/umax_1.c: New test.
      	* gcc.target/gcn/umax_1_run.c: New test.
      	* gcc.target/gcn/umin_1.c: New test.
      	* gcc.target/gcn/umin_1_run.c: New test.
      553ff252
    • Javier Miranda's avatar
      Fix assertion failure on VSS library · 14e5b65f
      Javier Miranda authored
      gcc/ada/
      	PR ada/108858
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
      	separate spec, if their return type was visible through a limited-
      	with context clause, their extra formals were not added when the
      	spec was analyzed.  Now the full view must be available, and the
      	extra formals can be created and Returns_By_Ref computed.
      14e5b65f
    • Eric Botcazou's avatar
      Revert "Respect GNATMAKE Makefile variable" commit · 94a67e30
      Eric Botcazou authored
      It breaks cross native builds.
      
      gcc/ada/
      	PR ada/108909
      	PR ada/108983
      	* Make-generated.in: Do not use GNATMAKE.
      	* gcc-interface/Makefile.in: Ditto.
      94a67e30
    • Richard Biener's avatar
      tree-optimization/109025 - fixup double reduction detection · c1873079
      Richard Biener authored
      The following closes a gap in double reduction detection where we
      in the outer loop analysis fail to verify the inner LC PHI use is
      the latch definition of the inner loop PHI.  That latch definition
      is used to detect that an inner loop is part of a double reduction
      when later doing the inner loop analysis.
      
      	PR tree-optimization/109025
      	* tree-vect-loop.cc (vect_is_simple_reduction): Verify
      	the inner LC PHI use is the inner loop PHI latch definition
      	before classifying an outer PHI as double reduction.
      
      	* gcc.dg/vect/pr109025.c: New testcase.
      c1873079
    • Jan Hubicka's avatar
      Enable scatter for generic · b83acefb
      Jan Hubicka authored
      2023-03-06  Jan Hubicka  <hubicka@ucw.cz>
      
      	PR target/108429
      	* config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
      	generic.
      	(X86_TUNE_USE_SCATTER_4PARTS): Likewise.
      	(X86_TUNE_USE_SCATTER): Likewise.
      b83acefb
    • Xi Ruoyao's avatar
      LoongArch: testsuite: Disable stack protector for some tests · 67401d45
      Xi Ruoyao authored
      Stack protector will affect stack layout and break the expectation of
      these tests, causing test failures if GCC is configured with
      --enable-default-ssp.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/loongarch/prolog-opt.c (dg-options): Add
      	-fno-stack-protector.
      	* gcc.target/loongarch/stack-check-cfa-1.c (dg-options):
      	Likewise.
      	* gcc.target/loongarch/stack-check-cfa-2.c (dg-options):
      	Likewise.
      67401d45
    • Xi Ruoyao's avatar
      LoongArch: Stop -mfpu from silently breaking ABI [PR109000] · 75eccdde
      Xi Ruoyao authored
      In the toolchain convention, we describe -mfpu= as:
      
      "Selects the allowed set of basic floating-point instructions and
      registers. This option should not change the FP calling convention
      unless it's necessary."
      
      Though not explicitly stated, the rationale of this rule is to allow
      combinations like "-mabi=lp64s -mfpu=64".  This will be useful for
      running applications with LP64S/F ABI on a double-float-capable
      LoongArch hardware and using a math library with LP64S/F ABI but native
      double float HW instructions, for a better performance.
      
      And now a case in Linux kernel has again proven the usefulness of this
      kind of combination.  The AMDGPU DCN kernel driver needs to perform some
      floating-point operation, but the entire kernel uses LP64S ABI.  So the
      translation units of the AMDGPU DCN driver need to be compiled with
      -mfpu=64 (the kernel lacks soft-FP routines in libgcc), but -mabi=lp64s
      (or you can't link it with the other part of the kernel).
      
      Unfortunately, currently GCC uses TARGET_{HARD,SOFT,DOUBLE}_FLOAT to
      determine the floating calling convention.  This causes "-mfpu=64"
      silently allow using $fa* to pass parameters and return values EVEN IF
      -mabi=lp64s is used.  To make things worse, the generated object file
      has SOFT-FLOAT set in the eflags field so the linker will happily link
      it with other LP64S ABI object files, but obviously this will lead to
      bad results at runtime.  And for now all loongarch64 CPU models (-march
      settings) implies -mfpu=64 on by default, so the issue makes a single
      "-mabi=lp64s" option basically broken (fortunately most projects for eg
      the Linux kernel have used -msoft-float which implies both -mabi=lp64s
      and -mfpu=none as we've recommended in the toolchain convention doc).
      
      The fix is simple: use TARGET_*_FLOAT_ABI instead.
      
      I consider this a bug fix: the behavior difference from the toolchain
      convention doc is a bug, and generating object files with SOFT-FLOAT
      flag but parameters/return values passed through FPRs is definitely a
      bug.
      
      Bootstrapped and regtested on loongarch64-linux-gnu.  Ok for trunk and
      release/gcc-12 branch?
      
      gcc/ChangeLog:
      
      	PR target/109000
      	* config/loongarch/loongarch.h (FP_RETURN): Use
      	TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
      	(UNITS_PER_FP_ARG): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/109000
      	* gcc.target/loongarch/flt-abi-isa-1.c: New test.
      	* gcc.target/loongarch/flt-abi-isa-2.c: New test.
      	* gcc.target/loongarch/flt-abi-isa-3.c: New test.
      	* gcc.target/loongarch/flt-abi-isa-4.c: New test.
      75eccdde
    • Ian Lance Taylor's avatar
      libgo: revert incorrectly committed change · c5e77e98
      Ian Lance Taylor authored
      This directory should be changed upstream, not in the GCC repo.
      c5e77e98
    • GCC Administrator's avatar
      Daily bump. · fa9fd689
      GCC Administrator authored
      fa9fd689
  3. Mar 05, 2023
    • Harald Anlauf's avatar
      Fortran: fix CLASS attribute handling [PR106856] · 6aa1f40a
      Harald Anlauf authored
      
      gcc/fortran/ChangeLog:
      
      	PR fortran/106856
      	* class.cc (gfc_build_class_symbol): Handle update of attributes of
      	existing class container.
      	(gfc_find_derived_vtab): Fix several memory leaks.
      	(find_intrinsic_vtab): Ditto.
      	* decl.cc (attr_decl1): Manage update of symbol attributes from
      	CLASS attributes.
      	* primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or
      	updated from the class container.
      	* symbol.cc (free_old_symbol): Adjust management of symbol versions
      	to not prematurely free array specs while working on the declation
      	of CLASS variables.
      
      gcc/testsuite/ChangeLog:
      
      	PR fortran/106856
      	* gfortran.dg/interface_41.f90: Remove dg-pattern from valid testcase.
      	* gfortran.dg/class_74.f90: New test.
      	* gfortran.dg/class_75.f90: New test.
      
      Co-authored-by: default avatarTobias Burnus <tobias@codesourcery.com>
      6aa1f40a
    • Jakub Jelinek's avatar
      testsuite: Fix up syntax error in scan-tree-dump-times target selector · ca27d765
      Jakub Jelinek authored
      On aarch64, powerpc64le and s390x-linux I'm seeing another syntax error
      which didn't show up on x86_64-linux nor i686-linux:
      ERROR: gcc.dg/vect/slp-perm-8.c -flto -ffat-lto-objects: error executing dg-final: syntax error in target selector "target  ! vect_load_lanes  && vect_partial_vectors_usage_1 &&  ! s390_vx"
      ERROR: gcc.dg/vect/slp-perm-8.c: error executing dg-final: syntax error in target selector "target  ! vect_load_lanes  && vect_partial_vectors_usage_1 &&  ! s390_vx"
      
      The following patch fixes that.
      
      2023-03-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* gcc.dg/vect/slp-perm-8.c: Fix up syntax error in
      	scan-tree-dump-times target selector.
      ca27d765
    • Ju-Zhe Zhong's avatar
      RISC-V: Fix ICE for avl_single-86/avl_single-88/avl_single-90 · 44c918b5
      Ju-Zhe Zhong authored
      If prop is demand of vsetvl instruction and reaching doesn't demand
      AVL. We don't backward propagate since vsetvl instruction has no
      side effects.
      
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-86.c  -Og -g  (internal
      compiler error: Segmentation fault)
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-86.c  -Og -g  (test for
      excess errors)
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-88.c  -Og -g  (internal
      compiler error: Segmentation fault)
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-88.c  -Og -g  (test for
      excess errors)
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-90.c  -Og -g  (internal
      compiler error: Segmentation fault)
      FAIL: gcc.target/riscv/rvv/vsetvl/avl_single-90.c  -Og -g  (test for
      excess errors)
      
      gcc/ChangeLog:
      
      	* config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
      	(pass_vsetvl::backward_demand_fusion): Ditto.
      44c918b5
    • Liao Shihua's avatar
      RISC-V: Implement ZKSH and ZKSED extensions · 2554d90c
      Liao Shihua authored
      
      This patch supports Zksh and Zksed extension.
      It includes instruction's machine description and built-in funtions.
      
      gcc/ChangeLog:
      
      	* config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
      	instructions.
      	(riscv_sm3p1_<mode>): New.
      	(riscv_sm4ed_<mode>): New.
      	(riscv_sm4ks_<mode>): New.
      	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
      	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
      	ZKSH's built-in functions.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/zksed32.c: New test.
      	* gcc.target/riscv/zksed64.c: New test.
      	* gcc.target/riscv/zksh32.c: New test.
      	* gcc.target/riscv/zksh64.c: New test.
      
      Co-Authored-By: default avatarSiYu Wu <siyu@isrc.iscas.ac.cn>
      2554d90c
    • Liao Shihua's avatar
      RISC-V: Implement ZKNH extension · e6416e43
      Liao Shihua authored
      
      This patch supports Zknh extension.
      It includes instruction's machine description and built-in funtions.
      
      gcc/ChangeLog:
      
      	* config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
      	(riscv_sha256sig1_<mode>): New.
      	(riscv_sha256sum0_<mode>): New.
      	(riscv_sha256sum1_<mode>): New.
      	(riscv_sha512sig0h): New.
      	(riscv_sha512sig0l): New.
      	(riscv_sha512sig1h): New.
      	(riscv_sha512sig1l): New.
      	(riscv_sha512sum0r): New.
      	(riscv_sha512sum1r): New.
      	(riscv_sha512sig0): New.
      	(riscv_sha512sig1): New.
      	(riscv_sha512sum0): New.
      	(riscv_sha512sum1): New.
      	* config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
      	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
      	built-in functions.
      	(DIRECT_BUILTIN): Add new.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/zknh-sha256.c: New test.
      	* gcc.target/riscv/zknh-sha512-32.c: New test.
      	* gcc.target/riscv/zknh-sha512-64.c: New test.
      
      Co-Authored-By: default avatarSiYu Wu <siyu@isrc.iscas.ac.cn>
      e6416e43
    • Liao Shihua's avatar
      RISC-V: Implement ZKND and ZKNE extensions · 072c558a
      Liao Shihua authored
      
      This patch supports Zkne and Zknd extension.
      It includes instruction's machine description and built-in funtions.
      
      gcc/ChangeLog:
      
      	* config/riscv/constraints.md (D03): Add constants of bs and rnum.
      	(DsA): New.
      	* config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
      	(riscv_aes32dsmi): New.
      	(riscv_aes64ds): New.
      	(riscv_aes64dsm): New.
      	(riscv_aes64im): New.
      	(riscv_aes64ks1i): New.
      	(riscv_aes64ks2): New.
      	(riscv_aes32esi): New.
      	(riscv_aes32esmi): New.
      	(riscv_aes64es): New.
      	(riscv_aes64esm): New.
      	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
      	* config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
      	ZKNE's built-in functions.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/zknd32.c: New test.
      	* gcc.target/riscv/zknd64.c: New test.
      	* gcc.target/riscv/zkne32.c: New test.
      	* gcc.target/riscv/zkne64.c: New test.
      
      Co-Authored-By: default avatarSiYu Wu <siyu@isrc.iscas.ac.cn>
      072c558a
    • Liao Shihua's avatar
      RISC-V: Implement ZBKB, ZBKC and ZBKX extensions · 2c809510
      Liao Shihua authored
      
      This patch supports Zkbk, Zbkc and Zkbx extension.
      It includes instruction's machine description and built-in funtions.
      It is worth mentioning that this patch only adds instructions in Zbkb but no
      longer in Zbb.
      If any instructions both in Zbb and Zbkb, they will be generated by code
      generator instead of built-in functions.
      
      gcc/ChangeLog:
      
      	* config/riscv/bitmanip.md: Add ZBKB's instructions.
      	* config/riscv/riscv-builtins.cc (AVAIL): Add new.
      	* config/riscv/riscv.md: Add new type for crypto instructions.
      	* config/riscv/crypto.md: Add Scalar Cryptography extension's machine
      	description file.
      	* config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
      	extension's built-in function file.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/zbkb32.c: New test.
      	* gcc.target/riscv/zbkb64.c: New test.
      	* gcc.target/riscv/zbkc32.c: New test.
      	* gcc.target/riscv/zbkc64.c: New test.
      	* gcc.target/riscv/zbkx32.c: New test.
      	* gcc.target/riscv/zbkx64.c: New test.
      
      Co-Authored-By: default avatarSiYu Wu <siyu@isrc.iscas.ac.cn>
      2c809510
    • Liao Shihua's avatar
      RISC-V: Add prototypes for RISC-V Crypto built-in functions · 89456334
      Liao Shihua authored
      
      This patch adds prototypes for RISC-V Crypto built-in functions.
      
      gcc/ChangeLog:
      
      	* config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
      	(RISCV_FTYPE_NAME3): New.
      	(RISCV_ATYPE_QI): New.
      	(RISCV_ATYPE_HI): New.
      	(RISCV_FTYPE_ATYPES2): New.
      	(RISCV_FTYPE_ATYPES3): New.
      	* config/riscv/riscv-ftypes.def (2): New.
      	(3): New.
      
      Co-Authored-By: default avatarSiYu Wu <siyu@isrc.iscas.ac.cn>
      89456334
    • Vineet Gupta's avatar
      RISC-V: costs: miscomputed shiftadd_cost triggering synth_mult [PR/108987] · 7e52f442
      Vineet Gupta authored
      
      This showed up as dynamic icount regression in SPEC 531.deepsjeng with upstream
      gcc (vs. gcc 12.2). gcc was resorting to synthetic multiply using shift+add(s)
      even when multiply had clear cost benefit.
      
      |00000000000133b8 <see(state_t*, int, int, int, int) [clone .constprop.0]+0x382>:
      |   133b8:	srl	a3,a1,s6
      |   133bc:	and	a3,a3,s5
      |   133c0:	slli	a4,a3,0x9
      |   133c4:	add	a4,a4,a3
      |   133c6:	slli	a4,a4,0x9
      |   133c8:	add	a4,a4,a3
      |   133ca:	slli	a3,a4,0x1b
      |   133ce:	add	a4,a4,a3
      
      vs. gcc 12 doing something lke below.
      
      |00000000000131c4 <see(state_t*, int, int, int, int) [clone .constprop.0]+0x35c>:
      |   131c4:	ld	s1,8(sp)
      |   131c6:	srl	a3,a1,s4
      |   131ca:	and	a3,a3,s11
      |   131ce:	mul	a3,a3,s1
      
      Bisected this to f90cb392 ("RISC-V: costs: support shift-and-add in
      strength-reduction"). The intent was to optimize cost for
      shift-add-pow2-{1,2,3} corresponding to bitmanip insns SH*ADD, but ended
      up doing that for all shift values which seems to favor synthezing
      multiply among others.
      
      The bug itself is trivial, IN_RANGE() calling pow2p_hwi() which returns bool
      vs. exact_log2() returning power of 2.
      
      This fix also requires update to the test introduced by the same commit
      which now generates MUL vs. synthesizing it.
      
      gcc/ChangeLog:
      
      	* config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
      	use exact_log2().
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/zba-shNadd-07.c: f2(i*783) now generates MUL vs.
      	5 insn sh1add+slli+add+slli+sub.
      	* gcc.target/riscv/pr108987.c: New test.
      
      Signed-off-by: default avatarVineet Gupta <vineetg@rivosinc.com>
      Reviewed-by: default avatarPhilipp Tomsich <philipp.tomsich@vrull.eu>
      7e52f442
    • Ju-Zhe Zhong's avatar
      RISC-V: Add RVV misc intrinsic support · 7caa1ae5
      Ju-Zhe Zhong authored
      
      Co-authored-by: default avatarkito-cheng <kito.cheng@sifive.com>
      
      gcc/ChangeLog:
      
      	* config/riscv/predicates.md (vector_any_register_operand): New predicate.
      	* config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
      	(riscv_register_pragmas): Add builtin function check call.
      	* config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
      	(check_builtin_call): New function.
      	* config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
      	(class vreinterpret): Ditto.
      	(class vlmul_ext): Ditto.
      	(class vlmul_trunc): Ditto.
      	(class vset): Ditto.
      	(class vget): Ditto.
      	(BASE): Ditto.
      	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
      	* config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
      	(vluxei16): Ditto.
      	(vluxei32): Ditto.
      	(vluxei64): Ditto.
      	(vloxei8): Ditto.
      	(vloxei16): Ditto.
      	(vloxei32): Ditto.
      	(vloxei64): Ditto.
      	(vsuxei8): Ditto.
      	(vsuxei16): Ditto.
      	(vsuxei32): Ditto.
      	(vsuxei64): Ditto.
      	(vsoxei8): Ditto.
      	(vsoxei16): Ditto.
      	(vsoxei32): Ditto.
      	(vsoxei64): Ditto.
      	(vundefined): Add new intrinsic.
      	(vreinterpret): Ditto.
      	(vlmul_ext): Ditto.
      	(vlmul_trunc): Ditto.
      	(vset): Ditto.
      	(vget): Ditto.
      	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
      	(struct narrow_alu_def): Ditto.
      	(struct reduc_alu_def): Ditto.
      	(struct vundefined_def): Ditto.
      	(struct misc_def): Ditto.
      	(struct vset_def): Ditto.
      	(struct vget_def): Ditto.
      	(SHAPE): Ditto.
      	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
      	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
      	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
      	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
      	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
      	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_LMUL1_OPS): Ditto.
      	(DEF_RVV_LMUL2_OPS): Ditto.
      	(DEF_RVV_LMUL4_OPS): Ditto.
      	(vint16mf4_t): Ditto.
      	(vint16mf2_t): Ditto.
      	(vint16m1_t): Ditto.
      	(vint16m2_t): Ditto.
      	(vint16m4_t): Ditto.
      	(vint16m8_t): Ditto.
      	(vint32mf2_t): Ditto.
      	(vint32m1_t): Ditto.
      	(vint32m2_t): Ditto.
      	(vint32m4_t): Ditto.
      	(vint32m8_t): Ditto.
      	(vint64m1_t): Ditto.
      	(vint64m2_t): Ditto.
      	(vint64m4_t): Ditto.
      	(vint64m8_t): Ditto.
      	(vuint16mf4_t): Ditto.
      	(vuint16mf2_t): Ditto.
      	(vuint16m1_t): Ditto.
      	(vuint16m2_t): Ditto.
      	(vuint16m4_t): Ditto.
      	(vuint16m8_t): Ditto.
      	(vuint32mf2_t): Ditto.
      	(vuint32m1_t): Ditto.
      	(vuint32m2_t): Ditto.
      	(vuint32m4_t): Ditto.
      	(vuint32m8_t): Ditto.
      	(vuint64m1_t): Ditto.
      	(vuint64m2_t): Ditto.
      	(vuint64m4_t): Ditto.
      	(vuint64m8_t): Ditto.
      	(vint8mf4_t): Ditto.
      	(vint8mf2_t): Ditto.
      	(vint8m1_t): Ditto.
      	(vint8m2_t): Ditto.
      	(vint8m4_t): Ditto.
      	(vint8m8_t): Ditto.
      	(vuint8mf4_t): Ditto.
      	(vuint8mf2_t): Ditto.
      	(vuint8m1_t): Ditto.
      	(vuint8m2_t): Ditto.
      	(vuint8m4_t): Ditto.
      	(vuint8m8_t): Ditto.
      	(vint8mf8_t): Ditto.
      	(vuint8mf8_t): Ditto.
      	(vfloat32mf2_t): Ditto.
      	(vfloat32m1_t): Ditto.
      	(vfloat32m2_t): Ditto.
      	(vfloat32m4_t): Ditto.
      	(vfloat64m1_t): Ditto.
      	(vfloat64m2_t): Ditto.
      	(vfloat64m4_t): Ditto.
      	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
      	(DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
      	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
      	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
      	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
      	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
      	(DEF_RVV_LMUL1_OPS): Ditto.
      	(DEF_RVV_LMUL2_OPS): Ditto.
      	(DEF_RVV_LMUL4_OPS): Ditto.
      	(DEF_RVV_TYPE_INDEX): Ditto.
      	(required_extensions_p): Adapt for new intrinsic support/
      	(get_required_extensions): New function.
      	(check_required_extensions): Ditto.
      	(unsigned_base_type_p): Remove.
      	(rvv_arg_type_info::get_scalar_ptr_type): New function.
      	(get_mode_for_bitsize): Remove.
      	(rvv_arg_type_info::get_scalar_const_ptr_type): New function.
      	(rvv_arg_type_info::get_base_vector_type): Ditto.
      	(rvv_arg_type_info::get_function_type_index): Ditto.
      	(DEF_RVV_BASE_TYPE): New def.
      	(function_builder::apply_predication): New class.
      	(function_expander::mask_mode): Ditto.
      	(function_checker::function_checker): Ditto.
      	(function_checker::report_non_ice): Ditto.
      	(function_checker::report_out_of_range): Ditto.
      	(function_checker::require_immediate): Ditto.
      	(function_checker::require_immediate_range): Ditto.
      	(function_checker::check): Ditto.
      	(check_builtin_call): Ditto.
      	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
      	(DEF_RVV_BASE_TYPE): Ditto.
      	(DEF_RVV_TYPE_INDEX): Ditto.
      	(vbool64_t): Ditto.
      	(vbool32_t): Ditto.
      	(vbool16_t): Ditto.
      	(vbool8_t): Ditto.
      	(vbool4_t): Ditto.
      	(vbool2_t): Ditto.
      	(vbool1_t): Ditto.
      	(vuint8mf8_t): Ditto.
      	(vuint8mf4_t): Ditto.
      	(vuint8mf2_t): Ditto.
      	(vuint8m1_t): Ditto.
      	(vuint8m2_t): Ditto.
      	(vint8m4_t): Ditto.
      	(vuint8m4_t): Ditto.
      	(vint8m8_t): Ditto.
      	(vuint8m8_t): Ditto.
      	(vint16mf4_t): Ditto.
      	(vuint16mf2_t): Ditto.
      	(vuint16m1_t): Ditto.
      	(vuint16m2_t): Ditto.
      	(vuint16m4_t): Ditto.
      	(vuint16m8_t): Ditto.
      	(vint32mf2_t): Ditto.
      	(vuint32m1_t): Ditto.
      	(vuint32m2_t): Ditto.
      	(vuint32m4_t): Ditto.
      	(vuint32m8_t): Ditto.
      	(vuint64m1_t): Ditto.
      	(vuint64m2_t): Ditto.
      	(vuint64m4_t): Ditto.
      	(vuint64m8_t): Ditto.
      	(vfloat32mf2_t): Ditto.
      	(vfloat32m1_t): Ditto.
      	(vfloat32m2_t): Ditto.
      	(vfloat32m4_t): Ditto.
      	(vfloat32m8_t): Ditto.
      	(vfloat64m1_t): Ditto.
      	(vfloat64m4_t): Ditto.
      	(vector): Move it def.
      	(scalar): Ditto.
      	(mask): Ditto.
      	(signed_vector): Ditto.
      	(unsigned_vector): Ditto.
      	(unsigned_scalar): Ditto.
      	(vector_ptr): Ditto.
      	(scalar_ptr): Ditto.
      	(scalar_const_ptr): Ditto.
      	(void): Ditto.
      	(size): Ditto.
      	(ptrdiff): Ditto.
      	(unsigned_long): Ditto.
      	(long): Ditto.
      	(eew8_index): Ditto.
      	(eew16_index): Ditto.
      	(eew32_index): Ditto.
      	(eew64_index): Ditto.
      	(shift_vector): Ditto.
      	(double_trunc_vector): Ditto.
      	(quad_trunc_vector): Ditto.
      	(oct_trunc_vector): Ditto.
      	(double_trunc_scalar): Ditto.
      	(double_trunc_signed_vector): Ditto.
      	(double_trunc_unsigned_vector): Ditto.
      	(double_trunc_unsigned_scalar): Ditto.
      	(double_trunc_float_vector): Ditto.
      	(float_vector): Ditto.
      	(lmul1_vector): Ditto.
      	(widen_lmul1_vector): Ditto.
      	(eew8_interpret): Ditto.
      	(eew16_interpret): Ditto.
      	(eew32_interpret): Ditto.
      	(eew64_interpret): Ditto.
      	(vlmul_ext_x2): Ditto.
      	(vlmul_ext_x4): Ditto.
      	(vlmul_ext_x8): Ditto.
      	(vlmul_ext_x16): Ditto.
      	(vlmul_ext_x32): Ditto.
      	(vlmul_ext_x64): Ditto.
      	* config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
      	(struct function_type_info): New function.
      	(struct rvv_arg_type_info): Ditto.
      	(class function_checker): New class.
      	(rvv_arg_type_info::get_scalar_type): New function.
      	(rvv_arg_type_info::get_vector_type): Ditto.
      	(function_expander::ret_mode): New function.
      	(function_checker::arg_mode): Ditto.
      	(function_checker::ret_mode): Ditto.
      	* config/riscv/t-riscv: Add generator.
      	* config/riscv/vector-iterators.md: New iterators.
      	* config/riscv/vector.md (vundefined<mode>): New pattern.
      	(@vundefined<mode>): Ditto.
      	(@vreinterpret<mode>): Ditto.
      	(@vlmul_extx2<mode>): Ditto.
      	(@vlmul_extx4<mode>): Ditto.
      	(@vlmul_extx8<mode>): Ditto.
      	(@vlmul_extx16<mode>): Ditto.
      	(@vlmul_extx32<mode>): Ditto.
      	(@vlmul_extx64<mode>): Ditto.
      	(*vlmul_extx2<mode>): Ditto.
      	(*vlmul_extx4<mode>): Ditto.
      	(*vlmul_extx8<mode>): Ditto.
      	(*vlmul_extx16<mode>): Ditto.
      	(*vlmul_extx32<mode>): Ditto.
      	(*vlmul_extx64<mode>): Ditto.
      	* config/riscv/genrvv-type-indexer.cc: New file.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/rvv/base/vlmul_v.c: New test.
      
      Co-authored-by: default avatarkito-cheng <kito.cheng@sifive.com>
      7caa1ae5
    • Ju-Zhe Zhong's avatar
      RISC-V: Add permutation C/C++ support · 1bff101b
      Ju-Zhe Zhong authored
      gcc/ChangeLog:
      
      	* config/riscv/riscv-protos.h (enum vlen_enum): New enum.
      	(slide1_sew64_helper): New function.
      	* config/riscv/riscv-v.cc (compute_vlmax): Ditto.
      	(get_unknown_min_value): Ditto.
      	(force_vector_length_operand): Ditto.
      	(gen_no_side_effects_vsetvl_rtx): Ditto.
      	(get_vl_x2_rtx): Ditto.
      	(slide1_sew64_helper): Ditto.
      	* config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
      	(class vrgather): Ditto.
      	(class vrgatherei16): Ditto.
      	(class vcompress): Ditto.
      	(BASE): Ditto.
      	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
      	* config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
      	(vslidedown): Ditto.
      	(vslide1up): Ditto.
      	(vslide1down): Ditto.
      	(vfslide1up): Ditto.
      	(vfslide1down): Ditto.
      	(vrgather): Ditto.
      	(vrgatherei16): Ditto.
      	(vcompress): Ditto.
      	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
      	(vint8mf8_t): Ditto.
      	(vint8mf4_t): Ditto.
      	(vint8mf2_t): Ditto.
      	(vint8m1_t): Ditto.
      	(vint8m2_t): Ditto.
      	(vint8m4_t): Ditto.
      	(vint16mf4_t): Ditto.
      	(vint16mf2_t): Ditto.
      	(vint16m1_t): Ditto.
      	(vint16m2_t): Ditto.
      	(vint16m4_t): Ditto.
      	(vint16m8_t): Ditto.
      	(vint32mf2_t): Ditto.
      	(vint32m1_t): Ditto.
      	(vint32m2_t): Ditto.
      	(vint32m4_t): Ditto.
      	(vint32m8_t): Ditto.
      	(vint64m1_t): Ditto.
      	(vint64m2_t): Ditto.
      	(vint64m4_t): Ditto.
      	(vint64m8_t): Ditto.
      	(vuint8mf8_t): Ditto.
      	(vuint8mf4_t): Ditto.
      	(vuint8mf2_t): Ditto.
      	(vuint8m1_t): Ditto.
      	(vuint8m2_t): Ditto.
      	(vuint8m4_t): Ditto.
      	(vuint16mf4_t): Ditto.
      	(vuint16mf2_t): Ditto.
      	(vuint16m1_t): Ditto.
      	(vuint16m2_t): Ditto.
      	(vuint16m4_t): Ditto.
      	(vuint16m8_t): Ditto.
      	(vuint32mf2_t): Ditto.
      	(vuint32m1_t): Ditto.
      	(vuint32m2_t): Ditto.
      	(vuint32m4_t): Ditto.
      	(vuint32m8_t): Ditto.
      	(vuint64m1_t): Ditto.
      	(vuint64m2_t): Ditto.
      	(vuint64m4_t): Ditto.
      	(vuint64m8_t): Ditto.
      	(vfloat32mf2_t): Ditto.
      	(vfloat32m1_t): Ditto.
      	(vfloat32m2_t): Ditto.
      	(vfloat32m4_t): Ditto.
      	(vfloat32m8_t): Ditto.
      	(vfloat64m1_t): Ditto.
      	(vfloat64m2_t): Ditto.
      	(vfloat64m4_t): Ditto.
      	(vfloat64m8_t): Ditto.
      	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
      	* config/riscv/riscv.md: Adjust RVV instruction types.
      	* config/riscv/vector-iterators.md (down): New iterator.
      	(=vd,vr): New attribute.
      	(UNSPEC_VSLIDE1UP): New unspec.
      	* config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
      	(*pred_slide<ud><mode>): Ditto.
      	(*pred_slide<ud><mode>_extended): Ditto.
      	(@pred_gather<mode>): Ditto.
      	(@pred_gather<mode>_scalar): Ditto.
      	(@pred_gatherei16<mode>): Ditto.
      	(@pred_compress<mode>): Ditto.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-167.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-168.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-169.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-170.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-171.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-172.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-173.c: New test.
      	* gcc.target/riscv/rvv/base/binop_vx_constraint-174.c: New test.
      1bff101b
    • Ju-Zhe Zhong's avatar
      RISC-V: Remove void_type_node of void_args for vsetvlmax intrinsic · f8ba8a45
      Ju-Zhe Zhong authored
      This patch is to fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108927.
      PR108927
      
      gcc/ChangeLog:
      
      	* config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
      f8ba8a45
    • Ju-Zhe Zhong's avatar
      RISC-V: Add testcase for VSETVL PASS · 2a2c4c93
      Ju-Zhe Zhong authored
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/rvv/base/scalar_move-1.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-2.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-3.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-4.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-5.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-6.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-7.c: New test.
      	* gcc.target/riscv/rvv/base/scalar_move-8.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-100.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-101.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-78.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-79.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-80.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-81.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-82.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-83.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-84.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-85.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-86.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-87.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-88.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-89.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-90.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-91.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-92.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-93.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-94.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-95.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-96.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-97.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-98.c: New test.
      	* gcc.target/riscv/rvv/vsetvl/avl_single-99.c: New test.
      2a2c4c93
    • Ju-Zhe Zhong's avatar
      RISC-V: Add scalar move support and fix VSETVL bugs · ec99ffab
      Ju-Zhe Zhong authored
      gcc/ChangeLog:
      
      	* config/riscv/constraints.md (Wb1): New constraint.
      	* config/riscv/predicates.md
      	(vector_least_significant_set_mask_operand): New predicate.
      	(vector_broadcast_mask_operand): Ditto.
      	* config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
      	(gen_scalar_move_mask): New function.
      	* config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
      	* config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
      	(class vmv_s): Ditto.
      	(BASE): Ditto.
      	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
      	* config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
      	(vmv_s): Ditto.
      	(vfmv_f): Ditto.
      	(vfmv_s): Ditto.
      	* config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
      	(SHAPE): Ditto.
      	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
      	* config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
      	(function_expander::use_exact_insn): New function.
      	(function_expander::use_contiguous_load_insn): New function.
      	(function_expander::use_contiguous_store_insn): New function.
      	(function_expander::use_ternop_insn): New function.
      	(function_expander::use_widen_ternop_insn): New function.
      	(function_expander::use_scalar_move_insn): New function.
      	* config/riscv/riscv-vector-builtins.def (s): New operand suffix.
      	* config/riscv/riscv-vector-builtins.h
      	(function_expander::add_scalar_move_mask_operand): New class.
      	* config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
      	(scalar_move_insn_p): Ditto.
      	(has_vsetvl_killed_avl_p): Ditto.
      	(anticipatable_occurrence_p): Ditto.
      	(insert_vsetvl): Ditto.
      	(get_vl_vtype_info): Ditto.
      	(calculate_sew): Ditto.
      	(calculate_vlmul): Ditto.
      	(incompatible_avl_p): Ditto.
      	(different_sew_p): Ditto.
      	(different_lmul_p): Ditto.
      	(different_ratio_p): Ditto.
      	(different_tail_policy_p): Ditto.
      	(different_mask_policy_p): Ditto.
      	(possible_zero_avl_p): Ditto.
      	(first_ratio_invalid_for_second_sew_p): Ditto.
      	(first_ratio_invalid_for_second_lmul_p): Ditto.
      	(second_ratio_invalid_for_first_sew_p): Ditto.
      	(second_ratio_invalid_for_first_lmul_p): Ditto.
      	(second_sew_less_than_first_sew_p): Ditto.
      	(first_sew_less_than_second_sew_p): Ditto.
      	(compare_lmul): Ditto.
      	(second_lmul_less_than_first_lmul_p): Ditto.
      	(first_lmul_less_than_second_lmul_p): Ditto.
      	(first_ratio_less_than_second_ratio_p): Ditto.
      	(second_ratio_less_than_first_ratio_p): Ditto.
      	(DEF_INCOMPATIBLE_COND): Ditto.
      	(greatest_sew): Ditto.
      	(first_sew): Ditto.
      	(second_sew): Ditto.
      	(first_vlmul): Ditto.
      	(second_vlmul): Ditto.
      	(first_ratio): Ditto.
      	(second_ratio): Ditto.
      	(vlmul_for_first_sew_second_ratio): Ditto.
      	(ratio_for_second_sew_first_vlmul): Ditto.
      	(DEF_SEW_LMUL_FUSE_RULE): Ditto.
      	(always_unavailable): Ditto.
      	(avl_unavailable_p): Ditto.
      	(sew_unavailable_p): Ditto.
      	(lmul_unavailable_p): Ditto.
      	(ge_sew_unavailable_p): Ditto.
      	(ge_sew_lmul_unavailable_p): Ditto.
      	(ge_sew_ratio_unavailable_p): Ditto.
      	(DEF_UNAVAILABLE_COND): Ditto.
      	(same_sew_lmul_demand_p): Ditto.
      	(propagate_avl_across_demands_p): Ditto.
      	(reg_available_p): Ditto.
      	(avl_info::has_non_zero_avl): Ditto.
      	(vl_vtype_info::has_non_zero_avl): Ditto.
      	(vector_insn_info::operator>=): Refactor.
      	(vector_insn_info::parse_insn): Adjust for scalar move.
      	(vector_insn_info::demand_vl_vtype): Remove.
      	(vector_insn_info::compatible_p): New function.
      	(vector_insn_info::compatible_avl_p): Ditto.
      	(vector_insn_info::compatible_vtype_p): Ditto.
      	(vector_insn_info::available_p): Ditto.
      	(vector_insn_info::merge): Ditto.
      	(vector_insn_info::fuse_avl): Ditto.
      	(vector_insn_info::fuse_sew_lmul): Ditto.
      	(vector_insn_info::fuse_tail_policy): Ditto.
      	(vector_insn_info::fuse_mask_policy): Ditto.
      	(vector_insn_info::dump): Ditto.
      	(vector_infos_manager::release): Ditto.
      	(pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
      	(pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
      	(pass_vsetvl::hard_empty_block_p): Ditto.
      	(pass_vsetvl::backward_demand_fusion): Ditto.
      	(pass_vsetvl::forward_demand_fusion): Ditto.
      	(pass_vsetvl::refine_vsetvls): Ditto.
      	(pass_vsetvl::cleanup_vsetvls): Ditto.
      	(pass_vsetvl::commit_vsetvls): Ditto.
      	(pass_vsetvl::propagate_avl): Ditto.
      	* config/riscv/riscv-vsetvl.h (enum demand_status): New class.
      	(struct demands_pair): Ditto.
      	(struct demands_cond): Ditto.
      	(struct demands_fuse_rule): Ditto.
      	* config/riscv/vector-iterators.md: New iterator.
      	* config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
      	(*pred_broadcast<mode>): Ditto.
      	(*pred_broadcast<mode>_extended_scalar): Ditto.
      	(@pred_extract_first<mode>): Ditto.
      	(*pred_extract_first<mode>): Ditto.
      	(@pred_extract_first_trunc<mode>): Ditto.
      	* config/riscv/riscv-vsetvl.def: New file.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-10.c: Adjust test.
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-11.c: Ditto.
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c: Ditto.
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c: Ditto.
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c: Ditto.
      	* gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c: Ditto.
      ec99ffab
    • Lin Sinan's avatar
      RISC-V: Allow const0_rtx operand in max/min · 602cfc74
      Lin Sinan authored
      Optimize cases that use max[u]/min[u] against a zero constant.
      
      E.g., the case int f(int x) { return x >= 0 ? x : 0; }
      the current asm output in rv64gc_zba_zbb
      
       li rtmp,0
       max a0,a0,rtmp
      
      could be optimized into
      
       max a0,a0,zero
      
      gcc/ChangeLog:
      	* config/riscv/bitmanip.md: allow 0 constant in max/min
      	pattern.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/riscv/zbb-min-max-03.c: New test.
      602cfc74
    • Lin Sinan's avatar
      RISC-V: Fix wrong partial subreg check for bsetidisi · 9debb240
      Lin Sinan authored
      
      The partial subreg check should be for subreg operand(operand 1) instead of
      the immediate operand(operand 2). This change also fix pr68648.c in zbs.
      
      gcc/ChangeLog:
      
      	* config/riscv/bitmanip.md: Fix wrong index in the check.
      Reviewed-by: default avatar <philipp.tomsich@vrull.eu>
      9debb240
    • GCC Administrator's avatar
      Daily bump. · 2858bf16
      GCC Administrator authored
      2858bf16
  4. Mar 04, 2023
    • Gaius Mulley's avatar
      Fix modula-2 rename autogenerated .c files to .cc · fbd2eda1
      Gaius Mulley authored
      
      This patch adds the replacement .cc files for the
      autogenerated tools.
      
      gcc/m2/ChangeLog:
      
      	* mc-boot-ch/GBuiltins.cc: New file.
      	* mc-boot-ch/Gdtoa.cc: New file.
      	* mc-boot-ch/Gerrno.cc: New file.
      	* mc-boot-ch/Gldtoa.cc: New file.
      	* mc-boot-ch/Gm2rtsdummy.cc: New file.
      	* mc-boot/GASCII.cc: New file.
      	* mc-boot/GArgs.cc: New file.
      	* mc-boot/GAssertion.cc: New file.
      	* mc-boot/GBreak.cc: New file.
      	* mc-boot/GCmdArgs.cc: New file.
      	* mc-boot/GDebug.cc: New file.
      	* mc-boot/GDynamicStrings.cc: New file.
      	* mc-boot/GEnvironment.cc: New file.
      	* mc-boot/GFIO.cc: New file.
      	* mc-boot/GFormatStrings.cc: New file.
      	* mc-boot/GFpuIO.cc: New file.
      	* mc-boot/GIO.cc: New file.
      	* mc-boot/GIndexing.cc: New file.
      	* mc-boot/GM2Dependent.cc: New file.
      	* mc-boot/GM2EXCEPTION.cc: New file.
      	* mc-boot/GM2RTS.cc: New file.
      	* mc-boot/GMemUtils.cc: New file.
      	* mc-boot/GNumberIO.cc: New file.
      	* mc-boot/GPushBackInput.cc: New file.
      	* mc-boot/GRTExceptions.cc: New file.
      	* mc-boot/GRTint.cc: New file.
      	* mc-boot/GSArgs.cc: New file.
      	* mc-boot/GSFIO.cc: New file.
      	* mc-boot/GStdIO.cc: New file.
      	* mc-boot/GStorage.cc: New file.
      	* mc-boot/GStrCase.cc: New file.
      	* mc-boot/GStrIO.cc: New file.
      	* mc-boot/GStrLib.cc: New file.
      	* mc-boot/GStringConvert.cc: New file.
      	* mc-boot/GSysStorage.cc: New file.
      	* mc-boot/GTimeString.cc: New file.
      	* mc-boot/Galists.cc: New file.
      	* mc-boot/Gdecl.cc: New file.
      	* mc-boot/Gkeyc.cc: New file.
      	* mc-boot/Glists.cc: New file.
      	* mc-boot/GmcComment.cc: New file.
      	* mc-boot/GmcComp.cc: New file.
      	* mc-boot/GmcDebug.cc: New file.
      	* mc-boot/GmcError.cc: New file.
      	* mc-boot/GmcFileName.cc: New file.
      	* mc-boot/GmcLexBuf.cc: New file.
      	* mc-boot/GmcMetaError.cc: New file.
      	* mc-boot/GmcOptions.cc: New file.
      	* mc-boot/GmcPreprocess.cc: New file.
      	* mc-boot/GmcPretty.cc: New file.
      	* mc-boot/GmcPrintf.cc: New file.
      	* mc-boot/GmcQuiet.cc: New file.
      	* mc-boot/GmcReserved.cc: New file.
      	* mc-boot/GmcSearch.cc: New file.
      	* mc-boot/GmcStack.cc: New file.
      	* mc-boot/GmcStream.cc: New file.
      	* mc-boot/Gmcp1.cc: New file.
      	* mc-boot/Gmcp2.cc: New file.
      	* mc-boot/Gmcp3.cc: New file.
      	* mc-boot/Gmcp4.cc: New file.
      	* mc-boot/Gmcp5.cc: New file.
      	* mc-boot/GnameKey.cc: New file.
      	* mc-boot/GsymbolKey.cc: New file.
      	* mc-boot/Gtop.cc: New file.
      	* mc-boot/Gvarargs.cc: New file.
      	* mc-boot/Gwlists.cc: New file.
      	* pge-boot/GASCII.cc: New file.
      	* pge-boot/GArgs.cc: New file.
      	* pge-boot/GAssertion.cc: New file.
      	* pge-boot/GBuiltins.cc: New file.
      	* pge-boot/GDebug.cc: New file.
      	* pge-boot/GDynamicStrings.cc: New file.
      	* pge-boot/GFIO.cc: New file.
      	* pge-boot/GIO.cc: New file.
      	* pge-boot/GIndexing.cc: New file.
      	* pge-boot/GLists.cc: New file.
      	* pge-boot/GM2Dependent.cc: New file.
      	* pge-boot/GM2EXCEPTION.cc: New file.
      	* pge-boot/GM2LINK.cc: New file.
      	* pge-boot/GM2RTS.cc: New file.
      	* pge-boot/GNameKey.cc: New file.
      	* pge-boot/GNumberIO.cc: New file.
      	* pge-boot/GOutput.cc: New file.
      	* pge-boot/GPushBackInput.cc: New file.
      	* pge-boot/GRTExceptions.cc: New file.
      	* pge-boot/GRTco.cc: New file.
      	* pge-boot/GSFIO.cc: New file.
      	* pge-boot/GSYSTEM.cc: New file.
      	* pge-boot/GSelective.cc: New file.
      	* pge-boot/GStdIO.cc: New file.
      	* pge-boot/GStorage.cc: New file.
      	* pge-boot/GStrCase.cc: New file.
      	* pge-boot/GStrIO.cc: New file.
      	* pge-boot/GStrLib.cc: New file.
      	* pge-boot/GSymbolKey.cc: New file.
      	* pge-boot/GSysExceptions.cc: New file.
      	* pge-boot/GSysStorage.cc: New file.
      	* pge-boot/Gabort.cc: New file.
      	* pge-boot/Gbnflex.cc: New file.
      	* pge-boot/Gcbuiltin.cc: New file.
      	* pge-boot/Gdtoa.cc: New file.
      	* pge-boot/Gerrno.cc: New file.
      	* pge-boot/Gldtoa.cc: New file.
      	* pge-boot/Glibc.cc: New file.
      	* pge-boot/Glibm.cc: New file.
      	* pge-boot/Gmcrts.cc: New file.
      	* pge-boot/Gpge.cc: New file.
      	* pge-boot/Gwrapc.cc: New file.
      	* pge-boot/main.cc: New file.
      	* pge-boot/network.cc: New file.
      
      Signed-off-by: default avatarGaius Mulley <gaiusmod2@gmail.com>
      fbd2eda1
    • Gaius Mulley's avatar
      Modula-2 rename autogenerated .c files to .cc · ab61100f
      Gaius Mulley authored
      
      This patch renames all the pge-boot/*.c files to .cc.  It also renames
      the m2/mc-boot/*.c files to .cc.  Finally it renames some of the
      mc-boot-ch hand built interface files to .cc.
      
      gcc/m2/ChangeLog:
      
      	* Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
      	(MC-BOOT-C): Rename to MC-BOOT-CC.
      	(BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
      	(BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
      	(m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
      	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
      	* Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
      	source file extension to .cc.
      	(m2/gm2-ppg-boot/main.o): Ditto.
      	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
      	to .cc.
      	(m2/gm2-pg-boot/main.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
      	(m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
      	(m2/gm2-pge-boot/main.o): Ditto.
      	(mc-push): Ditto.
      	(mc-clean): Ditto.
      	(mc-stage2): Ditto.
      	((objdir)/m2/mc-boot-gen): Ditto.
      	(m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
      	(m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
      	* mc-boot-ch/GBuiltins.c: Correct comment and rename.
      	* mc-boot-ch/Gdtoa.c: Correct comment and rename.
      	* mc-boot-ch/Gldtoa.c: Correct comment and rename
      	* mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
      	* mc-boot-ch/Gerrno.c: Rename.
      	* mc-boot-ch/GRTco.c: Removed.
      	* mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
      	* mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
      	* mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
      	* mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
      	* mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
      	* mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
      	* mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
      	* mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
      	* mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
      	* mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
      	* mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
      	* mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
      	* mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
      	* mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
      	* mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
      	* mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
      	* mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
      	* mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
      	* mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
      	* mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
      	* mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
      	* mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
      	* mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
      	* mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
      	* mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
      	* mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
      	* mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
      	* mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
      	* mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
      	* mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
      	* mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
      	* mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
      	* mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
      	* mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
      	* mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
      	* mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
      	* mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
      	* mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
      	* mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
      	* mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
      	* mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
      	* mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
      	* mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
      	* mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
      	* mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
      	* mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
      	* mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
      	* mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
      	* mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
      	* mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
      	* mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
      	* mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
      	* mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
      	* mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
      	* mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
      	* mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
      	* mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
      	* mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
      	* mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
      	* mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
      	* mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
      	* pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
      	* pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
      	* pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
      	* pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
      	* pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
      	* pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
      	* pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
      	* pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
      	* pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
      	* pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
      	* pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
      	* pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
      	* pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
      	* pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
      	* pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
      	* pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
      	* pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
      	* pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
      	* pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
      	* pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
      	* pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
      	* pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
      	* pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
      	* pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
      	* pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
      	* pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
      	* pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
      	* pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
      	* pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
      	* pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
      	* pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
      	* pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
      	* pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
      	* pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
      	* pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
      	* pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
      	* pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
      	* pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
      	* pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
      	* pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
      	* pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
      	* pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
      	* pge-boot/README: Correct description.
      	* pge-boot/main.c: Rename to pge-boot/main.cc.
      	* pge-boot/network.c: Rename to pge-boot/network.cc.
      
      Signed-off-by: default avatarGaius Mulley <gaiusmod2@gmail.com>
      ab61100f
    • Jakub Jelinek's avatar
      Remove remaining traces of m_vecdata from comments [PR109006] · 4ee2f419
      Jakub Jelinek authored
      The following patch adjusts remaining references to the removed m_vecdata
      array from vec.h in various comments.
      
      2023-03-04  Jakub Jelinek  <jakub@redhat.com>
      
      	PR middle-end/109006
      	* vec.cc (test_auto_alias): Adjust comment for removal of
      	m_vecdata.
      	* read-rtl-function.cc (function_reader::parse_block): Likewise.
      	* gdbhooks.py: Likewise.
      4ee2f419
Loading