SuccessChanges

Summary

  1. [sanitizers] Remove unneeded MaybeCall*DefaultOptions() and nullptr checks (details)
  2. RISCVMatInt.h - remove unnecessary includes. NFCI. (details)
  3. CFGUpdate.h - remove unused APInt include. NFCI. (details)
  4. Revert "[ARM] Follow AACPS standard for volatile bit-fields access width" (details)
  5. Add detailed reference for the SearchableTables backend. (details)
  6. [X86] SSE4_A should only imply SSE3 not SSSE3 in the frontend. (details)
  7. [Coroutine] Make dealing with alloca spills more robust (details)
  8. [InstCombine] Fold abs of known negative operand (details)
  9. [InstCombine] Test comparison of abs with int min (NFC) (details)
  10. [InstCombine] Fold comparison of abs with int min (details)
  11. Update clang/test/Driver/darwin-infer-simulator-sdkroot.c (details)
  12. [llvm-install-name-tool] Add a test with multiple input files (details)
  13. [LLD][ELF] Fix performance of MarkLive::scanEhFrameSection (details)
  14. [UnifyFunctionExitNodes] Remove unused getters, NFC (details)
  15. Retry of D84974 (details)
  16. [InstCombine] Add tests for known bits for min/max intrinsics (NFC) (details)
  17. [ValueTracking] Compute known bits of min/max intrinsics (details)
Commit 2d7fd38cf7db18edbbfa0e6dfb7454a255171867 by i
[sanitizers] Remove unneeded MaybeCall*DefaultOptions() and nullptr checks

D28596 added SANITIZER_INTERFACE_WEAK_DEF which can guarantee `*_default_options` are always defined.
The weak attributes on the `__{asan,lsan,msan,ubsan}_default_options` declarations can thus be removed.

`MaybeCall*DefaultOptions` no longer need nullptr checks, so their call sites can just be replaced by `__*_default_options`.

Reviewed By: #sanitizers, vitalybuka

Differential Revision: https://reviews.llvm.org/D87175
The file was modifiedcompiler-rt/lib/msan/msan_interface_internal.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_flags.cpp
The file was modifiedcompiler-rt/lib/msan/msan.cpp
The file was modifiedcompiler-rt/lib/lsan/lsan_common.cpp
The file was modifiedcompiler-rt/lib/asan/asan_interface_internal.h
The file was modifiedcompiler-rt/lib/lsan/lsan.cpp
The file was modifiedcompiler-rt/lib/ubsan/ubsan_flags.cpp
The file was modifiedcompiler-rt/lib/cfi/cfi.cpp
The file was modifiedcompiler-rt/lib/asan/asan_flags.cpp
The file was modifiedcompiler-rt/lib/ubsan/ubsan_flags.h
The file was modifiedcompiler-rt/lib/hwasan/hwasan.cpp
Commit 0dacf3b5ac3a8c4079b781c788f758709345883f by llvm-dev
RISCVMatInt.h - remove unnecessary includes. NFCI.

Add APInt forward declaration and move include to RISCVMatInt.cpp
The file was modifiedllvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp
The file was modifiedllvm/lib/Target/RISCV/Utils/RISCVMatInt.h
Commit cd5c5c484830e65854cc12cb64a0feb0a9060734 by llvm-dev
CFGUpdate.h - remove unused APInt include. NFCI.
The file was modifiedllvm/include/llvm/Support/CFGUpdate.h
Commit d6f3f612318f31c46b95dd62eee45a75397ccfcf by ties.stuij
Revert "[ARM] Follow AACPS standard for volatile bit-fields access width"

This reverts commit 514df1b2bb1ecd1a33327001ea38a347fd2d0380.

Some of the buildbots got llvm-lit errors on CodeGen/volatile.c
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/CodeGen/CGRecordLayoutBuilder.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/CodeGen/CGRecordLayout.h
The file was modifiedclang/test/CodeGen/aapcs-bitfield.c
The file was modifiedclang/test/CodeGen/bitfield-2.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
Commit 1f870bd9284ad55dff96ab6f99afd92fd5f294be by paul
Add detailed reference for the SearchableTables backend.
The file was modifiedllvm/docs/TableGen/BackEnds.rst
Commit e6bb4c8e7b3e27f214c9665763a2dd09aa96a5ac by craig.topper
[X86] SSE4_A should only imply SSE3 not SSSE3 in the frontend.

SSE4_1 and SSE4_2 due imply SSSE3. So I guess I got confused when
switching the code to being table based in D83273.

Fixes PR47464
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c
Commit 59a467ee4faeee5b569960e53a76a0311d050d18 by xun
[Coroutine] Make dealing with alloca spills more robust

D66230 attempted to fix a problem where when there are allocas used before CoroBegin.
It keeps allocas and their uses stay in put if there are no escapse/changes to the data before CoroBegin.
Unfortunately that's incorrect.
Consider this code:

%var = alloca i32
%1 = getelementptr .. %var; stays put
%f = call i8* @llvm.coro.begin
store ... %1
After this fix, %1 will now stay put, however if a store happens after coro.begin and hence modifies the content, this change will not be reflected in the coroutine frame (and will eventually be DCEed).
To generalize the problem, if any alias ptr is created before coro.begin for an Alloca and that alias ptr is latter written into after coro.begin, it will lead to incorrect behavior.

