1. [libcxx] Port to OpenBSD (details)
  2. [InstSimplify] Don't fold gep p, -p to null (details)
  3. [OpenMP] Fixed include directories for OpenMP when building OpenMP with LLVM_ENABLE_RUNTIMES (details)
  4. [libomptarget][amdgpu][nfc] Fix build on centos (details)
  5. [clang][aarch64] Precondition isHomogeneousAggregate on isCXX14Aggregate (details)
Commit 79f99ba65d96a35a79911daf1b67559dd52a684d by brad
[libcxx] Port to OpenBSD

Add initial OpenBSD support.

Reviewed By: ldionne

Differential Revision:
The file was modifiedlibcxx/include/__locale
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/include/support/openbsd/xlocale.h
The file was modifiedlibcxx/include/__config
Commit 7ecad2e4ced180b4fdebc6b7bf6d26d83b454318 by nikita.ppv
[InstSimplify] Don't fold gep p, -p to null

This is a partial fix for
Folding gep p, q-p to q is only legal if p and q have the same
provenance. This fold should probably be guarded by something like
getUnderlyingObject(p) == getUnderlyingObject(q).

This patch is a partial fix that removes the special handling for
gep p, 0-p, which will fold to a null pointer, which would certainly
not pass an underlying object check (unless p is also null, in which
case this would fold trivially anyway). Folding to a null pointer
is particularly problematic due to the special handling it receives
in many places, making end-to-end miscompiles more likely.

Differential Revision:
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/gep.ll
Commit bdd1ad5e5c57ae0f0bf899517c540ad8a679f01a by tianshilei1992
[OpenMP] Fixed include directories for OpenMP when building OpenMP with LLVM_ENABLE_RUNTIMES

Some LLVM headers are generated by CMake. Before the installation,
LLVM's headers are distributed everywhere, some of which are in
`${LLVM_SRC_ROOT}/llvm/include/llvm`, and some are in
`${LLVM_BINARY_ROOT}/include/llvm`. After intallation, they're all in

OpenMP now depends on LLVM headers. Some headers depend on headers generated
by CMake. When building OpenMP along with LLVM, a.k.a via `LLVM_ENABLE_RUNTIMES`,
we need to tell OpenMP where it can find those headers, especially those still
have not been copied/installed.

Reviewed By: jdoerfert, jhuber6

Differential Revision:
The file was modifiedopenmp/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/amdgpu/CMakeLists.txt
The file was modifiedopenmp/libomptarget/src/CMakeLists.txt
The file was modifiedopenmp/libomptarget/CMakeLists.txt
Commit 33e2494bea653a845cb0502cc6d3cecdf2b47750 by jonathanchesterfield
[libomptarget][amdgpu][nfc] Fix build on centos

[libomptarget][amdgpu][nfc] Fix build on centos

rtl.cpp replaced 224 with a #define from elf.h, but that
doesn't work on a centos 7 build machine with an old elf.h

Reviewed By: ronlieb

Differential Revision:
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit e5f51fdd650c6d20c81fedb8e856e9858aa10991 by david.truby
[clang][aarch64] Precondition isHomogeneousAggregate on isCXX14Aggregate

MSVC on WoA64 includes isCXX14Aggregate in its definition. This is de-facto
specification on that platform, so match msvc's behaviour.


Co-authored-by: Peter Waller <>

Differential Revision:
The file was modifiedclang/lib/CodeGen/CGCXXABI.h
The file was modifiedllvm/test/CodeGen/AArch64/arm64-windows-calls.ll
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/homogeneous-aggregates.cpp