[all-commits] [llvm/llvm-project] faabef: [ORC-RT] Add a std::identity substitute.

lhames via All-commits all-commits at lists.llvm.org
Fri Aug 26 15:58:40 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: faabefe3c8a4755249e75cf8e2d3726460887946
      https://github.com/llvm/llvm-project/commit/faabefe3c8a4755249e75cf8e2d3726460887946
  Author: Lang Hames <lhames at gmail.com>
  Date:   2022-08-26 (Fri, 26 Aug 2022)

  Changed paths:
    M compiler-rt/lib/orc/stl_extras.h

  Log Message:
  -----------
  [ORC-RT] Add a std::identity substitute.

The __orc_rt::identity utility is intended to serve as a substitute for
c++20's std::identity until we can use the latter (when LLVM moves to c++20).


  Commit: ac0c8cb3ff7100d8a4480bed492e54ffc80814a1
      https://github.com/llvm/llvm-project/commit/ac0c8cb3ff7100d8a4480bed492e54ffc80814a1
  Author: Lang Hames <lhames at gmail.com>
  Date:   2022-08-26 (Fri, 26 Aug 2022)

  Changed paths:
    M compiler-rt/lib/orc/executor_address.h
    M compiler-rt/lib/orc/unittests/executor_address_test.cpp

  Log Message:
  -----------
  [ORC-RT] Add "wrap" and "unwrap" steps to __orc_rt::ExecutorAddr toPtr/fromPtr.

The wrap/unwrap operations are applied to pointers after/before conversion to/from
raw addresses. They can be used to tag, untag, sign, or strip signing from
pointers. They currently default to 'rawPtr' (identity) on all platforms, but it
is expected that the default will be set based on the host architecture, e.g.
they would default to signing/stripping for arm64e.

This is the ORC runtime counterpart to f14cb494a34:


Compare: https://github.com/llvm/llvm-project/compare/134986a72042...ac0c8cb3ff71


More information about the All-commits mailing list