FailedChanges

Summary

  1. flang-aarch64-ubuntu-clang: Refine the set-up for `-WError` (details)
  2. flang-aarch64-ubuntu-clang-build: increase the number of parellel jobs (details)
  3. clang-x86-ninja-win10: added LLVM_LIT_TOOLS_DIR (details)
Commit 90d5e81834d17236e3b22b67de09e94e50dcd501 by andrzej.warzynski
flang-aarch64-ubuntu-clang: Refine the set-up for `-WError`

As this builder is primiarly used for testing Flang, use -WError only
when building Flang (as opposed to all of LLVM).

Differential Revision: https://reviews.llvm.org/D88811
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit bd6fa0d220a99c6a54ade4d1f031bbb7b84f1527 by andrzej.warzynski
flang-aarch64-ubuntu-clang-build: increase the number of parellel jobs

This worker has been a bit too slow. Increase the number of parallel
jobs to speed the builds up.

Differential Revision: https://reviews.llvm.org/D88874
The file was modifiedbuildbot/osuosl/master/config/slaves.py (diff)
Commit 6bff6ac2dd4e5edb7f436890357ba692b8905346 by kuhnel
clang-x86-ninja-win10: added LLVM_LIT_TOOLS_DIR
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [Analysis] resolveAllCalls - fix use after std::move warning. NFCI. (details)
  2. [InstCombine] Add tests for or(shl(x,c1),lshr(y,c2)) patterns that could fold to funnel shifts (details)
  3. [asan] Stop instrumenting user-defined ELF sections (details)
  4. [lldb] [Process/NetBSD] Fix reading FIP/FDP registers (details)
  5. [lldb] [Process/NetBSD] Fix crash on unsupported i386 regs (details)
  6. [lldb] [test/Register] Add read/write tests for x87 regs (details)
  7. [clang][NFC] Change a mention of `objc_static_protocol` to `non_runtime` (details)
  8. Revert "[Driver] Move detectLibcxxIncludePath to ToolChain" (details)
  9. [AArch64] Match the windows canonical callee saved register order (details)
  10. [AArch64] Allow pairing lr with other GPRs for WinCFI (details)
  11. [AArch64] Prefer prologues with sp adjustments merged into stp/ldp for WinCFI, if optimizing for size (details)
  12. [LV] Add another test case with unsinkable first-order recurrences. (details)
  13. [NFC][PhaseOrdering] Add a test showing new inttoptr casts after SROA due to InstCombine (PR47592) (details)
  14. [NFC][InstCombine] Autogenerate a few tests being affected by an upcoming patch (details)
  15. [VPlan] Properly update users when updating operands. (details)
Commit dca4b7130de547860925631295acfce33130a100 by llvm-dev
[Analysis] resolveAllCalls - fix use after std::move warning. NFCI.

We can't use Use.Calls after its std::move()'d to TmpCalls as it will be in an undefined state. Instead, swap with the known empty map in TmpCalls so we can then safely emplace_back into the now empty Use.Calls.

Fixes clang static analyzer warning.
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 53fc426088d7e48272bfc37a3881a7a6fe405940 by llvm-dev
[InstCombine] Add tests for or(shl(x,c1),lshr(y,c2)) patterns that could fold to funnel shifts

Some initial test coverage toward fixing PR46896 - these are just copied from rotate.ll
The file was addedllvm/test/Transforms/InstCombine/funnel.ll
Commit 66e493f81e8e27b4a498a6dac54d404c2333fa5e by mgorny
[asan] Stop instrumenting user-defined ELF sections

Do not instrument user-defined ELF sections (whose names resemble valid
C identifiers).  They may have special use semantics and modifying them
may break programs.  This is e.g. the case with NetBSD __link_set API
that expects these sections to store consecutive array elements.

Differential Revision: https://reviews.llvm.org/D76665
The file was addedllvm/test/Instrumentation/AddressSanitizer/instrument-section-invalid-c-ident.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was addedllvm/test/Instrumentation/AddressSanitizer/do-not-instrument-netbsd-link_set.ll
Commit 80b108f404fc9e88889df7247f6ae9697083cbda by mgorny
[lldb] [Process/NetBSD] Fix reading FIP/FDP registers

Fix reading FIP/FDP registers to correctly return segment and offset
parts.  On amd64, this roughly matches the Linux behavior of splitting
the 64-bit FIP/FDP into two halves, and putting the higher 32 bits
into f*seg and lower into f*off.  Well, actually we use only 16 bits
of higher half but the CPUs do not seem to handle more than that anyway.

Differential Revision: https://reviews.llvm.org/D88681
The file was modifiedlldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
Commit 9821632056dce9e2150bab9c0fbd9b2c7da64258 by mgorny
[lldb] [Process/NetBSD] Fix crash on unsupported i386 regs

Multiple fixes related to bugs discovered while debugging a crash
when reading all registers on i386.

The underlying problem was that GetSetForNativeRegNum() did not account
for MPX registers on i386, and since it only compared against upper
bounds of each known register set, the MPX registers were classified
into the wrong set and therefore considered supported.  However, they
were not expected in RegNumX86ToX86_64() and caused the assertion
to fail.

This includes:

- adding (unused) i386 → x86_64 translations for MPX registers
- fixing GetSetForNativeRegNum() to check both lower and upper bound
  for register sets, to avoid wrongly classifying unhandled register
  sets
- adding missing range check for MPX registers on i386
- renaming k_last_mpxr to k_last_mpxr_i386 for consistency
- replacing return-assertions with llvm_unreachable() and adding more
  checks for unexpected parameters

Differential Revision: https://reviews.llvm.org/D88682
The file was modifiedlldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h
Commit 381bdc75ee2ca2fb9784ffb2f6b90accd8eab3b6 by mgorny
[lldb] [test/Register] Add read/write tests for x87 regs

