[PATCH] D134958: [clang][Interp] Support __builtin_clz calls

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 30 06:58:24 PDT 2022


aaron.ballman added a comment.

In D134958#3827038 <https://reviews.llvm.org/D134958#3827038>, @tbaeder wrote:

> In D134958#3827024 <https://reviews.llvm.org/D134958#3827024>, @erichkeane wrote:
>
>> This seems right enough to me, though you  might consider CTZ as well since it is equally as easy.  A better/more useful attempt is going to be builtin_strlen.  Note that with builtins they are going to be particularly difficult because you can't execute them on the local machine, since we have to give the same result as the target machine.  Integer sizes can be a problem for that, but a lot of the builtins work differently based on which target you're running on.
>
> Hmm, I see. Do you know of any existing tests in the clang code base that exercise those differences?

I'm not certain on existing tests, but the kinds of things I'm thinking about are builtins around floating-point (where the host and the target may be using different floating-point semantics entirely), builtin classification functions may be sensitive to compiler options like whether we honor nans or not, security builtins like `__builtin_add_overflow` which may behave differently on host and target depending on the size of variable-width types like `long` or `__builtin_strlen` whose return type is `size_t`, etc.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134958



More information about the cfe-commits mailing list