SuccessChanges

Summary

  1. [compiler-rt] Build all alias in builtin as private external on Darwin (details)
  2. [mlir][spirv] NFC: move folders and canonicalizers in a separate file (details)
  3. Devirtualize a call on alloca without waiting for post inline cleanup and next (details)
  4. [libcxx] Fix _LIBCPP_HAS_THREAD_API_EXTERNAL build (details)
  5. [TTI] Let getOperationCost assume that Freeze is free (details)
  6. [SDAG] Add SDNode::values() = make_range(values_begin(), values_end()) (details)
  7. [lldb/test] Skip running a test under ASan, it intentionally double-frees (details)
  8. Fix buildbots after recent GSYM commit. (details)
  9. [ELF] --orphan-handling=: don't warn/error for input SHT_REL[A] retained by --emit-relocs (details)
  10. Remove unneeded Compiler.h and DataTypes.h includes, NFC (details)
  11. Inline basic_string::erase for fastpath where __n == npos (details)
Commit 387c3f74fd8efdc0be464b0e1a8033cc1eeb739c by Steven Wu
[compiler-rt] Build all alias in builtin as private external on Darwin

Summary:
For builtin compiler-rt, it is built with visibility hidden by default
to avoid the client exporting symbols from libclang static library. The
compiler option -fvisibility=hidden doesn't work on the aliases in c files
because they are created with inline assembly. On Darwin platform,
thoses aliases are exported by default if they are reference by the client.

Fix the issue by adding ".private_extern" to all the aliases if the
library is built with visibility hidden.

rdar://problem/58960296

Reviewers: dexonsmith, arphaman, delcypher, kledzik

Reviewed By: delcypher

Subscribers: dberris, jkorous, ributzka, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D73577
The file was modifiedcompiler-rt/lib/builtins/int_lib.h (diff)
Commit 1e9321e97aba43e41ccd7ab2f1bef41d5bcf65af by antiagainst
[mlir][spirv] NFC: move folders and canonicalizers in a separate file

This gives us better file organization and faster compilation time
by avoid having a gigantic SPIRVOps.cpp file.
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/CMakeLists.txt (diff)
The file was addedmlir/lib/Dialect/SPIRV/SPIRVCanonicalization.cpp
Commit 59fb9cde7a4a96fe8485a80d9010e4420ffdca82 by yamauchi
Devirtualize a call on alloca without waiting for post inline cleanup and next
DevirtSCCRepeatedPass iteration.  Needs ReviewPublic

This aims to fix a missed inlining case.

If there's a virtual call in the callee on an alloca (stack allocated object) in
the caller, and the callee is inlined into the caller, the post-inline cleanup
would devirtualize the virtual call, but if the next iteration of
DevirtSCCRepeatedPass doesn't happen (under the new pass manager), which is
based on a heuristic to determine whether to reiterate, we may miss inlining the
devirtualized call.

This enables inlining in clang/test/CodeGenCXX/member-function-pointer-calls.cpp.
The file was modifiedclang/test/CodeGenCXX/member-function-pointer-calls.cpp (diff)
The file was addedllvm/test/Transforms/Inline/devirtualize-4.ll
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp (diff)
Commit 14aef5367d0dfc2ec10ffdbbc3fb8abbc530f4d1 by mikhail.maltsev
[libcxx] Fix _LIBCPP_HAS_THREAD_API_EXTERNAL build

Summary:
The definition of `__libcpp_timed_backoff_policy` and the declaration of
`__libcpp_thread_poll_with_backoff` must not be guarded by
  #if !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)
because the definitions of `__libcpp_timed_backoff_policy::operator()`
and `__libcpp_thread_poll_with_backoff` aren't guarded by this macro
(and this is correct because these two functions are implemented in
terms of other libc++ functions and don't interact with the host
threading library).

Reviewers: ldionne, __simt__, EricWF, mclow.lists

Reviewed By: ldionne

Subscribers: dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D75191
The file was modifiedlibcxx/include/__threading_support (diff)
Commit 4f71252cf8430e60837e0e030c3d40db4c79eb99 by aqjune
[TTI] Let getOperationCost assume that Freeze is free
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)
Commit fd7c2e24c1c2ae7d0e251a86cb026710c576eaac by kparzysz
[SDAG] Add SDNode::values() = make_range(values_begin(), values_end())

Also use it in a few places to simplify code a little bit.  NFC
The file was modifiedllvm/lib/Target/Mips/MipsSEISelLowering.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAGNodes.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (diff)
Commit 7822c8c03e9fe8c857da21c4ccbe28396b43130d by Vedant Kumar
[lldb/test] Skip running a test under ASan, it intentionally double-frees
The file was modifiedlldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py (diff)
Commit e4af56db27e5007ae6f6095a0ba0421211de9ba3 by gclayton
Fix buildbots after recent GSYM commit.

Added llvm-gsymutil to LLVM_TEST_DEPENDS.
The file was modifiedllvm/test/CMakeLists.txt (diff)
Commit 37c7f0d9456b3ff4a87829ad842823da6aa2401f by maskray
[ELF] --orphan-handling=: don't warn/error for input SHT_REL[A] retained by --emit-relocs

They are purposefully skipped by input section descriptions (rL295324).
Similarly, --orphan-handling= should not warn/error for them.
This behavior matches GNU ld.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D75151
The file was modifiedlld/ELF/LinkerScript.cpp (diff)
The file was modifiedlld/test/ELF/linkerscript/emit-reloc.s (diff)
Commit 34312ed24e17a0e8269611b954e489fa7759f115 by rnk
Remove unneeded Compiler.h and DataTypes.h includes, NFC
The file was modifiedlldb/source/Utility/Timer.cpp (diff)
The file was modifiedllvm/include/llvm/Support/SwapByteOrder.h (diff)
The file was modifiedllvm/include/llvm/Support/MathExtras.h (diff)
Commit d260ea7199bce566fb4229eac5cc4c5d4843c5f0 by mvels
Inline basic_string::erase for fastpath where __n == npos

Summary:
This change checks for the case where people want to erase a string to the end, i.e., __n == npos, and inlines the call if so.

This also demonstrates keeping the ABI intact for V1, but inlining the erase() method for unstable.

Reviewers: EricWF, mclow.lists, ldionne

Reviewed By: EricWF, ldionne

Subscribers: smeenai, dexonsmith, christof, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D73743
The file was modifiedlibcxx/include/__string (diff)
The file was modifiedlibcxx/include/string (diff)