Add a partial read/write tests for x87 FPU registers.  This includes
reading and writing ST registers, control registers and floating-point
exception data registers (fop, fip, fdp).

The tests assume the current (roughly incorrect) behavior of reporting
the 'abridged' 8-bit ftag state as 16-bit ftag.  They also assume Linux
plugin behavior of reporting fip/fdp split into halves as (fiseg, fioff)
and (foseg, fooff).

Differential Revision: https://reviews.llvm.org/D88583
The file was addedlldb/test/Shell/Register/x86-fp-write.test
The file was addedlldb/test/Shell/Register/x86-fp-read.test
The file was addedlldb/test/Shell/Register/x86-64-fp-write.test
The file was addedlldb/test/Shell/Register/Inputs/x86-fp-write.cpp
The file was addedlldb/test/Shell/Register/Inputs/x86-fp-read.cpp
Commit fcb0ab59335be185e05258c905ef57da9e7f3324 by nathan
[clang][NFC] Change a mention of `objc_static_protocol` to `non_runtime`
The file was modifiedclang/include/clang/AST/DeclObjC.h
Commit ba60dc0aa75e86165e260b2c08afafd1c394e95a by thakis
Revert "[Driver] Move detectLibcxxIncludePath to ToolChain"

This reverts commit e25bf2592060e7751f8b14522c97081ce2047175.
Breaks tests on Windows, see comments on https://reviews.llvm.org/D88452
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/include/c++/v1/.keep
The file was modifiedclang/include/clang/Driver/ToolChain.h
Commit 3780a4e568ac763567cc6987372e04f9e3c68ff9 by martin
[AArch64] Match the windows canonical callee saved register order

On windows, the callee saved registers in a canonical prologue are
ordered starting from a lower register number at a lower stack
address (with the possible gap for aligning the stack at the top);
this is the opposite order that llvm normally produces.

To achieve this, reverse the order of the registers in the
assignCalleeSavedSpillSlots callback, to get the stack objects
laid out by PrologEpilogInserter in the right order, and adjust
computeCalleeSaveRegisterPairs to lay them out from the bottom up.

This allows generated prologs more often to match the format that
allows the unwind info to be written as packed info.

Differential Revision: https://reviews.llvm.org/D88677
The file was addedllvm/test/CodeGen/AArch64/wineh-frame-scavenge.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame3.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh-try-catch-realign.ll
The file was modifiedllvm/test/CodeGen/AArch64/seh-finally.ll
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame1.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/win64_vararg.ll
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame0.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame5.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame4.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh_shrinkwrap.mir
The file was modifiedllvm/test/CodeGen/AArch64/sponentry.ll
The file was modifiedllvm/test/CodeGen/AArch64/wineh-try-catch.ll
The file was modifiedllvm/test/CodeGen/AArch64/wineh-frame2.mir
Commit 890af2f003c83349ff5917d80023b8b796f76489 by martin
[AArch64] Allow pairing lr with other GPRs for WinCFI

This saves one instruction per prologue/epilogue for any function with
an odd number of callee-saved GPRs, but more importantly, allows such
functions to match the packed unwind format.

Differential Revision: https://reviews.llvm.org/D88699
The file was addedllvm/test/CodeGen/AArch64/wineh-save-lrpair2.mir
The file was modifiedllvm/test/CodeGen/AArch64/win64_vararg.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was addedllvm/test/CodeGen/AArch64/wineh-save-lrpair3.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/wineh-save-lrpair1.mir
Commit 7d07405761aec8434a0cdb1c5644823a394f7def by martin
[AArch64] Prefer prologues with sp adjustments merged into stp/ldp for WinCFI, if optimizing for size

This makes the prologue match the windows canonical layout, for
cases without a frame pointer.

This can potentially be a slower (a longer dependency chain of the
sp register, and potentially one arithmetic operation more on some
cores), but gives notable size improvements.

The previous two commits shrinks a 166 KB xdata section by 49 KB,
and if the change from this commit is enabled, it shrinks the xdata
section by another 25 KB.

In total, since the start of the recent arm64 unwind info cleanups
and optimizations (since before commit 37ef743cbf3), the xdata+pdata
sections of the same test DLL has shrunk from 407 KB in total
originally, to 163 KB now.

Differential Revision: https://reviews.llvm.org/D88701
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/wineh-frame-predecrement.mir
Commit ef72591de971ee22dd47a949583fd1be38ba0d1b by flo
[LV] Add another test case with unsinkable first-order recurrences.
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
Commit 1038ce4b6bf11c9615e60b503bdb253a000a6d90 by lebedev.ri
[NFC][PhaseOrdering] Add a test showing new inttoptr casts after SROA due to InstCombine (PR47592)

We could either try to make SROA more picky to the new type
and/or prevent InstCombine from creating the original problem (converting load-stores to operate on ints),
and/or make InstCombine recover the situation by cleaning up all that cruft.
The file was addedllvm/test/Transforms/PhaseOrdering/instcombine-sroa-inttoptr.ll
Commit cd20c26622287f29f96bf8012d5aa0bd9774c7bc by lebedev.ri
[NFC][InstCombine] Autogenerate a few tests being affected by an upcoming patch
The file was modifiedllvm/test/Transforms/InstCombine/loadstore-metadata.ll
The file was modifiedllvm/test/Transforms/InstCombine/atomic.ll
The file was modifiedllvm/test/Transforms/InstCombine/non-integral-pointers.ll
Commit 82dcd383c422f03c2b399af5b94701365cdf1afa by flo
[VPlan] Properly update users when updating operands.

When updating operands of a VPUser, we also have to adjust the list of
users for the new and old VPValues. This is required once we start
transitioning recipes to become VPValues.
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h