FailedChanges

Summary

  1. [UpdateTestChecks] Allow $ in function names (details)
  2. [aarch64][tests] Add tests which show current lack of implicit null support (details)
  3. [flang][msvc] Work around if constexpr (false) evaluation. NFC. (details)
  4. [X86] Add test case for a masked load mask becoming all ones after type legalization. (details)
  5. [DAGCombiner] Teach visitMLOAD to replace an all ones mask with an unmasked load (details)
  6. [lsan] Share platform allocator settings between ASan and LSan (details)
  7. Revert "[lsan] Share platform allocator settings between ASan and LSan" (details)
  8. [ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings. (details)
  9. Revert "Do not apply calling conventions to MSVC entry points" (details)
  10. [AMDGPU] gfx1030 test update. NFC. (details)
  11. [NFC][LSAN] Change SuspendedThreadsList interface (details)
  12. [ELF] Bump the limit of thunk creation passes from 10 to 15 (details)
  13. [NFC][regalloc] type LiveInterval::reg() as Register (details)
  14. [obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name. (details)
  15. [lldb/test] Enable faulthandler in dotest (details)
Commit ce0eb81c72749d1e96cfc6fb68af3c24b63753cc by David A Greene
[UpdateTestChecks] Allow $ in function names

Some compilers generation functions with '$' in their names, so recognize those
functions.

This also requires recognizing function names inside quotes in some contexts in
order to escape certain characters.

Differential Revision: https://reviews.llvm.org/D82995
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/lanai-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/systemz-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/aarch64-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/ppc-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/msp430-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/sparc-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/hexagon-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/arm-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/riscv_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/riscv-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/amdgpu-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/wasm-function-name.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/riscv_function_name.ll.expected
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/mips-function-name.test
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_function_name.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/function_name.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_function_name.ll.expected
Commit 7af4f44c3e3dfb4483fb4dcc200f9376e96d6208 by listmail
[aarch64][tests] Add tests which show current lack of implicit null support

I will be posting a patch which adds appropriate target support shortly; landing the tests so that the diffs are clear.
The file was addedllvm/test/CodeGen/AArch64/implicit-null-check.ll
Commit dee4686227842aa0e8380c7925049a5df9c4f781 by llvm-project
 [flang][msvc] Work around if constexpr (false) evaluation. NFC.

MSVC tries to expand templates that are in the false-branch of a `if constexpr` construct. In this case, the condition checks whether a tuple has at least one element and then is trying to access it using `std::get<0>`, which fails when the tuple has 0 elements.

The workaround is to extract that case into a separate method.

This patch is part of the series to make flang compilable with MS Visual Studio <http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html>.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D87728
The file was modifiedflang/lib/Parser/basic-parsers.h
Commit 65ef2e50a29630f9f0fba4899045c0058dacfcb0 by craig.topper
[X86] Add test case for a masked load mask becoming all ones after type legalization.

We should be able to turn this into a unmasked load. X86 has an
optimization to detect that the first and last element aren't masked
and then turn the whole thing into an unmasked load and a blend.
That transform is disabled on avx512 though.

But if we know the blend isn't needed, then the unmasked load by
itself should always be profitable.
The file was modifiedllvm/test/CodeGen/X86/masked_load.ll
Commit 89ee4c0314bd08143d954d80bf7678d3a3ecc15a by craig.topper
[DAGCombiner] Teach visitMLOAD to replace an all ones mask with an unmasked load

If we have an all ones mask, we can just a regular masked load. InstCombine already gets this in IR. But the all ones mask can appear after type legalization.

Only avx512 test cases are affected because X86 backend already looks for element 0 and the last element being 1. It replaces this with an unmasked load and blend. The all ones mask is a special case of that where the blend will be removed. That transform is only enabled on avx2 targets. I believe that's because a non-zero passthru on avx2 already requires a separate blend so its more profitable to handle mixed constant masks.

This patch adds a dedicated all ones handling to the target independent DAG combiner. I've skipped extending, expanding, and index loads for now. X86 doesn't use index so I don't know much about it. Extending made me nervous because I wasn't sure I could trust the memory VT had the right element count due to some weirdness in vector splitting. For expanding I wasn't sure if we needed different undef handling.

Differential Revision: https://reviews.llvm.org/D87788
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/masked_load.ll
Commit c57df3dc09e8b59c55c83ba5c354569a82a5c3b8 by phosek
[lsan] Share platform allocator settings between ASan and LSan

This moves the platform-specific parameter logic from asan into
sanitizer_common so lsan can reuse it.

Patch By: mcgrathr

Differential Revision: https://reviews.llvm.org/D85930
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator.h
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
The file was modifiedcompiler-rt/lib/lsan/lsan_allocator.h
Commit e3fe203ec7f766ad6028144d266557b0d89b77fe by phosek
Revert "[lsan] Share platform allocator settings between ASan and LSan"

This reverts commit c57df3dc09e8b59c55c83ba5c354569a82a5c3b8 which broke
Windows sanitizer bots.
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
The file was modifiedcompiler-rt/lib/lsan/lsan_allocator.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator.h
Commit 9a0d1b66730c8761a5da59351bf1c7666958130b by Lang Hames
[ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings.
The file was modifiedllvm/include/llvm-c/Orc.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
Commit bebfc3b92d5e8dd1b1d75d40d5d03975957eec14 by akhuang
Revert "Do not apply calling conventions to MSVC entry points"

This reverts commit 4cff1b40dacf6a5489b09657d94ea4757b8cd3b0.

Caused "undefined symbol: _WinMain@16" link errors.
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/CodeGenCXX/default_calling_conv.cpp
Commit a45cdb311f6e71fdf5452a4be9037f3fb028f1d1 by Stanislav.Mekhanoshin
[AMDGPU] gfx1030 test update. NFC.
The file was modifiedllvm/test/MC/AMDGPU/smem.s
Commit cd13476ab57b43b66831bba14206a350c5a4a81b by Vitaly Buka
[NFC][LSAN] Change SuspendedThreadsList interface

Remove RegisterCount and let GetRegistersAndSP to resize buffer as needed.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87747
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/lsan/lsan_common.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
Commit 15f0ad2fa29beaf1dad1548ccb97c2c729ea53cd by maskray
[ELF] Bump the limit of thunk creation passes from 10 to 15

I have noticed that a 374MiB powerpc64le 'ld.lld' requires 11 passes to link.
There is a ThunkSection (whose parent OutputSection is ".text" of 169MiB) with 12867 thunks.
The file was modifiedlld/ELF/Writer.cpp
Commit aa2ba67a8137040b9146d0383c74f0b75ac9683a by mtrofin
[NFC][regalloc] type LiveInterval::reg() as Register

We have the Register type which precisely captures the role of this
member. Storage-wise, it's an unsigned.

This helps readability & maintainability.

Differential Revision: https://reviews.llvm.org/D87768
The file was modifiedllvm/include/llvm/CodeGen/LiveInterval.h
Commit b1cb9d6271263b197ba53cac28a0fc3bf27ec5b8 by rahmanl
[obj2yaml] - Match ".stack_size" with the original section name, and not the uniquified name.

Without this patch, obj2yaml decodes the content of only one ".stack_size" section. Other sections are dumped with their full contents.

Reviewed By: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D87727
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
Commit dd67581407c1693e43ac8a90b3a20c597614bda8 by rupprecht
[lldb/test] Enable faulthandler in dotest

Register the `faulthandler` module so we can see what lldb tests are doing when they misbehave (e.g. run under a test runner that sets a timeout). This will print a stack trace for the following signals:

- `SIGSEGV`, `SIGFPE`, `SIGABRT`, `SIGBUS`, and `SIGILL` (via `faulthandler.enable()`)
- `SIGTERM` (via `faulthandler.register(SIGTERM)`) [This is what our test runners sends when it times out].

The only signal we currently handle is `SIGINT` (via `unittest2.signals.installHandler()`) so there should be no overlap added by this patch.

Because this import is not available until python3, and the `register()` method is not available on Windows, this is enabled defensively.

This should have absolutely no effect when tests are passing (or even normally failing), but can be observed by running this while ninja is running:

```
kill -s SIGTERM $(ps aux | grep dotest.py | head -1 | awk '{print $2}')
```

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87637
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py