[PATCH] D142305: [ADT] llvm::bit_cast - use __builtin_bit_cast if available

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 26 02:08:21 PST 2023


RKSimon added a comment.

In D142305#4078205 <https://reviews.llvm.org/D142305#4078205>, @dblaikie wrote:

> In D142305#4077555 <https://reviews.llvm.org/D142305#4077555>, @RKSimon wrote:
>
>> In D142305#4077361 <https://reviews.llvm.org/D142305#4077361>, @dblaikie wrote:
>>
>>>> If the compiler supports __builtin_bit_cast we should try to use it instead of std::memcpy (and avoid including the cstring header).
>>>
>>> Why? Maintaining non-portable code has some cost, if we can get similar/sufficient/the same performance without special casing, that seems better. Do we not get adequate performance with `std::memcpy`? Is the header especially expensive to include?
>>
>> No strong preference tbh
>
> Did something motivate proposing this change?

This was part of a general attempt to get our bit.h as close to c++ <bit> as possible - especially when I realised that all latest supported compilers already implement '__builtin_bit_cast' : https://godbolt.org/z/YWM4GcceE


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142305



More information about the llvm-commits mailing list