LLVM/project 0d91720 — llvm/lib/Target/AArch64 AArch64FrameLowering.cpp, llvm/test/CodeGen/AArch64 sve-callee-save-restore-groups-frame-layout.ll

[NFC][AArch64][FrameLowering] Refactor handling of Callee-Saved spill pairs (#233405)

This PR is preparation for a subsequent PR that will enable quad spills.

The main refactor is adding functions to RegGroupInfo that are dynamic
to the number of registers in a RegGroup.
The subsequent PR will expand these functions for Quad ZPR spills.

A test was also added to show the before/after of this refactor and to
catch any errors in MIR after frame lowering.
DeltaFile
+112-116llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+89-0llvm/test/CodeGen/AArch64/sve-callee-save-restore-groups-frame-layout.ll
+201-1162 files

LLVM/project 51ec779 — clang/lib/Analysis ThreadSafetyCommon.cpp, clang/lib/Sema SemaDeclAttr.cpp

Revert "[clang][ThreadSafety] Do not read a C field's address as a pointer to member (#231604) (#233614)

This reverts commit 217e229a1f32785fccdd3b3f51429f0d309dea45.

It causes false positives in code that previously compiled:

- https://github.com/ClangBuiltLinux/linux/issues/2187
- https://github.com/llvm/llvm-project/pull/231604#issuecomment-6278791594

In general the old behaviour still should be fixed, but let's give us
some time to work out the corner cases.
DeltaFile
+2-28clang/test/Sema/warn-thread-safety-analysis.c
+0-20clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+5-5clang/lib/Sema/SemaDeclAttr.cpp
+6-3clang/lib/Analysis/ThreadSafetyCommon.cpp
+13-564 files

LLVM/project dd70663 — clang/lib/Frontend PrintPreprocessedOutput.cpp, clang/lib/Lex PPLexerChange.cpp Preprocessor.cpp

[clang-repl] Address error recovery fixing infinite loop while parsing (#127569)

Closes https://github.com/llvm/llvm-project/issues/206808

I was interested in recovering error for some use cases.

Before the change
```
clang-repl> void foo() { int x = 5;
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression
<<< inputs >>>:1:1: error: expected expression

    [68 lines not shown]
DeltaFile
+50-0clang/test/Interpreter/repl-input-end-recovery.cpp
+12-3clang/lib/Lex/Preprocessor.cpp
+1-7clang/lib/Lex/PPLexerChange.cpp
+2-5clang/lib/Frontend/PrintPreprocessedOutput.cpp
+2-4clang/lib/Parse/ParseDecl.cpp
+4-2clang/lib/Parse/ParseStmt.cpp
+71-217 files not shown
+75-3413 files

LLVM/project 0f0a1a3 — llvm/include/llvm/IR PatternMatch.h, llvm/lib/Transforms/InstCombine InstCombineVectorOps.cpp

[InstCombine] Allow same extract insert shuffle fold for all fixed zero vector types (#233370)

Currently in CollectShuffleMask(), we check for ConstantAggregateZero to
check for a zero vector. However, this does not check for floating point
zero vectors nor null pointer vectors.

I believe this was a side effect from transitioning from CAZ to
ConstantFP and ConstantPointerNull for float and pointer types.

Modify to use type independent zero vector check which can identify both
types allowing for the same transformation to take place independent of
Int/Float/Pointer type.

Since this is an extension of an existing transformation, test coverage
has been kept minimal.
DeltaFile
+46-0llvm/test/Transforms/InstCombine/insert-extract-shuffle.ll
+9-0llvm/unittests/IR/PatternMatch.cpp
+5-3llvm/include/llvm/IR/PatternMatch.h
+1-1llvm/test/Transforms/InstCombine/insert-element-shuffle-vector-debugloc.ll
+1-1llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+62-55 files

LLVM/project 9e3d36f — llvm/lib/Target/AArch64/GISel AArch64InstructionSelector.cpp, llvm/test/CodeGen/AArch64/GlobalISel select-addsub-carry-adjacent-debug.mir

[AArch64][GlobalISel] Ignore debug instructions when reusing carry. (#228128)

Ignore immediately in-between continuous block of debug instructions
when a carry-producing instruction precedes a carry-consuming operation
in AArch64 GlobalISel.

`emitCarryIn()` previously compared the carry producer directly against
`I.getPrevNode()`. As a result, inserting a debug-only instruction
(e.g., `DBG_VALUE`) between otherwise adjacent carry operations
prevented reuse of the `NZCV` flags produced by the previous
instruction. This caused instruction selection to unnecessarily
materialize the carry into a virtual register and reconstruct `NZCV`
before the following carry operation.

Walk backwards over consecutive debug instructions before performing the
adjacency check. Debug instructions do not modify `NZCV`, so they should
not prevent reuse of the existing carry flags.

#### Context

    [18 lines not shown]
DeltaFile
+281-0llvm/test/CodeGen/AArch64/GlobalISel/select-addsub-carry-adjacent-debug.mir
+8-1llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+289-12 files

LLVM/project ac58f18 — llvm/include/llvm/CodeGen/GlobalISel LegalizerHelper.h, llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp

GlobalISel: Add a lowering of G_FCONSTANT to G_CONSTANT

RISCV and ARM both custom legalized G_FCONSTANT into a G_CONSTANT with
the same bits. Add LegalizerHelper::lowerFConstantAsConstant and use it
in both.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-10llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
+2-8llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
+8-0llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+2-0llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+14-184 files

LLVM/project 26930c0 — llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp, llvm/lib/Target/LoongArch LoongArchFloat32InstrInfo.td LoongArchISelLowering.h

SelectionDAG: Build FP immediates from integer bits in the legalizer

Teach the generic legalizer to legalize FP immediates as a bitcast of
an opaque integer constant. Migrate LoongArch to use the new helper
instead of doing it in custom lowering.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+33-34llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+25-15llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+5-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+2-2llvm/lib/Target/LoongArch/LoongArchFloat32InstrInfo.td
+65-514 files

LLVM/project 6f64087 — llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/Target/ARM ARMISelLowering.cpp

CodeGen: Return how to materialize FP immediates from targets

Replace the isFPImmLegal target hook with getFPImmAction, which
returns whether an FP immediate is legal or how it should be
legalized. This will allow adding a way for the legalizer to build an
immediate from its integer bits, instead of each target doing so in
custom lowering or selection.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+22-6llvm/include/llvm/CodeGen/TargetLowering.h
+12-8llvm/lib/Target/ARM/ARMISelLowering.cpp
+11-8llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+9-8llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+9-6llvm/lib/Target/Sparc/SparcISelLowering.cpp
+8-5llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+71-4121 files not shown
+139-9727 files

LLVM/project 2ccc9a2 — llvm/lib/Transforms/IPO Attributor.cpp

Use separate loops for IR and attribute changes

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+23-16llvm/lib/Transforms/IPO/Attributor.cpp
+23-161 files

LLVM/project b78212c — llvm/docs LangRef.md

Split the constraint into write-write races and write-read races, clarify that defined accesses cannot tear.
DeltaFile
+15-18llvm/docs/LangRef.md
+15-181 files

LLVM/project 8f6d479 — llvm/lib/Transforms/InstCombine InstCombineAtomicRMW.cpp, llvm/test/Transforms/InstCombine atomicrmw-add-neg.ll

[InstCombine] Canonicalize atomicrmw sub of a constant to add

Rewrite `atomicrmw sub ptr, C` as `atomicrmw add ptr, -C`. This
matches the canonical form InstCombine already uses for plain `sub`.
In wrapping arithmetic $old - C = old + (-C)$, so both the stored
value and the returned old value stay the same, including when C is
`INT_MIN`. Ordering, syncscope and metadata are kept.

```llvm
; before
%old = atomicrmw sub ptr %p, i32 1 syncscope("agent") monotonic
; after
%old = atomicrmw add ptr %p, i32 -1 syncscope("agent") monotonic
```
This benefits AMDGPU, for example: https://godbolt.org/z/39xsYro3o
DeltaFile
+7-0llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
+2-2llvm/test/Transforms/InstCombine/atomicrmw-add-neg.ll
+9-22 files

LLVM/project 51f427b — clang/test/CodeGen ms-intrinsics-other.c ms-intrinsics.c

Fix clang lit test
DeltaFile
+12-12clang/test/CodeGen/ms-intrinsics.c
+4-4clang/test/CodeGen/ms-intrinsics-other.c
+16-162 files

LLVM/project 94f4c92 — llvm/lib/Transforms/InstCombine InstCombineAtomicRMW.cpp, llvm/test/Transforms/InstCombine atomicrmw-add-neg.ll

Support vector
DeltaFile
+4-3llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
+3-3llvm/test/Transforms/InstCombine/atomicrmw-add-neg.ll
+7-62 files

LLVM/project ac5d395 — flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP linear-allocatable.f90

 [mlir][flang][OpenMP] Privatize LINEAR list items with linear privatizers; support ALLOCATABLE (#228827)

Flang miscompiled `LINEAR` on an `ALLOCATABLE` list item (#182401). The
linear
operand was the descriptor reference, but `linear_var_types` held the
element
type, so translation created an undersized private copy and the program
crashed.

This patch makes linear list items use privatizer recipes, the same way
`private` and `reduction` do.

**MLIR**
- The `linear` clause on `omp.wsloop` and `omp.simd` now carries a
privatizer
  symbol and an entry block argument for each list item:
  ```mlir
  omp.private {type = linear} @x.linear : i32
omp.simd linear(@x.linear %x -> %arg0 : !llvm.ptr = %step : i32)

    [34 lines not shown]
DeltaFile
+231-160mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+270-38mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+148-0mlir/test/Target/LLVMIR/openmp-linear-privatizer.mlir
+113-0flang/test/Lower/OpenMP/linear-allocatable.f90
+87-25flang/lib/Lower/OpenMP/OpenMP.cpp
+96-3mlir/test/Dialect/OpenMP/invalid.mlir
+945-22632 files not shown
+1,324-44638 files

LLVM/project d89ee72 — mlir/test/Dialect/Vector vector-contract-unroll.mlir

[mlir][vector][nfc] Remove unused mask from tests (#233748)
DeltaFile
+3-3mlir/test/Dialect/Vector/vector-contract-unroll.mlir
+3-31 files

LLVM/project 64bccb9 — mlir/include/mlir/Bytecode BytecodeDialectInterface.td, mlir/lib/IR BuiltinDialectBytecode.cpp

[mlir][bytecode] Allow selecting dialect versions in mlir-opt (#233149)
DeltaFile
+46-2mlir/test/lib/Dialect/Test/TestDialectInterfaces.cpp
+39-0mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
+36-0mlir/test/Bytecode/versioning/emit-dialect-version.mlir
+27-1mlir/lib/IR/BuiltinDialectBytecode.cpp
+21-0mlir/include/mlir/Bytecode/BytecodeDialectInterface.td
+16-0mlir/test/Bytecode/versioning/emit-builtin-version-dlti.mlir
+185-310 files not shown
+256-1116 files

LLVM/project 10b1553 — llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/Target/NVPTX NVPTXISelLowering.cpp

[AtomicExpand][NVPTX] Clean up comments and formatting
DeltaFile
+1-4llvm/include/llvm/CodeGen/TargetLowering.h
+2-2llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+3-62 files

LLVM/project 13d5d2f — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 free-widening-casts.ll

[AArch64][TTI] Cost extends folded into [US]SHLL as free (#233489)

A doubling NEON zext/sext feeding a shl by a splat immediate
is selected as one [US]SHLL/SHLL, so the extend is free.
DeltaFile
+1,079-468llvm/test/Analysis/CostModel/AArch64/free-widening-casts.ll
+14-2llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+1,093-4702 files

LLVM/project 7dd6e56 — llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/lib/Target/NVPTX NVPTXISelDAGToDAG.cpp NVPTXISelLowering.cpp

[AtomicExpand][NVPTX] Support native elementwise atomicrmw
DeltaFile
+2,302-2,446llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm70.ll
+2,252-2,190llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm60.ll
+834-2,287llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm90.ll
+250-59llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+142-10llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+71-44llvm/lib/CodeGen/AtomicExpandPass.cpp
+5,851-7,0366 files not shown
+6,050-7,07412 files

LLVM/project f543c81 — llvm/test/CodeGen/NVPTX atomicrmw-v1-type-legalization.ll

[SelectionDAG] Test non-elementwise single-lane atomic RMW legalization
DeltaFile
+2-2llvm/test/CodeGen/NVPTX/atomicrmw-v1-type-legalization.ll
+2-21 files

LLVM/project 57e9c03 — flang/lib/Optimizer/HLFIR/Transforms InlineHLFIRAssign.cpp, flang/lib/Optimizer/Passes Pipelines.cpp

[flang] Decouple HLFIR array expansion from optimization level (#233478)

Add optimizeArrayExpression option to the pass pipeline configuration,
set to false by default for now.
It will allow preserving runtime calls for array expressions when set to
false once array temporary
optimizations are default at O0.

Always attempt to inline scalar-to-array assignments, including host
code at O0.

Update pipeline expectations and add coverage for broadcasts, array
expressions, and reductions.

The goal is to make this option always true by default once we start
emitting some fir.assert operation.

Part of
https://discourse.llvm.org/t/rfc-flang-expanding-array-expressions-and-assignments-at-o0/91971
DeltaFile
+61-35flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
+65-0flang/test/Driver/array-runtime.f90
+3-42flang/lib/Optimizer/HLFIR/Transforms/InlineHLFIRAssign.cpp
+9-23flang/lib/Optimizer/Passes/Pipelines.cpp
+0-17flang/test/Lower/scalar-to-array-assign-host-O0.f90
+6-11flang/test/Lower/OpenMP/workdistribute-saxpy-and-scalar-assign.f90
+144-12813 files not shown
+195-18519 files

LLVM/project 68aa3b9 — mlir/include/mlir/Dialect/Arith/IR ArithOps.td, mlir/include/mlir/Dialect/Vector/IR VectorOps.td

[mlir][vector][NFC] Rename getShapeForUnroll to getIterationShapeToUnroll (#232648)

The old name was ambiguous about whether it returned the original shape
or the target shape for unrolling.

The new name makes clear that it returns the shape of the iteration
space to be unrolled. This can differ from the result shape: for
example, vector.contract includes reduction dimensions in its iteration space
that are absent from its result shape.

Implements: https://github.com/llvm/llvm-project/issues/233408
DeltaFile
+24-15mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+15-15mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+13-8mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
+11-4mlir/include/mlir/Interfaces/VectorInterfaces.td
+4-4mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+4-4mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+71-505 files not shown
+79-5611 files

LLVM/project 43ad5e7 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 bsl.ll

[AArch64][TTI] Cost NEON Nots absorbed by And/Or users as free (#232788)

Cost a NEON Not as free when every user is an And/Or in the same block, 
since the Not folds into its BIC, ORN or BSL. If a user negates both of
its operands, only one Not can fold, so it still counts.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+90-9llvm/test/Analysis/CostModel/AArch64/bsl.ll
+14-2llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+104-112 files

LLVM/project fae3561 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 bsl.ll

[AArch64][TTI] Cost the Ands of a NEON bit select as free (#232787)

Or(And(M, A), And(Not(M), B)) selects to a single BSL/BIT/BIF. Charge
the
Or and treat the single-use Ands in its block as free, using the matcher
shared with operand sinking.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+184-0llvm/test/Analysis/CostModel/AArch64/bsl.ll
+10-0llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+194-02 files

LLVM/project 75c9134 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/CodeGen/AArch64 aarch64-bit-gen.ll

[AArch64][TTI] Drop single-use requirement on the mask from BSL sinking (#232786)

Drop the one-use requirement on the mask's Not. Sinking puts a copy of
the
Not next to the And, and the original stays for its other users. 
ISel can then form bsl/bif even when the Not has other uses.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+44-0llvm/test/CodeGen/AArch64/aarch64-bit-gen.ll
+36-0llvm/test/Transforms/CodeGenPrepare/AArch64/sink-free-instructions.ll
+3-3llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+83-33 files

LLVM/project 264d1dd — llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/lib/Target/NVPTX NVPTXISelDAGToDAG.cpp NVPTXISelLowering.cpp

[AtomicExpand][NVPTX] Support native elementwise atomicrmw
DeltaFile
+2,302-2,446llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm70.ll
+2,252-2,190llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm60.ll
+834-2,287llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm90.ll
+250-59llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+142-10llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+71-44llvm/lib/CodeGen/AtomicExpandPass.cpp
+5,851-7,0366 files not shown
+6,050-7,07412 files

LLVM/project 4d9a638 — llvm/lib/Target/AMDGPU AMDGPULibCalls.cpp AMDGPULibFunc.cpp

[AMDGPU][NFC] Explicitly narrow conversions in libcalls, TTI and InstCombine (#215196)

Fixes 34 instances of MSVC warning C4244 and 3 of C4267 ("possible loss of data") across 4 files in llvm/lib/Target/AMDGPU. 

Assisted-by: Claude <noreply at anthropic.com>
DeltaFile
+29-26llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+22-19llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+14-14llvm/lib/Target/AMDGPU/AMDGPULibFunc.h
+5-6llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
+3-2llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+73-675 files

LLVM/project 03fccc9 — llvm/lib/CodeGen/SelectionDAG LegalizeTypes.h SelectionDAG.cpp, llvm/test/CodeGen/NVPTX atomicrmw-v1-type-legalization.ll

[SelectionDAG] Scalarize single-lane vector atomic RMWs
DeltaFile
+84-0llvm/test/CodeGen/NVPTX/atomicrmw-v1-type-legalization.ll
+35-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+2-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+122-04 files

LLVM/project 081ff9b — mlir/lib/Dialect/SPIRV/IR SPIRVEnums.cpp, mlir/lib/Dialect/Utils StructuredOpsUtils.cpp

missing includes
DeltaFile
+1-0mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp
+1-0mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp
+2-02 files

LLVM/project 1e31639 — clang/include/clang/AST ASTContext.h DeclBase.h, clang/lib/AST DeclBase.cpp ASTContext.cpp

[Clang][AST][NFCI] Make Decl reference attributes directly (#219138)

This commit changes `Decl` attributes from being stored in a map to
being managed by an allocator and letting the individual `Decl` objects
reference the attributes directly. Doing so reduces the additional
complexity of maintaining a map and improves performance by reducing the
levels of directions used when accessing `Decl` attributes.

As an additional benefit, this removes the need for the `hasAttr` field
as the pointer can be used to indicate whether a `Decl` has attributes
or not. This coincidentally preserves the size of `Decl` on most
systems, as the single-bit `hasAttr` field caused additional padding for
the class.

Assisted-by: Claude Opus 5

---------

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+3-35clang/lib/AST/ASTContext.cpp
+19-17clang/include/clang/AST/DeclBase.h
+11-11clang/lib/AST/DeclBase.cpp
+6-13clang/include/clang/AST/ASTContext.h
+3-0llvm/include/llvm/Support/Allocator.h
+42-765 files