LLVM/project 6c64dec — compiler-rt/lib/tsan/rtl tsan_interceptors_mac.cpp, compiler-rt/test/tsan/Darwin objc-atomic-struct-property.mm objc-synchronize-no-false-cycle.mm

[Darwin][TSan] Only track lock state for locks taken by instrumented code (#234732)

Some libraries take and release os_unfair_locks in a manner that is
opaque to TSan; this can result in the deadlock detector failing to free
slots (that it believes are currently held locks) and running out of
space in `all_locks_with_contexts_`, failing a CHECK condition, and
dying. Additionally it can lead to false positive reports of 'unlock of
an unlocked mutex'.

This patch conservatively prevents locking operations in noninstrumented
code from being tracked by the deadlock detector by default. It also
ignores any unlock of an os_unfair_lock without a corresponding lock
(this will assert anyway).

rdar://190667681
DeltaFile
+51-15compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
+40-0compiler-rt/test/tsan/Darwin/objc-synchronize-no-false-cycle.mm
+38-0compiler-rt/test/tsan/Darwin/objc-atomic-struct-property.mm
+129-153 files

LLVM/project 5f11ce5 — llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVBuiltins.td, llvm/test/CodeGen/SPIRV/debug-info debugtrap-debugline.ll

[SPIR-V] Lower llvm.debugtrap to NonSemantic.DebugBreak (#231354)

[SPIRV] Lower llvm.debugtrap to NonSemantic.DebugBreak

Lowers the generic `llvm.debugtrap` intrinsic to the extended
instruction `OpExtInst %void <set> DebugBreak` in the
SPIR-V backend per HLSL proposal 0039. Instead of adding
a target-specific intrinsic, this reuses the existing
`llvm.debugtrap` pipeline (`G_DEBUGTRAP` -> `selectDebugTrap`),
requiring no clang changes.

- Emits `OpExtension "SPV_KHR_non_semantic_info"` when targeting SPIR-V
< 1.6
- Falls back to `OpNop` when the extended set is unavailable, ensuring
lowering
  never fails.
- Adds necessary TableGen definitions, opcode enums, and string
mappings.


    [3 lines not shown]
DeltaFile
+37-0llvm/test/CodeGen/SPIRV/llvm-intrinsics/debugtrap-nonsemantic-debugbreak.ll
+35-0llvm/test/CodeGen/SPIRV/llvm-intrinsics/debugtrap-nonsemantic-debugbreak-opencl.ll
+31-0llvm/test/CodeGen/SPIRV/debug-info/debugtrap-debugline.ll
+13-5llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+12-0llvm/lib/Target/SPIRV/SPIRVBuiltins.td
+8-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+136-54 files not shown
+154-610 files

LLVM/project ea6eced — lldb/source/Plugins/Language/ObjC Cocoa.h NSString.cpp

[lldb] Remove ConstString from ObjCLanguage formatters (#239834)

These are easily replaced with llvm::StringMap and llvm::StringRef.

There are a handful of remaining uses but they are to fulfill API
requirements.
DeltaFile
+29-31lldb/source/Plugins/Language/ObjC/NSArray.cpp
+26-33lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+15-17lldb/source/Plugins/Language/ObjC/NSSet.cpp
+12-11lldb/source/Plugins/Language/ObjC/NSDictionary.h
+6-7lldb/source/Plugins/Language/ObjC/NSString.cpp
+4-2lldb/source/Plugins/Language/ObjC/Cocoa.h
+92-1012 files not shown
+95-1058 files

LLVM/project 33f6d14 — llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_compute_shader_derivatives quad-all.ll

[HLSL] Add QuadAll builtin (#236932)

This PR adds the QuadAll builtin to clang, with both DXIL and SPIRV
lowering.

Fixes https://github.com/llvm/llvm-project/issues/99215
Assisted by: Github Copilot

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 365638e8-2291-4925-8f1e-1b5c23220818
DeltaFile
+44-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_compute_shader_derivatives/quad-all.ll
+37-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_quad_control/quad-all-with-modes.ll
+37-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadAll.ll
+35-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_quad_control/quad-derivatives.ll
+35-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_quad_control/require-full-quads.ll
+33-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+221-020 files not shown
+449-326 files

LLVM/project 85e339b — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination sadd-with-overflow.ll minmax.ll

[ConstraintElim] Split signed min/max across their operands when checking a compare

The existing constraint systems only record the bounds that hold for both
operands of a min/max (smax(a, b) >= a and >= b, smin(a, b) <= a and <= b). The
other direction is a disjunction, which cannot be recorded as a fact. When a
compare of signed decompositions involves a min/max result, split it into its
operands: the decomposition is monotonic in that result, so it is the max or min
of its values on each side, and the relation holds for all or for either side
respectively.

https://alive2.llvm.org/ce/z/zsGkJ-
DeltaFile
+366-3llvm/test/Transforms/ConstraintElimination/minmax.ll
+111-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+4-8llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+481-113 files

LLVM/project bb021a7 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination ssub-with-overflow.ll sadd-with-overflow.ll

[ConstraintElim] Prove sadd/ssub.with.overflow cannot overflow from the exact sum

Decompose the operands and show that the sum lies in the range of the type. This
handles patterns like A + (B - A), as well as sums involving signed min/max
results, which are split across their respective operands using monotonicity
(for example start + smax(end - start - 1, 0) <= end).

https://alive2.llvm.org/ce/z/ze8LCk
DeltaFile
+634-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+159-3llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+100-0llvm/test/Transforms/ConstraintElimination/ssub-with-overflow.ll
+893-33 files

LLVM/project 5cf68b4 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp

cache known bits for opposite signs check
DeltaFile
+13-10llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+13-101 files

LLVM/project c02556a — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination add-nsw.ll sadd-with-overflow.ll

[ConstraintElim] A signed sum of operands with opposite signs cannot wrap

If one operand is known non-negative and the other non-positive, the signed
sum is between them, so it cannot overflow.

https://alive2.llvm.org/ce/z/ZF5Yqr
DeltaFile
+62-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+19-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+3-6llvm/test/Transforms/ConstraintElimination/add-nsw.ll
+84-63 files

LLVM/project 552705c — llvm/lib/Transforms/Scalar ConstraintElimination.cpp

tweak getKnownSign comment grammar
DeltaFile
+2-2llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+2-21 files

LLVM/project e2190cd — mlir/lib/Conversion/IndexToLLVM CMakeLists.txt

[mlir][IndexToLLVM] Link MLIRAnalysisBase instead of the MLIRAnalysis umbrella (#240466)

#238966 added the \`MLIRAnalysis\` umbrella to \`MLIRIndexToLLVM\`'s
link libraries, but the conversion only needs \`DataLayoutAnalysis\`,
which lives in \`MLIRAnalysisBase\`. Same issue as #238915: the umbrella
archive (#232793) reuses the component object libraries, so depending on
it puts both \`libMLIRAnalysis.a\` and e.g. \`libMLIRAnalysisBase.a\` on
the link line of anything that links all of MLIR's libraries. Linkers
that extract every archive member (e.g. \`--whole-archive\`) then fail
with duplicate symbols.

Assisted by: Claude
DeltaFile
+1-1mlir/lib/Conversion/IndexToLLVM/CMakeLists.txt
+1-11 files

LLVM/project 91d4667 — llvm/lib/Analysis ValueTracking.cpp, llvm/unittests/Analysis ValueTrackingTest.cpp

[ValueTracking] call nnan/ninf noundef cannot return poison (#239912)

While working on #239458, I noticed that ValueTracking had inconsistent
semantics for call instructions with both nnan/ninf and noundef.
canCreateUndefOrPoison would return true, but
isGuaranteedNotToBeUndefOrPoison would also return true.

This effectively decides on one of the two semantics, saying that `call
{nnan,ninf} noundef` cannot return poison (effectively nnan/ninf getting
evaluted before noundef). This keeps `nnan noundef` consistent with
`nofpclass(nan) noundef` and makes `noundef` actually useful with FMF.
DeltaFile
+13-0llvm/unittests/Analysis/ValueTrackingTest.cpp
+4-5llvm/lib/Analysis/ValueTracking.cpp
+17-52 files

LLVM/project d96749a — clang/include/clang/Basic HLSLIntrinsics.td, clang/test/CodeGenHLSL/builtins all.hlsl any.hlsl

[DirectX] Add support for VectorReduce update Any\All to use it (#224745)

resolves  https://github.com/llvm/llvm-project/issues/224710
resolves https://github.com/llvm/llvm-project/issues/224397
resolves https://github.com/llvm/llvm-project/issues/224395

We added a custom scalarization for vector reduce or\and.
We made the all and any intrinsics use the vector reduction clang
builtins
that let us delete a bunch of code.
DeltaFile
+63-214clang/test/CodeGenHLSL/builtins/any.hlsl
+64-184clang/test/CodeGenHLSL/builtins/all.hlsl
+0-113llvm/test/CodeGen/DirectX/any.ll
+0-83llvm/test/CodeGen/DirectX/all.ll
+24-46llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
+30-4clang/include/clang/Basic/HLSLIntrinsics.td
+181-64413 files not shown
+235-72919 files

LLVM/project bbb2db9 — clang/lib/CodeGen CGOpenMPRuntime.h CGOpenMPRuntime.cpp

[Clang][OpenMP] Update OpenMP CodeGen to support dims modifier
DeltaFile
+240-165clang/lib/CodeGen/CGOpenMPRuntime.cpp
+14-12clang/lib/CodeGen/CGOpenMPRuntime.h
+254-1772 files

LLVM/project 592b779 — clang/test/OpenMP dims_modifier_codegen.cpp

Add codegen test
DeltaFile
+14,789-0clang/test/OpenMP/dims_modifier_codegen.cpp
+14,789-01 files

LLVM/project b9d70a5 — llvm/lib/Transforms/Scalar GVNHoist.cpp, llvm/test/Transforms/GVNHoist pr30216.ll hoist.ll

[GVNHoist] Replace getDefiningAccess with getClobberingMemoryAccess (#240217)

getDefiningAccess in safeToHoistLdSt returns the nearest stores if we
don't query AA result by using getClobberingMemoryAccess. This reduce
the opportunity for optimization as isLiveOnEntryDef returns false
without updating in safeToHoistLdSt.

In the example (See Closes item): after hoisting left.a and left.b,
getDefiningAccess returns `store q` before.

As a result, we replace getDefiningAccess with getClobberingMemoryAccess
and then we can safely remove ensureOptimizedUses now.

Assisted-by: Claude # Test
Closes: #221578
DeltaFile
+47-0llvm/test/Transforms/GVNHoist/hoist.ll
+9-7llvm/test/Transforms/GVNHoist/pr30216.ll
+1-4llvm/lib/Transforms/Scalar/GVNHoist.cpp
+57-113 files

LLVM/project 27a96b3 — clang/include/clang/AST HLSLResource.h, clang/lib/CodeGen CodeGenModule.cpp

[Hlsl][Spirv] Don't emit global variables for structs containing just resources (#234797)

For global, non-static instances of a struct containing resources, we
end up splitting these recursively into separate global variables for
each resource, and for numeric members these go into the default
$globals cbuffer.

For this change, when there's a instance of a struct (or array of)
containing only resources, skip emitting a global variable for the
struct. Before, it would emit external linkage globals of these which
would not get removed.

based on
https://github.com/llvm/wg-hlsl/blob/main/proposals/0038-resources-in-structs.md

improves #194435

assisted by: codex
DeltaFile
+28-0clang/test/CodeGenHLSL/resources/resources-in-structs-no-global.hlsl
+23-0clang/test/CodeGenHLSL/resources/resources-in-structs-static-global.hlsl
+9-3clang/lib/CodeGen/CodeGenModule.cpp
+2-3clang/lib/Sema/SemaHLSL.cpp
+5-0clang/include/clang/AST/HLSLResource.h
+67-65 files

LLVM/project 6af7d8c — utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[bazel][llvm] Add SelectionDAGOptionsTableGen to CodeGen deps (#240498)

Fixes build failure introduced by commit 3e3ca055b0bb ("[SelectionDAG]
Declare command line options in TableGen (Part 1) (#240033)"), which
generated SelectionDAGOptions.inc from SelectionDAGOptions.td.

Add gentbl_cc_library target SelectionDAGOptionsTableGen and add it to
CodeGen deps.

LLM-aided
DeltaFile
+10-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+10-01 files

LLVM/project e79250d — lldb/packages/Python/lldbsuite/test lldbtest.py

[lldb][test] Lazily generate ValueCheck error messages (#240484)

We spend a large amount of time in the test suite preparing the error
messages for failed asserts. All of this time is spent on formatting
SBValue objects that we are checking, so we can print their textual
representation in the assert error.

This patch uses the typical Python lazy string class trick to make this
evaluation lazy. This speeds up several tests by a small amount, and
some tests like `TestDataFormatterGenericDeque.py` get their runtime cut
from 30s to 7s.
DeltaFile
+13-4lldb/packages/Python/lldbsuite/test/lldbtest.py
+13-41 files

LLVM/project 50e726e — lldb/source/Register/Arch RegisterInfos_ppc64le.h

[lldb] Correct the PowerPC VSX register 60 description (#240092)
DeltaFile
+1-1lldb/source/Register/Arch/RegisterInfos_ppc64le.h
+1-11 files

LLVM/project 1da136e — lldb/source/Register/Arch RegisterContext_mips.h RegisterInfos_mips64.h

[lldb] Remove unused MIPS register descriptions (#239081)

Remove the unused MIPS and MIPS64 register-info tables and Linux
register-buffer structures. Keep the numbering definitions used by the
instruction emulators.
DeltaFile
+0-305lldb/source/Register/Arch/RegisterInfos_mips.h
+0-223lldb/source/Register/Arch/RegisterInfos_mips64.h
+0-131lldb/source/Register/Arch/RegisterContext_mips.h
+0-6593 files

LLVM/project 6ccbbe6 — libc/cmake/modules LLVMLibCTestRules.cmake, libc/src/__support/math CMakeLists.txt

[libc][cmake] Collapse extra blank lines in cmake_format (#240295)

Updated cmake_format.py to collapse consecutive blank lines to a single
blank line and strip leading blank lines at the start of files. Applied
the updated formatter across libc CMake files.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+56-0libc/utils/cmake_format_test.py
+5-4libc/utils/cmake_format.py
+0-5libc/src/__support/math/CMakeLists.txt
+0-3libc/test/src/math/smoke/CMakeLists.txt
+0-3libc/src/math/generic/CMakeLists.txt
+0-3libc/cmake/modules/LLVMLibCTestRules.cmake
+61-1816 files not shown
+61-3522 files

LLVM/project 14fc598 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination sadd-with-overflow.ll minmax.ll

[ConstraintElim] Split signed min/max across their operands when checking a compare

The existing constraint systems only record the bounds that hold for both
operands of a min/max (smax(a, b) >= a and >= b, smin(a, b) <= a and <= b). The
other direction is a disjunction, which cannot be recorded as a fact. When a
compare of signed decompositions involves a min/max result, split it into its
operands: the decomposition is monotonic in that result, so it is the max or min
of its values on each side, and the relation holds for all or for either side
respectively.

https://alive2.llvm.org/ce/z/zsGkJ-
DeltaFile
+366-3llvm/test/Transforms/ConstraintElimination/minmax.ll
+111-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+4-8llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+481-113 files

LLVM/project c026611 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination ssub-with-overflow.ll sadd-with-overflow.ll

[ConstraintElim] Prove sadd/ssub.with.overflow cannot overflow from the exact sum

Decompose the operands and show that the sum lies in the range of the type. This
handles patterns like A + (B - A), as well as sums involving signed min/max
results, which are split across their respective operands using monotonicity
(for example start + smax(end - start - 1, 0) <= end).

https://alive2.llvm.org/ce/z/ze8LCk
DeltaFile
+634-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+159-3llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+100-0llvm/test/Transforms/ConstraintElimination/ssub-with-overflow.ll
+893-33 files

LLVM/project ac8062d — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination add-nsw.ll sadd-with-overflow.ll

[ConstraintElim] A signed sum of operands with opposite signs cannot wrap

If one operand is known non-negative and the other non-positive, the signed
sum is between them, so it cannot overflow.

https://alive2.llvm.org/ce/z/ZF5Yqr
DeltaFile
+62-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+19-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+3-6llvm/test/Transforms/ConstraintElimination/add-nsw.ll
+84-63 files

LLVM/project 7083522 — clang/include/clang/Basic HLSLIntrinsics.td, clang/lib/Sema SemaHLSL.cpp

Reapply `WaveMultiPrefixCountBits` with test fix (#239503)

Reapply #238132 after revert #239439. Add `WaveMultiPrefixCountBits`
with DirectX lowering. SPIR-V calls report that the builtin is not
supported on that target.

Keep the Clang IR checks in
`clang/test/CodeGenHLSL/builtins/WaveMultiPrefixCountBits.hlsl`. Put the
DXIL checks in `llvm/test/CodeGen/DirectX/WaveMultiPrefixCountBits.ll`,
where the existing directory configuration skips them when DirectX is
not built. Cover dynamic, true, and false inputs.

The first commit restores the original change. The second commit adds
the test fix. This avoids the unconditional DirectX-only command that
was present in the Clang test.

Fixes #99211.

Assisted by: GitHub Copilot

    [4 lines not shown]
DeltaFile
+63-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixCountBits-errors.hlsl
+32-10clang/lib/Sema/SemaHLSL.cpp
+34-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixCountBits.hlsl
+30-0llvm/test/CodeGen/DirectX/WaveMultiPrefixCountBits.ll
+9-0llvm/lib/Target/DirectX/DXIL.td
+9-0clang/include/clang/Basic/HLSLIntrinsics.td
+177-106 files not shown
+210-1012 files

LLVM/project bb20896 — lldb/test/API/python_api/target TestTargetAPI.py

[lldb][test] Remove dead Continue calls from TestTargetAPI.py (#239030)

This test launches a program that has no breakpoint, which causes the
launch to stall until the process exists. Then, we call Continue several
times with a dead process. The Continue with a exited process does
nothing right now aside from stalling for 5 seconds.

This removes the dead Continue calls that were just copy-pasted from the
other tests. This removes the 20s of waiting, and cuts the test time
from 27s to 7s.
DeltaFile
+0-4lldb/test/API/python_api/target/TestTargetAPI.py
+0-41 files

LLVM/project 0d80555 — lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string TestLibcxxStringRev3.py TestLibcxxStringRev2.py

[lldb][test] Split up LibcxxStringSimulator test [NFC] (#239017)

TestDataFormatterLibcxxStringSimulator.py is by far the slowest test in
LLDB and runs for about 90s on the bot, which more than twice as long as
the second slowest test (TestTargetAPI with 38s). There isn't anything
wrong with the test itself, and I don't see anything we can easily
optimize.

Instead, this patch splits up TestDataFormatterLibcxxStringSimulator.py
into several tests that each test just one libcxx revision. This way we
can run the different subtests in parallel, which is beneficial on
machines with many cores.
DeltaFile
+0-43lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestDataFormatterLibcxxStringSimulator.py
+40-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/libcxx_string_simulator.py
+10-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestLibcxxStringRev3.py
+10-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestLibcxxStringRev2.py
+10-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestLibcxxStringRev1.py
+10-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestLibcxxStringRev0.py
+80-432 files not shown
+100-438 files

LLVM/project 1e76fd7 — flang/lib/Semantics openmp-utils.cpp, flang/test/Lower/OpenMP metadirective-user.f90

Keep the condition key when a match_any WHEN clause omits its directive

The unguarded candidate of a match_any WHEN clause keeps its condition
key when the clause has a directive, but not when it omits one. A
selector with a key is then never a strict subset of one without, so
with

```
  !$omp metadirective &
  !$omp& when(user={condition(a)}, &
  !$omp&      implementation={vendor(score(4): llvm), extension(match_any)}: &
  !$omp&      taskwait) &
  !$omp& when(user={condition(a)}, device={kind(host)}, &
  !$omp&      implementation={vendor(score(3): llvm), extension(match_any)}:)
```

TASKWAIT was also selected when `a` is false. Give both unguarded
candidates the key, so the first is again a strict subset of the second
and nothing is selected when `a` is false.

    [9 lines not shown]
DeltaFile
+60-0flang/test/Lower/OpenMP/metadirective-user.f90
+8-2flang/lib/Semantics/openmp-utils.cpp
+68-22 files

LLVM/project f408a5b — offload/libomptarget omptarget.cpp, offload/test/mapping/present zero_length_array_section_update.c

[OpenMP] Fix non-contiguous and empty target updates

Only merge consecutive innermost contiguous dimensions so a gap in an
inner dimension cannot be hidden by contiguous outer dimensions. Skip
empty updates before presence checks and data transfers, and use 64-bit
counts while visiting an already contiguous final dimension only once.

Exercise C/C++ array sections through target update pragmas, including
both transfer directions, multidimensional gaps, and empty present
updates. Retain direct ABI coverage for zero physical strides and
synthetic oversized descriptors that cannot be expressed in valid C/C++.

Co-authored-by: Codex <codex at openai.com>
DeltaFile
+104-0offload/test/offloading/strided_update/strided_update_multidim_gap.c
+81-0offload/test/offloading/non_contiguous_update_empty.cpp
+46-0offload/test/offloading/strided_update/strided_update_empty.c
+26-13offload/libomptarget/omptarget.cpp
+37-0offload/test/mapping/present/zero_length_array_section_update.c
+294-135 files

LLVM/project 1fd57eb — llvm/test/Transforms/ConstraintElimination transfer-samesign-facts.ll

use assume, drop entry block labels
DeltaFile
+14-50llvm/test/Transforms/ConstraintElimination/transfer-samesign-facts.ll
+14-501 files