LLVM/project 291784e — llvm/test/CodeGen/X86 umulh-vector-128.ll smulh-vector-128.ll

[X86] Add SSE2 32-bit smulh/umulh test coverage (#231151)

v2i64 codegen looks particularly bad
DeltaFile
+144-0llvm/test/CodeGen/X86/smulh-vector-128.ll
+111-0llvm/test/CodeGen/X86/umulh-vector-128.ll
+255-02 files

LLVM/project b761497 — clang/test/CodeGenHIP printf-builtin.hip, llvm/lib/Transforms/Utils AMDGPUEmitPrintf.cpp

[AMDGPU] Fix out-of-bounds read of a trailing '%' in printf formats (#229088)

locateCStrings checked whether the character after a '%' was another '%'
without checking that there was one. A device printf whose format string
ends in '%' hit the StringRef index assertion in both hostcall and
buffered mode.

Assisted-by: Claude Opus 5.5

---------

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+153-16clang/test/CodeGenHIP/printf-builtin.hip
+1-1llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
+154-172 files

LLVM/project 1ff1fd5 — mlir/lib/Dialect/X86/Transforms VectorContractToAMXDotProduct.cpp, mlir/test/Dialect/X86/AMX vector-contract-to-tiled-dp.mlir

[mlir][x86] Bail out on AMX accumulation without result write (#231144)

Rejects the AMX contraction lowering of zero initialized reduction loops
whose results are not written to memory.

Such cases crashed the lowering instead of being left unchanged.

Assisted-by: Claude
DeltaFile
+63-0mlir/test/Dialect/X86/AMX/vector-contract-to-tiled-dp.mlir
+4-0mlir/lib/Dialect/X86/Transforms/VectorContractToAMXDotProduct.cpp
+67-02 files

LLVM/project 8f4f7d5 — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU frem.ll fix-sgpr-copies-f16.mir

AMDGPU: Legalize SGPR tied src2 for V_FMAC_F16 in moveToVALU (#231146)

When S_FMAC_F16 is moved to the VALU, it becomes V_FMAC_F16_t16_e64 or
V_FMAC_F16_fake16_e64. legalizeOperandsVOP3 only forced the tied src2
into a VGPR for V_FMAC_F32_e64 and V_FMAC_F16_e64, so an SGPR
accumulator fit within the constant bus limit was left in place, producing a
verifier error. Check for any SGPR src2 tied to the result instead.

This was exposed by frem.ll after converting it to use inreg arguments.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+29-0llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16.mir
+8-8llvm/test/CodeGen/AMDGPU/frem.ll
+3-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+40-93 files

LLVM/project ea4d814 — clang/include/clang/Basic BuiltinsAMDGPU.td, clang/lib/Headers amdgpuintrin.h

[AMDGPU] Allow the AS identifying builtins to take flat pointers (#230677)

Summary:
We have `__builtin_amdgcn_is_shared` and `__builtin_amdgcn_is_private`
which are used to determine the underlying address space of a flat
pointer. There's some magic around AS(0) depending on the language mode,
in OpenCL it's `__generic`, in HIP it's the default AS. In the mode
without a language it's still a distinct AS.

This PR changes the builtin signature to just be a flat pointer. This
should be equivalent on the targets I know of, but makes the expectation
clearer and fixes the type issues w/ plain C/C++. Test file hopefully
verifies that existing OpenCL / HIP usage is unaffected.
DeltaFile
+47-0clang/test/Sema/amdgcn-is-shared-private.c
+4-6clang/lib/Headers/amdgpuintrin.h
+2-2clang/include/clang/Basic/BuiltinsAMDGPU.td
+1-1clang/lib/Sema/SemaExpr.cpp
+54-94 files

LLVM/project 8cf4a51 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-narrow-mul.ll

[LV] Only fold outer extend into narrow mul if it cannot wrap. (#229230)

For partial reductions, ext(mul(ext(A), ext(B))) is matched and costed
as mul(wide_ext(A), wide_ext(B)) and optimizeExtendsForPartialReduction
rewrites it that way. This is only correct if the narrow mul cannot
wrap.

The current check would incorrectly allow patterns like zext (mul (zext
i8 to i12, zext i8 to i12)) to i32.

The extends of the mul operands must extend wide enough so the mul
cannot wrap or the mul must be marked nuw/nsw.

Alive2 Proofs: https://alive2.llvm.org/ce/z/SY6fCN

PR: https://github.com/llvm/llvm-project/pull/229230
DeltaFile
+61-56llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-narrow-mul.ll
+31-9llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+92-652 files

LLVM/project 7159d39 — flang/docs index.md InlineRuntimeChecks.md

[flang][docs] add design doc for inline runtime checks (#228502)

We currently rely on runtime versions of array assignment and intrinsics
for most runtime checks, and flang does not implement pointer/bound
checking at all.

This document describes a new fir.assert operation to allow inline
implementation to keep conformity and allocation status checking, as
well as to later implement bound and pointer checking.

Assisted-by: AI
DeltaFile
+815-0flang/docs/InlineRuntimeChecks.md
+1-0flang/docs/index.md
+816-02 files

LLVM/project dc8ca4d — llvm/lib/Passes PassBuilderPipelines.cpp, llvm/test/Other opt-pipeline-attributor-enable.ll

Passes: Replace FunctionAttrs with attributor-light when it is enabled

attributor-light is meant to replace FunctionAttrs, but with
-attributor-enable=light both ran. Use AttributorLightCGSCCPass in
place of each PostOrderFunctionAttrsPass, and AttributorLightPass in
place of each ReversePostOrderFunctionAttrsPass, in the default,
ThinLTO and full LTO pipelines.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+29-9llvm/lib/Passes/PassBuilderPipelines.cpp
+18-3llvm/test/Other/opt-pipeline-attributor-enable.ll
+47-122 files

LLVM/project f04cd9d — clang/lib/AST/ByteCode Opcodes.td Interp.h, clang/test/AST/ByteCode records.cpp

[clang][bytecode] Do BaseToDerived casts step-by-step (#231131)

Computing the offset of the entire cast path once doesn't work out in
practice if the dynamic type of the expression we're casting doesn't
match its static type. Do it one step at a time. This way we don't have
to compute an offset at all, but we stil need to check the validity of
the cast on every step.
DeltaFile
+23-39clang/lib/AST/ByteCode/Interp.cpp
+21-8clang/lib/AST/ByteCode/Compiler.cpp
+21-0clang/test/AST/ByteCode/records.cpp
+2-7clang/lib/AST/ByteCode/Interp.h
+3-1clang/lib/AST/ByteCode/Opcodes.td
+70-555 files

LLVM/project 0baa8d9 — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenBuilder.h CIRGenValue.h

[CIR] Implement Matrix-Insert and do lowering to it for lvalue subscript (#230600)

Matrix element assignment requires an insert operation, which this
provides and implements. Most of this very similar/cribbed from the
previous Extract patch, so hopefully this is simple/right enough.
DeltaFile
+32-16clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+39-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+39-1clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+30-1clang/lib/CIR/CodeGen/CIRGenValue.h
+28-0clang/test/CIR/CodeGen/matrix.cpp
+7-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+175-203 files not shown
+179-239 files

LLVM/project bb69a27 — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenExprScalar.cpp

[CIR] Implement 'matrix-subtraction' lowering. (#230536)

This ends up being basically just a copy/paste from the 'add' patch I
just did, otherthan not having to modify the 'splat' work (as that is
already done!).
DeltaFile
+207-0clang/test/CIR/CodeGen/matrix-sub.c
+70-0clang/test/CIR/Lowering/matrix-sub.cir
+16-0clang/test/CIR/IR/matrix.cir
+8-5clang/include/clang/CIR/Dialect/IR/CIROps.td
+9-3clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+310-85 files

LLVM/project f3ed0cc — llvm/lib/CodeGen/SelectionDAG ScheduleDAGSDNodes.cpp, llvm/test/CodeGen/M68k/Arith bitwise.ll

SelectionDAG: Mark physreg defs dead on scheduler-cloned nodes

When the list scheduler clones a node to break a physreg dependency,
the copies share one SDNode, so InstrEmitter can't tell that a copy's
implicit physreg def (e.g. EFLAGS) lost its users and didn't mark it
dead. LiveVariables recomputes it later, but dead flags are most useful
to earlier optimizations.

Instead, mark the def dead at emission time if the copy has no
scheduler edge for it. This lets convertToThreeAddress form LEAs again,
and is a step toward removing LiveVariables.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+28-40llvm/test/CodeGen/X86/midpoint-int.ll
+15-13llvm/test/CodeGen/X86/select-lea.ll
+22-0llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+6-6llvm/test/CodeGen/X86/combine-sbb.ll
+2-2llvm/test/CodeGen/M68k/Arith/bitwise.ll
+73-615 files

LLVM/project 351dcbb — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 bfloat.ll

[X86] Keep upper-16-bit f32 extractions in XMM for f16/v8i16

Teach combineBitcast and combineVectorInsert to keep this upper-16-bit
f32 extraction in XMM registers rather than bouncing through a GPR.

Depends on PR: https://github.com/llvm/llvm-project/pull/231112
Follow-up PR:  https://github.com/llvm/llvm-project/pull/230557
DeltaFile
+8-29llvm/test/CodeGen/X86/bfloat.ll
+31-0llvm/lib/Target/X86/X86ISelLowering.cpp
+39-292 files

LLVM/project 708a53f — llvm/test/CodeGen/AMDGPU mul.ll amdgcn.bitcast.1024bit.ll

Merge branch 'main' of github.com:llvm/llvm-project into users/lukel97/mask-beforefirst-scalarize
DeltaFile
+32,088-15,710llvm/test/CodeGen/AMDGPU/frem.ll
+5,761-3,731llvm/test/CodeGen/AMDGPU/srem.ll
+6,118-2,908llvm/test/CodeGen/AMDGPU/clmul.ll
+1,505-5,320llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
+2,824-2,824llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,327-1,552llvm/test/CodeGen/AMDGPU/mul.ll
+49,623-32,0451,653 files not shown
+125,265-76,4771,659 files

LLVM/project 2e9e57d — llvm/include/llvm/Analysis VectorUtils.h, llvm/lib/Analysis VectorUtils.cpp

[LV] Add helpers to extend VPWidenMemIntrinsicRecipe to non-VP intrinsics (NFC) (#230486)

This patch adds three new vector utils to query the mask, pointer, and
access type of vector memory intrinsics. It then uses these hooks to
generalize VPWidenMemIntrinsicRecipe to non-VPIntrinsic instructions.

A basic unit test is added to test these hooks work for
compresstore/expandload.

Split off from #214491.
DeltaFile
+44-0llvm/lib/Analysis/VectorUtils.cpp
+26-16llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+24-0llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
+17-4llvm/lib/Transforms/Vectorize/VPlan.h
+15-0llvm/include/llvm/Analysis/VectorUtils.h
+126-205 files

LLVM/project 3800149 — llvm/test/CodeGen/X86 x87.ll

[X86] x87.ll - regenerate checks for all x86/x64 +/-x87 +/-sse1 tests (#231140)

Ensure we check full codegen

Split single large test into int2fp fp32/64/128 tests to keep them
focussed
DeltaFile
+586-53llvm/test/CodeGen/X86/x87.ll
+586-531 files

LLVM/project 3a44256 — llvm/lib/Transforms/Vectorize VPlanConstruction.cpp VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 extractvalue-no-scalarization-required.ll

[VPlan] Model the ExtractValue indices as operands from VPlan0. (#230494)

Add the extractvalue indices as VPlan constant operands when building
VPlan0, instead of only appending a single index when creating
VPWidenRecipes. This gives VPInstruction, VPWidenRecipe and
VPReplicateRecipe the same operand layout, so the indices are printed
for all of them and the result type is derived from the operands.

Includes test coverage for extracts with multiple indices.

As the indices are now proper operands, extractvalues can be CSE'd.

PR: https://github.com/llvm/llvm-project/pull/230494
DeltaFile
+61-4llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
+15-14llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1-8llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+4-4llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
+3-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+3-0llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+87-343 files not shown
+91-379 files

LLVM/project 9375c43 — bolt/lib/Passes FixRISCVCallsPass.cpp, bolt/test/RISCV cond-tail-call.s

[BOLT][RISCV] Do not lower a conditional tail call to an unconditional one (#231117)

isCall() is true for a conditional tail call, so FixRISCVCallsPass
replaced it with a PseudoTAIL, dropping the condition and the
fall-through path.

The pass could instead rewrite it as an inverted branch over a
PseudoTAIL, but RISC-V has no conditional tail call instruction to lower
it to. Skipping conditional branches is simpler: the branch stays as it
is, and the assembler still relaxes it when the target is too far.

Found in a BOLT-optimized clang that crashed in
TargetLoweringBase::getSoftFloatCmpLibcallPredicate().
DeltaFile
+5-1bolt/lib/Passes/FixRISCVCallsPass.cpp
+2-3bolt/test/RISCV/cond-tail-call.s
+7-42 files

LLVM/project f93c537 — llvm/lib/Target/Mips MipsFastISel.cpp MipsISelLowering.cpp, llvm/test/CodeGen/Mips private-fn.ll

[Mips] Fix symbol names for private functions in relocation hints (#230572)

Fixes errors such as

    ld.lld: error: undefined symbol: compiler_rt.rem_pio2.rem_pio2
    >>> referenced by compiler_rt
>>>
/home/alexrp/.cache/zig/o/a0062b09f46a198885da4835be133933/compiler_rt_zcu.o:(tan)
in archive
/home/alexrp/.cache/zig/o/a0062b09f46a198885da4835be133933/libcompiler_rt.a

which would happen because the actual symbol is
`$compiler_rt.rem_pio2.rem_pio2` for O32 or
`.Lcompiler_rt.rem_pio2.rem_pio2` for N64/N32.
DeltaFile
+42-0llvm/test/CodeGen/Mips/private-fn.ll
+0-21llvm/test/CodeGen/Mips/Fast-ISel/private-fn.ll
+11-9llvm/lib/Target/Mips/MipsISelLowering.cpp
+1-2llvm/lib/Target/Mips/MipsFastISel.cpp
+54-324 files

LLVM/project a3acc48 — mlir/lib/Transforms ViewOpGraph.cpp

[ViewOpGraph] Re-use `AsmState` to significantly speed-up printing. (#208240)

I was trying to print some rather large functions (5000+ ops) to a
graphivz/dot file, and noticed that the `ViewOpGraph` pass is rather
slow.

`--view-op-graph` previously always called `Operation::printAsOperand`
with the default `OpPrintingFlags` causing a new `AsmState` to be
constructed every time, which is extremely inefficient.

This patch instead creates a top-level `AsmState` once for each pass
run, and re-uses it for all printing.

This makes printing graphviz/dot files for large graphs *significantly*
faster: A single `func.func` with 5000 operations previously took 33
seconds to print, and can now be printed (essentially) instantly :)

---


    [29 lines not shown]
DeltaFile
+94-43mlir/lib/Transforms/ViewOpGraph.cpp
+94-431 files

LLVM/project f06e51b — llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Analysis/LoopAccessAnalysis stencil-group-merging.ll

[SCEV] Make operand complexity order total. (#230252)

Update CompareSCEVComplexity to return a total order for SCEVs. The
missing cases added are
* SCEVs with matching pointers are ordered by their use-flags
* SCEVUnknowns get assigned an ID at construction and are ordered by it.

The latter is the main change, ensuring SCEVUnkowns are ordered
determinstically by the ID depending on the construction order. Note
that this makes the order dependent on the order SCEVs are created. We
could try to use other sources to order SCEVUnkowns (comesBefore in
basic block, dominance), but those will be more expensive.

With that, we should only return 0 for equal nodes. Previously we could
return 0 for distinct nodes and IIUC this was the main reason for
MaxSCEVCompareDepth, because the operand compare loop could end up doing
a lot of work for distinct operands.

This came up as part of

    [15 lines not shown]
DeltaFile
+97-102llvm/test/CodeGen/X86/optimize-max-0.ll
+22-46llvm/lib/Analysis/ScalarEvolution.cpp
+20-20llvm/test/Transforms/IRCE/wide_indvar.ll
+11-11llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
+9-9llvm/test/Analysis/LoopAccessAnalysis/stencil-group-merging.ll
+8-8llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
+167-19614 files not shown
+204-22920 files

LLVM/project cc45305 — lldb/source/Plugins/RegisterTypeBuilder RegisterTypeBuilderClang.cpp

[lldb] Explicitly handle unreachable code (#230372)

This silences a warning with MSVC, which does not treat the switch as
exhaustive unlike gcc and clang.
DeltaFile
+2-0lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.cpp
+2-01 files

LLVM/project 24ce651 — llvm/lib/Transforms/Scalar LoopFlatten.cpp, llvm/test/Transforms/LoopFlatten widen-iv.ll

[LoopFlatten] Avoid asserting on same-width trip counts (#228130)

The backedge-taken count can already have the same type as the widened
compare RHS.
Use getNoopOrZeroExtend() instead of getZeroExtendExpr() (it requires a
strictly wider destination type) to prevent the assert when types are
same.
DeltaFile
+62-0llvm/test/Transforms/LoopFlatten/widen-iv.ll
+2-1llvm/lib/Transforms/Scalar/LoopFlatten.cpp
+64-12 files

LLVM/project d7474dd — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU frem.ll fix-sgpr-copies-f16.mir

AMDGPU: Legalize SGPR tied src2 for V_FMAC_F16 in moveToVALU

When S_FMAC_F16 is moved to the VALU, it becomes V_FMAC_F16_t16_e64 or
V_FMAC_F16_fake16_e64. legalizeOperandsVOP3 only forced the tied src2
into a VGPR for V_FMAC_F32_e64 and V_FMAC_F16_e64, so an SGPR accumulator
fit within the constant bus limit was left in place, producing a
verifier error. Check for any SGPR src2 tied to the result instead.

This was exposed by frem.ll after converting it to use inreg arguments.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+29-0llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16.mir
+8-8llvm/test/CodeGen/AMDGPU/frem.ll
+3-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+40-93 files

LLVM/project 528ef4b — flang/lib/Lower ConvertCall.cpp ConvertExprToHLFIR.cpp, flang/test/Lower enumeration-type-next-previous.f90 enumeration-type.f90

[flang] Enumeration Type: (PR 4/5) Lowering (#193571)

This PR lowers F2023 enumeration types (and their NEXT, PREVIOUS and
HUGE intrinsics). An enumeration type becomes a named record type with a
single i32 component, __ordinal, which holds the enumerator's 1-based
position:

`!fir.type<_QMmodTcolor{__ordinal:i32}>`

The type also gets a runtime type descriptor. As a result:

- SELECT TYPE can tell an enumeration apart from INTEGER.
- ALLOCATE(color :: x) works for a CLASS(*) variable.
- Formatted I/O works through the derived-type path.

Ordinary enumeration scalars are not boxed. Dummy arguments, function
results, PARAMETERs and constants use the standard derived-type
lowering.


    [8 lines not shown]
DeltaFile
+577-0flang/test/Lower/enumeration-type.f90
+498-0flang/test/Lower/enumeration-type-next-previous.f90
+254-0flang/lib/Lower/ConvertExprToHLFIR.cpp
+220-1flang/lib/Lower/ConvertCall.cpp
+64-43flang/test/Semantics/enumeration-type-intrinsics.f90
+66-0flang/test/Semantics/enumeration-type-intrinsics-valid.f90
+1,679-4414 files not shown
+1,933-13120 files

LLVM/project a40b48a — libc/src/__support/OSUtil/linux/syscall_wrappers lchown.h, libc/src/unistd lchown.h

[libc] Implement lchown in unistd (#230851)

Implement the standard POSIX function `lchown(const char *path, uid_t
owner, gid_t group)` in `<unistd.h>`.

Fixes #230837.
DeltaFile
+82-0libc/test/src/unistd/lchown_test.cpp
+43-0libc/src/__support/OSUtil/linux/syscall_wrappers/lchown.h
+32-0libc/src/unistd/linux/lchown.cpp
+23-0libc/test/src/unistd/CMakeLists.txt
+22-0libc/src/unistd/lchown.h
+15-0libc/src/unistd/linux/CMakeLists.txt
+217-07 files not shown
+251-013 files

LLVM/project 3a6f153 — libsycl/docs CodingGuidelines.md

[libsycl] SYCL Extension naming policy. (#226967)

Assisted-by: Claude Code

---------

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+84-0libsycl/docs/CodingGuidelines.md
+84-01 files

LLVM/project 8639694 — llvm/utils/git ids-check-helper.py

[ids-check] Print diff before updating issue (#230315)

This way if the script errors out trying to update the issue, the diff
is still logged to stdout.
DeltaFile
+1-1llvm/utils/git/ids-check-helper.py
+1-11 files

LLVM/project 377462a — llvm/lib/Transforms/InstCombine InstCombineShifts.cpp, llvm/test/Transforms/AggressiveInstCombine umulh_ladder4.ll umulh_carry.ll

[InstCombine] Combine ((ext(A) * ext(B)) >> N) -> ext(mulh(A, B)). (#224311)

The source values must be equally extended to double their width.
The result is sign/zero-extended for an arithmetic/logical shift.

This is a simplified version of DAGCombiner's combineShiftToMULH.
DeltaFile
+418-0llvm/test/Transforms/InstCombine/mulh.ll
+16-80llvm/test/Transforms/AggressiveInstCombine/umulh_carry4.ll
+10-50llvm/test/Transforms/AggressiveInstCombine/umulh_ladder.ll
+7-35llvm/test/Transforms/AggressiveInstCombine/umulh_carry.ll
+5-25llvm/test/Transforms/AggressiveInstCombine/umulh_ladder4.ll
+19-0llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
+475-1903 files not shown
+483-2029 files

LLVM/project 8930fd6 — clang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/lib/Analysis/LifetimeSafety Loans.cpp FactsGenerator.cpp

field-origin-escape
DeltaFile
+122-3clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
+30-15clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+34-0clang/lib/Analysis/LifetimeSafety/Checker.cpp
+23-0clang/lib/Sema/SemaLifetimeSafety.h
+17-3clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+16-0clang/lib/Analysis/LifetimeSafety/Loans.cpp
+242-213 files not shown
+263-219 files