[all-commits] [llvm/llvm-project] d6a056: [Clang][RISCV] Add custom TableGen backend for ris...

Zakk Chen via All-commits all-commits at lists.llvm.org
Wed Mar 10 18:44:21 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d6a0560bf258f95f8960f35657a454f26dda5ba3
      https://github.com/llvm/llvm-project/commit/d6a0560bf258f95f8960f35657a454f26dda5ba3
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-03-10 (Wed, 10 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/include/clang/Basic/CMakeLists.txt
    A clang/include/clang/Basic/riscv_vector.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/CMakeLists.txt
    A clang/test/CodeGen/RISCV/rvv-intrinsics-generic/vadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-generic/vfadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfadd.c
    R clang/test/CodeGen/RISCV/vadd.c
    A clang/test/Headers/riscv-vector-header.c
    M clang/utils/TableGen/CMakeLists.txt
    A clang/utils/TableGen/RISCVVEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h
    M llvm/docs/CommandGuide/tblgen.rst

  Log Message:
  -----------
  [Clang][RISCV] Add custom TableGen backend for riscv-vector intrinsics.

Demonstrate how to generate vadd/vfadd intrinsic functions

1. add -gen-riscv-vector-builtins for clang builtins.
2. add -gen-riscv-vector-builtin-codegen for clang codegen.
3. add -gen-riscv-vector-header for riscv_vector.h. It also generates
ifdef directives with extension checking, base on D94403.
4. add -gen-riscv-vector-generic-header for riscv_vector_generic.h.
Generate overloading version Header for generic api.
https://github.com/riscv/rvv-intrinsic-doc/blob/master/rvv-intrinsic-rfc.md#c11-generic-interface
5. update tblgen doc for riscv related options.

riscv_vector.td also defines some unused type transformers for vadd,
because I think it could demonstrate how tranfer type work and we need
them for the whole intrinsic functions implementation in the future.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: jrtc27, craig.topper, HsiangKai, Jim, Paul-C-Anagnostopoulos

Differential Revision: https://reviews.llvm.org/D95016




More information about the All-commits mailing list