LLVM/project ac488f1lldb/include/lldb/ValueObject DILEval.h DILParser.h, lldb/source/Target StackFrame.cpp

[NFC][lldb] Store StackFrame member as a reference in DIL (#201437)

This reduces unchecked pointer dereferencing.
DeltaFile
+50-54lldb/source/ValueObject/DILEval.cpp
+10-9lldb/source/ValueObject/DILParser.cpp
+6-7lldb/include/lldb/ValueObject/DILEval.h
+5-7lldb/include/lldb/ValueObject/DILParser.h
+3-4lldb/source/Target/StackFrame.cpp
+74-815 files

LLVM/project 43f4ab2llvm/test/CodeGen/RISCV clmul.ll clmulr.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll clmul-sdnode.ll

Rebase

Created using spr 1.3.7
DeltaFile
+38,494-84,026llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+22,388-22,086llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+19,087-24,391llvm/test/CodeGen/RISCV/clmul.ll
+10,473-12,572llvm/test/CodeGen/RISCV/clmulr.ll
+10,287-12,385llvm/test/CodeGen/RISCV/clmulh.ll
+8,361-8,920llvm/test/CodeGen/RISCV/rvv/expandload.ll
+109,090-164,3807,891 files not shown
+656,118-460,2387,897 files

LLVM/project 78ae864cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py RunMatch.py

[Dexter] Add support for nested state nodes (#201395)

This patch adds support for nested state nodes, !where and a new !and
node. Nested state nodes are evaluated only at a frame relative to the
frame that their parent matched to:

- `!where` can only match the frame immediately called from/leafwards
from their parent frame.
- `!and` can only match the same frame as their parent frame.
DeltaFile
+36-10cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+33-8cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+38-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/nested_wheres.cpp
+13-6cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+6-6cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+5-1cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/valid-parse.test
+131-311 files not shown
+132-317 files

LLVM/project bcb5213llvm/lib/Target/AMDGPU SISchedule.td GCNProcessors.td

[AMDGPU] Add gfx1251 speed model (#203142)

Adjust generic speed model to account for a slowest.
DeltaFile
+60-5llvm/lib/Target/AMDGPU/SISchedule.td
+2-2llvm/lib/Target/AMDGPU/GCNProcessors.td
+62-72 files

LLVM/project 06bc3b7llvm/lib/Transforms/Scalar LICM.cpp, llvm/test/Transforms/LICM vector-insert.ll

[LICM] Allow hoisting of InsertElementInst's past non-hoistable InsertElementInsts (#200532)

When building vectors from multiple scalars in a loop, allow the
insertions using invariant data to be hoisted, even if blocked by the
variant insertions.

In the SLP vectorizer, c1b37eacbf makes the assumption that these build
vectors will properly be hoisted, when they are not leads to regressions
such as #195497.

Assisted By: Codex

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>
Co-authored-by: Nikita Popov <github at npopov.com>
DeltaFile
+572-0llvm/test/Transforms/LICM/vector-insert.ll
+87-0llvm/lib/Transforms/Scalar/LICM.cpp
+659-02 files

LLVM/project da88ce2flang/lib/Semantics check-omp-structure.cpp check-omp-structure.h, flang/test/Semantics/OpenMP type-param-inquiry.f90

[flang][OpenMP] Add type-param-inquiry checks for non-list clauses (#203059)

Clauses that take lists of objects have these objects checked in a
single place. There are still several clauses that take variables, but
not via a list. Those clauses still need individual checks for
type-param inquiries.
DeltaFile
+57-35flang/lib/Semantics/check-omp-structure.cpp
+41-0flang/test/Semantics/OpenMP/type-param-inquiry.f90
+4-4flang/lib/Semantics/check-omp-structure.h
+102-393 files

LLVM/project 2bfb9e1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py ExpectWriter.py

[Dexter] Add for_hit_count for state nodes

This patch adds the ability for state nodes to use a `for_hit_count: <int>`
field to limit the number of times that a given state node will be active.
DeltaFile
+75-11cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+78-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_for_hit_count.cpp
+35-11cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+33-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_hit_count_early_exit.cpp
+26-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_fn_hit_count.cpp
+10-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+257-263 files not shown
+269-329 files

LLVM/project 5dcdab8llvm/lib/Target/AMDGPU VOP3PInstructions.td AMDGPU.td, llvm/test/MC/AMDGPU gfx1251_asm_wmma_w32.s gfx1251_asm_wmma_w32_err.s

[AMDGPU] MC support for v_wmma_f64_16x16x4_f64 (#203141)
DeltaFile
+49-0llvm/test/MC/AMDGPU/gfx1251_asm_wmma_w32.s
+29-0llvm/test/MC/Disassembler/AMDGPU/gfx1251_dasm_wmma_w32.txt
+7-0llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+7-0llvm/test/MC/AMDGPU/gfx1251_asm_wmma_w32_err.s
+5-0llvm/lib/Target/AMDGPU/AMDGPU.td
+97-05 files

LLVM/project 569280fcompiler-rt CMakeLists.txt, compiler-rt/cmake base-config-ix.cmake config-ix.cmake

compiler-rt: Stop using APPLE cmake variable

Use a variable derived from the target triple instead.
This is a partial fix for cross compiling the GPU runtimes
on macos. Previously on mac hosts, the build system would go
down completely wrong paths. This improves the situation by
moving the failures to compilation pulling in host flags which
shouldn't be forwarded.

Despite the cmake documentation claiming the APPLE constant
is "Set to True when the target system is an Apple platform",
this appears to be true when the host is apple. Not sure if this
is worth reporting as a cmake bug, or if it's an artifact of some
runtimes build specifics. Change to using a new variable computed
from the target triple. Presumably the same bug exists for the various
WIN32 and ANDROID checks around, there are just fewer of them.
DeltaFile
+9-9compiler-rt/cmake/Modules/AddCompilerRT.cmake
+8-9compiler-rt/cmake/base-config-ix.cmake
+8-8compiler-rt/CMakeLists.txt
+7-7compiler-rt/lib/builtins/CMakeLists.txt
+6-6compiler-rt/lib/asan/tests/CMakeLists.txt
+6-6compiler-rt/cmake/config-ix.cmake
+44-4544 files not shown
+139-13450 files

LLVM/project 96eb0cbclang/test/AST undocumented-attrs.cpp, clang/utils/TableGen ClangAttrEmitter.cpp TableGen.cpp

Forcefully require new attributes to be documented (#203296)

Several years ago we began to require all new attributes be documented,
but we never had anything enforcing the requirement. However, despite
reviewers requesting this documentation, it's been missed often enough
that enforcement makes sense in order to reduce maintenance burden.

This adds a new tablegen option to spit out the list of undocumented
attributes, and a test which lists all of the existing undocumented
ones. If a new attribute is added, this test should catch the failure.
DeltaFile
+94-0clang/test/AST/undocumented-attrs.cpp
+43-0clang/utils/TableGen/ClangAttrEmitter.cpp
+7-0clang/utils/TableGen/TableGen.cpp
+2-0clang/utils/TableGen/TableGenBackends.h
+146-04 files

LLVM/project 08fea04lldb/test/API/tools/lldb-dap/locations TestDAP_locations.py

[lldb] Skip TestDAP_locations.py on arm64e (#203130)

See: https://github.com/llvm/llvm-project/issues/203127
DeltaFile
+3-0lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
+3-01 files

LLVM/project 74abe83llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.cpp RISCVELFStreamer.cpp, llvm/test/MC/RISCV target-abi-valid.s target-abi-invalid.s

[RISCV][CHERIoT] Define ABI_CHERIOT. (#192929)

These correspond to the CHERIoT ABI, documented here:
https://github.com/CHERIoT-Platform/cheriot-sail/releases/download/v1.0/cheriot-architecture-v1.0.pdf
In particular, CHERIoT is an RV32E-based architecture extended with
CHERI support that is not binary compatible with the proposed RV Y base.
Amongst other changes, it has customized calling conventions, such as
passing f64 in capability registers.
DeltaFile
+9-0llvm/test/MC/RISCV/target-abi-valid.s
+8-1llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+8-0llvm/test/MC/RISCV/target-abi-invalid.s
+1-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
+1-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
+27-15 files

LLVM/project f647e0dllvm/lib/Target/DirectX DXContainerPDB.cpp DXContainerGlobals.cpp

Address HLSL Tests issues
DeltaFile
+0-4llvm/lib/Target/DirectX/DXContainerPDB.cpp
+1-0llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+1-42 files

LLVM/project d853197llvm/test/CodeGen/RISCV clmul.ll clmulr.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll clmul-sdnode.ll

Rebase

Created using spr 1.3.7
DeltaFile
+38,494-84,026llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+22,388-22,086llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+19,087-24,391llvm/test/CodeGen/RISCV/clmul.ll
+10,473-12,572llvm/test/CodeGen/RISCV/clmulr.ll
+10,281-12,374llvm/test/CodeGen/RISCV/clmulh.ll
+8,361-8,920llvm/test/CodeGen/RISCV/rvv/expandload.ll
+109,084-164,3692,975 files not shown
+336,365-326,9172,981 files

LLVM/project 582643flibc/src/__support/FPUtil dyadic_float.h, libc/test/UnitTest FPMatcher.h

[libc][math] Adding LIBC_MATH_ASSUME_ROUND_NEAREST_ONLY option (#201154)

This PR adds a new option ~~`LIBC_MATH_ALWAYS_ROUND_NEAREST`~~
`LIBC_MATH_ASSUME_ROUND_NEAREST_ONLY` to LLVM libm.

There are some UBs that I kept as-is from the original code to keep the
changes non-disruptive (which I've marked with TODO comments)

Benchmarks (from `files.zip` in the comment
https://github.com/llvm/llvm-project/issues/198276#issue-4468816457):
- System libm:
```
overflow (>710)                1.55 ns/call  (644M ops/sec)
underflow to 0 (<-746)         1.34 ns/call  (747M ops/sec)
normal [-10,10]                4.41 ns/call  (227M ops/sec)
denormals [-740,-735]          2.25 ns/call  (444M ops/sec)
near-uflow [-700,-690]         2.25 ns/call  (444M ops/sec)
```
- LLVM libm (without the option being set):

    [20 lines not shown]
DeltaFile
+295-0libc/test/UnitTest/FPMatcher.h
+59-115libc/test/src/math/RoundToIntegerTest.h
+81-10libc/utils/MPFRWrapper/MPFRUtils.h
+38-53libc/test/src/math/RIntTest.h
+28-54libc/test/src/math/smoke/RoundToIntegerTest.h
+48-22libc/src/__support/FPUtil/dyadic_float.h
+549-25449 files not shown
+885-27755 files

LLVM/project d6e9232libc/src/__support freetrie.h freestore.h, libc/test/src/__support freetrie_test.cpp

Refactor FreeTrie to be intrusive proxy, add pop_min and tests

- Make FreeTrie a proxy holding root by reference.
- Move root and range storage outside FreeTrie (into FreeStore).
- Add find_min and pop_min implementations.
- Update tests and add pop_min test.

TAG=agy
CONV=7d0c366e-7fef-4a10-adb5-c96b98f5f2e2
DeltaFile
+73-20libc/test/src/__support/freetrie_test.cpp
+54-11libc/src/__support/freetrie.h
+13-6libc/src/__support/freestore.h
+140-373 files

LLVM/project ba7f7a6lldb/unittests/Host ProcessRunLockTest.cpp, llvm/test/CodeGen/AArch64/GlobalISel combine-max-min.mir

Merge branch 'main' into users/kparzysz/detach-type-param
DeltaFile
+352-572llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
+90-134llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
+86-130llvm/test/Transforms/SLPVectorizer/AArch64/aarch64-vector-functions.ll
+185-0lldb/unittests/Host/ProcessRunLockTest.cpp
+158-0llvm/test/CodeGen/AArch64/GlobalISel/combine-max-min.mir
+6-126llvm/test/Transforms/SLPVectorizer/X86/powi.ll
+877-962118 files not shown
+2,603-1,802124 files

LLVM/project 3b67307offload/plugins-nextgen/level_zero/dynamic_l0/level_zero ze_api.h, offload/plugins-nextgen/level_zero/include L0Event.h

[OFFLOAD][L0] Use counter-based events for inorder queues (#202301)

Inorder queues can use counter-based events which have better
performance and provide early-reused semantics.

Assisted by Claude.
DeltaFile
+16-0offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
+13-2offload/plugins-nextgen/level_zero/src/L0Event.cpp
+11-3offload/plugins-nextgen/level_zero/include/L0Event.h
+13-1offload/plugins-nextgen/level_zero/src/L0Context.cpp
+53-64 files

LLVM/project 5c8e727flang/test/Integration/OpenMP map-types-and-sizes.f90, flang/test/Lower/OpenMP optional-argument-map-2.f90 target-map-complex.f90

Revert "[Flang][OpenMP] remove enable-delayed-privatization-staging to suppor…" (#203348)

Reverts llvm/llvm-project#200952

test added in commit llvm/llvm-project#200952
`/offload/test/offloading/fortran/target-firstprivate.f90` on x86
offload, will fix test and open new PR with fixed changes
DeltaFile
+0-50offload/test/offloading/fortran/target-firstprivate.f90
+35-1flang/test/Lower/OpenMP/optional-argument-map-2.f90
+0-33flang/test/Lower/OpenMP/DelayedPrivatization/target-firstprivate.f90
+10-6flang/test/Lower/OpenMP/target-map-complex.f90
+8-4flang/test/Integration/OpenMP/map-types-and-sizes.f90
+10-1flang/test/Lower/OpenMP/target.f90
+63-9524 files not shown
+129-12430 files

LLVM/project 86aaf7bllvm/test/Transforms/SLPVectorizer/AArch64 accelerate-vector-functions-inseltpoison.ll aarch64-vector-functions.ll, llvm/test/Transforms/SLPVectorizer/RISCV math-function.ll

[SLP] Cost struct-returning intrinsic calls with a vector library mapping

getVectorCallCosts queried the vector intrinsic cost with a type-based-only
IntrinsicCostAttributes. That path always scalarizes struct-returning
intrinsics (e.g. llvm.sincos), which have no VFDatabase name mapping.
Retry with an argument-aware query when the type-based cost looks scalarized.

Fixes #200644

Reviewers: hiraditya, bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/201389
DeltaFile
+352-572llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
+90-134llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
+86-130llvm/test/Transforms/SLPVectorizer/AArch64/aarch64-vector-functions.ll
+6-126llvm/test/Transforms/SLPVectorizer/X86/powi.ll
+17-42llvm/test/Transforms/SLPVectorizer/X86/call.ll
+17-41llvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll
+568-1,0459 files not shown
+666-1,22915 files

LLVM/project 31613bfllvm/include/llvm/IR BundleAttributes.h, llvm/lib/IR BundleAttributes.cpp

[InstCombine] Drop redundant noundef assume bundles (#203309)
DeltaFile
+17-0llvm/test/Transforms/InstCombine/assume.ll
+7-1llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+6-0llvm/include/llvm/IR/BundleAttributes.h
+5-0llvm/lib/IR/BundleAttributes.cpp
+35-14 files

LLVM/project beb2021compiler-rt/test/cfi lit.cfg.py

fix python formatting

Created using spr 1.3.7
DeltaFile
+1-1compiler-rt/test/cfi/lit.cfg.py
+1-11 files

LLVM/project 42393d7flang/test/Integration/OpenMP map-types-and-sizes.f90, flang/test/Lower/OpenMP optional-argument-map-2.f90 target-map-complex.f90

Revert "[Flang][OpenMP] remove enable-delayed-privatization-staging to suppor…"

This reverts commit 1ee93f9e1ab7578c94ebd5f7e6aecaba9a33537d.
DeltaFile
+0-50offload/test/offloading/fortran/target-firstprivate.f90
+35-1flang/test/Lower/OpenMP/optional-argument-map-2.f90
+0-33flang/test/Lower/OpenMP/DelayedPrivatization/target-firstprivate.f90
+10-6flang/test/Lower/OpenMP/target-map-complex.f90
+8-4flang/test/Integration/OpenMP/map-types-and-sizes.f90
+10-1flang/test/Lower/OpenMP/target.f90
+63-9524 files not shown
+129-12430 files

LLVM/project fa888b3lldb/test/API/commands/platform/process/launch TestPlatformProcessLaunch.py

[lldb/test] Skip TestPlatformProcessLaunch on remote-darwin targets (#203070)
DeltaFile
+3-1lldb/test/API/commands/platform/process/launch/TestPlatformProcessLaunch.py
+3-11 files

LLVM/project 2e757b8compiler-rt/test/cfi summary.cpp lit.cfg.py

fix formatting issues

Created using spr 1.3.7
DeltaFile
+5-5compiler-rt/test/cfi/summary.cpp
+3-1compiler-rt/test/cfi/lit.cfg.py
+8-62 files

LLVM/project a114ffdlldb/include/lldb/Host ProcessRunLock.h, lldb/source/Host/common ProcessRunLock.cpp

[lldb] Make ProcessRunLock recursive on the read side per-thread (#201685)
DeltaFile
+185-0lldb/unittests/Host/ProcessRunLockTest.cpp
+129-0lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py
+106-3lldb/source/Host/common/ProcessRunLock.cpp
+33-40lldb/include/lldb/Host/ProcessRunLock.h
+44-0lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/bkpt_resolver.py
+32-0lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/frame_provider.py
+529-433 files not shown
+551-439 files

LLVM/project 70beebdllvm/include/llvm/Target/GlobalISel Combine.td, llvm/test/CodeGen/AArch64 combine-max-min.ll

[GIsel] import min/max rewrites (#188267)

this PR imports the rewrites for min/max operations existing in the
SelectionDAG
[combine](https://github.com/llvm/llvm-project/blob/20aff2085c358d3e112b245494161ddb9ffe0410/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L4272)
to GlobalISel

---------

Co-authored-by: Osman Yasar <osmanyas05 at gmail.com>
DeltaFile
+158-0llvm/test/CodeGen/AArch64/GlobalISel/combine-max-min.mir
+92-0llvm/test/CodeGen/AArch64/combine-max-min.ll
+87-0llvm/test/CodeGen/AArch64/GlobalISel/combine-max-min.ll
+28-1llvm/include/llvm/Target/GlobalISel/Combine.td
+365-14 files

LLVM/project f01cbe7llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 recalc-copyable-operand-deps-direct-use.ll

[SLP] Recompute deps of copyable-modeled operands used directly

An instruction modeled as a copyable element elsewhere can also be used
directly by a later-built node sharing an instruction with the copyable
nodes. The direct use was not counted, so the scheduler over-decremented
the operand and tripped the unscheduled-deps assertion. Defer
recomputation whenever the operand is modeled as a copyable element
anywhere.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/203342
DeltaFile
+123-0llvm/test/Transforms/SLPVectorizer/AArch64/recalc-copyable-operand-deps-direct-use.ll
+20-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+143-22 files

LLVM/project dbd31cbllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 recalc-copyable-operand-deps-direct-use.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+123-0llvm/test/Transforms/SLPVectorizer/AArch64/recalc-copyable-operand-deps-direct-use.ll
+20-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+143-22 files

LLVM/project 5244b87compiler-rt/lib/ubsan ubsan_handlers_cxx.cpp ubsan_handlers.cpp, compiler-rt/test/cfi summary.cpp lit.cfg.py

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+111-0compiler-rt/test/cfi/summary.cpp
+20-1compiler-rt/lib/ubsan/ubsan_handlers_cxx.cpp
+10-2compiler-rt/lib/ubsan/ubsan_handlers.cpp
+8-2compiler-rt/test/cfi/lit.cfg.py
+6-1compiler-rt/lib/ubsan/ubsan_checks.inc
+155-65 files