LLVM/project 7d5fe7eclang/lib/AST/ByteCode Interp.cpp, clang/test/AST/ByteCode c.c

[clang][bytecode] Reject all function calls in C (#175920)

C doesn't have constexpr functions, so this can't ever work anyway.

Fixes https://github.com/llvm/llvm-project/issues/175877
DeltaFile
+6-0clang/test/AST/ByteCode/c.c
+5-0clang/lib/AST/ByteCode/Interp.cpp
+11-02 files

LLVM/project c8ba380llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fmul.ll simplify-demanded-fpclass.ll

InstCombine: Teach SimplifyDemandedFPClass to infer nnan and ninf on fmul
DeltaFile
+27-27llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
+12-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+5-5llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+44-333 files

LLVM/project 188d424llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fdiv in SimplifyDemandedFPClass
DeltaFile
+127-148llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
+130-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+46-0llvm/lib/Support/KnownFPClass.cpp
+3-33llvm/lib/Analysis/ValueTracking.cpp
+10-0llvm/include/llvm/Support/KnownFPClass.h
+316-1825 files

LLVM/project 469ee03llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fdiv.ll

InstCombine: Add baseline fdiv SimplifyDemandedFPClass tests
DeltaFile
+2,321-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
+2,321-01 files

LLVM/project ad3a307llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fsub in SimplifyDemandedFPClass

alive2 fails on some of the tests, but this is due to existing
folds in instsimplify and https://github.com/AliveToolkit/alive2/issues/1273
DeltaFile
+55-73llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fsub.ll
+19-60llvm/lib/Analysis/ValueTracking.cpp
+21-0llvm/lib/Support/KnownFPClass.cpp
+11-4llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+5-0llvm/include/llvm/Support/KnownFPClass.h
+111-1375 files

LLVM/project 79d2cc4llvm/lib/Analysis ValueTracking.cpp, llvm/lib/IR Instruction.cpp Operator.cpp

[IR] Teach `drop/hasPoisonGeneratingAnnotations()` about `abs`, `ctlz` and `cttz`
DeltaFile
+9-9llvm/test/Transforms/InstCombine/freeze-integer-intrinsics.ll
+13-0llvm/lib/IR/Instruction.cpp
+11-0llvm/lib/IR/Operator.cpp
+2-3llvm/lib/Analysis/ValueTracking.cpp
+35-124 files

LLVM/project 437dbbbllvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine branch.ll

[InstCombine][profcheck] Propogate profile metadata when transforming br (X && !Y) to br (!X || Y)

Updated visitBranchInst to propagate and swap !prof metadata when transforming br (X && !Y) to br (!X || Y).
DeltaFile
+31-23llvm/test/Transforms/InstCombine/branch.ll
+12-0llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+43-232 files

LLVM/project 94913cfllvm/test/CodeGen/WebAssembly slp-memory-interleave.ll memory-interleave.ll

[NFC][WebAssembly] More memory interleave tests (#175918)

DeltaFile
+258-0llvm/test/CodeGen/WebAssembly/slp-memory-interleave.ll
+162-0llvm/test/CodeGen/WebAssembly/memory-interleave.ll
+420-02 files

LLVM/project 98adb36llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 phaddsub-undef.ll

[X86] isHorizontalBinOp - discard any shuffle that resolves to an all sentinel shuffle mask (#175931)

If the mask resolves to all-undef/zero then it can't be used - these can
theoretically appear if we're combining before the source operands have
constant folded away (in this case due to the avg intrinsic not folding
away until later into legalisation) - yet another case of working around
a poorly topological sorted DAG

Fixes #175802
DeltaFile
+20-8llvm/test/CodeGen/X86/phaddsub-undef.ll
+2-0llvm/lib/Target/X86/X86ISelLowering.cpp
+22-82 files

LLVM/project efa32e3clang/lib/StaticAnalyzer/Core CallEvent.cpp, clang/test/Analysis call-invalidation.cpp

[analyzer] Invalidate the object in opaque ctor calls regardless if an arg refers to it (#170887)

The conservative call invalidation logic is a bit complicated, and would
deserve some refactoring.

When a call has some arguments, we escape them. Except, if its a pointer
to constant storage - because we assume that the program honors
const-correctness.

In that case, it puts it in the "Preserved" list to keep its contents.
However, if we had a constructor call that's job is to initialize an
object had a const pointer/reference parameter then the invalidation
didn't take place.

This meant that if the object was on the stack, that we start warning
about uninitialized fields when accessed. (See the example) Similar
could be achieved on the heap of course.

We should have honored the fact that the constructor should initialize

    [7 lines not shown]
DeltaFile
+25-5clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+29-0clang/test/Analysis/call-invalidation.cpp
+54-52 files

LLVM/project 58b91e7llvm/unittests/IR MetadataTest.cpp

Revert "Drop the summation unittest since it's already covered by the gvn lit tests"

This reverts commit fb0d7df21794ab50eaab4cb6e249679089a5a501.
DeltaFile
+26-0llvm/unittests/IR/MetadataTest.cpp
+26-01 files

LLVM/project 59df0a6llvm/unittests/IR MetadataTest.cpp

Drop the summation unittest since it's already covered by the gvn lit tests
DeltaFile
+0-26llvm/unittests/IR/MetadataTest.cpp
+0-261 files

LLVM/project c9c62d8llvm/unittests/IR MetadataTest.cpp

clang format
DeltaFile
+6-3llvm/unittests/IR/MetadataTest.cpp
+6-31 files

LLVM/project 3968081llvm/lib/IR Metadata.cpp, llvm/unittests/IR MetadataTest.cpp

[Metadata][profcheck] Handle identical MDNodes in getMergedProfMetadata

This fixes a bug where !prof metadata was dropped from SelectInsts when GVN simplified/merged them.
Guarded by -profcheck-disable-metadata-fixes. Exposed by the tests in
Transforms/SampleProfile.
DeltaFile
+50-0llvm/unittests/IR/MetadataTest.cpp
+12-0llvm/lib/IR/Metadata.cpp
+62-02 files

LLVM/project 4f7939ellvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine branch-metadata.ll

[InstCombine][profcheck] Propogate profile metadata when transforming br (X && !Y) to br (!X || Y)

Updated visitBranchInst to propagate and swap !prof metadata when transforming br (X && !Y) to br (!X || Y).
DeltaFile
+27-0llvm/test/Transforms/InstCombine/branch-metadata.ll
+13-0llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+40-02 files

LLVM/project b6efc9ellvm/utils profcheck-xfail.txt

Update profcheck-xfail.txt
DeltaFile
+3-2llvm/utils/profcheck-xfail.txt
+3-21 files

LLVM/project 7db925allvm/lib/IR Metadata.cpp

Move the check after merging for calls to simplify the condition
DeltaFile
+3-6llvm/lib/IR/Metadata.cpp
+3-61 files

LLVM/project 0b7d14emlir/lib/Dialect/XeGPU/IR XeGPUDialect.cpp, mlir/lib/Dialect/XeGPU/Transforms XeGPUPeepHoleOptimizer.cpp XeGPUOptimizeBlockLoads.cpp

[MLIR][XeGPU] Add 2D `vector.multi_reduction` optimization (#171154)

DeltaFile
+587-0mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
+0-491mlir/lib/Dialect/XeGPU/Transforms/XeGPUOptimizeBlockLoads.cpp
+313-0mlir/test/Dialect/XeGPU/peephole-optimize.mlir
+0-280mlir/test/Dialect/XeGPU/optimize-transpose.mlir
+42-4mlir/test/Dialect/XeGPU/subgroup-distribute.mlir
+18-0mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
+960-7756 files not shown
+984-79012 files

LLVM/project bd65ec1llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 arm64-int-neon.ll

[AArch64] Add lowering for NEON saturating shift intrinsics (#171485)

This patch extends on the work done in #161840 and adds lowering with
bitcasts for saturating shift intrinsics.
DeltaFile
+91-1llvm/test/CodeGen/AArch64/arm64-int-neon.ll
+22-11llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+12-7llvm/lib/Target/AArch64/AArch64InstrInfo.td
+8-3llvm/lib/Target/AArch64/AArch64InstrFormats.td
+133-224 files

LLVM/project efd66e5clang/test/Sema warn-lifetime-analysis-nocfg.cpp warn-lifetime-safety.cpp, clang/test/Sema/Inputs lifetime-analysis.h

[LifetimeSafety] Test lifetime safety on stmt-local analysis test suite
DeltaFile
+217-55clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+9-9clang/test/Sema/warn-lifetime-safety.cpp
+9-1clang/test/Sema/Inputs/lifetime-analysis.h
+235-653 files

LLVM/project e2cbb02flang/test/Lower call-copy-in-out.f90 block.f90

[flang][NFC] Converted five tests from old lowering to new lowering (part 8) (#175881)

Tests converted from test/Lower: block.f90, call-copy-in-out.f90,
call-implicit.f90, call.f90, character-compare.f90
DeltaFile
+53-191flang/test/Lower/call-copy-in-out.f90
+32-31flang/test/Lower/block.f90
+13-10flang/test/Lower/call.f90
+10-4flang/test/Lower/call-implicit.f90
+2-3flang/test/Lower/character-compare.f90
+110-2395 files

LLVM/project c2a2ff3clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/unittests/Analysis LifetimeSafetyTest.cpp

Fix crash in derived to base conversion
DeltaFile
+11-5clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+12-0clang/unittests/Analysis/LifetimeSafetyTest.cpp
+23-52 files

LLVM/project cc13c77clang/lib/CIR/Dialect/IR CIRDialect.cpp, mlir/include/mlir/Interfaces ControlFlowInterfaces.h

[mlir][Interfaces] Split successor inputs from region successor
DeltaFile
+52-12clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+43-20mlir/lib/Dialect/SCF/IR/SCF.cpp
+43-12mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+12-30mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+28-11mlir/lib/Dialect/Transform/IR/TransformOps.cpp
+36-3mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+214-8834 files not shown
+411-19340 files

LLVM/project 18b004dllvm/include/llvm/CodeGen SDPatternMatch.h, llvm/unittests/CodeGen SelectionDAGPatternMatchTest.cpp

[DAG] SDPatternMatch - Implement m_IntrinsicWOChain matchers (#175626)

Resolve #174436

Implemented matchers for intrinsics.

The usage looks something like:

```cpp
sd_match(N , m_IntrinsicWOChain<Intrinsic::${INTRINSIC_ID}>(/* match possible operands of the intrinsic */));
```
DeltaFile
+44-0llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+5-0llvm/include/llvm/CodeGen/SDPatternMatch.h
+49-02 files

LLVM/project 072b98cmlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/Affine/IR AffineOps.cpp

[mlir][Interfaces] Split successor inputs from region successor
DeltaFile
+43-20mlir/lib/Dialect/SCF/IR/SCF.cpp
+43-12mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+12-30mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+36-3mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+28-11mlir/lib/Dialect/Transform/IR/TransformOps.cpp
+25-11mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+187-8732 files not shown
+354-18138 files

LLVM/project 91b3fe0flang-rt/cmake/modules GetToolchainDirs.cmake

[Flang-RT][CMake] Remove redundant code. NFC. (#175917)

Two methods to extract the same data. Remove the one that is overwritten
later anyway.
DeltaFile
+0-8flang-rt/cmake/modules/GetToolchainDirs.cmake
+0-81 files

LLVM/project e69bcddmlir/lib/Analysis/DataFlow SparseAnalysis.cpp, mlir/lib/Dialect/Affine/IR AffineOps.cpp

[mlir][Interfaces] Split successor inputs from region successor
DeltaFile
+43-20mlir/lib/Dialect/SCF/IR/SCF.cpp
+43-12mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+36-3mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+28-11mlir/lib/Dialect/Transform/IR/TransformOps.cpp
+25-11mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+11-14mlir/lib/Analysis/DataFlow/SparseAnalysis.cpp
+186-7132 files not shown
+349-16738 files

LLVM/project d93401fllvm/lib/Target/AMDGPU GCNRegPressure.cpp, llvm/test/CodeGen/AMDGPU machine-scheduler-sink-trivial-remats-attr.mir

[Review] Discussion with lrami
DeltaFile
+19-19llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
+5-2llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+24-212 files

LLVM/project 3836d49clang/docs ReleaseNotes.rst, clang/lib/Sema SemaTemplateInstantiate.cpp

[clang] Fix TemplateInstantiator crash transforming loop hint argument (#172289)

A generic lambda inside a generic function is (currently) instantiated twice. Thus the argument expression of a loop hint inside such a lambda may still be value dependent after the first instantiation and we must protect against this in `TransformLoopHintAttr`. We also fix a bug in this function where the special handling of an unroll(0|1) hint could be applied to *other* loop hints, if they receive an argument 1 after instantiation.
DeltaFile
+31-1clang/test/CodeGenCXX/pragma-unroll.cpp
+25-0clang/test/Sema/unroll-template-value-crash.cpp
+16-7clang/lib/Sema/SemaTemplateInstantiate.cpp
+2-0clang/docs/ReleaseNotes.rst
+74-84 files

LLVM/project 64b8c61llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp AMDGPUBaseInfo.h

review: address feedback for waitcnt profiling expansion
DeltaFile
+21-27llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+2-2llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+1-2llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+24-313 files