LLVM/project 9e84bd4llvm/include/llvm/ADT GenericUniformityImpl.h, llvm/lib/Analysis UniformityAnalysis.cpp

use CallbackVH for deletion/RAUW
DeltaFile
+45-0llvm/lib/Analysis/UniformityAnalysis.cpp
+12-1llvm/include/llvm/ADT/GenericUniformityImpl.h
+57-12 files

LLVM/project 717a9abllvm/lib/Analysis InstructionSimplify.cpp, llvm/test/Transforms/InstSimplify structured-gep.ll

[InstSimplify] Add support for llvm.structured.gep (#182874)

Similar to GEP, the SGEP instruction with no indices can be simplified
by directly using the base pointer.
DeltaFile
+91-0llvm/test/Transforms/InstSimplify/structured-gep.ll
+2-0llvm/lib/Analysis/InstructionSimplify.cpp
+93-02 files

LLVM/project 90144c2llvm/lib/Target/WebAssembly WebAssemblyInstrSIMD.td, llvm/test/CodeGen/WebAssembly simd-extadd.ll

[WebAssembly] optimize ext + shuffle + add into addext (#182849)

cc https://github.com/llvm/llvm-project/issues/179143

This adds a second pattern: we already recognize "shuffle + extend +
add" as `addext`, this adds another pattern for "extend + shuffle +
add", which can come up when programs are optimized.
DeltaFile
+52-3llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
+32-0llvm/test/CodeGen/WebAssembly/simd-extadd.ll
+84-32 files

LLVM/project 9d55f14llvm/lib/Target/SPIRV SPIRVCommandLine.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_float_controls2 disabled-on-amd.ll

[SPIRV][AMD] Reenable `SPV_KHR_float_control2` for AMD flavored SPIRV (#182873)

`SPV_KHR_float_controls2` is enabled in the translator after
https://github.com/khronosgroup/spirv-llvm-translator/pull/3475.

This extension was disabled since we were not able to translate it back.

This patch reverts #169659.
DeltaFile
+0-23llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_float_controls2/disabled-on-amd.ll
+0-6llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
+0-292 files

LLVM/project c48f60ellvm/lib/CodeGen ExpandIRInsts.cpp

Unify expandPow2Division/expandPow2Remainder into expandPow2DivRem.

Merge the two functions into one to share the common signed-path logic (freeze, bias, ashr) and reduce code duplication, as suggested.
DeltaFile
+66-85llvm/lib/CodeGen/ExpandIRInsts.cpp
+66-851 files

LLVM/project 0000728llvm/lib/CodeGen ExpandIRInsts.cpp

Fixed comments as requested.
DeltaFile
+2-1llvm/lib/CodeGen/ExpandIRInsts.cpp
+2-11 files

LLVM/project 92ef987llvm/lib/CodeGen ExpandIRInsts.cpp, llvm/test/CodeGen/AMDGPU div_v2i128.ll div_i128.ll

[CodeGen] Expand power-of-2 div/rem at IR level in ExpandIRInsts.

Previously, power-of-2 div/rem operations wider than
MaxLegalDivRemBitWidth were excluded from IR expansion and left for
backend peephole optimizations. Some backends can fail to process such
instructions in case we switch off DAGCombiner.

Now ExpandIRInsts expands them into shift/mask sequences:
- udiv X, 2^C  ->  lshr X, C
- urem X, 2^C  ->  and X, (2^C - 1)
- sdiv X, 2^C  ->  bias adjustment + ashr X, C
- srem X, 2^C  ->  X - (((X + Bias) >> C) << C)

Special cases handled:
- Division/remainder by 1 or -1 (identity, negation, or zero)
- Exact division (sdiv exact skips bias, produces ashr exact)
- Negative power-of-2 divisors (result is negated)
- INT_MIN divisor (correct via countr_zero on bit pattern)
DeltaFile
+69-1,283llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+148-0llvm/test/Transforms/ExpandIRInsts/X86/sdiv129.ll
+55-93llvm/test/CodeGen/X86/div_i129_v_pow2k.ll
+125-9llvm/lib/CodeGen/ExpandIRInsts.cpp
+115-0llvm/test/Transforms/ExpandIRInsts/X86/srem129.ll
+20-49llvm/test/CodeGen/AMDGPU/div_i128.ll
+532-1,4344 files not shown
+645-1,46410 files

LLVM/project 4fb17f4llvm/test/CodeGen/AMDGPU div_i128.ll, llvm/test/Transforms/ExpandIRInsts/X86 divrem-pow2.ll sdiv129.ll

Addressed review comments:

- Added proofs for power-of-2 div/rem expansion in ExpandIRInsts at
  https://alive2.llvm.org/ce/z/Y-iWm-
- Tests updated as requested.

Also added CreateFreeze() where needed.
DeltaFile
+255-0llvm/test/Transforms/ExpandIRInsts/X86/divrem-pow2.ll
+0-148llvm/test/Transforms/ExpandIRInsts/X86/sdiv129.ll
+0-115llvm/test/Transforms/ExpandIRInsts/X86/srem129.ll
+0-51llvm/test/Transforms/ExpandIRInsts/X86/udiv129.ll
+24-11llvm/test/CodeGen/AMDGPU/div_i128.ll
+0-25llvm/test/Transforms/ExpandIRInsts/X86/urem129.ll
+279-3503 files not shown
+291-3539 files

LLVM/project 634e75fllvm/lib/CodeGen ExpandIRInsts.cpp

Fixed comments as requested.
DeltaFile
+2-1llvm/lib/CodeGen/ExpandIRInsts.cpp
+2-11 files

LLVM/project 668870clldb/source/Host/windows PseudoConsole.cpp

[lldb][windows] add a 50ms sleep when closing the ConPTY (#183280)

Since https://github.com/llvm/llvm-project/pull/182302 was merged,
`x86-64-gp-write.test` is flaky.

This patch reintroduces the 50ms sleep that was removed in
https://github.com/llvm/llvm-project/pull/182302 to fix the flakyness
while we investigate it.
DeltaFile
+4-0lldb/source/Host/windows/PseudoConsole.cpp
+4-01 files

LLVM/project 8fe060cllvm/include/llvm/ADT GenericUniformityImpl.h GenericUniformityInfo.h

review: keep unknown values divergent
DeltaFile
+7-12llvm/include/llvm/ADT/GenericUniformityImpl.h
+0-4llvm/include/llvm/ADT/GenericUniformityInfo.h
+7-162 files

LLVM/project 4cf1a61clang/tools/driver driver.cpp, llvm/cmake/modules AddLLVM.cmake

[NFC] Add comments for PR “[LLVM][CLANG] Update signal‑handling behavior to comply with POSIX”  (#183206)

This PR adds comments to address post‑commit review feedback on commit
15488a7f78ce7b9ae3c06b031134e5cb339b335c.
DeltaFile
+2-1clang/tools/driver/driver.cpp
+2-0llvm/cmake/modules/AddLLVM.cmake
+4-12 files

LLVM/project b91e832clang/test/Analysis z3-unarysymexpr.c

[analyzer][tests][z3] Fixing the test case bug for testing converting boolean expression to integer (#183034)

* Fixing incorrect "REQUIRES" condition for Z3 introduced by #108900
* Fixing the test failure introduced by #168034
* Adding more comments about the fixes in #168034 for the tests
introduced in #158276
DeltaFile
+9-4clang/test/Analysis/z3-unarysymexpr.c
+9-41 files

LLVM/project cfca635llvm/test/CodeGen/AArch64 sve-fptosi-sat.ll, llvm/test/CodeGen/ARM fptoui-sat-scalar.ll

[SelectionDAG] Fix fptoui.sat expansion using minnum/maxnum (#180178)

fptoui.sat can currently use a minnum/maxnum based expansion, which
relies on NaNs not being propagated. Specifically, it relies on
minnum(maxnum(NaN, 0), MAX) to return 0. However, if the input is sNaN,
then maxnum(sNaN, 0) is allowed to return qNaN, in which case the final
result will be MAX rather than 0.

This PR does the following changes:

* Support the fold for minimumnum/maximumnum, which guarantees that NaN
is not propagated even for sNaN, so it can use the old lowering. Test
this using Hexagon which has legal minimumnum but illegal minnum.
* For the minnum/maxnum case, remove the special unsigned case and
instead always insert the explicit NaN check. In that case the NaN
propagation semantics don't matter.
* This also means that we can support this expansion for
minimum/maximum.
DeltaFile
+566-306llvm/test/CodeGen/Thumb2/mve-fptoui-sat-vector.ll
+212-132llvm/test/CodeGen/ARM/fptoui-sat-scalar.ll
+114-177llvm/test/CodeGen/X86/fptosi-sat-vector-128.ll
+247-0llvm/test/CodeGen/Hexagon/fptoi.sat.ll
+93-145llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll
+86-152llvm/test/CodeGen/X86/fptoui-sat-vector-128.ll
+1,318-9126 files not shown
+1,657-1,39912 files

LLVM/project 5618119clang/test/OpenMP irbuilder_nested_parallel_for.c, llvm/test/MC/AMDGPU gfx13_asm_vopd3.s gfx13_asm_vop2.s

Merge branch 'main' into users/jmmartinez/spirv/reenable_float_controls2
DeltaFile
+16,004-0llvm/test/MC/AMDGPU/gfx13_asm_vopd3.s
+1,703-1,703clang/test/OpenMP/irbuilder_nested_parallel_for.c
+2,807-0llvm/test/MC/AMDGPU/gfx13_asm_vop2.s
+2,642-0llvm/test/MC/Disassembler/AMDGPU/gfx13_dasm_vop2.txt
+1,246-1,232llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
+2,269-0llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop2.s
+26,671-2,9351,361 files not shown
+87,706-37,6511,367 files

LLVM/project 457625fllvm/lib/Target/SPIRV SPIRVEmitNonSemanticDI.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-function.ll

[SPIRV] Add support for emitting DebugFunction debug info instructions

This commit adds support for emitting SPIRV DebugFunction and
DebugFunctionDefinition instructions for function definitions.
DeltaFile
+218-0llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+40-0llvm/test/CodeGen/SPIRV/debug-info/debug-function.ll
+258-02 files

LLVM/project d82d261orc-rt/include/orc-rt ResourceManager.h SimpleNativeMemoryMap.h, orc-rt/lib/executor SimpleNativeMemoryMap.cpp Session.cpp

[orc-rt] Rename ResourceManager detach/shutdown. NFCI. (#183285)

These methods are called by the session in the event of a detach or
shutdown. The new names reflect their roles as event handlers.
DeltaFile
+4-4orc-rt/include/orc-rt/ResourceManager.h
+3-3orc-rt/unittests/SimpleNativeMemoryMapTest.cpp
+3-2orc-rt/lib/executor/SimpleNativeMemoryMap.cpp
+2-2orc-rt/include/orc-rt/SimpleNativeMemoryMap.h
+2-2orc-rt/unittests/SessionTest.cpp
+1-1orc-rt/lib/executor/Session.cpp
+15-146 files

LLVM/project f55a5cfclang/test/OpenMP irbuilder_nested_parallel_for.c nested_loop_codegen.cpp, llvm/test/Transforms/OpenMP parallel_region_merging.ll

[OpenMP] Only generate call to __kmpc_global_thread_num when needed (#182669)

This patch is a small optimization to only generate a call to
__kmpc_global_thread_num if the result is actually used.
DeltaFile
+1,703-1,703clang/test/OpenMP/irbuilder_nested_parallel_for.c
+402-402clang/test/OpenMP/nested_loop_codegen.cpp
+249-249clang/test/OpenMP/parallel_codegen.cpp
+185-182clang/test/OpenMP/cancel_codegen.cpp
+84-79llvm/test/Transforms/OpenMP/parallel_region_merging.ll
+17-16clang/test/OpenMP/taskgroup_codegen.cpp
+2,640-2,63112 files not shown
+2,680-2,68118 files

LLVM/project 91d5e9eclang/lib/CodeGen CGOpenCLRuntime.h CGOpenCLRuntime.cpp

[CGOpenCLRuntime] Remove dead code (#183093)

This drops one getPointerType() overload which accepted a name, which is
no longer used since the opaque pointers migration. The fallback code
path always returns a plain pointer now.

Also drop all the virtual qualifiers. Nothing inherits from this class.
Any customization is implemented via TargetCodeGenInfo hooks in the
implementation.
DeltaFile
+9-13clang/lib/CodeGen/CGOpenCLRuntime.h
+0-8clang/lib/CodeGen/CGOpenCLRuntime.cpp
+9-212 files

LLVM/project eda52e3llvm/lib/Transforms/Scalar LoopInterchange.cpp

address review comments
DeltaFile
+16-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+16-21 files

LLVM/project 3129c44llvm/test/Transforms/LoopInterchange profitability-instorder.ll

[LoopInterchange] Add a test for simple profitable case (NFC)
DeltaFile
+180-0llvm/test/Transforms/LoopInterchange/profitability-instorder.ll
+180-01 files

LLVM/project 5a22643llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange profitability-instorder.ll interchangeable-outerloop-multiple-indvars.ll

[LoopInterchange] Fix instorder profitability check
DeltaFile
+50-41llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+40-30llvm/test/Transforms/LoopInterchange/profitability-instorder.ll
+1-1llvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
+91-723 files

LLVM/project 678aaa7llvm/utils/release github-upload-release.py

[llvm][release] Note that some packages have 2 signature files (#183266)

For example in the latest release, there is:
LLVM-22.1.0-Linux-ARM64.tar.xz

Which has 2 signature files:
LLVM-22.1.0-Linux-ARM64.tar.xz.jsonl
LLVM-22.1.0-Linux-ARM64.tar.xz.sig

jsonl comes from the GitHub build and the sig is uploaded by the release
manager.
DeltaFile
+1-1llvm/utils/release/github-upload-release.py
+1-11 files

LLVM/project db5ffb0llvm/include/llvm/ExecutionEngine/Orc WaitingOnGraph.h

[ORC] WaitingOnGraph perf: faster dependence propagation. (#183272)

This commit replaces the core dependence propagation algorithm in
WaitingOnGraph to avoid worst-case behavior in the common case where
dependence graphs are sparse. This algorithm showed up as the underlying
cause of the bug in https://github.com/llvm/llvm-project/issues/179611.

For each call to MaterializationResponsibility::notifyEmitted,
WaitingOnGraph would build the transitive closure of all SuperNodes
whose "waiting on" relationships were affected by the newly emitted
symbols, then propagate any remaining unemitted dependencies through
this transitive closure graph. This approach is simple, but pushes the
algorithm towards n^2 complexity even for sparse dependence graphs.

The new propagation algorithm:
1. Inverts the edge direction in the SymbolDependenceMap data structure:
SymbolDepMap[SN] now contains the set of SuperNodes that depend on SN,
rather than the set that SN depends upon.


    [11 lines not shown]
DeltaFile
+100-57llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h
+100-571 files

LLVM/project bf15949llvm/lib/Target/SPIRV SPIRVEmitNonSemanticDI.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-function.ll

[SPIRV] Add support for emitting DebugFunction debug info instructions

This commit adds support for emitting SPIRV DebugFunction and
DebugFunctionDefinition instructions for function definitions.
DeltaFile
+219-0llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+40-0llvm/test/CodeGen/SPIRV/debug-info/debug-function.ll
+259-02 files

LLVM/project d25b7f7llvm/lib/Target/ARM ARMFastISel.cpp

[NFC][CodeGen] Add Register guard to ARMMaterializeFP. (#182559)

This does not directly fix any issue because the implementation
indirectly ensures the correct behaviour. However, all the other
"<Tgt>Materialize" functions (Int and FP across all targets, including
ARMMaterializeInt) have explicit Register guards so for peace of mind I
figured it's worth added them.
DeltaFile
+3-0llvm/lib/Target/ARM/ARMFastISel.cpp
+3-01 files

LLVM/project 641c32ellvm/test/Transforms/LoopInterchange phi-ordering.ll

[LoopInterchange] Fix test phi-ordering.ll (NFC) (#181989)

I found that the test phi-ordering.ll is a bit fragile and can fail with
any irrelevant changes. Also this test is not consistent with the
following comment, which is at the top of the file:

```
;; Checks the order of the inner phi nodes does not cause havoc.
;; The inner loop has a reduction into c. The IV is not the first phi.
```

After examining the change history, I found that the original intent of
this test was effectively lost in
https://github.com/llvm/llvm-project/commit/c8bd6ea35e459169cbd401372e81168ed8482536.
A workaround was introduced later in
https://github.com/llvm/llvm-project/commit/eac34875109898ac01985f4afa937eec30c1c387
to preserve the test output, but this seems to have made the test more
complicated.


    [5 lines not shown]
DeltaFile
+34-32llvm/test/Transforms/LoopInterchange/phi-ordering.ll
+34-321 files

LLVM/project d81c6b5clang/test/CodeGen arm_acle.c builtins-arm64.c, clang/test/Sema/AArch64 pcdphint-atomic-store.c

fixup! Fix more PR comments
DeltaFile
+19-9clang/test/Sema/AArch64/pcdphint-atomic-store.c
+8-6llvm/test/CodeGen/AArch64/pcdphint-atomic-store.ll
+10-0clang/test/CodeGen/arm_acle.c
+0-9llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+5-0clang/test/CodeGen/builtins-arm64.c
+0-4llvm/include/llvm/IR/IntrinsicsAArch64.td
+42-282 files not shown
+44-328 files

LLVM/project 2a2f433clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/CodeGen/TargetBuiltins ARM.cpp

fixup! Fix issues Kerry raised in PR
DeltaFile
+10-23clang/lib/Sema/SemaARM.cpp
+16-11clang/test/Sema/AArch64/pcdphint-atomic-store.c
+5-12clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+1-5clang/include/clang/Basic/DiagnosticSemaKinds.td
+32-514 files

LLVM/project eea3d5eclang/include/clang/Basic BuiltinsAArch64.def, clang/lib/CodeGen/TargetBuiltins ARM.cpp

fixup!

More small issues tidied, and remove gating.
DeltaFile
+6-2clang/test/Sema/AArch64/pcdphint-atomic-store.c
+2-2clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+1-1clang/include/clang/Basic/BuiltinsAArch64.def
+0-2clang/lib/Headers/arm_acle.h
+1-1clang/lib/Sema/SemaARM.cpp
+1-1clang/test/CodeGen/AArch64/pcdphint-atomic-store.c
+11-96 files