SuccessChanges

Summary

  1. Also limit the number of parallel debuginfo-tests (details)
Commit 82db1ca53f02d6b9d9da834851a69bfc3baa1c2f by Adrian Prantl
Also limit the number of parallel debuginfo-tests
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake (diff)

Summary

  1. [flang] Avoid cascading error in subscript triplet (details)
  2. Unbundle KILL bundles in VirtRegRewriter (details)
  3. Fix "CHECK-LABEL: @" typos in llvm/test/CodeGen/AArch64/sve-fixed-length-*.ll (details)
  4. [MSAN RT] Use __sanitizer::mem_is_zero in __msan_test_shadow (details)
  5. [WebAssembly][ConstantFolding] Fold fp-to-int truncation intrinsics (details)
  6. [SampleFDO] Stop letting findCalleeFunctionSamples return unrelated profiles (details)
  7. [MachineOutliner][AArch64] WA for multiple stack fixup cases in MachineOutliner. (details)
  8. [XCOFF][AIX] Use TE storage mapping class when large code model is enabled (details)
  9. Fix "last accessed time" test failing on Windows (details)
  10. [AIX] Try to not use LLVM tools while building runtimes (details)
  11. [InstSimplify] Add test for expand binop undef issue (NFC) (details)
Commit 7f5928ef5a5743ee7e65c6c9d1e1c9bc6af03063 by tkeith
[flang] Avoid cascading error in subscript triplet

If a bound of a subscript triplet is present but fails to analyze
due to an error, return nullopt rather than returning a Triplet with
that bound missing. This is so we can distinguish an absent bound from
an erroneous one and avoid spurious errors.

Differential Revision: https://reviews.llvm.org/D85672
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/assign04.f90
Commit 08803f0e62e82539756b94e2655dabdbdab39014 by Stanislav.Mekhanoshin
Unbundle KILL bundles in VirtRegRewriter

SplitKit forms invalid COPY subreg bundles without a leading
BUNDLE instruction. That manifests itself in post-RA scheduler
counting instruction and asserting on "Instruction count mismatch".

The bundle shall be undone by VirtRegRewriter::expandCopyBundle(),
but it does not because VirtRegRewriter::handleIdentityCopy() can
turn COPY bundle into a KILL bundle.

Process KILLs as well.

Differential Revision: https://reviews.llvm.org/D85484
The file was modifiedllvm/lib/CodeGen/VirtRegMap.cpp
The file was addedllvm/test/CodeGen/AMDGPU/splitkit-copy-bundle.mir
Commit ab6a517ea41e1cb63856cce6f7fa4a196ffca368 by paul.walker
Fix "CHECK-LABEL: @" typos in llvm/test/CodeGen/AArch64/sve-fixed-length-*.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-arith.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-log.ll
Commit c0b5000bd848303320c03f80fbf84d71e74518c9 by guiand
[MSAN RT] Use __sanitizer::mem_is_zero in __msan_test_shadow

The former function is particularly optimized for exactly the
use case we're interested in: an all-zero buffer.

This reduces the overhead of calling this function some 80% or
more. This is particularly for instrumenting code heavy with
string processing functions, like grep. An invocation of grep
with the pattern '[aeiou]k[aeiou]' has its runtime reduced by
~75% with this patch

Differential Revision: https://reviews.llvm.org/D84961
The file was modifiedcompiler-rt/lib/msan/msan.cpp
Commit 514445e0353e82fa0bd59eeea437499500e232cd by tlively
[WebAssembly][ConstantFolding] Fold fp-to-int truncation intrinsics

Constant fold both the trapping and saturating versions of the
WebAssembly truncation intrinsics. The tests are adapted from the
WebAssembly spec tests for the corresponding instructions.

Requested in PR46982.

Differential Revision: https://reviews.llvm.org/D85392
The file was addedllvm/test/Analysis/ConstantFolding/WebAssembly/trunc.ll
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was addedllvm/test/Analysis/ConstantFolding/WebAssembly/trunc_saturate.ll
Commit 4cd8e9b169f4dc5dde19807585c86f6d6113d3ff by wmi
[SampleFDO] Stop letting findCalleeFunctionSamples return unrelated profiles
for invoke instructions.

