[PATCH] D111617: [RISCV] Lazily add RVV C intrinsics.

Roger Ferrer Ibanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 20 23:30:50 PDT 2021


rogfer01 added a comment.

In D111617#3060377 <https://reviews.llvm.org/D111617#3060377>, @HsiangKai wrote:

> Although it reduces the header size, this patch will increase the binary size of clang.

Options we can consider to mitigate this:

- See if we can be more economical reprenting the table itself
- Store it in the binary in a format unsuitable for lookups (e.g. compressed) and then transform it (in memory) the first time is used so queries can be solved in a reasonable amount of time.

> Or we should go back to think about the design of RVV intrinsics?

Certainly the explosion of cases is an issue.

Maybe an alternative is using overloaded builtins (similar to what atomic builtins can do when the type is not specified), but I understand this means implementing the typechecking itself. Which perhaps it can be generated too.

This looks like it might bring a lot of reduction in cases and tables. Corner cases will appear when the arguments of a call are not enough to determine the precise intrinsic desired, e.g. loads as they are currently defined would be ambiguous between different LMUL types (though there may be ways to mitigate this, e.g. overload only within LMULs).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111617/new/

https://reviews.llvm.org/D111617



More information about the llvm-commits mailing list