LLVM/project 058a601 — lldb/packages/Python/lldbsuite/test gdbclientutils.py, lldb/source/Plugins/Process/Windows/Common NativeThreadWindows.cpp

[lldb-server] Handle jThreadExtendedInfo
DeltaFile
+51-0lldb/test/API/tools/lldb-server/TestGdbRemote_jThreadExtendedInfo.py
+49-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+42-0lldb/test/API/windows/thread-extended-info/TestThreadExtendedInfo.py
+36-1lldb/packages/Python/lldbsuite/test/gdbclientutils.py
+4-0lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
+3-0lldb/test/API/windows/thread-extended-info/main.c
+185-16 files not shown
+198-112 files

LLVM/project 80cd965 —

[LoongArch] Use [X]VSETNEZ.V/[X]VSETEQZ.V for whole-vector zero check (#226814)

Introduce `loongarch_vanynonzero` and `loongarch_vallzero` for checking
wether a vector has any non zero or all of them are zero, which could
simply some vector comparison such as the one below.

Before
```
xvseq.d $xr0, $xr0, $xr1
xvmskltz.d $xr0, $xr0
xvpickve2gr.wu $a0, $xr0, 0
xvpickve2gr.wu $a1, $xr0, 4
bstrins.d $a0, $a1, 3, 2
beqz $a0, .LBB2_2
```
After
```
xvseq.d $xr0, $xr0, $xr1
xvseteqz.v $fcc0, $xr0

    [4 lines not shown]
DeltaFile
+0-00 files

LLVM/project 6477cf1 — llvm/lib/Target/LoongArch LoongArchLASXInstrInfo.td LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx vset-zero-test.ll

[LoongArch] Use [X]VSETNEZ.V/[X]VSETEQZ.V for whole-vector zero check (#226814)

Introduce `loongarch_vanynonzero` and `loongarch_vallzero` for checking
wether a vector has any non zero or all of them are zero, which could
simply some vector comparison such as the one below.

Before
```
xvseq.d $xr0, $xr0, $xr1
xvmskltz.d $xr0, $xr0
xvpickve2gr.wu $a0, $xr0, 0
xvpickve2gr.wu $a1, $xr0, 4
bstrins.d $a0, $a1, 3, 2
beqz $a0, .LBB2_2
```
After
```
xvseq.d $xr0, $xr0, $xr1
xvseteqz.v $fcc0, $xr0

    [4 lines not shown]
DeltaFile
+127-0llvm/test/CodeGen/LoongArch/lasx/vset-zero-test.ll
+95-0llvm/test/CodeGen/LoongArch/lsx/vset-zero-test.ll
+55-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+21-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+15-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+313-05 files

LLVM/project 547c18d — llvm/lib/Transforms/Vectorize/SLPVectorizer SLPCostAnalysis.cpp SLPUtils.cpp, llvm/test/Transforms/SLPVectorizer/X86 once-used-gep-index-seeds.ll gather-gep-addressing-cost.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+37-8llvm/test/Transforms/SLPVectorizer/X86/gather-gep-addressing-cost.ll
+22-12llvm/test/Transforms/SLPVectorizer/X86/once-used-gep-index-seeds.ll
+4-15llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+13-1llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
+76-364 files

LLVM/project f4bf388 — llvm/test/Transforms/SLPVectorizer/X86 gather-gep-addressing-cost.ll once-used-gep-index-seeds.ll

[SLP][NFC]Add tests with non-profitable GEPs vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/228916
DeltaFile
+92-0llvm/test/Transforms/SLPVectorizer/X86/once-used-gep-index-seeds.ll
+69-0llvm/test/Transforms/SLPVectorizer/X86/gather-gep-addressing-cost.ll
+161-02 files

LLVM/project 656d6be — llvm/lib/CodeGen CodeGenPrepare.cpp CodeGenOptions.td, llvm/test/CodeGen/X86 sink-blockfreq.ll phi-immediate-factoring.ll

[CodeGenPrepare] Prefix option names with cgp-

Rename the CodeGenPrepare options so that they start with cgp-, and turn
the -disable-* options into positive options that default to true:

```
-addr-sink-*                  -cgp-addr-sink-*
-cgpp-huge-func               -cgp-huge-func
-disable-cgp-X                -cgp-X=0
-disable-complex-addr-modes   -cgp-complex-addr-modes=0
-disable-preheader-prot       -cgp-preheader-prot=0
-enable-andcmp-sinking        -cgp-andcmp-sinking
-force-split-store            -cgp-force-split-store
-stress-cgp-X                 -cgp-stress-X
```

The section prefix options (-profile-guided-section-prefix, etc.) are
kept, as they are not specific to CodeGenPrepare.

Aided by Opus 5.5
DeltaFile
+28-28llvm/lib/CodeGen/CodeGenOptions.td
+24-24llvm/lib/CodeGen/CodeGenPrepare.cpp
+3-3llvm/test/CodeGen/X86/sink-blockfreq.ll
+3-3llvm/test/CodeGen/X86/phi-immediate-factoring.ll
+2-2llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-base.ll
+2-2llvm/test/Transforms/CodeGenPrepare/PowerPC/split-store-alignment.ll
+62-6251 files not shown
+119-11957 files

LLVM/project f54e552 — llvm/lib/CodeGen CodeGenOptions.cpp CodeGenOptions.h, utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[CodeGen] Declare command line options in TableGen (#228911)

Move the cl::opts of TargetPassConfig.cpp and CodeGenPrepare.cpp into
CodeGenOptions.td, private to lib/CodeGen; other files will follow.
-enable-machine-outliner (cl::ValueOptional) and -regalloc
(RegisterPassParser) stay cl::opt.

CodeGenPrepare and its addressing-mode helpers hold
`const CodeGenOptions &Opts`; TargetPassConfig functions read
CodeGenOptions::Global. getCGPassBuilderOption() converts BoolOrDefault
members to the cl::boolOrDefault and std::optional<bool> fields of the
public CGPassBuilderOption. -basic-block-section-match-infer, which was
not cl::Hidden, is now listed by -help-hidden only.

Aided by Opus 5.5
DeltaFile
+144-318llvm/lib/CodeGen/TargetPassConfig.cpp
+96-221llvm/lib/CodeGen/CodeGenPrepare.cpp
+202-0llvm/lib/CodeGen/CodeGenOptions.td
+19-0llvm/lib/CodeGen/CodeGenOptions.h
+15-0llvm/lib/CodeGen/CodeGenOptions.cpp
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+487-5393 files not shown
+507-5449 files

LLVM/project 2c06e14 — llvm/lib/Target/Mips MipsScheduleGeneric.td MicroMipsInstrInfo.td, llvm/test/MC/Mips micromips-control-instructions.s

[Mips] Add microMIPS CP0 move encodings (#228884)

Define the microMIPS MFC0 and MTC0 formats and instruction records for
pre-R6 targets, including the select field. Accept the two-operand forms
with an implicit select value of zero and add generic scheduling
entries.

Extend the control-instruction tests with explicit and implicit select
operands, checking both byte orders.

Assisted-by: OpenAI Codex # Testcases
DeltaFile
+15-0llvm/lib/Target/Mips/MicroMipsInstrFormats.td
+12-1llvm/test/MC/Mips/micromips-control-instructions.s
+11-0llvm/lib/Target/Mips/MicroMipsInstrInfo.td
+2-2llvm/lib/Target/Mips/MipsScheduleGeneric.td
+40-34 files

LLVM/project a6158f5 — llvm/lib/CodeGen CodeGenPrepare.cpp CodeGenOptions.td, llvm/test/CodeGen/X86 sink-blockfreq.ll phi-immediate-factoring.ll

[CodeGenPrepare] Prefix option names with cgp-

Rename the CodeGenPrepare options so that they start with cgp-, and turn
the -disable-* options into positive options that default to true:

```
-addr-sink-*                  -cgp-addr-sink-*
-cgpp-huge-func               -cgp-huge-func
-disable-cgp-X                -cgp-X=0
-disable-complex-addr-modes   -cgp-complex-addr-modes=0
-disable-preheader-prot       -cgp-preheader-prot=0
-enable-andcmp-sinking        -cgp-andcmp-sinking
-force-split-store            -cgp-force-split-store
-stress-cgp-X                 -cgp-stress-X
```

The section prefix options (-profile-guided-section-prefix, etc.) are
kept, as they are not specific to CodeGenPrepare.

Aided by Opus 5.5
DeltaFile
+28-28llvm/lib/CodeGen/CodeGenOptions.td
+24-24llvm/lib/CodeGen/CodeGenPrepare.cpp
+3-3llvm/test/CodeGen/X86/sink-blockfreq.ll
+3-3llvm/test/CodeGen/X86/phi-immediate-factoring.ll
+2-2llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-base.ll
+2-2llvm/test/Transforms/CodeGenPrepare/PowerPC/split-store-alignment.ll
+62-6251 files not shown
+119-11957 files

LLVM/project e65d18f — llvm/lib/CodeGen CodeGenOptions.cpp CodeGenOptions.h, utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[CodeGen] Declare command line options in TableGen

Move the cl::opts of TargetPassConfig.cpp and CodeGenPrepare.cpp into
CodeGenOptions.td, private to lib/CodeGen; other files will follow.
-enable-machine-outliner (cl::ValueOptional) and -regalloc
(RegisterPassParser) stay cl::opt.

CodeGenPrepare and its addressing-mode helpers hold
`const CodeGenOptions &Opts`; TargetPassConfig functions read
CodeGenOptions::Global. getCGPassBuilderOption() converts BoolOrDefault
members to the cl::boolOrDefault and std::optional<bool> fields of the
public CGPassBuilderOption. -basic-block-section-match-infer, which was
not cl::Hidden, is now listed by -help-hidden only.

Aided by Opus 5.5
DeltaFile
+144-318llvm/lib/CodeGen/TargetPassConfig.cpp
+96-221llvm/lib/CodeGen/CodeGenPrepare.cpp
+202-0llvm/lib/CodeGen/CodeGenOptions.td
+19-0llvm/lib/CodeGen/CodeGenOptions.h
+15-0llvm/lib/CodeGen/CodeGenOptions.cpp
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+487-5393 files not shown
+507-5449 files

LLVM/project 1f50f09 — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize scev-check-unknown-prof.ll

[VPlan] Support pointer min/max bounds in VPlan memory runtime checks. (#225828)

Expand pointer-typed SCEV min/max expressions in VPSCEVExpander as
icmp + select (including profile metadata), matching SCEVExpander.

This allows modeling memory runtime checks with pointer min/max bounds
in VPlan, e.g. for accesses with a runtime stride of unknown sign.

Depends on https://github.com/llvm/llvm-project/pull/221483 

PR: https://github.com/llvm/llvm-project/pull/225828
DeltaFile
+23-23llvm/test/Transforms/LoopVectorize/VPlan/memory-checks.ll
+16-16llvm/test/Transforms/LoopVectorize/scev-check-unknown-prof.ll
+16-3llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+2-6llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+5-2llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+62-505 files

LLVM/project 9870703 — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lasx/ir-instruction uitofp.ll sitofp.ll

[Loongarch] fix int to float conversion on non-MVT vector types (#228896)

fixes https://github.com/llvm/llvm-project/issues/228894

The code added in https://github.com/llvm/llvm-project/pull/202496 can
construct an invalid MVT (e.g. a 5-element vector, which is not
something any architecture has a specific register for). So, instead use
an `EVT` which is less restrictive.
DeltaFile
+54-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll
+54-0llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
+31-0llvm/test/CodeGen/LoongArch/lasx/ir-instruction/uitofp.ll
+31-0llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sitofp.ll
+1-1llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+171-35 files

LLVM/project 9068deb — llvm/lib/Target/Mips MipsScheduleGeneric.td MicroMipsInstrInfo.td, llvm/test/MC/Mips micromips-jump-instructions.s

[Mips] Add microMIPS hazard-barrier jump encodings (#228885)

Add microMIPS encodings for jr.hb and jalr.hb. Use BaseOpcode and MMRel
to map the standard opcodes to their microMIPS encodings.

Assisted-by: OpenAI Codex # Testcases
DeltaFile
+19-0llvm/test/MC/Mips/micromips-jump-instructions.s
+7-5llvm/lib/Target/Mips/MipsInstrInfo.td
+8-0llvm/lib/Target/Mips/MicroMipsInstrInfo.td
+2-2llvm/lib/Target/Mips/MipsScheduleGeneric.td
+36-74 files

LLVM/project 40534a2 — mlir/include/mlir/Dialect/OpenACC OpenACCOps.td, mlir/test/Dialect/OpenACC side-effects.mlir

[mlir][acc] Declare the memory effects of acc.atomic.read

The operation read `x` and wrote `v` but declared no memory effects at
all, so every memory analysis had to treat both locations as unknown and
stay maximally conservative. In particular it could not be seen to
overwrite `v`.

Declare the effects per operand so the read on `x` and the write on `v`
are visible.
DeltaFile
+42-0mlir/test/Dialect/OpenACC/side-effects.mlir
+2-2mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+44-22 files

LLVM/project 092c551 — llvm/bindings/ocaml/llvm llvm.ml llvm_ocaml.c, llvm/docs ReleaseNotes.md

[OCaml] Use DataLayout instead of string in (set_)data_layout (#228445)

Now that DataLayout is part of llvm rather than llvm_target, make use of
it in the `data_layout` and `set_data_layout` APIs.
DeltaFile
+6-7llvm/bindings/ocaml/llvm/llvm.mli
+4-6llvm/bindings/ocaml/llvm/llvm_ocaml.c
+2-3llvm/test/Bindings/OCaml/debuginfo.ml
+2-2llvm/test/Bindings/OCaml/core.ml
+2-2llvm/bindings/ocaml/llvm/llvm.ml
+4-0llvm/docs/ReleaseNotes.md
+20-201 files not shown
+21-207 files

LLVM/project 22c49fe — llvm/lib/Target/Mips/AsmParser MipsAsmParser.cpp

[Mips] Restrict microMIPS GP load folding to word loads (#228881)

Only LW has a GP-relative variant, so restrict the folding to LW_MM and
LW_MMR6.

Assisted-by: OpenAI Codex # Testcases
DeltaFile
+2-2llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+2-21 files

LLVM/project 2f99c9c — lld/ELF/Arch Mips.cpp, lld/test/ELF mips-micro-jump-region.s

[lld][Mips] Remove signed range check for R_MICROMIPS_26_S1 (#228880)

R_MICROMIPS_26_S1 encodes a shifted index within the current PC region,
not a signed absolute address. Applying the PC-relative relocation's
signed 27-bit check rejects valid destinations in higher address
regions.

Write the jump index without that check, as for R_MIPS_26, while
retaining
the signed range check for R_MICROMIPS_PC26_S1. Cover both jumps and
calls
at a high address in little- and big-endian objects.

Assisted-by: OpenAI Codex # Testcases
DeltaFile
+27-0lld/test/ELF/mips-micro-jump-region.s
+4-0lld/ELF/Arch/Mips.cpp
+31-02 files

LLVM/project 7a7950d — llvm/lib/Target/Mips/MCTargetDesc MipsAsmBackend.cpp, llvm/test/MC/Mips unaligned-nops.s

[Mips] Emit 16-bit microMIPS NOPs for alignment (#228879)

Zero-filled halfword padding is not a complete microMIPS NOP. Emit
move $zero, $zero when alignment requires a two-byte instruction, then
use zero-encoded 32-bit NOPs for the remaining padding.

Handle an odd leading byte as data padding and preserve zero filling in
standard MIPS mode. Extend the unaligned-NOP test to cover both byte
orders, odd-sized data, and mode changes.

Assisted-by: OpenAI Codex # Testcases
DeltaFile
+36-0llvm/test/MC/Mips/unaligned-nops.s
+20-6llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
+56-62 files

LLVM/project c903e0a — flang-rt/unittests/Runtime Reduction.cpp, flang/include/flang/Common uint128.h

Add unittests
DeltaFile
+34-0flang-rt/unittests/Runtime/Reduction.cpp
+15-11flang/include/flang/Common/uint128.h
+2-2flang/unittests/Evaluate/uint128.cpp
+51-133 files

LLVM/project c819bff — lldb/include/lldb/Target Process.h, lldb/source/Plugins/Platform/POSIX PlatformPOSIX.cpp

[lldb] Replay the cached error from GetLoadImageUtilityFunction (#226986)

`Process::LoadImage` needs a live process to load a library: on POSIX it
makes the C library's `dlopen` run inside the debuggee, and on Windows
it makes `LoadLibraryExW` run there, both through a JIT-compiled
function call that needs a process to run the call in. On a core file
(or, on Windows, a saved minidump) there is no such process, so the load
fails every time. POSIX and Windows each lose the resulting error
message, but for two different reasons.

On POSIX, only the first failure is reported correctly. Load a corefile,
and load two libraries that do not exist shows this:

```
(lldb) process load /tmp/does-not-exist-1.dylib
error: failed to load '/tmp/does-not-exist-1.dylib': dlopen error: could not make function caller: Can't make a function caller without a process.
(lldb) process load /tmp/does-not-exist-2.dylib
error: failed to load '/tmp/does-not-exist-2.dylib': (null)
```

    [57 lines not shown]
DeltaFile
+22-32lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
+51-0lldb/test/API/functionalities/load_unload/process-load-error-postmortem/TestProcessLoadErrorPostmortem.py
+16-21lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
+27-0lldb/test/API/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py
+17-6lldb/source/Target/Process.cpp
+8-4lldb/include/lldb/Target/Process.h
+141-634 files not shown
+153-6910 files

LLVM/project ed390ca — flang/lib/Semantics check-omp-syntax.cpp

[flang][OpenMP] Remove unnecessary check for extension clauses (#228878)

Remove the check for extension clauses. These now do have descriptors,
so the check guarding the descriptor retrieval is no longer necessary.
DeltaFile
+0-4flang/lib/Semantics/check-omp-syntax.cpp
+0-41 files

LLVM/project 5f9b69e — clang/test/Parser decltype-gh188014.cpp gh114815.cpp

[clang][test] Combine and clean up decltype parser tests NFC (#228889)

Follow-up #211221
DeltaFile
+23-16clang/test/Parser/decltype-crash.cpp
+0-6clang/test/Parser/gh114815.cpp
+0-4clang/test/Parser/decltype-gh188014.cpp
+23-263 files

LLVM/project 751b3a4 — clang/www OpenProjects.html

[clang][www] Fix typos in OpenProjects page (#228822)

Fix various typos in Clang's [OpenProjects
page](https://clang.llvm.org/OpenProjects.html).

Assisted-by: Claude Sonnet 5.5
DeltaFile
+11-11clang/www/OpenProjects.html
+11-111 files

LLVM/project 21239e2 — flang/include/flang/Common erfc-scaled.h uint128.h, flang/unittests/Evaluate uint128.cpp

Apply some AI suggestions
DeltaFile
+15-10flang/include/flang/Common/uint128.h
+3-3flang/include/flang/Common/erfc-scaled.h
+4-1flang/unittests/Evaluate/uint128.cpp
+22-143 files

LLVM/project 8b0127c — clang/test/OpenMP parallel_for_loop_messages.cpp

[Clang][OpenMP][NFC] Add test for `class-type` data members as loop counters (#228831)

Fixes #140243

An OpenMP loop whose init assigns to a data member of class type, like
`for (a = x; ...)` with `I<int> a`, crashed in
`OpenMPIterationSpaceChecker::checkAndSetInit`. Such an assignment is an
`operator=` call, so it goes through the `CXXOperatorCallExpr` branch,
and two of the `setLCDeclAndLB` calls there took the bound from `BO`,
the `BinaryOperator` cast that had already failed and is null at that
point. The invalid code in the report is not needed: a valid loop over
an iterator-typed data member crashed the same way.

#203252 replaced those `BO->getRHS()` uses with `CE->getArg(1)` as part
of another fix, so the crash is gone on trunk and no source change is
needed. This PR only adds a regression test so the issue can be closed.
DeltaFile
+39-0clang/test/OpenMP/parallel_for_loop_messages.cpp
+39-01 files

LLVM/project 51b090d — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/CodeGen/AMDGPU slp-int-to-fp.ll slp-coalesced-loads.ll

[SLP] Cancel the phantom load saving on widened loads

On a target whose consecutive scalar loads coalesce, cancel the load
saving of a bundle feeding a cast that widens its lanes, in store
chains, value lists and integer reductions. Without it a load of
<4 x i8> through sitofp into a store chain vectorizes into longer code.
A bundle keeps its saving when the loaded or the widened lanes pack two
to a register, since the scalar form unpacks every lane. Floating point
reductions keep their own rule.

DeltaFile
+48-175llvm/test/CodeGen/AMDGPU/slp-coalesced-loads.ll
+160-36llvm/test/Transforms/SLPVectorizer/AMDGPU/int-reduction-coalesced-loads.ll
+153-24llvm/test/Transforms/SLPVectorizer/AMDGPU/elementwise-coalesced-loads.ll
+99-14llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+10-10llvm/test/CodeGen/AMDGPU/slp-int-to-fp.ll
+470-2595 files

LLVM/project 6660006 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP] Cancel the phantom load saving on fadd reductions that lose an fma

Add TargetTransformInfo::consecutiveLoadsCoalesce, implemented by
AMDGPU, whose consecutive scalar loads already coalesce into one wide
access. On such a target cancel the load saving of a contract fadd
reduction over contract fmuls, which otherwise trades every scalar fma
for a saving that never materializes. A reassociable reduction keeps it,
as its vector fmuls fuse into the reduction.
DeltaFile
+366-142llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+104-133llvm/test/CodeGen/AMDGPU/slp-coalesced-loads.ll
+122-72llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-fma-fusion.ll
+149-31llvm/test/Transforms/SLPVectorizer/AMDGPU/elementwise-coalesced-loads.ll
+95-11llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+22-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+858-3894 files not shown
+880-38910 files

LLVM/project 2c1d428 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/CodeGen/AMDGPU slp-coalesced-loads.ll

[SLP] Drop the context of a vector fmul whose user is not vectorized

Pass the context of a vector fmul only when its user is vectorized or
the target emits it lane by lane. AMDGPU prices an fmul with a contract
fadd user as free, which does not hold for the extracted lanes of a
root. Other operations keep their context for the fast math flags and
the function attributes.
DeltaFile
+64-16llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+38-37llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-fma-fusion.ll
+13-17llvm/test/CodeGen/AMDGPU/slp-coalesced-loads.ll
+16-4llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+131-744 files

LLVM/project dd03154 — llvm/test/CodeGen/AMDGPU slp-coalesced-loads.ll, llvm/test/Transforms/SLPVectorizer/AMDGPU reassoc-reduction-coalesced-loads.ll elementwise-coalesced-loads.ll

[NFC][SLP] Precommit tests for the phantom load saving and the cost context
DeltaFile
+1,536-0llvm/test/CodeGen/AMDGPU/slp-coalesced-loads.ll
+684-0llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+527-0llvm/test/Transforms/SLPVectorizer/AMDGPU/int-reduction-coalesced-loads.ll
+454-0llvm/test/Transforms/SLPVectorizer/AMDGPU/elementwise-coalesced-loads.ll
+159-0llvm/test/Transforms/SLPVectorizer/AMDGPU/reassoc-reduction-coalesced-loads.ll
+112-0llvm/test/Transforms/SLPVectorizer/X86/udiv-strictfp.ll
+3,472-01 files not shown
+3,542-07 files

LLVM/project f137bc0 — clang/docs ReleaseNotes.md, clang/include/clang/Basic ABIVersions.def

[clang][X86] bring `regparm` in line with GCC (#227130)

Removes some divergences between GCC and Clang using `regparm`. In
particular

- All floats count as floats (previously `f16`, `f16b`, `long double`
and `f128` did not)
- Complex numbers are always passed via the stack
- Unions are always passed like integers
- Some changes to how wrapping structs (with a single non-ZST field) are
handled

I've tested this empirically (with abi-cafe)

---------

Co-authored-by: Reid Kleckner <rkleckner at nvidia.com>
DeltaFile
+100-17clang/lib/CodeGen/Targets/X86.cpp
+88-1clang/test/CodeGen/regparm-struct.c
+7-0clang/docs/ReleaseNotes.md
+2-0clang/include/clang/Basic/ABIVersions.def
+197-184 files