[all-commits] [llvm/llvm-project] 68ea91: [openmp][wasm] Allow compiling OpenMP to WebAssemb...
Jon Roelofs via All-commits
all-commits at lists.llvm.org
Thu Dec 14 13:46:38 PST 2023
Branch: refs/heads/users/jroelofs/spr/clang-support-__attribute__ifunc-on-darwin-platforms
Home: https://github.com/llvm/llvm-project
Commit: 68ea91dd8b506764c0a89e9220cfcefcf3790973
https://github.com/llvm/llvm-project/commit/68ea91dd8b506764c0a89e9220cfcefcf3790973
Author: Andrew Brown <andrew.brown at intel.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M openmp/CMakeLists.txt
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/LibompGetArchitecture.cmake
M openmp/runtime/cmake/config-ix.cmake
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_ftn_entry.h
M openmp/runtime/src/kmp_gsupport.cpp
M openmp/runtime/src/kmp_os.h
M openmp/runtime/src/kmp_platform.h
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/kmp_utility.cpp
M openmp/runtime/src/z_Linux_asm.S
M openmp/runtime/src/z_Linux_util.cpp
Log Message:
-----------
[openmp][wasm] Allow compiling OpenMP to WebAssembly (#71297)
This change allows building the static OpenMP runtime, `libomp.a`, as
WebAssembly. It builds on the work done in [D142593] but goes further in
several ways:
- it makes the OpenMP CMake files more WebAssembly-aware
- it conditions much more code (or code that had been refactored since
[D142593]) for `KMP_ARCH_WASM` and `KMP_OS_WASI`
- it fixes a Clang crash due to unimplemented common symbols in
WebAssembly
The commit messages have more details. Please understand this PR as a
start, not the completed work, for WebAssembly support in OpenMP.
Getting the tests running somehow would be a good next step, e.g.; but
what is contained here works, at least with recent versions of
[wasi-sdk] and engines that support [wasi-threads]. I suspect the same
is true for Emscripten and browsers, but I have not tested that
workflow.
[D142593]: https://reviews.llvm.org/D142593
[wasi-sdk]: https://github.com/WebAssembly/wasi-sdk
[wasi-threads]: https://github.com/WebAssembly/wasi-threads
---------
Co-authored-by: Atanas Atanasov <atanas.atanasov at intel.com>
Commit: aa207674f9e6caf5bc29c1b4925183a398382d6f
https://github.com/llvm/llvm-project/commit/aa207674f9e6caf5bc29c1b4925183a398382d6f
Author: Walter Erquinigo <a20012251 at gmail.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
A lldb/test/API/tools/lldb-dap/commands/Makefile
A lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
A lldb/test/API/tools/lldb-dap/commands/main.cpp
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/LLDBUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.h
M lldb/tools/lldb-dap/lldb-dap.cpp
M lldb/tools/lldb-dap/package.json
Log Message:
-----------
[lldb-dap] Implement command directives (#74808)
This adds support for optionally prefixing any command with `?` and/or
`!`.
- `?` prevents the output of a commands to be printed to the console
unless it fails.
- `!` aborts the dap if the command fails.
They come in handy when programmatically running commands on behalf of
the user without wanting them to know unless they fail, or when a
critical setup is required as part of launchCommands and it's better to
abort on failures than to silently skip.
Commit: 46fe85446d7181c8c5e2ec5fe128ac33ba502ccc
https://github.com/llvm/llvm-project/commit/46fe85446d7181c8c5e2ec5fe128ac33ba502ccc
Author: Aiden Grossman <agrossman154 at yahoo.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/docs/CommandGuide/llvm-exegesis.rst
Log Message:
-----------
[Docs][llvm-exegesis] Add documentation on recently added options (#75408)
This patch adds information on the new LLVM-EXEGESIS-SNIPPET-ADDRESS
annotation and on the --benchmark-repeat-count flag.
Commit: 3194928c3cfa6623c5de78ae7ab2ab7ab0cf0232
https://github.com/llvm/llvm-project/commit/3194928c3cfa6623c5de78ae7ab2ab7ab0cf0232
Author: Aiden Grossman <agrossman154 at yahoo.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
A llvm/tools/llvm-exegesis/lib/MmapUtils.h
M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
M llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
Log Message:
-----------
[llvm-exegesis] Refactor MMAP platform-specific preprocessor directives (#75422)
This patch refactors the MMAP platform-specific preprocessor directives
in llvm-exegesis to a single file instead of having duplicate code split
across multiple files. These originally got introduced to get buildbots
green again due to platform specific failures.
Commit: e75f37fd64a467cd8b24851062342079bef123f5
https://github.com/llvm/llvm-project/commit/e75f37fd64a467cd8b24851062342079bef123f5
Author: Natalie Chouinard <sudonatalie at google.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/test/CodeGen/SPIRV/opencl/device_execution/execute_block.ll
M llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange_2.ll
Log Message:
-----------
[SPIR-V][NFC] Require asserts on 2 tests (#75087)
These tests currently fail on asserts, so adding a REQUIRES to make sure
they're skipped on builds with asserts disabled.
Follow-up from #74849
Commit: 15617d14f78bd20c96208501d950f0902cb03ffe
https://github.com/llvm/llvm-project/commit/15617d14f78bd20c96208501d950f0902cb03ffe
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/include/llvm/Target/TargetMachine.h
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/Target/TargetMachine.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86Subtarget.cpp
M llvm/test/CodeGen/X86/code-model-elf.ll
Log Message:
-----------
Revert "Reland [X86] Respect code models more when determining if a global reference can fit in 32 bits (#75386)"
This reverts commit ec92d74a0ef89b9dd46aee6ec8aca6bfd3c66a54.
Breaks some compiler-rt tests, e.g. https://lab.llvm.org/buildbot/#/builders/37/builds/28834
Commit: 6e87672150986d931e770ec829699a7930ebeeb2
https://github.com/llvm/llvm-project/commit/6e87672150986d931e770ec829699a7930ebeeb2
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] Adjust _FORTRAN_RUNTIME_IEEE_FENV_T_EXTENT for Solaris (#74590)
Even after 13e2200fa426faffb62bdaf8b2f1f5699eee1511 (Solaris lacks
`femode_t`, too), the Solaris `flang` build is still broken:
```
/vol/llvm/src/llvm-project/local/flang/runtime/exceptions.cpp:87:5: error: static assertion failed due to requirement 'sizeof(fenv_t) <= sizeof(int) * 8': increase ieee_status_type size
87 | sizeof(fenv_t) <= sizeof(int) * _FORTRAN_RUNTIME_IEEE_FENV_T_EXTENT, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/llvm/src/llvm-project/local/flang/runtime/exceptions.cpp:87:20: note: expression evaluates to '200 <= 32'
87 | sizeof(fenv_t) <= sizeof(int) * _FORTRAN_RUNTIME_IEEE_FENV_T_EXTENT, | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
This patch fixes this by removing the assertion.
Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`.
Commit: c26174f3a8337417dc5a8e89c21ced6bed46e8c9
https://github.com/llvm/llvm-project/commit/c26174f3a8337417dc5a8e89c21ced6bed46e8c9
Author: Jay Foad <jay.foad at amd.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/test/MC/AMDGPU/gfx12_unsupported.s
Log Message:
-----------
[AMDGPU] Remove s_cbranch_cdbg* for GFX12 (#75496)
No GFX12 encoding was added for these, so this patch just adds tests
that they are not recognized by the assembler.
Commit: c5a068a196651a87a3af12cb67bd5b4309ddeaa2
https://github.com/llvm/llvm-project/commit/c5a068a196651a87a3af12cb67bd5b4309ddeaa2
Author: Jay Foad <jay.foad at amd.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/test/MC/AMDGPU/gfx12_unsupported.s
Log Message:
-----------
[AMDGPU] Remove s_cmpk_* for GFX12 (#75497)
No GFX12 encoding was added for these. This patch adds tests that they
are not recognized by the assembler and defends against generating them
in codegen.
Commit: d8941df9325a107410be42d841b169ea267822e8
https://github.com/llvm/llvm-project/commit/d8941df9325a107410be42d841b169ea267822e8
Author: Jay Foad <jay.foad at amd.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/test/MC/AMDGPU/gfx12_unsupported.s
Log Message:
-----------
[AMDGPU] Remove v_cmp_t_* and v_cmp_f_* for GFX12 (#75498)
Also v_cmpx_t_* and v_cmpx_f_*
No GFX12 encoding was added for these, so this patch just adds tests
that they are not recognized by the assembler.
Commit: 1b6c8280b9a672a9c6f5c22d18b1cdaa2320d4ed
https://github.com/llvm/llvm-project/commit/1b6c8280b9a672a9c6f5c22d18b1cdaa2320d4ed
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M flang/test/Driver/no-duplicate-main.f90
Log Message:
-----------
[flang][driver] Don't use -whole-archive on Darwin (#75393)
Direct follow-up of #73124 - the linker on Darwin does not support
`-whole-archive`, so that needs to be removed from the linker
invocation.
For context:
* https://github.com/llvm/llvm-project/pull/73124
Commit: 3e6da3252fbbe58c309b58e08c8a16ac2797b5da
https://github.com/llvm/llvm-project/commit/3e6da3252fbbe58c309b58e08c8a16ac2797b5da
Author: Jay Foad <jay.foad at amd.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.var.ll
M llvm/test/MC/AMDGPU/gfx12_asm_sop1.s
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop1.txt
Log Message:
-----------
[AMDGPU] Add GFX12 s_sleep_var instruction and intrinsic (#75499)
Commit: 29e043cb5c2efaad7fb203fb8240a91b77ca0c5b
https://github.com/llvm/llvm-project/commit/29e043cb5c2efaad7fb203fb8240a91b77ca0c5b
Author: Craig Hesling <hesling.craig at gmail.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M clang/bindings/python/README.txt
M clang/bindings/python/clang/cindex.py
Log Message:
-----------
[libclang/python] Fix some minor typos (#74292)
These patches do not change the functionality of the library. They
simply correct comments and documentation.
* Add a missing space in a the `FixIt` class comment
* Fix an llvm-project path in the `README.txt`
Commit: 7c6b4be615c225b11a94a90bfd421265e1544fd5
https://github.com/llvm/llvm-project/commit/7c6b4be615c225b11a94a90bfd421265e1544fd5
Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M libc/test/src/string/mempcpy_test.cpp
Log Message:
-----------
[libc] fix msan failure in mempcpy_test (#75532)
Internal builds of the unittests with msan flagged mempcpy_test.
==6862==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x55e34d7d734a in length
llvm-project/libc/src/__support/CPP/string_view.h:41:11
#1 0x55e34d7d734a in string_view
llvm-project/libc/src/__support/CPP/string_view.h:71:24
#2 0x55e34d7d734a in
__llvm_libc_9999_0_0_git::testing::Test::testStrEq(char const*, char
const*, char const*, char const*,
__llvm_libc_9999_0_0_git::testing::internal::Location)
llvm-project/libc/test/UnitTest/LibcTest.cpp:284:13
#3 0x55e34d7d4e09 in LlvmLibcMempcpyTest_Simple::Run()
llvm-project/libc/test/src/string/mempcpy_test.cpp:20:3
#4 0x55e34d7d6dff in
__llvm_libc_9999_0_0_git::testing::Test::runTests(char const*)
llvm-project/libc/test/UnitTest/LibcTest.cpp:133:8
#5 0x55e34d7d86e0 in main
llvm-project/libc/test/UnitTest/LibcTestMain.cpp:21:10
SUMMARY: MemorySanitizer: use-of-uninitialized-value
llvm-project/libc/src/__support/CPP/string_view.h:41:11 in length
What's going on here is that mempcpy_test.cpp's Simple test is using
ASSERT_STREQ with a partially initialized char array. ASSERT_STREQ calls
Test::testStrEq which constructs a cpp:string_view. That constructor
calls the
private method cpp::string_view::length. When built with msan, the loop
is
transformed into multi-byte access, which then fails upon access.
I took a look at libc++'s __constexpr_strlen which just calls
__builtin_strlen(). Replacing the implementation of
cpp::string_view::length
with a call to __builtin_strlen() may still result in out of bounds
access when
the test is built with msan.
It's not safe to use ASSERT_STREQ with a partially initialized array.
Initialize the whole array so that the test passes.
Commit: 640c1d3dd12843f9ad29df472bbf0a88f90770b5
https://github.com/llvm/llvm-project/commit/640c1d3dd12843f9ad29df472bbf0a88f90770b5
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/X86/X86AsmPrinter.cpp
M llvm/lib/Target/X86/X86AsmPrinter.h
M llvm/test/CodeGen/AArch64/addrsig-macho.ll
A llvm/test/CodeGen/AArch64/ifunc-asm.ll
M llvm/test/CodeGen/X86/ifunc-asm.ll
Log Message:
-----------
[llvm] Support IFuncs on Darwin platforms (#73686)
... by lowering them as lazy resolve-on-first-use symbol resolvers. Note that this is subtly different timing than on ELF platforms, where ifunc resolution happens at load time.
Since ld64 and ld-prime don't support all the cases we need for these, we lower them manually in the AsmPrinter.
Commit: 7cf1f8dabbabbdc2d80a1bad33206c05957ed53a
https://github.com/llvm/llvm-project/commit/7cf1f8dabbabbdc2d80a1bad33206c05957ed53a
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M clang/bindings/python/README.txt
M clang/bindings/python/clang/cindex.py
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M flang/runtime/exceptions.cpp
M flang/test/Driver/no-duplicate-main.f90
M libc/test/src/string/mempcpy_test.cpp
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
A lldb/test/API/tools/lldb-dap/commands/Makefile
A lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
A lldb/test/API/tools/lldb-dap/commands/main.cpp
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/LLDBUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.h
M lldb/tools/lldb-dap/lldb-dap.cpp
M lldb/tools/lldb-dap/package.json
M llvm/docs/CommandGuide/llvm-exegesis.rst
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/Target/TargetMachine.h
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/TargetMachine.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86Subtarget.cpp
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.var.ll
M llvm/test/CodeGen/SPIRV/opencl/device_execution/execute_block.ll
M llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange_2.ll
M llvm/test/CodeGen/X86/code-model-elf.ll
M llvm/test/MC/AMDGPU/gfx12_asm_sop1.s
M llvm/test/MC/AMDGPU/gfx12_unsupported.s
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop1.txt
M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
A llvm/tools/llvm-exegesis/lib/MmapUtils.h
M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
M llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
M openmp/CMakeLists.txt
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/LibompGetArchitecture.cmake
M openmp/runtime/cmake/config-ix.cmake
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_ftn_entry.h
M openmp/runtime/src/kmp_gsupport.cpp
M openmp/runtime/src/kmp_os.h
M openmp/runtime/src/kmp_platform.h
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/kmp_utility.cpp
M openmp/runtime/src/z_Linux_asm.S
M openmp/runtime/src/z_Linux_util.cpp
Log Message:
-----------
[𝘀𝗽𝗿] landed version
Created using spr 1.3.4
Compare: https://github.com/llvm/llvm-project/compare/f75c2ef0ab7e...7cf1f8dabbab
More information about the All-commits
mailing list