1. [ARM][MVE] Enable MVE gathers and scatters by default (details)
  2. [llvm][CodeGen] Machine Function Splitter (details)
  3. [gn build] Port 94faadaca4e (details)
  4. [lldb/test] Use @skipIfWindows for PExpectTest (details)
  5. [lldb] Fix typo in disassemble_options_line description (details)
  6. [lldb/test] Use shorter test case names in TestStandardUnwind (details)
  7. [CodeGenPrepare] Zap the argument of llvm.assume when deleting it (details)
  8. Strength-reduce SmallVectors to arrays. NFCI. (details)
  9. [ARM] Skip combining base updates for vld1x NEON intrinsics (details)
  10. Skip analysis re-computation when no changes are reported (details)
  11. [LIBOMPTARGET]Do not try to optimize bases for the next parameters. (details)
  12. [InstCombine] usub.sat(a, b) + b => umax(a, b) (PR42178) (details)
  13. [SROA] Improve handleling of assumes bundles by SROA (details)
Commit 064981f0cee47b140e94ca7df6c24102514af6f0 by anna.welker
[ARM][MVE] Enable MVE gathers and scatters by default

Enable MVE gather/scatters by default, which requires some
minor adaptations in some tests.

Differential revision:
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind16-unscaled.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-optimisation-deep.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-opt.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ptrs.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ind32-unscaled.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind16-scaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-increment.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ind16-unscaled.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind32-unscaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-tailpred.ll
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind32-scaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ind16-scaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ind8-unscaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ptrs.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-increment.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-ind8-unscaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-ptr-address.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-tailpred.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-ind32-scaled.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
Commit 94faadaca4e1704f674d2e9d4a1d25643b9ca52c by snehasishk
[llvm][CodeGen] Machine Function Splitter

We introduce a codegen optimization pass which splits functions into hot and cold
parts. This pass leverages the basic block sections feature recently
introduced in LLVM from the Propeller project. The pass targets
functions with profile coverage, identifies cold blocks and moves them
to a separate section. The linker groups all cold blocks across
functions together, decreasing fragmentation and improving icache and
itlb utilization.

We evaluated the Machine Function Splitter pass on clang bootstrap and
SPECInt 2017.

For clang bootstrap we observe a mean 2.33% runtime improvement with a
~32% reduction in itlb and stlb misses. Additionally, L1 icache misses
reduced by 9.5% while L2 instruction misses reduced by 20%.

For SPECInt we report the change in IntRate the C/C++
benchmarks. All benchmarks apart from mcf and x264 improve, on average
by 0.6% with the max for deepsjeng at 1.6%.

Benchmark % Change
500.perlbench_r 0.78
502.gcc_r 0.82
505.mcf_r -0.30
520.omnetpp_r 0.18
523.xalancbmk_r 0.37
525.x264_r -0.46
531.deepsjeng_r 1.61
541.leela_r 0.83
557.xz_r 0.15

Differential Revision:
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was modifiedllvm/include/llvm/CodeGen/CommandFlags.h
The file was addedllvm/lib/CodeGen/MachineFunctionSplitter.cpp
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was addedllvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
The file was addedllvm/test/CodeGen/X86/machine-function-splitter.ll
Commit 73f4317ffd5608de4e56bb39faf595acd01dca95 by llvmgnsyncbot
[gn build] Port 94faadaca4e
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/
Commit e5e05ecf65aba836802154279efbc8cbce6fe2ea by rupprecht
[lldb/test] Use @skipIfWindows for PExpectTest

Annotating `PExpectTest` with `@skipIfWindows` instead of marking it as an empty class will make the test runner recognize it as a test class, which should allow me to reland adb5c23f8c0d60eeec41dcbe21d1b26184e1c97d.

I don't have a windows machine to verify this works, but I did some tests using `@skipIfLinux` and they all worked as expected. In case the `pexpect` import is not at all available on windows, I moved it to within the method where it's used.

Reviewed By: labath

Differential Revision:
The file was modifiedlldb/packages/Python/lldbsuite/test/
Commit cdc18163cd1449c3a1c20e65a4d95a35ba3f6c23 by Jonas Devlieghere
[lldb] Fix typo in disassemble_options_line description
The file was modifiedlldb/source/Commands/
Commit 8bd895cac0cd4eaf76b9bb296a995e5ee485205b by rupprecht
[lldb/test] Use shorter test case names in TestStandardUnwind

TestStandardUnwind uses the full absolute path to a set of C/C++ files as the test case name, which in turn is used in the name of a log file. When the source file is long, and the directory where log files are stored is also long, this causes an OSError because the log filename is too long.

Reviewed By: JDevlieghere

Differential Revision:
The file was modifiedlldb/test/API/functionalities/unwind/standard/
Commit 52cc97a0db2d4c20655d4df7f2ae5c087ee5807b by benny.kra
[CodeGenPrepare] Zap the argument of llvm.assume when deleting it

We know that the argument is mostly likely dead, so we can purge it
early. Otherwise it would make it to codegen, and can block further
The file was addedllvm/test/Transforms/CodeGenPrepare/X86/delete-assume-dead-code.ll
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
Commit 8782c727655942c9aa4c80d698c9ba575510799c by benny.kra
Strength-reduce SmallVectors to arrays. NFCI.
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
Commit 5f1cad4d296a20025f0b3ea30d82b278ddb8779b by sjoerd.meijer
[ARM] Skip combining base updates for vld1x NEON intrinsics

Skip this for now, to avoid a backend crash in:

  UNREACHABLE executed at llvm/lib/Target/ARM/ARMISelLowering.cpp:13412

This should fix PR45824.

Differential Revision:
The file was addedllvm/test/CodeGen/ARM/pr45824.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit 2296182181521c0b1803a0cd10b098fcfdab1c92 by sguelton
Skip analysis re-computation when no changes are reported

This is a follow-up to, generalized to
CallGraphSCC, Loop and Region

Differential Revision:
The file was modifiedllvm/lib/Analysis/CallGraphSCCPass.cpp
The file was modifiedllvm/lib/Analysis/LoopPass.cpp
The file was modifiedllvm/lib/Analysis/RegionPass.cpp
Commit 6aa7228a629d81af78d4f701b7defb701f4b9283 by a.bataev
[LIBOMPTARGET]Do not try to optimize bases for the next parameters.

PrivateArgumentManager shall immediately allocate firstprivates if they
are bases for the next parameters and the next paramaters rely on the
fact that the base musst be allocated already.

Differential Revision:
The file was addedopenmp/libomptarget/test/mapping/lambda_mapping.cpp
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
Commit ffe05dd12593f979f235cd34fd467a4c30e051f8 by nikita.ppv
[InstCombine] usub.sat(a, b) + b => umax(a, b) (PR42178)

Fixes by folding
usub.sat(a, b) + b to umax(a, b). The backend will expand umax
back to usubsat if that is profitable.

We may also want to handle uadd.sat(a, b) - b in the future.

Differential Revision:
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
The file was modifiedllvm/test/Transforms/InstCombine/saturating-add-sub.ll
Commit 6d3657417e0c75611fc52c4adefa0cdf27e89fb1 by tyker
[SROA] Improve handleling of assumes bundles by SROA

This patch fixes this crash
And gives SROA the ability to remove assumes if it allows promoting an alloca to register
Without removing assumes when it can't promote to register.

Reviewed By: jdoerfert

Differential Revision:
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/include/llvm/IR/Value.h
The file was addedllvm/test/Transforms/SROA/assume.ll
The file was modifiedllvm/test/Transforms/SROA/ignore-droppable.ll