[all-commits] [llvm/llvm-project] d0abdc: [Support] [BLAKE3] Remove .hidden directives from ...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Sat Apr 2 14:04:26 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d0abdc22b877159b2b18b3f683b7131341ce37af
      https://github.com/llvm/llvm-project/commit/d0abdc22b877159b2b18b3f683b7131341ce37af
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-04-02 (Sat, 02 Apr 2022)

  Changed paths:
    M llvm/lib/Support/BLAKE3/blake3_avx2_x86-64_windows_gnu.S
    M llvm/lib/Support/BLAKE3/blake3_avx512_x86-64_windows_gnu.S
    M llvm/lib/Support/BLAKE3/blake3_sse2_x86-64_windows_gnu.S
    M llvm/lib/Support/BLAKE3/blake3_sse41_x86-64_windows_gnu.S

  Log Message:
  -----------
  [Support] [BLAKE3] Remove .hidden directives from windows-gnu assembly sources

COFF symbols don't have anything corresponding to a `.hidden` flag;
both GNU binutils as and LLVM's built-in assembler errors out on
these directives.

This reverts one part of
7f05aa2d4c36d6d53f97ac3e0db30ec600abbc62, fixing builds for
mingw x86_64.

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


  Commit: 578d85e924fcb172ff9b2eaa7da6cdd6df42b020
      https://github.com/llvm/llvm-project/commit/578d85e924fcb172ff9b2eaa7da6cdd6df42b020
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-04-03 (Sun, 03 Apr 2022)

  Changed paths:
    M llvm/lib/Support/BLAKE3/CMakeLists.txt

  Log Message:
  -----------
  [Support] [BLAKE3] Fix compilation with CMAKE_OSX_ARCHITECTURES

With CMake, one can build for multiple macOS architectures
at the same time by setting CMAKE_OSX_ARCHITECTURES to multiple
architectures (avoiding needing to do two separate builds and
gluing the binaries together after the build).

In this case, while targeting x86_64 and arm64, neither IS_X64
nor IS_ARM64 is set, while compilation of the individual source
files will hit those cases (in either architecture mode).

Therefore, if we on the CMake level decide not to include the
architecture specific SIMD implementation files, also tell the
source this explicitly by passing the defines indicating that we
don't expect to use them.

Such a build clearly is less ideal than explicitly targeting one
architecture at a time if it won't include all the SIMD optimizations,
but that's a tradeoff that is up to the one deciding to do such an
universal build.

This also fixes builds for i386. The blake3 source code automatically
enables the SIMD implementations when building for i386, but we don't
provide the sources for that build configuration.

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


Compare: https://github.com/llvm/llvm-project/compare/95b2aa511eea...578d85e924fc


More information about the All-commits mailing list