We see a warning of "No debug information found in function foo: Function
profile not used" in a case. The function foo is called by an invoke
instruction. It has no debug information because it has attribute((nodebug))
in the definition. It shouldn't have profile instance in the sample profile
but compiler thinks it does, that turns out to be a compiler bug in
findCalleeFunctionSamples. The bug is exposed when sample-profile-merge-inlinee
is enabled recently.

Currently in findCalleeFunctionSamples, CalleeName is unset and is empty for
invoke instruction. For empty CalleeName, findFunctionSamplesAt will treat
the call as an indirect call and will return any inline instance profile at
the same location as the instruction. That leads to a wrong profile being
returned to function foo.

The patch set CalleeName when the instruction is an invoke.

Differential Revision: https://reviews.llvm.org/D85664
The file was addedllvm/test/Transforms/SampleProfile/nodebug-error.ll
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp
Commit 7bc03f55539f7f081daea5363f2e4845b2e75f57 by puyan
[MachineOutliner][AArch64] WA for multiple stack fixup cases in MachineOutliner.

In cases where MachineOutliner candidates either are:

  * noreturn
  * have calls with no available LR or free regs
  * Don't use SP

we can end up hitting stack fixup code for the caller and the callee for
a FrameID of MachineOutlinerDefault. This triggers the assert:

  `assert(OF.FrameConstructionID != MachineOutlinerDefault &&
          "Can only fix up stack references once");`

in AArch64InstrInfo.cpp. This assert exists for now because a lot of the
fixup code is not tested to handle fixing up more than once and needs
some better checks and enhancements to avoid potentially generating
illegal code.

I've filed a Bugzilla report to track this until these cases are handled
by the AArch64 MachineOutliner: https://bugs.llvm.org/show_bug.cgi?id=46767

This diff detects cases that will cause these multiple stack fixups and
prune the Candidates from `RepeatedSequenceLocs`.

    Differential Revision: https://reviews.llvm.org/D83923
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-noreturn-no-stack.mir
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-no-noreturn-no-stack.mir
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-2fixup-blr-terminator.mir
Commit 20abff0481d598c850d2690083f90700fc8c9603 by jasonliu
[XCOFF][AIX] Use TE storage mapping class when large code model is enabled

Summary:
Use TE SMC instead of TC SMC in large code model mode,
so that large code model TOC entries could get placed after all
the small code model TOC entries, which reduces the chance of TOC overflow.

Reviewed By: Xiangling_L

Differential Revision: https://reviews.llvm.org/D85455
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/lower-globaladdr32-aix-asm.ll
The file was modifiedllvm/lib/MC/MCSectionXCOFF.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-jump-table.ll
The file was modifiedllvm/include/llvm/Target/TargetLoweringObjectFile.h
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-constant-pool-index.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-lower-block-address.ll
The file was modifiedllvm/test/CodeGen/PowerPC/lower-globaladdr64-aix-asm.ll
Commit a680ea2c720751a3d724fd8282515924acb3bd32 by alexandre.ganea
Fix "last accessed time" test failing on Windows

Before this patch, the tests in llvm/test/tools/llvm-objcopy/ELF/strip-preserve-atime.test used to fail on my machine, because the "last accessed time" is disabled in the OS by default since Windows XP. One needs to explicitly enable it for the feature to work. Otherwise the last access time is the last write time. Please see: https://superuser.com/questions/251263/the-last-access-date-is-not-changed-even-after-reading-the-file-on-windows-7

    Differential Revision: https://reviews.llvm.org/D85669
The file was modifiedllvm/test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
Commit 50dd75c8e0b81815c6da209d5a3dd7bf899d1262 by daltenty
[AIX] Try to not use LLVM tools while building runtimes

Since 64-bit XCOFF and the big AR format is not yet supported in some of these tools, this patch avoids additional setup of these tools. This patch is not intended to prevent picking up the LLVM tools if they happen to be available otherwise.

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D85329
The file was modifiedllvm/runtimes/CMakeLists.txt
Commit 566a66703f020996d07191323ae8ad6f7ad827b3 by nikita.ppv
[InstSimplify] Add test for expand binop undef issue (NFC)

Add test case from https://reviews.llvm.org/D83360#2146539.
The file was modifiedllvm/test/Transforms/InstSimplify/select.ll