LLVM/project 28844a2llvm/lib/CodeGen/SelectionDAG LegalizeTypes.h SelectionDAGBuilder.h

[SelectionDAG] Remove dead functions and declarations (NFC) (#223318)

DAGTypeLegalizer::WidenVecOp_ExpOp: Added on April 26, 2023 in commit
eece6ba283bd763e6d7109ae9e155e81cfee0651 without a definition or any
callers.

ScheduleDAGRRList::AddPred: The last uses were removed on April 17, 2019
in commit 258a425c69f0f611ae237ad507252ad18048d2ab when callers were
switched to AddPredQueued.

RegsForValue::append: The last use was removed on January 18, 2019 in
commit 0a45bf0e558e93205a514c856d543fd667099496 when inline asm output
handling was refactored.

Assisted-by: Antigravity
DeltaFile
+0-8llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+0-8llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+0-1llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+0-173 files

LLVM/project 9e1b2f9llvm/unittests/Object OffloadingTest.cpp

Better concat test
DeltaFile
+12-3llvm/unittests/Object/OffloadingTest.cpp
+12-31 files

LLVM/project 2bd1524lldb/test/API/functionalities/gdb_remote_client TestBatchedBreakpointStepOver.py

[lldb] Fix batched breakpoint step-over mock (#223000)

This PR fixes the test that printed an `UnexpectedPacketException`
because its mock GDB server did not handle LLDB’s final continue packet.
It adds a normal exit response for that packet and verifies that the
process exits successfully with status zero.

Before:
```
  An exception happened when receiving the response from the gdb server. Closing the client...
  Traceback (most recent call last):
    File "/home/barsolo/llvm-sand/external/llvm-project/lldb/packages/Python/lldbsuite/test/gdbclientutils.py", line
    694, in run
      self._receive(data)
    File "/home/barsolo/llvm-sand/external/llvm-project/lldb/packages/Python/lldbsuite/test/gdbclientutils.py", line
    714, in _receive
      self._handlePacket(packet)
    File "/home/barsolo/llvm-sand/external/llvm-project/lldb/packages/Python/lldbsuite/test/gdbclientutils.py", line
    807, in _handlePacket

    [28 lines not shown]
DeltaFile
+6-1lldb/test/API/functionalities/gdb_remote_client/TestBatchedBreakpointStepOver.py
+6-11 files

LLVM/project d318697mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

Update comment
DeltaFile
+2-2mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+2-21 files

LLVM/project 67b88a2mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp, mlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

[mlir][LLVM] Use a disjoint scope domain when inlining noalias

This matches recent changes to the LLVM inliner.

AI disclosure: Claude wrote the code, I wrote the commit message and
have done initial review.
DeltaFile
+28-25mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+10-18mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+38-432 files

LLVM/project 89dc412mlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

Test that the inliner keeps the flag when it clones a domain

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+35-0mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+35-01 files

LLVM/project 6088255mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

Remove pointless comment
DeltaFile
+0-2mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+0-21 files

LLVM/project f500199mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td, mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

[mlir][LLVM] Add disjointScopes to AliasScopeDomainAttr

This also updates the MLIR-side inliner to clone disjoint domains
while cloning alias scopes, matching changes to LLVM.

AI disclosure: Claude wrote the code, I wrote the commit message and
looked at the code.
DeltaFile
+25-0mlir/test/Target/LLVMIR/Import/metadata-alias-scopes.ll
+23-0mlir/test/Target/LLVMIR/attribute-alias-scopes.mlir
+17-2mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+4-2mlir/lib/Target/LLVMIR/ModuleImport.cpp
+4-1mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+2-2mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+75-76 files

LLVM/project 5c742e9llvm/lib/Target/AMDGPU AMDGPULowerModuleLDSPass.cpp, llvm/test/CodeGen/AMDGPU lower-lds-struct-aa-memcpy.ll remove-no-kernel-id-attribute.ll

[AMDGPU] Use a disjoint scope domain for merged LDS structs

When lowering LDS values, all the values are mutually disjoint, so we
can use the newly-added disjoint scopes feature to simplify the IR.

AI disclosure: Claude wrote this and I reviewed it and wrote the
 commit message
DeltaFile
+16-51llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+35-10llvm/test/CodeGen/AMDGPU/lower-module-lds-precise-allocate-to-module-struct.ll
+15-18llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa.ll
+11-13llvm/test/CodeGen/AMDGPU/lower-module-lds-via-hybrid.ll
+8-12llvm/test/CodeGen/AMDGPU/remove-no-kernel-id-attribute.ll
+9-10llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
+94-1146 files not shown
+140-16012 files

LLVM/project 955c6acllvm/lib/Target/AMDGPU AMDGPULowerKernelArguments.cpp, llvm/test/CodeGen/AMDGPU lower-kernargs.ll si-split-load-store-alias-info.ll

[AMDGPU] Use a disjoint scope domain for noalias kernel arguments

All noalias arguments of a kernel are disjoint with each other, so we
can use a disjoint scope to save on metadata construction.

AI disclosure: Claude wrote this, I looked at it and wrote this
message.
DeltaFile
+53-64llvm/test/CodeGen/AMDGPU/lower-noalias-kernargs.ll
+20-13llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
+11-11llvm/test/CodeGen/AMDGPU/lower-kernel-arguments-noalias-call-no-ptr-args.ll
+8-8llvm/test/CodeGen/AMDGPU/si-split-load-store-alias-info.ll
+4-4llvm/test/CodeGen/AMDGPU/lower-kernargs.ll
+96-1005 files

LLVM/project 034ca27llvm/test/Transforms/Inline noalias2.ll

Test a callee that has both noalias arguments and its own scopes

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+51-0llvm/test/Transforms/Inline/noalias2.ll
+51-01 files

LLVM/project 9b86196clang/test/CodeGen arm-v8.2a-neon-intrinsics-generic.c arm_neon_intrinsics.c, llvm/lib/Transforms/Utils InlineFunction.cpp

[Inliner] Use a disjoint scope domain for noalias arguments

InlineFunction creates alias.scope/noalias metadata to represent the
set of `noalias` arguments to a function. We don't need the `!noalias`
now that we have the ability to use disjoint scopes, saving us IR size
and metadata bloat.

TODO move these to a previous commit.
Also changes InstCombine to not drop the experimental.noalias.scope.decl
for disjoint scopes even if they're not mentioned in a `!noalias`, but
do still delete them if they're not used.
DeltaFile
+324-324clang/test/CodeGen/arm_neon_intrinsics.c
+72-72clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
+35-30llvm/lib/Transforms/Utils/InlineFunction.cpp
+13-14llvm/test/Transforms/Inline/noalias-calls2.ll
+12-12llvm/test/Transforms/Inline/noalias2.ll
+11-11llvm/test/Transforms/PhaseOrdering/pr39282.ll
+467-4639 files not shown
+487-48315 files

LLVM/project 8b81247llvm/docs LangRef.md

Update docs
DeltaFile
+7-10llvm/docs/LangRef.md
+7-101 files

LLVM/project 8a218a4llvm/docs LangRef.md

Add a warning about string names on disjoint
DeltaFile
+4-0llvm/docs/LangRef.md
+4-01 files

LLVM/project 0d71f77llvm/test/Analysis/ScopedNoAliasAA disjoint-domains.ll, llvm/test/CodeGen/SystemZ/Large branch-01.ll

Update tests for rebase
DeltaFile
+6-6llvm/test/Analysis/ScopedNoAliasAA/disjoint-domains.ll
+3-3llvm/test/CodeGen/SystemZ/Large/branch-01.ll
+2-2llvm/test/Transforms/ScalarizeMaskedMemIntrin/X86/metadata.ll
+1-1mlir/test/Target/LLVMIR/masked-intrinsic-metadata.mlir
+1-1mlir/test/Target/LLVMIR/Import/masked-intrinsic-metadata.ll
+1-1llvm/test/Transforms/LoopVectorize/VPlan/cse-loads.ll
+14-146 files

LLVM/project ca1a4c3llvm/docs LangRef.md, llvm/include/llvm/Analysis ScopedNoAliasAA.h

Review feedback
DeltaFile
+14-14llvm/lib/Analysis/ScopedNoAliasAA.cpp
+12-5llvm/docs/LangRef.md
+2-1llvm/include/llvm/Analysis/ScopedNoAliasAA.h
+28-203 files

LLVM/project fd980d5clang/test/CodeGen arm_neon_intrinsics.c arm-v8.2a-neon-intrinsics-generic.c, llvm/lib/Bitcode/Reader MetadataLoader.cpp

[IR] Add alias scope domains with disjoint scopes

See RFC at
https://discourse.llvm.org/t/rfc-disjoint-scope-alias-scope-noalias-domains/91537

This commit adds support for declaring an alias scope domain disjoint.
Disjoint domains are ones where each scope is implicitly `!noalias`
with each other scope in the domain. This is represented by adding an
`i1` into the scope's domain as the second argument, with `i1 true`
representing disjoint scopes and `i1 false` representing the old
non-disjoint behavior. AutoUpgrade mechanisms have been added to add
in the missing `i1 false` to existing metadata.

This commit updates alias analysis to know about disjoint scopes and
updates the function cloner to also clone the alias domain if it's
disjoint (since, as a herd of LLMs discovered, you don't want the old
IR to be noalias with a clone of itself).

Commits to migrate passes to use disjoint scopes where that's an

    [4 lines not shown]
DeltaFile
+72-72clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
+54-54clang/test/CodeGen/arm_neon_intrinsics.c
+97-0llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+95-0llvm/test/Transforms/InstCombine/noalias-scope-decl-disjoint-domain.ll
+42-42llvm/test/Transforms/LoopUnroll/peel-loop-noalias-scope-decl.ll
+39-35llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
+399-203189 files not shown
+1,342-718195 files

LLVM/project 031fb98llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp SPIRVNonSemanticDebugInfo200.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-expression-extra-ops-200.ll debug-declare-expression-unsupported-200.ll

[SPIR-V] Emit extra DebugExpression ops under NonSemantic.Shader.DebugInfo.200

Map DWARF ops beyond Fragment only when -spirv-nonsemantic-debug-info-version=200.
DeltaFile
+194-0llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugInfo200.h
+159-0llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugInfo200.cpp
+38-17llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+53-0llvm/test/CodeGen/SPIRV/debug-info/debug-expression-operations-200.ll
+44-0llvm/test/CodeGen/SPIRV/debug-info/debug-declare-expression-unsupported-200.ll
+42-0llvm/test/CodeGen/SPIRV/debug-info/debug-expression-extra-ops-200.ll
+530-172 files not shown
+536-208 files

LLVM/project 6e551efutils/bazel/llvm-project-overlay/libc BUILD.bazel

[libc][bazel] Expose public inline memory headers and generic/builtin.h in string_memory_utils (#223439)

Following commit 041300fa05151b3819478f33daa4384922b4b74e (#192079),
`libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h` includes
`src/string/memory_utils/inline_memcpy.h`.

In the Bazel overlay, `string_memory_utils` declared inline memory
dispatcher headers under `textual_hdrs` rather than `hdrs`, preventing
transitive consumers from accessing them. Additionally,
`src/string/memory_utils/generic/builtin.h` was missing from
`string_memory_utils`.

This patch:
- Moves public inline memory headers from `textual_hdrs` to `hdrs` in
`string_memory_utils`:
  - `src/string/memory_utils/inline_bcmp.h`
  - `src/string/memory_utils/inline_bzero.h`
  - `src/string/memory_utils/inline_memcmp.h`
  - `src/string/memory_utils/inline_memcpy.h`

    [4 lines not shown]
DeltaFile
+9-8utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+9-81 files

LLVM/project ee57c22llvm/lib/Target/SPIRV SPIRVBuiltins.td SPIRVNonSemanticDebugHandler.h, llvm/lib/Target/SPIRV/MCTargetDesc SPIRVBaseInfo.h SPIRVBaseInfo.cpp

[SPIR-V] Add -spirv-nonsemantic-debug-info-version to select the NSDI set

The backend hardcoded NonSemantic.Shader.DebugInfo.100 as its debug-info
ext-inst set. Add a flag selecting .100 (the default) or .200.
DeltaFile
+47-0llvm/test/CodeGen/SPIRV/debug-info/debug-info-nonsemantic-version.ll
+24-8llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+21-0llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
+5-4llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+2-0llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
+1-0llvm/lib/Target/SPIRV/SPIRVBuiltins.td
+100-126 files

LLVM/project 057a36allvm/lib/Target/AMDGPU AMDGPUISelLowering.h AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU cvt_f32_ubyte.ll

[AMDGPU] Optimize i64 uitofp for unsigned byte values

Use v_cvt_f32_ubyte0 when the i64 source is known to fit in an unsigned
byte.
For example:

  uitofp (and i64 %x, 255) to float

This avoids the generic i64 to f32 expansion.
DeltaFile
+305-0llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
+18-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+1-0llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
+324-03 files

LLVM/project d839ed7llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp

[DAGCombiner] Fold (uint_to_fp x) -> (uint_to_fp (trunc x))
DeltaFile
+33-126llvm/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
+1-27llvm/test/CodeGen/AMDGPU/fold-int-pow2-with-fmul-or-fdiv.ll
+8-18llvm/test/CodeGen/AMDGPU/uint_to_fp.f64.ll
+22-0llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+9-11llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
+0-18llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+73-2002 files not shown
+77-2058 files

LLVM/project 8347fb3llvm/test/CodeGen/AMDGPU llvm.amdgcn.sqrt.bf16.ll llvm.amdgcn.log.bf16.ll

[AMDGPU] Add gfx1310 coverage to the bf16 transcendental tests (#223054)

57a9c4f939e5 made codegen emit the VOP3 encoding with op_sel[0] set when
a bf16 inline constant reaches one of the single-source VOP1 bf16
opcodes, because the hardware generates the constant in the high half of
the corresponding fp32 inline constant.

GFX1310 has the same FeatureBF16InlineConstFromUpperFP32 behaviour.
Mirror the enabled gfx1250 SelectionDAG RUN lines with gfx1310 ones so
the workaround is covered there too. Test-only change, no functional
change.

Assisted-by: Claude Code:claude-opus-5[1m]
DeltaFile
+95-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.bf16.ll
+74-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sin.bf16.ll
+74-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cos.bf16.ll
+57-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sqrt.bf16.ll
+57-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.log.bf16.ll
+57-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.bf16.ll
+414-06 files

LLVM/project f016371flang/include/flang/Optimizer/Dialect FIROps.td, flang/lib/Optimizer/Dialect FIROps.cpp

[flang] Promote scalar slots reached through fir.convert and fir.declare (#219314)

Neither `fir.declare` nor `fir.convert` implements
`PromotableAliaserInterface`, so mem2reg does not see accesses made
through them as touching the slot behind. A cast anywhere in the chain
blocks promotion outright, even when it only changes the flavor of a
reference to the same scalar. So a scalar slot reached as `memref.alloca
-> fir.convert -> fir.declare -> fir.convert -> store/load` stays in
memory today.

This patch implements `PromotableAliaserInterface` for both operations.
mem2reg collects defining blocks from the alias map, so writes through a
`fir.declare` are now seen and the single-block restriction from
https://github.com/llvm/llvm-project/pull/182933 is no longer needed. An
operation reports an alias only when it carries the pointee through
unchanged, so that the default value projections of the interface apply;
for a `fir.convert` that limits it to a reference or a rank-0 memref of
a simple scalar with an identity layout and no memory space, and never
when either side is volatile.

    [6 lines not shown]
DeltaFile
+309-16flang/test/Fir/mem2reg.mlir
+184-7flang/lib/Optimizer/Dialect/FIROps.cpp
+6-0flang/include/flang/Optimizer/Dialect/FIROps.td
+499-233 files

LLVM/project 6ae66f0llvm/unittests/Target/AMDGPU AMDGPUUnitTests.cpp

Fix tests

Change-Id: Iaff68defd33bae339592b4da78314718c7893285
DeltaFile
+6-6llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp
+6-61 files

LLVM/project cb7bd2dclang/test/CIR/CodeGen call-conv-lowering-x86_64-union-bitfield.c, clang/test/CIR/Transforms/abi-lowering x86_64-union.cir

Merge branch 'main' into users/adams381/cir-callconv-x86_64-bitint-wide
DeltaFile
+172-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-union-bitfield.c
+124-0clang/test/CIR/Transforms/abi-lowering/x86_64-union.cir
+110-0lldb/test/API/lang/c/step-through-trampoline-with-symbol/TestStepThroughTrampolineWithSymbol.py
+87-7llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+90-0llvm/test/CodeGen/X86/subcarry.ll
+0-87openmp/libompd/gdb-plugin/ompdDLService.c
+583-9471 files not shown
+1,910-47477 files

LLVM/project 94cce8dlibc/test/src/math/exhaustive cos.wc sin.wc, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.896bit.ll amdgcn.bitcast.960bit.ll

Merge branch 'main' into users/lukel97/riscv/vmandmm-hasAndNot
DeltaFile
+1,091,085-0libc/test/src/math/exhaustive/sin.wc
+1,090,178-0libc/test/src/math/exhaustive/cos.wc
+62,525-61,390llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+9,388-9,578llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+5,656-7,977llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+4,566-6,726llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+2,263,398-85,6713,597 files not shown
+2,451,284-198,8313,603 files

LLVM/project 298b7a4llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vreductions-mask.ll vreductions-mask-vp.ll

[RISCV] Don't use VL node when lowering scalable mask reductions (#223392)

Using ISD::XOR gives us the generic not (setcc cc) -> setcc inverse-cc
combine. With the VL optimizer we still get the same VL propagated.

Restricted to just scalable vectors since some fixed vector patterns
break without the VL node.

The VP test doesn't improve because

1) VP reductions get legalized during regular op legalization, not
vector legalization
2) so generic DAGCombines don't get a chance to run before the
(splat_vector 1) is legalized to vmset_vl.

We can fix this by keeping the (splat_vector 1) legal, but this is left
to another PR.
DeltaFile
+15-0llvm/test/CodeGen/RISCV/rvv/vreductions-mask-vp.ll
+13-0llvm/test/CodeGen/RISCV/rvv/vreductions-mask.ll
+4-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+32-43 files

LLVM/project 6ad887blld/ELF SymbolTable.h SymbolTable.cpp

[ELF] Parallelize version script and dynamic list matching (#223208)

scanVersionScript and handleDynamicList make one serial pass over
symVector per wildcard pattern, which is inefficient when there are
multiple wildcard patterns.

Parallelize this process: for each symbol, match against all wildcard
patterns and take the first match. This drops the TensorFlow link from
4.8s to 1.8s (--threads=8; its version script has 24 `*foo*` and most
time was in scanVersionScript).
DeltaFile
+44-62lld/ELF/SymbolTable.cpp
+0-4lld/ELF/SymbolTable.h
+44-662 files

LLVM/project 2802461clang/include/clang/CodeGenUtils ModuleUtils.h ClassUtils.h, clang/lib/CodeGenUtils ModuleUtils.cpp ClassUtils.cpp

[CIR][CodeGen][NFC] Retire the CodeGenUtils.h catch-all header

The earlier patches in this series group shared helpers by the classic
CodeGen file they were extracted from, one header per origin.  That
leaves CodeGenUtils.h holding only the five helpers #221001 started the
library with, so move those to the same places their neighbours went and
drop the header:

  canSkipVTablePointerInitialization -> ClassUtils.h   (CGClass.cpp)
  fieldHasTrivialDestructorBody      -> ClassUtils.h   (CGClass.cpp)
  isInitializerOfDynamicClass        -> ClassUtils.h   (CGClass.cpp)
  hasUnwindExceptions                -> ModuleUtils.h  (CodeGenModule.cpp)
  isAAPCS                            -> TargetUtils.h

isAAPCS is the one case origin does not settle, because it was
duplicated in CGExpr.cpp and CGRecordLayoutBuilder.cpp rather than
living in one file.  It is a plain TargetInfo predicate, so it goes with
the other target predicates.


    [10 lines not shown]
DeltaFile
+0-115clang/lib/CodeGenUtils/CodeGenUtils.cpp
+81-0clang/lib/CodeGenUtils/ClassUtils.cpp
+0-42clang/include/clang/CodeGenUtils/CodeGenUtils.h
+17-0clang/lib/CodeGenUtils/ModuleUtils.cpp
+16-0clang/include/clang/CodeGenUtils/ClassUtils.h
+7-0clang/include/clang/CodeGenUtils/ModuleUtils.h
+121-15712 files not shown
+135-16718 files