SuccessChanges

Summary

  1. [sanitizer] Fix "set -e in subshell" in QEMU checkout (details)
  2. [scudo] Remove HWCAP2_MTE workaround (details)
  3. [scudo] Fix "set -e in subsell" issue (details)
Commit b7d044fe8aebce30d254a874c77c1a4242e2899a by Vitaly Buka
[sanitizer] Fix "set -e in subshell" in QEMU checkout
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 649236a0b9147a8d248d3199d64658f4849bbf96 by Vitaly Buka
[scudo] Remove HWCAP2_MTE workaround

It's not needed after https://patches.linaro.org/patch/433102/
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 02976f40d5f7b0f044b5c6e23536fb5d5de92b31 by Vitaly Buka
[scudo] Fix "set -e in subsell" issue
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)

Summary

  1. [ADT] Remove StringRef::withNullAsEmpty (details)
  2. [DebugInfo][test] Check specific func name to ignore codegen differences (details)
  3. Recommit X86: support Swift Async context (details)
  4. Introduce SYCL 2020 mode (details)
  5. [ORC] Don't try to obtain a ref to a non-existent buffer. (details)
  6. [ORC-RT] Add compiler abstraction header for the ORC runtime. (details)
  7. [ORC-RT] Add apply_tuple utility. (details)
Commit 82f248d234a3363886600e239ff86aab4f76090d by Raphael Isemann
[ADT] Remove StringRef::withNullAsEmpty

A long time ago LLDB wanted to start using StringRef instead of
C-Strings/ConstString but was blocked by the StringRef(const char *) ctor
asserting that the C-string isn't a nullptr. To workaround this, D24697
introduced a special function called withNullAsEmpty and that's what LLDB (and
only LLDB) started to use to build StringRefs from C-strings.

A bit later it seems that withNullAsEmpty was declared too awkward to use and
instead the assert in the StringRef constructor got removed (see D24904). The
rest of LLDB was then converted to StringRef by just calling the now perfectly
usable implicit constructor.

However, it seems that the original approach with withNullAsEmpty was never
touched again since then and now just exists as a function in StringRef that
is only used in a few places in LLDB.

I removed the few uses of withNullAsEmpty in D102597 and this patch removes
the function itself. Calling the implicit StringRef(const char *) constructor
is the preferred way of doing this today.

Reviewed By: lattner

Differential Revision: https://reviews.llvm.org/D102599
The file was modifiedllvm/include/llvm/ADT/StringRef.h
Commit 7d6449322ecba2fa34090ca8ed610328febee108 by Jinsong Ji
[DebugInfo][test] Check specific func name to ignore codegen differences

We use `CHECK-LABEL: define` to divide input stream into functions,
this works well on most platforms.

But there are cases that some platforms (eg: AIX) may have different
codegen , especially for global constructor and descructors.

On AIX, the codegen will have two more functions: __dtor_b,
__finalize_b, which will fail the test.

The fix is to use specific function name so that we can safely ignore
those unrelated codegen differences.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102654
The file was modifiedclang/test/CodeGenCXX/debug-info-line.cpp
Commit ba1509da7b89c850c89f0f98afbab375794cd3c8 by Tim Northover
Recommit X86: support Swift Async context

This adds support to the X86 backend for the newly committed swiftasync
function parameter. If such a (pointer) parameter is present it gets stored
into an augmented frame record (populated in IR, but generally containing
enhanced backtrace for coroutines using lots of tail calls back and forth).

The context frame is identical to AArch64 (primarily so that unwinders etc
don't get extra complexity). Specfically, the new frame record is [AsyncCtx,
%rbp, ReturnAddr], and its presence is signalled by bit 60 of the stored %rbp
being set to 1. %rbp still points to the frame pointer in memory for backwards
compatibility (only partial on x86, but OTOH the weird AsyncCtx before the rest
of the record is because of x86).

Recommited with a fix for unwind info when i386 pc-rel thunks are
adjacent to a prologue.
The file was modifiedllvm/lib/Target/X86/X86MachineFunctionInfo.h
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was addedllvm/test/CodeGen/X86/swift-async-reg.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/swift-async.ll
Commit 6381664580080f015bc0c2ec647853f697cf744a by aaron
Introduce SYCL 2020 mode

Currently, we have support for SYCL 1.2.1 (also known as SYCL 2017).
This patch introduces the start of support for SYCL 2020 mode, which is
the latest SYCL standard available at (https://www.khronos.org/registry/SYCL/specs/sycl-2020/html/sycl-2020.html).
This sets the default SYCL to be 2020 in the driver, and introduces the
notion of a "default" version (set to 2020) when cc1 is in SYCL mode
but there was no explicit -sycl-std= specified on the command line.
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/InitPreprocessor.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/sycl.c
The file was modifiedclang/test/Preprocessor/sycl-macro.cpp
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/include/clang/Basic/LangOptions.h
Commit c42580bf2076607220c2c9c59ab7293a9b202aca by Lang Hames
[ORC] Don't try to obtain a ref to a non-existent buffer.
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
Commit bd6c93c00432ee62a238934ba0e0078ebfb63cca by Lang Hames
[ORC-RT] Add compiler abstraction header for the ORC runtime.

This header provides helper macros to insulate the rest of the ORC runtime from
compiler specifics.
The file was addedcompiler-rt/lib/orc/compiler.h
Commit 9e5f3dd9dbb0c4eb0d2d341329a780b828f70fb0 by Lang Hames
[ORC-RT] Add apply_tuple utility.

This is a substitute for std::apply, which we can't use until we move to c++17.

apply_tuple will be used in upcoming the upcoming wrapper-function utils code.
The file was modifiedcompiler-rt/lib/orc/unittests/CMakeLists.txt
The file was addedcompiler-rt/lib/orc/unittests/stl_extras_test.cpp
The file was addedcompiler-rt/lib/orc/stl_extras.h