[all-commits] [llvm/llvm-project] a09bec: [libc] Move the definitions of the standard IO str...

Joseph Huber via All-commits all-commits at lists.llvm.org
Thu Jun 15 05:07:03 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a09bec6459331e7f949c2ed3df6102de52d25f5d
      https://github.com/llvm/llvm-project/commit/a09bec6459331e7f949c2ed3df6102de52d25f5d
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2023-06-15 (Thu, 15 Jun 2023)

  Changed paths:
    M libc/src/__support/File/gpu/file.cpp
    M libc/src/__support/File/linux/file.cpp
    M libc/src/stdio/stderr.cpp
    M libc/src/stdio/stdin.cpp
    M libc/src/stdio/stdout.cpp

  Log Message:
  -----------
  [libc] Move the definitions of the standard IO streams to the platform

This patch moves the definitions of the standard IO streams to the
platform file definition. This is necessary because previously we had a
level of indirection where the stream's `FILE *` was initialized based
on the pointer to the internal `__llvm_libc` version. This cannot be
resolved ahead of time by the linker because the address will not be
known until runtime. This caused the previous implementation to emit a
global constructor to initialize the pointer to the actual `FILE *`. By
moving these definitions so that we can bind their address to the
original file type we can avoid this global constructor.

This file keeps the entrypoints, but makes them empty files only
containing an external reference. This is so they still appear as
entrypoints and get emitted as declarations in the generated headers.

Reviewed By: lntue, sivachandra

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


  Commit: e96bec9cd8e14ee2174490c0ce09cedfcd6be79e
      https://github.com/llvm/llvm-project/commit/e96bec9cd8e14ee2174490c0ce09cedfcd6be79e
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2023-06-15 (Thu, 15 Jun 2023)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/amdgpu-openmp-toolchain.c

  Log Message:
  -----------
  [OpenMP] Correctly diagnose conflicting target identifierers for AMDGPU

There are static checks on the target identifiers allowed in a single
TU. Previously theses checks were only applied to HIP even though they
should be the same for OpenMP targeting AMDGPU. Simply enable these
checks for OpenMP.

Reviewed By: JonChesterfield, yaxunl

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


Compare: https://github.com/llvm/llvm-project/compare/4e4bd29061de...e96bec9cd8e1


More information about the All-commits mailing list