There are also a few other minor issues, such as incorrect dominate condition check in the ptr visitor, unhandled memory intrinsics and etc.
Ths patch attempts to fix some of these issue, and make it more robust to deal with aliases.

While visiting through the alloca pointer, we also keep track of all aliases created that will be used after CoroBegin. We track the offset of each alias, and then reacreate these aliases after CoroBegin using these offset.
It's worth noting that this is not perfect and there will still be cases we cannot handle. I think it's impractical to handle all cases given the current design.
This patch makes it more robust and should be a pure win.
In the meantime, we need to think about what how to completely elimiante these issues, likely through the route as @rjmccall mentioned in D66230.

Differential Revision: https://reviews.llvm.org/D86859
The file was modifiedllvm/test/Transforms/Coroutines/coro-param-copy.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
Commit e97f3b1b4327f9db0ca12cdd7157c304ad206802 by nikita.ppv
[InstCombine] Fold abs of known negative operand

If we know that the abs operand is known negative, we can replace
it with a neg.

To avoid computing known bits twice, I've removed the fold for the
non-negative case from InstSimplify. Both the non-negative and the
negative case are handled by InstCombine now, with one known bits call.

Differential Revision: https://reviews.llvm.org/D87196
The file was modifiedllvm/test/Transforms/InstCombine/abs-intrinsic.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/abs_intrinsic.ll
Commit 6eef387ddd863db1afe044e208bbff4366d5dac2 by nikita.ppv
[InstCombine] Test comparison of abs with int min (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/abs-intrinsic.ll
Commit f6b87da0c73fcf7f8f051151ce62d2e07a466a8e by nikita.ppv
[InstCombine] Fold comparison of abs with int min

If the abs is poisoning, this is already folded to true/false.
For non-poisoning abs, we can convert this to a comparison with
the operand.
The file was modifiedllvm/test/Transforms/InstCombine/abs-intrinsic.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit d95ef009bd502a1c2c82952d4fa6fd1db836cef9 by Azharuddin Mohammed
Update clang/test/Driver/darwin-infer-simulator-sdkroot.c

- Fix it to work on Apple Silicon
- Add testcases for simulators running on Apple Silicon
The file was modifiedclang/test/Driver/darwin-infer-simulator-sdkroot.c
Commit ce49b7d9ca01f4abbba1e5a00339d539b0ea563e by alexshap
[llvm-install-name-tool] Add a test with multiple input files

This diff adds a test which checks the error-message when multiple input files
are passed to llvm-install-name-tool.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D87268
The file was modifiedllvm/test/tools/llvm-objcopy/tool-help-message.test
Commit 863aa0a37bd1a57b0720eda6d646f9abd51bf6c2 by andrew.ng
[LLD][ELF] Fix performance of MarkLive::scanEhFrameSection

MarkLive::scanEhFrameSection is used to retain personality/LSDA
functions when --gc-sections is enabled.

Improve its performance by only iterating over the .eh_frame relocations
that need to be resolved for an EhSectionPiece. This optimization makes
the same assumption as elsewhere in LLD that the .eh_frame relocations
are sorted by r_offset.

This appears to be a performance regression introduced in commit
e6c24299d237 (https://reviews.llvm.org/D59800).

This change has been seen to reduce link time by up to ~50%.

Differential Revision: https://reviews.llvm.org/D87245
The file was modifiedlld/ELF/MarkLive.cpp
Commit 17dce2fe43c9d3335d64936ece576b0e36d8fe31 by david.stenberg
[UnifyFunctionExitNodes] Remove unused getters, NFC

The get{Return,Unwind,Unreachable}Block functions in
UnifyFunctionExitNodes have not been used for many years,
so just remove them.

Reviewed By: bjope

Differential Revision: https://reviews.llvm.org/D87078
The file was modifiedllvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
Commit 5b2b4f331d78f326e5e29166bec5ad92c864343d by walter erquinigo
Retry of D84974

The test is being disabled on Linux, as lldb-vscode has a bug with
--wait-for on LInux.
I'm also fixing some compilation warnings.
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/main.c
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.cpp
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/Makefile
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.h
The file was modifiedlldb/tools/lldb-vscode/VSCode.h
The file was modifiedlldb/tools/lldb-vscode/package.json
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp
Commit 8927c900697adf313fb5f11a09a03f1451439403 by nikita.ppv
[InstCombine] Add tests for known bits for min/max intrinsics (NFC)

We already have test coverage for the underlying calculation,
this just checked that the folding is wired up...
The file was addedllvm/test/Transforms/InstCombine/minmax-intrinsics.ll
Commit 8453fbf0889e22cf9bbb74c65e36cf8abbcec7b4 by nikita.ppv
[ValueTracking] Compute known bits of min/max intrinsics

Implement known bits for the min/max intrinsics based on the
recently added KnownBits primitives.
The file was modifiedllvm/test/Transforms/InstCombine/minmax-intrinsics.ll
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp