Bug 248864

Summary: LLVM: Enable OpenMP on aarch64
Product: Base System Reporter: Kubilay Kocak <koobs>
Component: miscAssignee: Dimitry Andric <dim>
Status: Closed FIXED    
Severity: Affects Only Me CC: dim, emaste, toolchain, val
Priority: --- Keywords: feature
Version: UnspecifiedFlags: koobs: maintainer-feedback+
koobs: mfc-stable12+
koobs: mfc-stable11+
Hardware: arm64   
OS: Any   
URL: https://reviews.llvm.org/D86397
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236582

Description Kubilay Kocak freebsd_committer freebsd_triage 2020-08-24 02:40:33 UTC
Enable OpenMP on aarch64
Comment 1 commit-hook freebsd_committer freebsd_triage 2020-08-24 20:38:08 UTC
A commit references this bug:

Author: dim
Date: Mon Aug 24 20:37:19 UTC 2020
New revision: 364732
URL: https://svnweb.freebsd.org/changeset/base/364732

Log:
  Merge commit cde8f4c16 from llvm git (by me):

    Move special va_list handling to kmp_os.h

    Instead of copying and pasting the same #ifdef expressions in
    multiple places, define a type and a pair of macros in kmp_os.h, to
    handle whether va_list is pointer-like or not:

    * kmp_va_list is the type to use for __kmp_fork_call()
    * kmp_va_deref() dereferences a va_list, if necessary
    * kmp_va_addr_of() takes the address of a va_list, if necessary

    Also add FreeBSD to the list of OSes that has a non pointer-like
    va_list. This can now be easily extended to other OSes too.

    Reviewed By: AndreyChurbanov

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

  This should enable building of LLVM's OpenMP on AArch64. Addition to
  share/mk will follow in a subsequent commit.

  PR:		248864
  MFC after:	2 weeks

Changes:
  head/contrib/llvm-project/openmp/runtime/src/kmp.h
  head/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp
  head/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp
  head/contrib/llvm-project/openmp/runtime/src/kmp_os.h
  head/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp
Comment 2 commit-hook freebsd_committer freebsd_triage 2020-08-24 20:41:10 UTC
A commit references this bug:

Author: dim
Date: Mon Aug 24 20:40:27 UTC 2020
New revision: 364733
URL: https://svnweb.freebsd.org/changeset/base/364733

Log:
  After r364732, we can now enable MK_OPENMP for aarch64 by default.

  PR:		248864
  MFC after:	2 weeks

Changes:
  head/share/mk/src.opts.mk
Comment 3 commit-hook freebsd_committer freebsd_triage 2020-09-07 19:36:19 UTC
A commit references this bug:

Author: dim
Date: Mon Sep  7 19:35:33 UTC 2020
New revision: 365427
URL: https://svnweb.freebsd.org/changeset/base/365427

Log:
  MFC r364732:

  Merge commit cde8f4c16 from llvm git (by me):

    Move special va_list handling to kmp_os.h

    Instead of copying and pasting the same #ifdef expressions in
    multiple places, define a type and a pair of macros in kmp_os.h, to
    handle whether va_list is pointer-like or not:

    * kmp_va_list is the type to use for __kmp_fork_call()
    * kmp_va_deref() dereferences a va_list, if necessary
    * kmp_va_addr_of() takes the address of a va_list, if necessary

    Also add FreeBSD to the list of OSes that has a non pointer-like
    va_list. This can now be easily extended to other OSes too.

    Reviewed By: AndreyChurbanov

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

  This should enable building of LLVM's OpenMP on AArch64. Addition to
  share/mk will follow in a subsequent commit.

  PR:		248864

  MFC r364733:

  After r364732, we can now enable MK_OPENMP for aarch64 by default.

  PR:		248864

Changes:
_U  stable/11/
_U  stable/11/contrib/llvm-project/openmp/
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp.h
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_os.h
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp
  stable/11/share/mk/src.opts.mk
_U  stable/12/
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp.h
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_os.h
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp
  stable/12/share/mk/src.opts.mk
Comment 4 commit-hook freebsd_committer freebsd_triage 2020-09-07 19:36:21 UTC
A commit references this bug:

Author: dim
Date: Mon Sep  7 19:35:33 UTC 2020
New revision: 365427
URL: https://svnweb.freebsd.org/changeset/base/365427

Log:
  MFC r364732:

  Merge commit cde8f4c16 from llvm git (by me):

    Move special va_list handling to kmp_os.h

    Instead of copying and pasting the same #ifdef expressions in
    multiple places, define a type and a pair of macros in kmp_os.h, to
    handle whether va_list is pointer-like or not:

    * kmp_va_list is the type to use for __kmp_fork_call()
    * kmp_va_deref() dereferences a va_list, if necessary
    * kmp_va_addr_of() takes the address of a va_list, if necessary

    Also add FreeBSD to the list of OSes that has a non pointer-like
    va_list. This can now be easily extended to other OSes too.

    Reviewed By: AndreyChurbanov

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

  This should enable building of LLVM's OpenMP on AArch64. Addition to
  share/mk will follow in a subsequent commit.

  PR:		248864

  MFC r364733:

  After r364732, we can now enable MK_OPENMP for aarch64 by default.

  PR:		248864

Changes:
_U  stable/11/
_U  stable/11/contrib/llvm-project/openmp/
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp.h
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_os.h
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp
  stable/11/share/mk/src.opts.mk
_U  stable/12/
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp.h
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_csupport.cpp
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_gsupport.cpp
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_os.h
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_runtime.cpp
  stable/12/share/mk/src.opts.mk
Comment 5 commit-hook freebsd_committer freebsd_triage 2020-09-07 20:17:28 UTC
A commit references this bug:

Author: dim
Date: Mon Sep  7 20:17:13 UTC 2020
New revision: 365430
URL: https://svnweb.freebsd.org/changeset/base/365430

Log:
  MFC r365429:

  Merge commit 47b0262d3 from llvm git (by me):

    Add <stdarg.h> include to kmp_os.h, to get the va_list type, required
    after cde8f4c164a2. Sort system includes, while here.

  The original merged commit works fine by itself on head, but fails to
  compile on stable branches because stdarg.h is not implicitly pulled in.

  PR:		248864

Changes:
_U  stable/11/
_U  stable/11/contrib/llvm-project/openmp/
  stable/11/contrib/llvm-project/openmp/runtime/src/kmp_os.h
_U  stable/12/
  stable/12/contrib/llvm-project/openmp/runtime/src/kmp_os.h