[PATCH] D137458: [clang] Add __decay<T> as a builtin template

Christopher Di Bella via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 10 17:09:35 PST 2023


cjdb added subscribers: aaron.ballman, cjdb.
cjdb added a comment.

In D137458#3909343 <https://reviews.llvm.org/D137458#3909343>, @troyj wrote:

>> Also, it would be nice to have some numbers for the 'measurably faster' claim :)
>
> Sure. Here's an example of a library change that started using builtins for `__make_integer_seq` and `__type_pack_element` https://github.com/facebook/fatal/commit/58102a3f7e66ad122d7d3335c446399b09d5085e where there was a 1.8% speedup for a file that spent 70 seconds in the front end. It also reduced the peak memory usage of the front end by 0.5%. We have reason to believe that a `__decay` builtin would produce similar benefit. Unfortunately, all of the intrinsics in https://reviews.llvm.org/D116203 were implemented with parentheses syntax instead of as builtin templates, which makes it more difficult. Ideally, we'd like to see all of these implemented as builtin templates, but `__decay` is the first one that we're proposing.
>
> I'm not familiar with the mangling issue that you mentioned. I'll look into it more.

Is there a reason that parentheses are insufficient? @aaron.ballman and I talked about whether or not using angle-brackets would be a better option at one point and concluded that there wasn't any benefit.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D137458



More information about the cfe-commits mailing list