[all-commits] [llvm/llvm-project] f7b2c2: [openmp][WebAssembly] Allow openmp to compile and ...

arsnyder16 via All-commits all-commits at lists.llvm.org
Wed Aug 7 11:00:59 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f7b2c2e49fe524dd7920af0236c9da79fa0cac57
      https://github.com/llvm/llvm-project/commit/f7b2c2e49fe524dd7920af0236c9da79fa0cac57
  Author: arsnyder16 <arsnyder16 at gmail.com>
  Date:   2024-08-07 (Wed, 07 Aug 2024)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_platform.h
    M openmp/runtime/src/z_Linux_asm.S

  Log Message:
  -----------
  [openmp][WebAssembly] Allow openmp to compile and run under emscripten toolchain  (#95169)

* Separate wasi and emscripten as they have different constraints and
abilities
* Emscripten mimics Linux/POSIX by statically linking the musl runtime.
This allow nearly all KMP_OS_LINUX code paths to work correctly. There
are only a few places that need to be adjusted related to dynamic
linking (dl_open)
* Internally link openmp globals
* With CommonLinkage it is needed to emit them in an assembly file, now
they are defined and used within each compilation unit
* With ExternalLinkage they suffer from duplicate symbols during linking
for unnamed globals like reduction/critical
   * Interestingly this aligns with the TODO comment above this code



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list