LLVM/project c57c19forc-rt/include/orc-rt-internal/tools CommandLine.h OptionParser.h, orc-rt/test/tools orc-rt-process-info-check.cpp orc-rt-log-check.cpp

[orc-rt] Rename CommandLineParser to OptionParser. (#220461)

"OptionParser" better describes what the class does: it parses a list of
option strings, which need not come from a command line (e.g. options
read from a config file, or constructed in a unit test).
DeltaFile
+0-270orc-rt/include/orc-rt-internal/tools/CommandLine.h
+270-0orc-rt/include/orc-rt-internal/tools/OptionParser.h
+0-166orc-rt/test/unit/tools/CommandLineTest.cpp
+166-0orc-rt/test/unit/tools/OptionParserTest.cpp
+2-2orc-rt/test/tools/orc-rt-process-info-check.cpp
+2-2orc-rt/test/tools/orc-rt-log-check.cpp
+440-4401 files not shown
+441-4417 files

LLVM/project 58c6f14llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vabd.ll

[RISCV] Fix instruction combine of vwaddu.wv and vabd[u].vv (#220143)

The existing combination of `vwaddu.wv` and `vabd.vv/vabdu.vv` may
trigger a stack dump: The source operands of `vwaddu.wv` are not
commutative. Swapping these operands can generate an invalid `VWABDA_VL`
node and cause ISel to panic. This PR fixes the issue and only allows
the instruction with same `mask` and `vl` to be combined.
DeltaFile
+75-0llvm/test/CodeGen/RISCV/rvv/vabd.ll
+28-14llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+103-142 files

LLVM/project 3814bd8llvm/lib/Analysis ValueTracking.cpp, llvm/test/Transforms/InstCombine/RISCV riscv-vlenb-range.ll

[ValueTracking][RISCV] Derive range and pow2 for vlenb CSR reads (#219924)

__riscv_vlenb() lowers to a read of the RISC-V vlenb CSR via
llvm.read_register("vlenb"), which returns VLEN/8. Teach
ValueTracking to recognize that read on a RISC-V target and reason
about its result:

  * getRangeForIntrinsic() reports the value range of VLENB. RVV
    requires VLEN to be a power of two in [32, 65536] (Zvl32b is
    the smallest vector extension), so VLENB is in [4, 8192]
    regardless of any attribute. This stays sound for Zvl32b,
    whose VLEN (32) is not representable as an integer vscale
    (VLEN / RVVBitsPerBlock). When the function carries a
    vscale_range attribute the subtarget's VLEN is a multiple of
    RVVBitsPerBlock (64), so VLENB = vscale * RVVBytesPerBlock
    tightens the range.
  * isKnownToBeAPowerOfTwo() reports that VLENB is a power of two.

This lets InstCombine fold vlenb comparisons such as

    [11 lines not shown]
DeltaFile
+201-0llvm/test/Transforms/InstCombine/RISCV/riscv-vlenb-range.ll
+54-0llvm/lib/Analysis/ValueTracking.cpp
+255-02 files

LLVM/project 4e3d091orc-rt/test/tools orc-rt-process-info-check.cpp orc-rt-log-check.cpp

[orc-rt] Fix test tools broken by c3a9c64492b. (#220457)

Update regression test tools to use the parseAsMainArgs method
introduced in c3a9c64492b.
DeltaFile
+1-1orc-rt/test/tools/orc-rt-process-info-check.cpp
+1-1orc-rt/test/tools/orc-rt-log-check.cpp
+2-22 files

LLVM/project 1f2c836lld/test/ELF lit.local.cfg, utils/bazel/llvm-project-overlay/lld/test/ELF BUILD.bazel

[lld][ELF] Fix ignored yaml tests (#220325)

These previously weren't running:

```
  lld :: ELF/gdb-index-invalid-section-index.yaml
  lld :: ELF/invalid/entsize.yaml
```
DeltaFile
+1-1lld/test/ELF/lit.local.cfg
+1-0utils/bazel/llvm-project-overlay/lld/test/ELF/BUILD.bazel
+2-12 files

LLVM/project f7549a9llvm/include/llvm/ADT FoldingSet.h, llvm/include/llvm/CodeGen SelectionDAGNodes.h SelectionDAG.h

[ADT][SelectionDAG] Unique SDNodes in a UniquingSet (#220195)

CSEMap keys SDNodes by a serialized FoldingSetNodeID. Every lookup
profiles the opcode, the VT list and the operands into a buffer, and
every probe rebuilds the candidate's whole profile to compare against
it.

UniquingSet compared a key against Info::getKey(*N), building a key from
the candidate on every probe. Add isEqual to the Info contract,
defaulting to that comparison, and expose a FoldingSetNodeID's
accumulated words as a FoldingSetNodeIDRef so an Info that carries one
can hash it.

Key nodes by SDNodeKey, which holds those fields directly and leaves
only what AddNodeIDCustom contributes serialized in a tail, which is
empty for most opcodes. A lookup site keeps its ID.AddXxx lines: the key
forwards them to the tail. isEqual matches the key against a candidate's
fields and builds only the tail; an assertions build cross-checks the
result against the profile both would have had.

Aided by Opus 5
DeltaFile
+119-169llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+48-4llvm/include/llvm/CodeGen/SelectionDAG.h
+24-7llvm/include/llvm/ADT/FoldingSet.h
+6-2llvm/unittests/ADT/FoldingSet.cpp
+0-3llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+197-1855 files

LLVM/project 751ed7bllvm/lib/IR Constants.cpp, llvm/test/Transforms/ThinLTOBitcodeWriter cfi_dso_local_equivalent.ll

Revert "[IR] `replaceUsesWith` when aliasing a GV and the use is `dso_local_equivalent`" (#220450)

Reverts llvm/llvm-project#220336

Breaks tests after #220339 and supposedly there are still other
outstanding issues.
DeltaFile
+0-33llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
+16-9llvm/lib/IR/Constants.cpp
+0-22llvm/unittests/IR/ConstantsTest.cpp
+16-643 files

LLVM/project 97e0b5allvm/lib/Target/AMDGPU AMDGPUTargetMachine.cpp, llvm/test/CodeGen/MIR/AMDGPU machine-function-info-user-sgpr-count.mir

[AMDGPU] Fix user SGPR accounting when parsing MIR

Count privateSegmentSize and LDSKernelId as user SGPRs to preserve the kernel
descriptor count across MIR round trips.

Fixes LCOMPILER-2700.
DeltaFile
+46-0llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-user-sgpr-count.mir
+9-9llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+55-92 files

LLVM/project c3a9c64orc-rt/include/orc-rt-internal/tools CommandLine.h, orc-rt/test/unit/tools CommandLineTest.cpp

[orc-rt] Don't parse program name in CommandLineParser::parse (#220454)

The iterator-based CommandLineParser::parse method expected a program
name as the first argument in the list, but did not do anything with its
value (it was simply skipped). Update it to expect argument strings only
(no program name as first element) and document the new expectation.

The (argc, argv) overload of parse is renamed to parseAsMainArgs. It
still expects a program name as the first argument and will return an
Error if it is not present.

This allows CommandLineParser::parse to be used in contexts where there
is no natural program name (e.g. in unit tests, and options read from
config files).
DeltaFile
+36-13orc-rt/test/unit/tools/CommandLineTest.cpp
+10-4orc-rt/include/orc-rt-internal/tools/CommandLine.h
+46-172 files

LLVM/project ed1626borc-rt/test/unit CMakeLists.txt, orc-rt/test/unit/tools CommandLineTest.cpp

[orc-rt] Rename test/unit/utils -> test/unit/tools. (#220408)

This aligns the unit test directory with the corresponding header
directory (orc-rt-internal/tools).
DeltaFile
+0-143orc-rt/test/unit/utils/CommandLineTest.cpp
+143-0orc-rt/test/unit/tools/CommandLineTest.cpp
+1-1orc-rt/test/unit/CMakeLists.txt
+144-1443 files

LLVM/project a26d131clang/docs ReleaseNotes.md, clang/lib/Sema SemaDecl.cpp

[C++20] [Modules] merge the type for anony enum from import and #include (#214121)

Close https://github.com/llvm/llvm-project/issues/213299

Ideally, we shall merge the new enum with the old enum when we creating
the new enum. But the enum is anonymous and the typedef's name come
after the enum body, it is too late to merge them. This is the choice 10
years ago: a523022b5384d7a0901beea7a5f36ee9c09ba339. Actually what we're
merging is the typedef decls.

Then https://github.com/llvm/llvm-project/pull/114240 removes the logic
to remove the new ED. This the direct trigger for the above issue of
ambiguous look ups.

We choose to fix the problem by setting the type of new enum to the type
of the old enum to fix the ambiguous lookup issue.
DeltaFile
+162-0clang/unittests/Sema/SemaModuleTest.cpp
+21-0clang/lib/Sema/SemaDecl.cpp
+8-0clang/test/Modules/include-after-imports-enums.cppm
+4-0clang/docs/ReleaseNotes.md
+1-0clang/unittests/Sema/CMakeLists.txt
+196-05 files

LLVM/project 221e910llvm/lib/IR Constants.cpp, llvm/test/Transforms/ThinLTOBitcodeWriter cfi_dso_local_equivalent.ll

Revert "[IR] `replaceUsesWith` when aliasing a GV and the use is `dso_local_e…"

This reverts commit 925658474fe44aebd0997ad51ab0800174dbae49.
DeltaFile
+0-33llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
+16-9llvm/lib/IR/Constants.cpp
+0-22llvm/unittests/IR/ConstantsTest.cpp
+16-643 files

LLVM/project 810dc35flang-rt/test/Driver endian.f90

[flang][runtime] Use CONVERT='SWAP' in endian.f90 test (#220185)

Follow-up to #218302.

The test currently uses CONVERT='BIG_ENDIAN'.

On big-endian systems such as PPC/AIX, this does not actually
exercise endian conversion.

Switch the test to CONVERT='SWAP' so that byte swapping is
performed regardless of the host byte order.
DeltaFile
+6-6flang-rt/test/Driver/endian.f90
+6-61 files

LLVM/project 246cdffllvm/lib/Target/NVPTX NVPTXInstrInfo.td NVPTXISelDAGToDAG.cpp, llvm/test/CodeGen/NVPTX fmax3.ll

[NVPTX] Fuse abs into min/max/redux

Emit PTX instructions for the fused form when possible.
DeltaFile
+141-0llvm/test/CodeGen/NVPTX/fmax3.ll
+32-1llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+32-0llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
+16-0llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+16-0llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+237-15 files

LLVM/project 95aedc6llvm/utils/gn/secondary/clang/test BUILD.gn, llvm/utils/gn/secondary/clang/tools/clang-ssaf-src-edit-merge BUILD.gn

[gn] port e4eb61771f22b (clang-ssaf-src-edit-merge) (#220443)
DeltaFile
+10-0llvm/utils/gn/secondary/clang/tools/clang-ssaf-src-edit-merge/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/test/BUILD.gn
+11-02 files

LLVM/project fe8a580llvm/lib/Transforms/IPO LowerTypeTests.cpp ThinLTOBitcodeWriter.cpp, llvm/test/Transforms/LowerTypeTests promoted-internal.ll

Revert "Revert "[CFI] Create an external linkage alias instead of promoting i…"

This reverts commit 42f2cd0c980cc1a924619ecaeaa51ca7b55164ab.
DeltaFile
+17-29llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+35-0llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+29-0llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
+10-7llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+4-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+3-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+98-402 files not shown
+102-448 files

LLVM/project 427e7bblld/MachO Driver.cpp SyntheticSections.cpp, lld/MachO/Arch ARM64.cpp

[lld][MachO] Support Objective-C class stubs

Teach Mach-O objc stubs to synthesize class-message stubs that load the class object, selector, and objc_msgSend target.

lld already supports the Apple clang _objc_msgSend$<selector> stub form, even though upstream clang does not currently expose a driver or cc1 flag for emitting it. Apple clang also emits _objc_msgSendClass$<selector>$_OBJC_CLASS_$_<class>; handling that form completes the existing selector-stub support.

Cover local classes, dylib classes, archives, dynamic lookup via -U, missing class symbols, malformed names, unsupported architectures, and dead stripping.
DeltaFile
+332-0lld/test/MachO/arm64-objc-class-stubs.s
+110-15lld/MachO/SyntheticSections.cpp
+94-0lld/MachO/Arch/ARM64.cpp
+82-0lld/test/MachO/arm64-objc-class-stubs-dead.s
+66-0lld/test/MachO/objc-class-stubs-unsupported.s
+34-6lld/MachO/Driver.cpp
+718-214 files not shown
+754-2210 files

LLVM/project b35a935llvm/include/llvm/ADT RadixTree.h

Add RadixTree lookup and lexicographic iteration
DeltaFile
+96-1llvm/include/llvm/ADT/RadixTree.h
+96-11 files

LLVM/project 3018776llvm/lib/Target/AMDGPU AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Validate barrier ID in S_BARRIER_SIGNAL_ISFIRST

Value user_cluster_barrier_id is not supported.
DeltaFile
+3-36llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
+23-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+9-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+5-0llvm/test/MC/AMDGPU/gfx13_err.s
+3-0llvm/test/MC/AMDGPU/gfx12_err.s
+48-361 files not shown
+49-367 files

LLVM/project b31f87dllvm/test/MC/AMDGPU gfx12_err.s

[AMDGPU] Regenerate gfx12_err.s. NFC

Wrong tool was recorded in the test header.
DeltaFile
+221-222llvm/test/MC/AMDGPU/gfx12_err.s
+221-2221 files

LLVM/project 8d6a88ellvm/lib/Target/NVPTX NVPTXInstrInfo.td NVPTXISelDAGToDAG.cpp, llvm/test/CodeGen/NVPTX fmax3.ll

[NVPTX] Fuse abs into min/max/redux

Emit PTX instructions for the fused form when possible.
DeltaFile
+142-0llvm/test/CodeGen/NVPTX/fmax3.ll
+32-1llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+32-0llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
+16-0llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+16-0llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+238-15 files

LLVM/project 9f96893llvm/test/Transforms/LoopVectorize div-exact.ll if-pred-stores.ll, llvm/test/Transforms/LoopVectorize/AArch64 conditional-branches-cost.ll

[VPlan] Skip branch term in masks for some preserved uniform edges
DeltaFile
+28-2,414llvm/test/Transforms/LoopVectorize/predicator.ll
+6-425llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.ll
+27-120llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
+16-130llvm/test/Transforms/LoopVectorize/div-exact.ll
+32-93llvm/test/Transforms/LoopVectorize/X86/predicated-replicate-feeding-cast.ll
+102-9llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
+211-3,19133 files not shown
+652-3,77839 files

LLVM/project 781ea09llvm/lib/Transforms/Vectorize VPlanPredicator.cpp, llvm/test/Transforms/LoopVectorize hoist-predicated-loads.ll predicator.ll

[VPlan] Fix SSA after partial linearization, enable it for unstructured branches
DeltaFile
+426-293llvm/test/Transforms/LoopVectorize/VPlan/predicator.ll
+375-144llvm/test/Transforms/LoopVectorize/predicator.ll
+184-128llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.ll
+210-35llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
+102-10llvm/test/Transforms/LoopVectorize/hoist-predicated-loads.ll
+70-23llvm/test/Transforms/LoopVectorize/X86/predicated-replicate-feeding-cast.ll
+1,367-63326 files not shown
+1,834-80932 files

LLVM/project ef285ecllvm/lib/Target/AMDGPU AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Validate barrier ID in S_BARRIER_SIGNAL_ISFIRST

Value user_cluster_barrier_id is not supported.
DeltaFile
+224-222llvm/test/MC/AMDGPU/gfx12_err.s
+3-36llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
+23-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+9-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+5-0llvm/test/MC/AMDGPU/gfx13_err.s
+269-2581 files not shown
+270-2587 files

LLVM/project e2a87e1llvm/lib/Target/AMDGPU AMDGPU.td AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] s_monitor_sleep shall not use sleep_forever on gfx1250 (#220366)

Fixes: SWDEV-542848
DeltaFile
+32-31llvm/test/MC/AMDGPU/gfx1250_asm_sopp.s
+23-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+21-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+6-3llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.monitor.sleep.ll
+7-0llvm/lib/Target/AMDGPU/AMDGPU.td
+3-0llvm/test/MC/AMDGPU/gfx1250_asm_sopp_err.s
+92-346 files

LLVM/project 0543153lldb/source/Plugins/Platform/MacOSX PlatformDarwinKernel.h PlatformDarwinKernel.cpp, lldb/test/API/macosx/load-kext TestLoadKext.py

[lldb] Untangle PlatformDarwinKernel's kext and kernel index lookups (#220318)

PlatformDarwinKernel searches an index of the local filesystem for kexts
and kernels, but each search was interleaved with creating the Module,
updating the Target and falling back to PlatformDarwin, so nothing else
could reuse it. Pull the two searches out so a follow-up can answer
Platform::FindModuleFiles with them.

This change is NFC except GetSharedModuleKernel assigned module_sp
before testing whether the candidate matched and never cleared it, so a
failed search would still return the last *non-matching* module.
DeltaFile
+111-102lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
+56-0lldb/test/API/macosx/load-kext/TestLoadKext.py
+20-11lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
+187-1133 files

LLVM/project 88e822amlir/lib/Conversion/SCFToControlFlow SCFToControlFlow.cpp, mlir/test/Conversion/SCFToControlFlow convert-to-cfg.mlir

[mlir][SCFToControlFlow] Carry LLVM attributes through scf.parallel lowering (#219218)

`ParallelLowering` builds its `scf.for` nest without copying anything from the
`scf.parallel`, so an `llvm.loop_annotation` placed on a parallel loop is
silently dropped before `ForLowering` can move it onto the latch branch.

`scf.for` and `scf.while` already propagate LLVM-dialect attributes via
`propagateLoopAttrs`, so do the same for `scf.parallel`. A multi-dimensional
`scf.parallel` carries a single attribute dictionary but becomes several loops,
so the attributes go to the innermost one, whose latch is where `ForLowering`
attaches the loop metadata.

Tests cover the 1-D case and a 2-D nest, where the outer latch is checked to
stay unannotated. Verified that the new tests fail without the fix and pass with
it, and that the pre-existing expectations in `convert-to-cfg.mlir` are
unchanged.
DeltaFile
+39-0mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
+17-6mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
+56-62 files

LLVM/project 6964d51bolt/include/bolt/Core BinaryContext.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Fix data race on the shared .dwp DWARF context (#220119)

As noted by labrinea, 775dc9b8bf58 ("[BOLT] Create and release .dwo
DWARF contexts incrementally") releases every DWO context at the end of
readDebugInfo, leaving the bucket threads of the DWARF rewrite to
re-open them on demand. With a .dwp package that moved the first touch
of a shared context into the parallel phase, and multiple threads
compete for it, in a race for the abbrev table, causing intermittent
failures in dwarf5-ftypes-dwp-input-dwo-output.test.

Open the split CUs of a package up front, from a single thread, and
resolve the abbreviation table of every unit in it. This is not relevant
for the non-dwp case, which is unaffected.
DeltaFile
+18-0bolt/lib/Core/BinaryContext.cpp
+8-1bolt/include/bolt/Core/BinaryContext.h
+5-0bolt/lib/Rewrite/DWARFRewriter.cpp
+31-13 files

LLVM/project 9c6654ellvm/lib/Target/AMDGPU AMDGPUTargetMachine.cpp, llvm/test/CodeGen/MIR/AMDGPU machine-function-info-user-sgpr-count.mir

[AMDGPU] Fix user SGPR accounting when parsing MIR

Count privateSegmentSize and LDSKernelId as user SGPRs to preserve the kernel
descriptor count across MIR round trips.

Fixes LCOMPILER-2700.
DeltaFile
+47-0llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-user-sgpr-count.mir
+9-9llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+56-92 files

LLVM/project 0a1e832llvm/include/llvm/ADT DenseMap.h

[ADT] Exit doFind on an empty map, not just an unallocated one (#220294)

`doFind` exits early only when no buckets were ever allocated. A map that
had entries and lost them keeps its bucket array. `NumBuckets` is then not
zero, so every lookup hashes the key and probes.

For a `SmallDenseMap` in small mode, `NumBuckets` is the template parameter
`InlineBuckets`, a nonzero constant. The existing check can never fire for
those maps. An empty one hashes and probes on every lookup.

`getNumEntries() == 0` covers both cases. It also subsumes the old check.
There are no entries without buckets, so `Mask = NumBuckets - 1` is still
safe. It is one test either way, so non-empty lookups are unchanged. The
check goes before `getRep()`. Keeping it after costs 0.158% on clang, so
those loads are not sunk past the branch.

| workload | instructions:u |
|---|---:|
| clang compiling 600 LLVM/Clang/MLIR translation units | **-0.028%** |

    [8 lines not shown]
DeltaFile
+2-2llvm/include/llvm/ADT/DenseMap.h
+2-21 files