LLVM/project 3920bc6llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/Target/MSP430 MSP430ISelLowering.h

[TargetLowering] Change the `softPromoteHalfType` default to `true` (#175149)

The default `f16` lowering has some issues that result in incorrect
float behavior, so over time most targets have switched to use
`softPromoteHalfType`. Swap to soft promotion by default and add
overrides for SystemZ and AMDGPU, which are the two remaining backends
that still depend on this behavior.

All basic `f16` op tests now pass on all remaining experimental arches.

Fixes: https://github.com/llvm/llvm-project/issues/97981
Fixes: https://github.com/llvm/llvm-project/issues/97975
DeltaFile
+56-59llvm/test/CodeGen/Generic/half-op.ll
+13-5llvm/include/llvm/CodeGen/TargetLowering.h
+2-6llvm/lib/Target/MSP430/MSP430ISelLowering.h
+0-2llvm/lib/Target/VE/VEISelLowering.h
+0-2llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
+0-2llvm/lib/Target/X86/X86ISelLowering.h
+71-7616 files not shown
+74-10322 files

LLVM/project 99ab1ddllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Implement SimplifyDemandedFPClass for sqrt (#173883)

DeltaFile
+38-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+10-19llvm/lib/Analysis/ValueTracking.cpp
+24-0llvm/lib/Support/KnownFPClass.cpp
+9-14llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
+4-0llvm/include/llvm/Support/KnownFPClass.h
+85-335 files

LLVM/project 1cb9b79llvm/test/tools/UpdateTestChecks/update_test_checks keep-label-name.test, llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs keep-label-name.ll keep-label-name.ll.expected

[UTC] Align label var handling of old lines to new lines (#173850)

BB labels have been treated as variables in newer UTC versions. 

However, UTC previously handled BB labels in old lines differently from
new lines, causing incorrect `remap_metavar_names`.

E.g., 
- New lines var `exit:` and `label %exit`: UTC generalized them as
`[[@@]]` and `[[@@]]`.
- Old lines var `[[EXIT]]:` and `label %[[EXIT]]`: UTC generalized them
as `[[@@]]:` and `label %[[@@]]`, which mismatched with the
generalization of new lines.

This mismatch might cause unexpected variable name remappings, even if
the new lines are indeed equivalent to the old lines.

This PR aligns label var handling of old lines to new lines, i.e.,
generalizes `[[EXIT]]:` and `label %[[EXIT]]` as `[[@@]]` and `[[@@]]`.
DeltaFile
+57-0llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/keep-label-name.ll
+57-0llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/keep-label-name.ll.expected
+8-2llvm/utils/UpdateTestChecks/common.py
+3-0llvm/test/tools/UpdateTestChecks/update_test_checks/keep-label-name.test
+125-24 files

LLVM/project d620ea7llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize epilog-vectorization-reductions.ll

[LV] Handle live-ins in findRecipe.

Skip live-ins in findRecipe to prevent a crash for cases with degenerate
reductions (where the backedge value is a live-in). Such reductions
should be removed, but this requires further changes.

Fixes https://github.com/llvm/llvm-project/issues/175229.
DeltaFile
+99-0llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+3-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+102-12 files

LLVM/project 9eac606llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-rounding-intrinsics.ll

ceil to -0
DeltaFile
+2-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+1-2llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-rounding-intrinsics.ll
+3-32 files

LLVM/project bf5cc66llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

Zero implies normal
DeltaFile
+2-2llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+2-21 files

LLVM/project 0c33852llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

Remove parentheses
DeltaFile
+1-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+1-11 files

LLVM/project 69b5dd1llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

format
DeltaFile
+3-2llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+3-21 files

LLVM/project da9e433llvm/lib/Analysis ValueTracking.cpp

getScalarType()->isMultiUnitFPType()
DeltaFile
+3-2llvm/lib/Analysis/ValueTracking.cpp
+3-21 files

LLVM/project 6a568cellvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

VTy->getScalarType()->isMultiUnitFPType()
DeltaFile
+1-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+1-11 files

LLVM/project 633a6bbllvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

also zero
DeltaFile
+1-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+1-11 files

LLVM/project d96b09cllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle rounding intrinsics in SimplifyDemandedFPClass
DeltaFile
+55-89llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-rounding-intrinsics.ll
+66-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+28-0llvm/lib/Support/KnownFPClass.cpp
+2-20llvm/lib/Analysis/ValueTracking.cpp
+7-0llvm/include/llvm/Support/KnownFPClass.h
+158-1095 files

LLVM/project 5551b48llvm/test/Transforms/InstCombine simplify-demanded-fpclass-rounding-intrinsics.ll

InstCombine: Add SimplifyDemandedFPClass tests for round

Add tests for the family of rounding intrinsics
DeltaFile
+1,073-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-rounding-intrinsics.ll
+1,073-01 files

LLVM/project 5e11888llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-sqrt.ll

ValueTracking: sqrt never returns subnormal
DeltaFile
+52-52llvm/test/Transforms/Attributor/nofpclass-sqrt.ll
+14-14llvm/unittests/Analysis/ValueTrackingTest.cpp
+2-5llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
+1-0llvm/lib/Support/KnownFPClass.cpp
+69-714 files

LLVM/project 59163d8llvm/test/Transforms/InstCombine simplify-demanded-fpclass-rounding-intrinsics.ll

Tests for 0 result implying normal input
DeltaFile
+144-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-rounding-intrinsics.ll
+144-01 files

LLVM/project 0b7c8ccllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Implement SimplifyDemandedFPClass for sqrt
DeltaFile
+38-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+10-19llvm/lib/Analysis/ValueTracking.cpp
+24-0llvm/lib/Support/KnownFPClass.cpp
+9-14llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
+4-0llvm/include/llvm/Support/KnownFPClass.h
+85-335 files

LLVM/project 12cccb9mlir/lib/Dialect/MemRef/IR MemRefOps.cpp, mlir/test/Dialect/MemRef ops.mlir

Reapply [mlir][memref]: Allow collapse of strided unit dim even if strides are dynamic (#171039)

DeltaFile
+14-1mlir/test/Dialect/MemRef/ops.mlir
+5-5mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+19-62 files

LLVM/project 7e4f390llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fpext in SimplifyDemandedFPClass (#174849)

DeltaFile
+13-26llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fpext.ll
+22-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+22-0llvm/lib/Support/KnownFPClass.cpp
+3-14llvm/lib/Analysis/ValueTracking.cpp
+6-0llvm/include/llvm/Support/KnownFPClass.h
+66-405 files

LLVM/project 007d2dcmlir/include/mlir/Dialect/SCF/IR SCFOps.td, mlir/lib/Dialect/SCF/IR SCF.cpp

Implement RegionBranchTerminatorOpInterface for scf.forall.in_parallel
DeltaFile
+18-13mlir/lib/Dialect/SCF/IR/SCF.cpp
+1-7mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
+19-202 files

LLVM/project a0c091bmlir/include/mlir/Interfaces ControlFlowInterfaces.h ControlFlowInterfaces.td, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][draft] Consolidate patterns into RegionBranchOpInterface patterns

fix some tests

reorganize code

address comments
DeltaFile
+17-813mlir/lib/Dialect/SCF/IR/SCF.cpp
+496-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+47-13mlir/test/Dialect/SCF/canonicalize.mlir
+9-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+4-4mlir/test/Transforms/remove-dead-values.mlir
+5-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
+578-8306 files

LLVM/project 48a6157mlir/include/mlir/Interfaces ControlFlowInterfaces.td

[mlir][Interfaces][NFC] Document that `RegionBranchTerminatorOpInterface` is mandatory (#174978)

Document that implementing the `RegionBranchTerminatorOpInterface` is
mandatory. Omitting this interface on a block terminator that models
region branching may lead to invalid/incomplete analyses and
transformations.

This commit does not change the op/interface semantics. It just puts in
writing an assumption that is made throughout the code base. For
example:

- It is baked into the API design of the `RegionBranchOpInterface`. You
cannot query the region successors of block terminators that do not
implement the `RegionBranchTerminatorOpInterface`:
`RegionBranchOpInterface::getSuccessors()` takes a `RegionBranchPoint`
parameter, and such region branch points can be constructed only from
`RegionBranchTerminatorOpInterface` and not arbitrary `Operation *`.
- Helper functions + default interface method implementations enumerate
region branch points by looking for `RegionBranchTerminatorOpInterface`

    [16 lines not shown]
DeltaFile
+23-5mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
+23-51 files

LLVM/project 1d4743elibcxx/test/libcxx/containers/container.node node_handle.nodiscard.verify.cpp, libcxx/test/libcxx/diagnostics memory.nodiscard.verify.cpp node_handle.nodiscard.verify.cpp

[libc++][NFC] Refactored `nodiscard.verify.cpp` tests (#175285)

Moved tests to the correct locations.
Removed a redundant test.
DeltaFile
+0-127libcxx/test/libcxx/diagnostics/memory.nodiscard.verify.cpp
+127-0libcxx/test/libcxx/utilities/memory/nodiscard.verify.cpp
+57-0libcxx/test/libcxx/containers/container.node/node_handle.nodiscard.verify.cpp
+0-57libcxx/test/std/containers/container.node/node_handle.nodiscard.verify.cpp
+0-18libcxx/test/libcxx/diagnostics/node_handle.nodiscard.verify.cpp
+9-7libcxx/test/libcxx/language.support/nodiscard.verify.cpp
+193-2091 files not shown
+194-2107 files

LLVM/project 6559bdamlir/include/mlir/Dialect/SCF/Transforms Passes.h Passes.td, mlir/lib/Dialect/SCF/Transforms LoopSpecialization.cpp

[mlir] Remove loop peeling explicit C'tor (#175419)

The SCF dialect loop peeling pass has an explicit C'tor. This creates an
inconvenience to use non default pass options, since they can only be
passed as a string after the pass creation. After removing the explicit
C'tor, the code auto generation creates 2 C'tors, which one of them can
directly receive pass options struct in case non default values are
required.
The explicit C'tor does not match auto generated C'tor convention, so
this change requires any uses of the pass in downstream projects to
update to use the auto generated C'tor.
DeltaFile
+2-4mlir/lib/Dialect/SCF/Transforms/LoopSpecialization.cpp
+0-4mlir/include/mlir/Dialect/SCF/Transforms/Passes.h
+0-1mlir/include/mlir/Dialect/SCF/Transforms/Passes.td
+2-93 files

LLVM/project 9466e28clang/lib/Interpreter Interpreter.cpp

[clang-repl] Teach the default orc runtime finder to search in more locations (#175416)

This should resolve a recent solaris failure reported in #175322.
DeltaFile
+88-29clang/lib/Interpreter/Interpreter.cpp
+88-291 files

LLVM/project ba6eab0llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fptrunc in SimplifyDemandedFPClass

Also handle llvm.fptrunc.round since it's the same.
DeltaFile
+140-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+15-30llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
+15-28llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
+14-0llvm/lib/Support/KnownFPClass.cpp
+1-9llvm/lib/Analysis/ValueTracking.cpp
+3-0llvm/include/llvm/Support/KnownFPClass.h
+188-676 files

LLVM/project 9cb79e5llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fptrunc.ll simplify-demanded-fpclass-fptrunc-round.ll

InstCombine: Add fptrunc SimplifyDemandedFPClass baseline tests

Also llvm.fptrunc.round, which should be the same.
DeltaFile
+533-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
+533-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
+1,066-02 files

LLVM/project 30f4a8dllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fpext in SimplifyDemandedFPClass
DeltaFile
+13-26llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fpext.ll
+22-0llvm/lib/Support/KnownFPClass.cpp
+22-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+3-14llvm/lib/Analysis/ValueTracking.cpp
+6-0llvm/include/llvm/Support/KnownFPClass.h
+66-405 files

LLVM/project 62d4aa1llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fpext.ll

InstCombine: Add fpext SimplifyDemandedFPClass baseline tests (#174848)

DeltaFile
+486-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fpext.ll
+486-01 files

LLVM/project db827c1

feedback

Created using spr 1.3.7
DeltaFile
+0-00 files

LLVM/project 3b55b98llvm/docs LangRef.rst, llvm/include/llvm/AsmParser LLParser.h

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+5-6llvm/docs/LangRef.rst
+2-2llvm/include/llvm/IR/Attributes.h
+2-1llvm/lib/AsmParser/LLParser.cpp
+1-1llvm/include/llvm/AsmParser/LLParser.h
+10-104 files