LLVM/project d9e26c4flang/lib/Optimizer/OpenMP FunctionFiltering.cpp, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

Reject target map iterators without captures

Reject target map iterators until the follow-up capture-binding
representation is added since currently map_iterated on omp.target
only represents the dynamic map list and does not consider the
target-region arguments required by IsolatedFromAbove.
DeltaFile
+0-23mlir/test/Dialect/OpenMP/ops.mlir
+0-19mlir/test/Target/LLVMIR/openmp-todo.mlir
+5-5mlir/test/Dialect/OpenMP/invalid.mlir
+5-0mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+0-1flang/lib/Optimizer/OpenMP/FunctionFiltering.cpp
+10-485 files

LLVM/project 98f2f8cclang-tools-extra/clang-tidy doc8.ini

[clang-tidy] Remove 80 char limit checking in CI. NFC. (#197609)

The
[RFC](https://discourse.llvm.org/t/rfc-remove-80-column-limit-in-documentation-files/89678/41)
on removing 80 columns limit got accepted. So we should no longer
enforce that rule in clang-tidy's code-linter workflow.
DeltaFile
+1-0clang-tools-extra/clang-tidy/doc8.ini
+1-01 files

LLVM/project ad8352fllvm/include/llvm/CodeGen MIRYamlMapping.h, llvm/lib/CodeGen MIRPrinter.cpp

[MIR] Save internal VirtRegMap state in MIR

Adds two optional fields to the per-vreg YAML record so MIR tests can
express VirtRegMap state that previously had no representation:

  registers:
    - { id: 1, class: vgpr_32, split-from: '%0', assigned-phys: '$vgpr5' }

Testing passes that consume sibling-register information (e.g.
InlineSpiller) requires constructing a VirtRegMap with split
relationships from a MIR test, which implies triggering live-range
splitting at minimum and make reproducers unnecessarily complicated.

So this change introduces a mechanism to serialize/deserialize the state
of the VirtRegMap pass.

Mechanism:
- For serialization:
  - MIRPrinter emits the new fields only when the VirtRegMap is available.

    [15 lines not shown]
DeltaFile
+48-0llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+25-8llvm/lib/CodeGen/MIRPrinter.cpp
+32-0llvm/test/CodeGen/MIR/AMDGPU/virtregmap-stash.mir
+18-0llvm/test/CodeGen/MIR/AMDGPU/virtregmap-stash-bad-phys.mir
+17-1llvm/include/llvm/CodeGen/MIRYamlMapping.h
+17-0llvm/test/CodeGen/MIR/AMDGPU/virtregmap-stash-self-split.mir
+157-95 files not shown
+216-1311 files

LLVM/project 6f65e88mlir/include/mlir/Dialect/OpenMP OpenMPOps.td, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

Simplify map iterator clause assembly

- Split MLIR map syntax into separate map_entries(...) and map_iterated(...),
  removing the custom MapEntryList parser/printer.
- Moved omp.target map_iterated out of TargetOpRegion
  - it now prints before the target region instead of as map_iterated_entries(...) after the region.
- Renamed LLVMIR TODO helper to clause-style checkMap.
- Added DeclareMapperInfoOp builder from DeclareMapperInfoOperands
  and updated Flang call sites so they do not need to spell out newly
  added operands..
DeltaFile
+9-85mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+14-14mlir/test/Dialect/OpenMP/ops.mlir
+12-12mlir/test/Dialect/OpenMP/invalid.mlir
+6-8mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+7-7mlir/test/Target/LLVMIR/openmp-todo.mlir
+6-3mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+54-1293 files not shown
+60-1379 files

LLVM/project 9b5d10fmlir/test/Dialect/OpenMP invalid.mlir

Fix operandSegmentSizes mismatch after rebase
DeltaFile
+1-1mlir/test/Dialect/OpenMP/invalid.mlir
+1-11 files

LLVM/project 536bfbfmlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

Add verifier check for iterated map info and tests for declare mapper
DeltaFile
+79-60mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+109-1mlir/test/Dialect/OpenMP/invalid.mlir
+24-0mlir/test/Target/LLVMIR/openmp-todo.mlir
+18-0mlir/test/Dialect/OpenMP/ops.mlir
+6-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+236-615 files

LLVM/project 756c517mlir/include/mlir/Dialect/OpenMP OpenMPOps.td, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

Require explicit yield in iterator op

Remove the implicit terminator trait from omp.iterator so iterator
modifiers must explicitly yield the value used to form the iterated list.

Add and update verfier and test accordingly.
DeltaFile
+15-0mlir/test/Dialect/OpenMP/ops.mlir
+5-8mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+9-0mlir/test/Dialect/OpenMP/invalid.mlir
+1-3mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+30-114 files

LLVM/project 2fd3653flang/lib/Optimizer/OpenMP LowerWorkdistribute.cpp, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

[mlir][OpenMP] Add iterator support to motion clauses

Extend omp.target_data, omp.target_enter_data, omp.target_exit_data,
and omp.target_update to support `!omp.iterated<Ty>`.

This is part of feature work for #188061

Assisted with copilot
DeltaFile
+128-21mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+100-1mlir/test/Dialect/OpenMP/ops.mlir
+83-0mlir/test/Target/LLVMIR/openmp-todo.mlir
+38-4mlir/test/Dialect/OpenMP/invalid.mlir
+19-18flang/lib/Optimizer/OpenMP/LowerWorkdistribute.cpp
+14-3mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+382-475 files not shown
+403-6111 files

LLVM/project 923a29acompiler-rt/test/profile CMakeLists.txt

[compiler-rt][profile][test] Match clang_rt.profile CRT model on MSVC (#197474)

On MSVC, Profile-* tests must link with the same CRT model as the
clang_rt.profile static archive they exercise. When that archive pulls
in RTInterception / RTSanitizerCommon object libraries, those are built
with MultiThreadedDLL (/MD), so the .objs reference `__imp_*` symbols.
The test binary defaults to /MT and fails to link with LNK2019
(`__imp__stricmp` from `interception_win.cpp`) and LNK4098 default-lib
conflicts.

Match the DLL CRT on the test side so test executables and the static
archive use the same runtime. The change is gated on
`COMPILER_RT_HAS_INTERCEPTION` and `!COMPILER_RT_PROFILE_BAREMETAL`, so
configurations that don't pull interception into profile are unaffected.

Split out as NFC from #177665 per review feedback.
DeltaFile
+11-0compiler-rt/test/profile/CMakeLists.txt
+11-01 files

LLVM/project 1d614f5clang/include/clang/AST DeclTemplate.h TypeBase.h, clang/lib/AST DeclTemplate.cpp ASTContext.cpp

[clang] NFC: add asserts enforcing template parameters have valid positions

Some tests are violating these assertions, so they are commented out.

For the test in `clang/test/SemaTemplate/concepts.cpp`, that was broken by #195995
and needs a partial revert at least.
DeltaFile
+25-34clang/include/clang/AST/DeclTemplate.h
+14-15clang/lib/AST/DeclTemplate.cpp
+6-3clang/lib/AST/ASTContext.cpp
+7-2clang/include/clang/AST/TypeBase.h
+5-2clang/test/SemaTemplate/concepts-lambda.cpp
+3-1clang/test/SemaTemplate/concepts.cpp
+60-572 files not shown
+64-608 files

LLVM/project b638763flang-rt/lib/cuda memory.cpp, flang-rt/unittests/Runtime/CUDA Memory.cpp

[flang][cuda] Use wider cudaMemcpy2D rows for descriptor transfers (#197563)
DeltaFile
+144-0flang-rt/unittests/Runtime/CUDA/Memory.cpp
+54-4flang-rt/lib/cuda/memory.cpp
+198-42 files

LLVM/project a9ee5d2clang/lib/Sema SemaTemplateDeductionGuide.cpp, clang/test/AST ast-dump-ctad-alias.cpp

[clang] CTAD: fix transformation of template template parameters

This fixes ther CTAD template parameter transforms so they produce
template template parameters which have correct depth for their own
template parameters.

This also stops calling SubstDecl directly on the non-type template
parameters, so that a template parameter with correct position is produced
directly, instead of manually fixing that up later. This helps #197598
by making it possible to add assertions that the positions are always valid.
DeltaFile
+151-23clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+2-2clang/test/SemaTemplate/deduction-guide.cpp
+1-1clang/test/AST/ast-dump-ctad-alias.cpp
+154-263 files

LLVM/project f7f6040clang/lib/CIR/CodeGen CIRGenExpr.cpp, clang/test/CIR/CodeGen temporary-materialization-adjust.cpp

[CIR]Materialize temp adjustments (#197585)

This is a pretty trivial bit of adjustments that have to happen when
emitting a materialized temporary, and is effectively a clone of classic
codegen. Our output is effectively identical (other than some minor
re-orering problems).
DeltaFile
+61-0clang/test/CIR/CodeGen/temporary-materialization-adjust.cpp
+23-4clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+84-42 files

LLVM/project 2ee4669clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp, clang/test/CIR/CodeGen global-tls-templates.cpp global-tls-dyn-init.cpp

[CIR] Lower 'init' functions for global TLS (#197460)

This is the last patch for global/namespace thread-local variables. This
patch emits the final 'init' function, which calls all other init
functions, plus does the guard variable for the unordered variants.
DeltaFile
+100-5clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+38-4clang/test/CIR/CodeGen/global-tls-templates.cpp
+32-8clang/test/CIR/CodeGen/global-tls-dyn-init.cpp
+32-8clang/test/CIR/CodeGen/global-tls-simple-init.cpp
+202-254 files

LLVM/project f0ad8eelldb/source/Plugins/UnwindAssembly/InstEmulation UnwindAssemblyInstEmulation.cpp

[lldb] Don't read live memory for assembly inst emulation (#197601)

In 2021, Augusto changed the Target::ReadMemory API from taking a
`prefer_file_cache` argument to taking a `force_live_memory` argument,
with opposite meanings - where we used to pass true, the callers now
needed to pass false. The default argument was false, so many callers
omitted the argument altogether after the change.

One of the edits to
UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly
unintentionally swapped the intended behavior -- this method which reads
the bytes of a function's instructions for emulation should get the
bytes from the local binary, if possible, else read from live memory.
But it was changed to force reading from live memory unconditionally.
This leads to an extra memory read for every function we see for the
first time in a single `lldb` process run (the UnwindTable they are
added to is part of the Module, and kept in the global Module cache).

It's not a major perf regression, but these are extra memory reads that

    [5 lines not shown]
DeltaFile
+1-2lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
+1-21 files

LLVM/project 7c7a47eclang/lib/CodeGen CGHLSLBuiltins.cpp CGCall.cpp, clang/test/CodeGenHLSL/builtins QuadReadAcrossX.hlsl QuadReadAcrossY.hlsl

[Clang][HLSL] Use EmitIntrinsicCall instead of EmitRuntimeCall for intrinsic (#197380)

Fix HLSL builtin to SPIR-V intrinsic lowering: most intrinsics calls
must use CallingConv::C.

Relates to #197608 which tries to add CallingConv CHECK to IR Verifier.
DeltaFile
+42-74clang/lib/CodeGen/CGHLSLBuiltins.cpp
+44-44clang/test/CodeGenHLSL/builtins/QuadReadAcrossX.hlsl
+41-41clang/test/CodeGenHLSL/builtins/QuadReadAcrossY.hlsl
+24-0clang/lib/CodeGen/CGCall.cpp
+11-11clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl
+11-11clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl
+173-18122 files not shown
+237-23628 files

LLVM/project eb17171clang/include/clang/AST DeclTemplate.h TypeBase.h, clang/lib/AST DeclTemplate.cpp ASTContext.cpp

[clang] NFC: add asserts enforcing template parameters have valid positions

Some tests are violating these assertions, so they are commented out.

For the test in `clang/test/SemaTemplate/concepts.cpp`, that was broken by #195995
and needs a partial revert at least.
DeltaFile
+151-23clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+25-34clang/include/clang/AST/DeclTemplate.h
+14-15clang/lib/AST/DeclTemplate.cpp
+6-3clang/lib/AST/ASTContext.cpp
+7-2clang/include/clang/AST/TypeBase.h
+5-2clang/test/SemaTemplate/concepts-lambda.cpp
+208-795 files not shown
+218-8611 files

LLVM/project ac9fa5dclang/include/clang/AST DeclTemplate.h TypeBase.h, clang/lib/AST DeclTemplate.cpp ASTContext.cpp

[clang] NFC: add asserts enforcing template parameters have valid positions

Some tests are violating these assertions, so they are commented out.

For the test in `clang/test/SemaTemplate/concepts.cpp`, that was broken by #195995
and needs a partial revert at least.
DeltaFile
+151-23clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+25-34clang/include/clang/AST/DeclTemplate.h
+14-15clang/lib/AST/DeclTemplate.cpp
+7-2clang/include/clang/AST/TypeBase.h
+6-3clang/lib/AST/ASTContext.cpp
+5-2clang/test/SemaTemplate/concepts-lambda.cpp
+208-794 files not shown
+217-8510 files

LLVM/project 82ee3f4llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Introduce BasePointerIO to communicate base pointer information

Loads, stores, and later probably calls, can request a base pointer info
object from the user runtime. This object is queried right after the
base pointer of the operation is defined, and then passed to the
pre/post runtime calls of the loads and stores. This allows users to
inspect pointers early and once, but provide the analysis results to all
operations that might be executed in loops. A potential use case is to
lookup the size and start of the underlying object and then provide
those to the access runtime calls for in-bounds checking.
DeltaFile
+114-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+63-1llvm/include/llvm/Transforms/IPO/Instrumentor.h
+21-1llvm/test/Instrumentation/Instrumentor/default_config.json
+6-4llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+3-2llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+207-95 files

LLVM/project f996980llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 avx10_2fptosi_satcvtds.ll avx10_2_512fptosi_satcvtds.ll

[X86][AVX10.2] Add BF16 to (U/S)8 saturating FP to int lowering  (#197096)

This PR adds BF16 to I8 saturating FP to int convert custom lowering.
DeltaFile
+44-0llvm/test/CodeGen/X86/avx10_2fptosi_satcvtds.ll
+22-1llvm/lib/Target/X86/X86ISelLowering.cpp
+22-0llvm/test/CodeGen/X86/avx10_2_512fptosi_satcvtds.ll
+88-13 files

LLVM/project 33f7918llvm/lib/Target/PowerPC PPCISelLowering.cpp PPCInstrInfo.td

[PowerPC] Simplify lowering for lwat/ldat intrinsics (#194486)

This change defines 4 new output patterns, `PAIR8`,`EVEN8`, `AEXT8`, and
`TRUNC4`, and uses them to implement the lowering of the intrinsics
`int_ppc_amo_l[dw]at` and `int_ppc_amo_l[dw]at_cond` in TableGen. As
result, the output pattern to generate the instructions becomes more
understandable,, and the C++ code can be removed.
DeltaFile
+0-69llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+23-10llvm/lib/Target/PowerPC/PPCInstrInfo.td
+4-12llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+27-913 files

LLVM/project 5eed9a1flang/test/Integration/OpenMP map-types-and-sizes.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[OpenMP][MLIR] Modify lowering OpenMP Dialect lowering to support attach mapping

This PR adjusts the LLVM-IR lowering to support the new attach map type that the runtime
uses to link data and pointer together, this swaps the mapping from the older
OMP_MAP_PTR_AND_OBJ map type in most cases and allows slightly more complicated ref_ptr/ptee
and attach semantics.
DeltaFile
+378-281mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+273-0mlir/test/Target/LLVMIR/omptarget-host-ref-semantics.mlir
+101-165flang/test/Integration/OpenMP/map-types-and-sizes.f90
+27-58mlir/test/Target/LLVMIR/omptarget-record-type-with-ptr-member-host.mlir
+70-0offload/test/offloading/fortran/map_attach_always.f90
+55-0offload/test/offloading/fortran/map_attach_never.f90
+904-50415 files not shown
+1,077-59821 files

LLVM/project 3b70638clang/include/clang/AST DeclTemplate.h, clang/lib/AST DeclTemplate.cpp ASTContext.cpp

[clang] NFC: add asserts enforcing template parameters have valid positions

Some tests are violating these assertions, so they are commented out.

Most of these are alias CTAD tests, with a couple of lambda in concepts tests on
top of that.

For the test in `clang/test/SemaTemplate/concepts.cpp`, that was broken by #195995
and needs a partial revert at least.
DeltaFile
+134-23clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+65-60clang/test/SemaTemplate/deduction-guide.cpp
+25-34clang/include/clang/AST/DeclTemplate.h
+14-15clang/lib/AST/DeclTemplate.cpp
+8-5clang/test/AST/ast-dump-ctad-alias.cpp
+6-3clang/lib/AST/ASTContext.cpp
+252-1406 files not shown
+274-14912 files

LLVM/project 36ce871llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add support for modules and globals

We can emit callbacks when a module is loaded/unloaded and before
globals are initialized. Both happens in newly introduced constructors
and destructors.
DeltaFile
+316-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+93-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+64-0llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+46-0llvm/test/Instrumentation/Instrumentor/default_config.json
+11-8llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+3-3llvm/test/Instrumentation/Instrumentor/unreachable.ll
+533-116 files

LLVM/project 940242ellvm/test/tools/llvm-cov directory_coverage.linux.test directory_coverage.test, llvm/test/tools/llvm-objdump/X86 source-interleave-prefix-windows.test

[Windows][test] Fix "LLVM" test failures when LLVM_WINDOWS_PREFER_FORWARD_SLASH is ON (#184556)

This patch fixes several LLVM test failures on Windows that occur when
the LLVM_WINDOWS_PREFER_FORWARD_SLASH CMake option is enabled.

The failures were caused by tests either hardcoding backslash
expectations in FileCheck or constructing paths with strict backslashes
in C++ unit tests, both of which break when the environment is
configured to prefer forward slashes.

Specific changes:
- `llvm-cov` lit tests: Changed the path separators with
`-DSEP=%{fs-sep}`.
- `llvm-objdump` lit test: Relaxed
`source-interleave-prefix-windows.test` to accept either forward or
backward slashes using the `{{[/\\]}}` regex. This makes the path
matching resilient to the underlying separator preference without losing
precision.
- CommandLineTest.cpp: Conditionalized the TestRoot variable to use

    [5 lines not shown]
DeltaFile
+0-53llvm/test/tools/llvm-cov/directory_coverage.linux.test
+52-0llvm/test/tools/llvm-cov/directory_coverage.test
+0-44llvm/test/tools/llvm-cov/directory_coverage.win.test
+9-8llvm/test/tools/llvm-cov/native_separators.c
+10-2llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test
+6-1llvm/unittests/Support/Path.cpp
+77-1081 files not shown
+79-1107 files

LLVM/project be5ae87llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add support for modules and globals

We can emit callbacks when a module is loaded/unloaded and before
globals are initialized. Both happens in newly introduced constructors
and destructors.
DeltaFile
+316-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+93-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+64-0llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+46-0llvm/test/Instrumentation/Instrumentor/default_config.json
+11-8llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+3-3llvm/test/Instrumentation/Instrumentor/unreachable.ll
+533-116 files

LLVM/project ba31b6dllvm/docs Instrumentor.rst, llvm/lib/Transforms/IPO InstrumentorUtils.cpp

[Instrumentor] Add a property filter for static properties

The user can define static filters in the json to limit instrumentation
to opportunities that match the static expression, e.g., is_volatile==1.
The matcher logic is pretty basic for now. Integer comparisons, pointer
null checks, string equalities and startswith are supported.

The commit was prepared with Claude (AI) and modified/tested by me.
DeltaFile
+475-0llvm/lib/Transforms/IPO/InstrumentorUtils.cpp
+153-0llvm/docs/Instrumentor.rst
+114-0llvm/test/Instrumentation/Instrumentor/test_filter_parentheses.ll
+69-0llvm/test/Instrumentation/Instrumentor/test_filter.ll
+58-0llvm/test/Instrumentation/Instrumentor/test_filter_parentheses_config.json
+56-0llvm/test/Instrumentation/Instrumentor/test_filter_config.json
+925-013 files not shown
+1,223-219 files

LLVM/project 1530593llvm/include/llvm/Target Target.td, llvm/test/TableGen aarch64-apple-tuning-features.td

[llvm] Sort the Subtarget feature implies list by name (#197302)
DeltaFile
+11-11llvm/test/TableGen/aarch64-apple-tuning-features.td
+1-1llvm/include/llvm/Target/Target.td
+12-122 files

LLVM/project 18e73eellvm/docs/TableGen ProgRef.rst, llvm/lib/TableGen TGParser.cpp Record.cpp

[llvm] Add a tablegen !sort operator (#197303)

This operator creates a new ``list`` containing the same elements as
*list*
but in sorted order. To determine the order, TableGen binds the variable
*var* to each element and evaluates the *key* expression, which
presumably
refers to *var*. The key must produce a ``string`` or integer value
(``bit``, ``bits``, or ``int``); all keys must be of the same type.
Elements
with equal keys preserve their original relative order, resulting in a
stable
sort.

For example, to sort a list of records by their ``Name`` field::

`  list<Thing> sorted = !sort(t, Things, t.Name);`
DeltaFile
+66-26llvm/lib/TableGen/TGParser.cpp
+71-0llvm/test/TableGen/sort.td
+62-1llvm/lib/TableGen/Record.cpp
+15-0llvm/docs/TableGen/ProgRef.rst
+2-2llvm/lib/TableGen/TGParser.h
+1-0llvm/lib/TableGen/TGLexer.cpp
+217-292 files not shown
+219-298 files

LLVM/project 93bfabbllvm/tools/llvm-offload-binary llvm-offload-binary.cpp

[Offload] Make 'llvm-offload-binary' use multi-binaries (#197456)

Summary:
There's two ways you can put multiple binaries in the section. Either
use the version two multi-binary support or just concatenate them. This
PR changes the llvm-offload-binary tool to use the multi-support rather
than directly concatenating them.

The motivation for this is to save space and make it easier to support
compression in the future. Compression would be a flag in the header and
the compression is only really valuable if it can combine the
architecture variants. ELF section compression is a little spotty but
would be another good solution.
DeltaFile
+8-9llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp
+8-91 files