[PATCH] D103228: [PoC][RISCV] Using pragma to register vector intrinsic
Kito Cheng via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 26 23:46:46 PDT 2021
kito-cheng created this revision.
Herald added subscribers: vkmr, frasercrmck, dexonsmith, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, mgorny.
kito-cheng requested review of this revision.
Herald added subscribers: cfe-commits, MaskRay.
Herald added a project: clang.
This patch is *NOT* ready to commite yet, it's PoC of the pragma approache to
reduce the size of `riscv_vector.h` and speed up the including effort.
Syntax for the new pragma:
#pragma riscv intrinsic <extension name>
And we only support for vector now:
#pragma riscv intrinsic vector
Size of `riscv_vector.h`:
| size | LoC |
------------------------------
Before | 4,434,725 | 69,749 |
After | 5,463 | 159 |
testcase:
vint32m1_t test_vadd_vv_vfloat32m1_t(vint32m1_t op1, vint32m1_t op2, size_t vl) {
return vadd(op1, op2, vl);
}
Release build:
Before: 0m0.417s
After: 0m0.090s
Debug build:
Before: 0m8.016s
After: 0m2.295s
- Measure by time command.
LLVM regression on our 48 core server:
Release build:
Before : Testing Time: 203.81s
After : Testing Time: 181.13s
Debug build:
Before : Testing Time: 675.18s
After : Testing Time: 647.20s
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D103228
Files:
clang/include/clang/Basic/Builtins.h
clang/include/clang/Basic/TokenKinds.def
clang/include/clang/Basic/riscv_vector.td
clang/include/clang/Parse/Parser.h
clang/include/clang/Sema/Sema.h
clang/lib/Basic/Builtins.cpp
clang/lib/Basic/Targets/RISCV.cpp
clang/lib/Parse/ParsePragma.cpp
clang/lib/Sema/CMakeLists.txt
clang/lib/Sema/SemaChecking.cpp
clang/lib/Sema/SemaRISCV.cpp
clang/test/CodeGen/RISCV/riscv-attr-builtin-alias.c
clang/test/CodeGen/RISCV/rvv_errors.c
clang/utils/TableGen/RISCVVEmitter.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103228.348174.patch
Type: text/x-patch
Size: 28047 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210527/1736b0d7/attachment-0001.bin>
More information about the cfe-commits
mailing list