[all-commits] [llvm/llvm-project] e82e07: [Libomptarget] Build the DeviceRTL BC using clang ...

Joseph Huber via All-commits all-commits at lists.llvm.org
Fri Jul 22 05:24:56 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e82e07d74a7d9f262aa85fa4aebf99b5a62f386c
      https://github.com/llvm/llvm-project/commit/e82e07d74a7d9f262aa85fa4aebf99b5a62f386c
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2022-07-22 (Fri, 22 Jul 2022)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt

  Log Message:
  -----------
  [Libomptarget] Build the DeviceRTL BC using clang directly

Currently the bitcode library is build using the clang front-end
manually. This was originally done because we did not support device
only compilation. Now we support device only compilation, at least for a
single offloading toolchain, so we can instead use clang directly rather
than using the front-end. This saves us needing to define things like
`aux_triple`.

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D130293


  Commit: 3d0ab8638ba4c29563a6bcc2379abbdbce34fd47
      https://github.com/llvm/llvm-project/commit/3d0ab8638ba4c29563a6bcc2379abbdbce34fd47
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2022-07-22 (Fri, 22 Jul 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/Internalize.cpp
    A llvm/test/Transforms/Internalize/globs.ll

  Log Message:
  -----------
  [Internalize] Support glob patterns for API lists

The internalize pass supports an option to provide a list of symbols
that should not be internalized. THis is useful retaining certain
defintions that should be kept alive. However, this interface is
somewhat difficult to use as it requires knowing every single symbol's
name and specifying it. Many APIs provide common prefixes for the
symbols exported by the library, so it would make sense to be able to
match these using a simple glob pattern. This patch changes the handling
from a simple string comparison to a glob pattern match.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D130319


  Commit: 908054df4f15d44a5e1e72d95aa2bcf92ddb6e1a
      https://github.com/llvm/llvm-project/commit/908054df4f15d44a5e1e72d95aa2bcf92ddb6e1a
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2022-07-22 (Fri, 22 Jul 2022)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    A openmp/libomptarget/DeviceRTL/src/exports

  Log Message:
  -----------
  [Libomptarget] Only export needed definitions in the BC library

This patch adds the use of the `-internalize-public-api-file` option in
the internalization pass to internalize any definition that isn't
explicitly needed for the interface. This will allow us to perform more
optimizations on the file that normally would not have been possible
with functions internal to the library not being internal.

Depends on D130293

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D130298


Compare: https://github.com/llvm/llvm-project/compare/5102084787a1...908054df4f15


More information about the All-commits mailing list