LLVM/project c46e2f7 — llvm/include/llvm/CodeGen MachineLoopUtils.h ModuloSchedule.h, llvm/lib/CodeGen MachineLoopUtils.cpp MachinePipeliner.cpp

CodeGen: Maintain the dominator tree in MachinePipeliner

LiveIntervals computes live ranges using the dominator tree, but the
modulo schedule expanders change the CFG without updating
it. Intervals computed later in the pass therefore see a tree missing
the new prolog, kernel and epilog blocks. This is latent today, but
reachability. The unregistered blocks would be incorrectly treated as
unreachable.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+64-12llvm/lib/CodeGen/ModuloSchedule.cpp
+35-12llvm/lib/CodeGen/MachinePipeliner.cpp
+15-5llvm/include/llvm/CodeGen/ModuloSchedule.h
+7-5llvm/include/llvm/CodeGen/MachineLoopUtils.h
+9-2llvm/test/CodeGen/Hexagon/swp-ws-exp.mir
+7-1llvm/lib/CodeGen/MachineLoopUtils.cpp
+137-375 files not shown
+151-4411 files

LLVM/project b5f241e — clang/docs ReleaseNotes.md, clang/lib/CodeGen CGExprCXX.cpp CGCall.cpp

[clang][CodeGen] Fix missing terminator when a new-expression initializer starts with a loop (#230902)

Fixes #175427

`EmitCXXNewExpr` marks the point where the operator delete cleanup
becomes active with a placeholder `unreachable` and erases it once the
initializer is emitted. If the initializer starts with a loop or a
label, `EmitBlock` takes that terminator as the end of the block and
emits no fall-through branch, so erasing the placeholder leaves the
block unterminated and valid code fails with "Broken module found".

The marker only has to be an instruction that the deactivation can
insert a store before, while the rest of CodeGen assumes the current
block has no terminator until a real one is written. The placeholder is
now the `i1` load from null that the other cleanup markers already use,
so the block stays open and `EmitBlock` branches normally. The same
marker in `EmitDelegateCallArg` is switched for consistency.

LLM tools were used for this contribution. 
DeltaFile
+216-0clang/test/CodeGenCXX/new-init-stmt-expr.cpp
+3-2clang/lib/CodeGen/CGCall.cpp
+2-1clang/lib/CodeGen/CGExprCXX.cpp
+1-0clang/docs/ReleaseNotes.md
+222-34 files

LLVM/project cb1276d — llvm/lib/Target/Mips MipsCodeGenPassBuilder.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+161-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+1,479-1,00917 files not shown
+2,025-1,22623 files

LLVM/project 26a235a — llvm/lib/Target/Mips Mips.h MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+123-17llvm/lib/Target/Mips/Mips.h
+1,441-1,02617 files not shown
+1,982-1,22623 files

LLVM/project 8d3d02b — llvm/lib/Transforms/Vectorize VPlanUnroll.cpp, llvm/test/Transforms/LoopVectorize/X86 replicate-recipe-with-only-first-lane-used.ll

[VPlan] Replace first lane for single-scalars in replicateByVF. (#237472)

If DefR is a single scalar, all lanes are equal and all scalar users can
use lane 0.

This fixes a crash due when trying to match an extract from a
single-scalar.

Fixes https://github.com/llvm/llvm-project/issues/237456
DeltaFile
+174-0llvm/test/Transforms/LoopVectorize/X86/replicate-recipe-with-only-first-lane-used.ll
+6-3llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
+180-32 files

LLVM/project e71afd9 — llvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-scalar-rv64.ll

[RISCV][P-ext] Add isel pattern for maccu.w01/maccu.w11 (#237122)

`maccu.w01` multiplies the zero-extended lower word of rs1 by the
zero-extended upper word of rs2 and adds the product to rd. `maccu.w11`
does the same with the zero-extended upper words of both. Both are
RV64 only.

Previously, (srl X, 32) was selected as a separate srli feeding
`maccu.w00`. Match it directly so the shift is folded. As with
`maccu.w00`, the patterns require the multiply to have a single use.
DeltaFile
+50-2llvm/test/CodeGen/RISCV/rvp-scalar-rv64.ll
+6-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+56-22 files

LLVM/project f62579a — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,384-1,07516 files not shown
+1,911-1,20122 files

LLVM/project 2e24951 — llvm/lib/Target/Mips Mips.h MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+123-17llvm/lib/Target/Mips/Mips.h
+1,441-1,02617 files not shown
+1,982-1,22623 files

LLVM/project 3c6f58a — clang/docs ReleaseNotes.md, clang/lib/Sema SemaTemplateInstantiateDecl.cpp

[Clang][OpenMP] Fix crash on failed type substitution in declare reduction/mapper (#230059)

Fixes #223366

`VisitOMPDeclareReductionDecl` passed the substituted reduction type to
`ActOnOpenMPDeclareReductionType` without checking it, so a failed
substitution (null type) hit `assert(ParsedType.isUsable())`.
`-fms-compatibility` is not needed: `typename T::type` with `T = int`
crashes too. `declare mapper` had the same bug.

Both visitors now return early when the substituted type is null. The
error is already reported by `SubstType`.

I used AI tools for assistance!
DeltaFile
+25-0clang/test/OpenMP/declare_reduction_ms_compat.cpp
+20-0clang/test/OpenMP/declare_mapper_messages.cpp
+10-6clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+16-0clang/test/OpenMP/declare_reduction_messages.cpp
+2-0clang/docs/ReleaseNotes.md
+73-65 files

LLVM/project 8d7381f — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,384-1,07516 files not shown
+1,911-1,20122 files

LLVM/project d608b28 — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,384-1,07515 files not shown
+1,864-1,18521 files

LLVM/project 7117c50 — llvm/test/Transforms/Util/DeclareRuntimeLibcalls arm.ll systemz.ll

RuntimeLibcalls: Add signatures for more runtime functions

Add type missing signatures for assorted functions which were missing
type information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+474-474llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+305-305llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+279-279llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+276-276llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+198-198llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+192-192llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm.ll
+1,724-1,72411 files not shown
+2,947-2,93317 files

LLVM/project 6d7ee4a — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Use the correct target C long width for Long

Long and ULong were mapped to the int width, which is wrong on LP64
targets (e.g. scalbln was declared taking i32 on x86_64 linux) and on
16-bit targets where long is 32 bits.

Also fix strtoul, strtoull, and the unsigned long operator new/delete
variants to use the unsigned types.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+22-22llvm/include/llvm/IR/RuntimeLibcalls.td
+14-7llvm/lib/IR/RuntimeLibcalls.cpp
+9-9llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+8-8llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+65-587 files not shown
+84-7713 files

LLVM/project 2a2b77e — llvm/test/Transforms/Util/DeclareRuntimeLibcalls sparc.ll riscv.ll

RuntimeLibcalls: Add signext/zeroext attributes to libcall signatures

Try to match TargetLibraryInfo's behavior. Integer types narrower than
int are extended according to their signedness.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+460-460llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+292-292llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+235-235llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+221-221llvm/test/Transforms/Util/DeclareRuntimeLibcalls/mips.ll
+160-160llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+160-160llvm/test/Transforms/Util/DeclareRuntimeLibcalls/riscv.ll
+1,528-1,52812 files not shown
+2,296-2,23718 files

LLVM/project ff065cf — clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

 [clang][DepScan] Introduce API to find modulemaps without loading (#235845)

Introduce a way to batch look up the modulemap that defines each of a
set of module names.

`getModuleMapsForModules` builds a compiler instance from the same
command line as a by-name scan, then does every lookup in a separate
header search with lazy modulemap loading turned on and diagnostics
ignored.
* Modulemaps passed with `-fmodule-map-file` are parsed first, all other
modules are resolved by by-name header search.

The main use case is to let the Swift dependency scanner invalidate its
serialized dependency graph without the cost of loading the referenced
modules.

resolves clang side of: rdar://190131044
DeltaFile
+185-0clang/unittests/Tooling/DependencyScannerTest.cpp
+97-6clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+33-6clang/lib/Tooling/DependencyScanningTool.cpp
+13-0clang/include/clang/Tooling/DependencyScanningTool.h
+9-0clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+337-125 files

LLVM/project 44a9885 — llvm/include/llvm/CodeGen MachineLoopUtils.h ModuloSchedule.h, llvm/lib/CodeGen MachineLoopUtils.cpp MachinePipeliner.cpp

CodeGen: Maintain the dominator tree in MachinePipeliner

LiveIntervals computes live ranges using the dominator tree, but the
modulo schedule expanders change the CFG without updating
it. Intervals computed later in the pass therefore see a tree missing
the new prolog, kernel and epilog blocks. This is latent today, but
reachability. The unregistered blocks would be incorrectly treated as
unreachable.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+64-12llvm/lib/CodeGen/ModuloSchedule.cpp
+35-12llvm/lib/CodeGen/MachinePipeliner.cpp
+15-5llvm/include/llvm/CodeGen/ModuloSchedule.h
+7-5llvm/include/llvm/CodeGen/MachineLoopUtils.h
+9-2llvm/test/CodeGen/Hexagon/swp-ws-exp.mir
+7-1llvm/lib/CodeGen/MachineLoopUtils.cpp
+137-374 files not shown
+151-4310 files

LLVM/project 1438414 — flang/lib/Evaluate check-expression.cpp, flang/lib/Semantics check-call.cpp

[flang][Semantics] Check copy-out for each consequent-arg separately

CheckExplicitDataArg() runs once for each consequent-arg of a
conditional argument, but it decided whether copy-out is needed from the
whole argument. When the consequent-args differ in contiguity, the whole
argument needs a copy, so a contiguous VOLATILE consequent-arg got the
warning that a temporary copy is required, although passing it on its
own needs no copy.

When the whole argument needs copy-out, ask ActualArgNeedsCopy() again
for the consequent-arg being checked. The whole-argument answer, which
lowering also uses, is still checked first, so the tests for
ActualArgNeedsCopy() keep exercising it.

In ActualArgNeedsCopy(), add a TODO for the INTENT(IN) copy-out
suppression, which doesn't look into the consequent-args of a
conditional argument. Only lowering can observe that gap, and lowering
doesn't support conditional arguments yet.


    [8 lines not shown]
DeltaFile
+8-0flang/lib/Semantics/check-call.cpp
+2-2flang/test/Semantics/conditional-arg-contiguity.f90
+2-0flang/lib/Evaluate/check-expression.cpp
+12-23 files

LLVM/project c082617 — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+293-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,375-1,07513 files not shown
+1,802-1,18519 files

LLVM/project fa50178 — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+302-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,384-1,07515 files not shown
+1,864-1,18521 files

LLVM/project 4be975a — llvm/lib/Transforms/Vectorize VPlanConstruction.cpp, llvm/test/Transforms/LoopVectorize multiple-strides-vectorization.ll runtime-checks-difference.ll

Reapply "[LV] Model memory runtime checks for inner loops of loop (#237464)

This reverts commit 7a0edec33d6ae6a00f3b1c276efa4bf152210235 (#237453)

The recommitted version replaces an assertion with proper handling for
VPExpandSCEVRecipe.

They compare equal regardless of ExpandInIR, but if there is a mismatch,
only the one with ExpandInIR=false can be replaced by one with
ExpandInIR=true, not the other way around.

Original message:
Remove the restriction that kept the IR-generated memcheck block for
loops with a parent loop. When hoisting runtime checks, they are
rewritten so they hold across the outer loop and are expanded before the
entry block to the VPlan, using the regular IR expander.

This patch exposes getRuntimeCheckBounds, which does the rewrite, and
marks such rewritten bounds as requiring expansion in IR. VPSCEVExpander
takes a loop as optional argument and uses VPExpandSCEVRecipes for
expressions that are invariant in the loop.
DeltaFile
+309-59llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
+83-0llvm/test/Transforms/LoopVectorize/VPlan/cse-expand-scev.ll
+31-31llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
+28-28llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
+33-17llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+15-17llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
+499-15216 files not shown
+616-21022 files

LLVM/project f2b1f9d — llvm/lib/Target/Mips MipsExpandPseudo.cpp MipsOptimizePICCall.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+293-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+135-118llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+1,375-1,07513 files not shown
+1,802-1,18519 files

LLVM/project 41a0b3e — llvm/lib/Target/Mips MipsCodeGenPassBuilder.cpp MipsExpandPseudo.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+417-427llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
+336-345llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+290-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+117-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+1,354-95712 files not shown
+1,649-1,06518 files

LLVM/project 23b5e66 — clang/test/CodeGen/AArch64/sve2 recpe.c, clang/test/CodeGen/AArch64/sve2-intrinsics acle_sve2_recpe.c

[clang][CIR] Add tests for SVE2 svrecpe intrinsics (#236314)

Tests for SVE2 svrecpe
(https://developer.arm.com/architectures/instruction-sets/intrinsics/#q=svrecpe).

Port: `clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_recpe.c` to
`clang/test/CodeGen/AArch64/sve2/recpe.c`

Part of https://github.com/llvm/llvm-project/issues/223963.
DeltaFile
+71-0clang/test/CodeGen/AArch64/sve2/recpe.c
+0-67clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_recpe.c
+71-672 files

LLVM/project 47e51e2 — compiler-rt/lib/tsan/rtl tsan_platform_linux.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+20-23compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
+20-231 files

LLVM/project 027da63 — compiler-rt/lib/tsan/rtl tsan_platform_linux.cpp

[tsan] Calibrate jmp_buf pointer mangling (#216558)

glibc 2.44 moved the pointer guard out of the TCB and added the
x86-style rotation on other mangling targets. TSan hardcodes the old
guard locations and transformations, so longjmp interception can no
longer recover the saved stack pointer.

Derive the identity, XOR, or XOR-and-rotate scheme from two _setjmp
probes at different stack depths. This supports old and new glibc and
preserves bionic lazy initialization without depending on private guard
storage.

Developed with Fable/Sol. Tested locally on 64-bit Arch Linux, which
already ships glibc 2.44. Without this change, eight existing TSan tests
fail with `ThreadSanitizer: can't find longjmp buf`; with it, the full
`check-tsan` suite passes.

Fixes #216004.
DeltaFile
+92-79compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
+92-791 files

LLVM/project f1907c9 — llvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp

[Matrix] Create the copy alloca once in getNonAliasingPointer (NFC). (#237455)

Both the different address space path and the runtime alias check path
create the same alloca in the entry block. Create it once up front.
DeltaFile
+8-13llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+8-131 files

LLVM/project eb690b9 — llvm/lib/Support KnownFPClass.cpp

[KnownFPClass][NFC] Apply denormal modes inside KnownFPClass functions (#237084)

Converts remaining `KnownFPClass` functions over to the
`applyInputDenormalMode` and `applyOutputDenormalMode` helpers. This
also switches `isKnownNeverLogicalZero(Mode)` to `isKnownNever(fcZero)`.

`KnownFPClass::canonicalize` will be handled in a separate PR.
DeltaFile
+27-27llvm/lib/Support/KnownFPClass.cpp
+27-271 files

LLVM/project eae0634 — llvm/lib/Analysis ValueTracking.cpp, llvm/lib/CodeGen/GlobalISel GISelValueTracking.cpp

[KnownFPClass] Rule out non-zero finite results for fmul and fdiv (#231052)

Follow up to https://github.com/llvm/llvm-project/pull/229638

A normal or subnormal result of `fmul`/`fdiv` requires both operands to
be non-zero finite values. In other words, we don't care if either side
could be zero, inf, or NaN when ruling out normal/subnormal values.
DeltaFile
+145-9llvm/test/Transforms/Attributor/nofpclass-fdiv.ll
+139-5llvm/test/Transforms/Attributor/nofpclass-fmul.ll
+30-19llvm/lib/Support/KnownFPClass.cpp
+44-0llvm/test/CodeGen/AArch64/GlobalISel/knownfpclass-ops.mir
+1-1llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
+1-1llvm/lib/Analysis/ValueTracking.cpp
+360-356 files

LLVM/project 7a0edec — llvm/lib/Transforms/Utils LoopUtils.cpp, llvm/lib/Transforms/Vectorize VPlanConstruction.cpp

Revert "[LV] Model memory runtime checks for inner loops of loop nests in VPlan." (#237453)

Reverts llvm/llvm-project#232794

Breaks bots, see llvm/llvm-project#232794.
DeltaFile
+60-310llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
+31-31llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
+28-28llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
+17-33llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+11-19llvm/lib/Transforms/Utils/LoopUtils.cpp
+15-13llvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
+162-43415 files not shown
+211-53021 files

LLVM/project 9f8c35a — llvm/test/CodeGen/MIR/X86 inline-asm-operand-count.mir inline-asm-func-kind.ll

Merge branch 'users/void/asm-rm-4-regallocfast-fold' into users/void/asm-rm-5-prefer-reg
DeltaFile
+38-0llvm/test/CodeGen/MIR/X86/inline-asm-func-kind.ll
+1-16llvm/test/CodeGen/MIR/X86/inline-asm-operand-count.mir
+39-162 files