LLVM/project 6dbdfd8llvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Analysis/ValueTracking assume-queries-counter.ll

[InstCombine] Drop nonnull assumes if the pointer is already known to be nonnull (#180434)

DeltaFile
+37-0llvm/test/Transforms/InstCombine/assume.ll
+6-5llvm/test/Analysis/ValueTracking/assume-queries-counter.ll
+10-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+0-1llvm/test/Transforms/PhaseOrdering/d83507-knowledge-retention-bug.ll
+53-64 files

LLVM/project 4bb16b1llvm/test/Transforms/VectorCombine/X86 shuffle-of-shuffles.ll

[VectorCombine][X86] Add test coverage for #161980 (#180508)

DeltaFile
+46-3llvm/test/Transforms/VectorCombine/X86/shuffle-of-shuffles.ll
+46-31 files

LLVM/project bf13405llvm/include/llvm/Support TargetOpcodes.def

[CodeGen] Improve documentation for SUBREG_TO_REG (#180504)

The most important change is to remove the claim that the extra bits are
necessarily set to zero.
DeltaFile
+6-6llvm/include/llvm/Support/TargetOpcodes.def
+6-61 files

LLVM/project fed9abcclang/docs ReleaseNotes.rst, clang/lib/Sema SemaChecking.cpp

[Clang] Fix missing -Warray-bounds warning on member function calls. (#179647)

Fixes #179128.
This patch fixes a false negative where Clang failed to detect
out-of-bounds access when calling a member function on an invalid array
index. It adds handling for CXXMemberCallExpr in CheckArrayAccess.

Signed-off-by: prajwal jalwadi<prajwaljalwadi at gmail.com>
DeltaFile
+3-2clang/test/SemaCXX/constant-expression-cxx2a.cpp
+4-0clang/lib/Sema/SemaChecking.cpp
+4-0clang/docs/ReleaseNotes.rst
+11-23 files

LLVM/project 0cd8fd9lld/COFF Driver.cpp, lld/wasm OutputSections.cpp Writer.cpp

[lld] Add explicit std::move(...) to avoid a few vector copies (#180474)

In corner cases, it is profitable to move an llvm::SmallString instead
of copying it.

It is almost always profitable to move an std::vector

Changes suggested by performance-use-std-move from
https://github.com/llvm/llvm-project/pull/179467
DeltaFile
+1-1lld/COFF/Driver.cpp
+1-1lld/wasm/OutputSections.cpp
+1-1lld/wasm/Writer.cpp
+3-33 files

LLVM/project 8cd86ffllvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h VPlan.h, llvm/test/Transforms/LoopVectorize phi-with-fastflags-vplan.ll phi-with-fastflags.ll

[VPlan] Propagate FastMathFlags from phis to blends (#180226)

If a phi has fast math flags, we can propagate it to the widened select.
To do this, this patch makes VPPhi and VPBlendRecipe subclasses of
VPRecipeWithIRFlags, and propagates it through PlainCFGBuilder and
VPPredicator.

Alive2 proofs for some of the FMFs (it looks like it can't reason about
the full "fast" set yet)
nnan: https://alive2.llvm.org/ce/z/f0bRd4
nsz: https://alive2.llvm.org/ce/z/u9P96T

The actual motivation for this to eventually be able to move the special
casing for tail folding in
LoopVectorizationPlanner::addReductionResultComputation into the CFG in
#176143, which requires passing through FMFs.
DeltaFile
+74-0llvm/test/Transforms/LoopVectorize/phi-with-fastflags-vplan.ll
+46-0llvm/test/Transforms/LoopVectorize/phi-with-fastflags.ll
+10-11llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+12-8llvm/lib/Transforms/Vectorize/VPlan.h
+10-5llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+4-5llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+156-295 files not shown
+164-3611 files

LLVM/project 72ff1cbflang/test/Lower explicit-interface-results.f90 explicit-interface-results-2.f90

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

Tests converted from test/Lower: equivalence-with-host-assoc.f90,
explicit-interface-results-2.f90, explicit-interface-results.f90,
ext-proc-as-actual-argument-1.f90, ext-proc-as-actual-argument-2.f90
DeltaFile
+154-166flang/test/Lower/explicit-interface-results.f90
+103-98flang/test/Lower/explicit-interface-results-2.f90
+1-72flang/test/Lower/equivalence-with-host-assoc.f90
+22-12flang/test/Lower/ext-proc-as-actual-argument-1.f90
+20-12flang/test/Lower/ext-proc-as-actual-argument-2.f90
+300-3605 files

LLVM/project 5fb8390llvm/include/llvm/ADT GenericUniformityImpl.h GenericUniformityInfo.h, llvm/lib/Analysis UniformityAnalysis.cpp

track uniform values at SSA level
DeltaFile
+22-2llvm/include/llvm/ADT/GenericUniformityImpl.h
+17-0llvm/lib/Analysis/UniformityAnalysis.cpp
+12-0llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
+1-0llvm/include/llvm/ADT/GenericUniformityInfo.h
+52-24 files

LLVM/project a40275cclang/lib/Analysis CloneDetection.cpp, clang/lib/Parse ParseDeclCXX.cpp

[clang] Add explicit std::move(...) to avoid a few copies (#180482)

Moving an std::vector is almost always profitable.

A clang::CXXScopeSpec contains an owned
clang::NestedNameSpecifierLocBuilder which currently does not benefit
from being moved, but may structurally in the future.

A clang::MultiLevelTemplateArgumentList contains an llvm::SmalVector
which may benefit from being moved dependiong on its size.

A clang::Environment contains an llvm::ImmutableMap which itself
contains an llvm::IntrusiveRefCntPtr that benefits from being moved.

Changes suggested by performance-use-std-move from #179467

---------

Co-authored-by: Timm Baeder <tbaeder at redhat.com>
DeltaFile
+3-3clang/lib/Analysis/CloneDetection.cpp
+2-1clang/lib/Sema/SemaTemplateInstantiate.cpp
+1-1clang/lib/Parse/ParseDeclCXX.cpp
+1-1clang/lib/StaticAnalyzer/Core/ProgramState.cpp
+1-1clang/lib/Tooling/DependencyScanningTool.cpp
+8-75 files

LLVM/project dbf2caaclang/lib/Driver/ToolChains Gnu.cpp Darwin.cpp

[clang] Add explicit std::move(...) to avoid a few copies (#180477)

Moving a clang::MultilibSet is almost always profitable.

Changes suggested by performance-use-std-move from #179467
DeltaFile
+5-5clang/lib/Driver/ToolChains/Gnu.cpp
+1-1clang/lib/Driver/ToolChains/Darwin.cpp
+1-1clang/lib/Driver/ToolChains/OHOS.cpp
+7-73 files

LLVM/project f88e018clang-tools-extra/clangd ClangdLSPServer.cpp

[clangd] Add explicit std::move(...) to avoid a few copies (#180475)

Moving an std::map is almost always profitable (DiagnosticToDiagRefMap).

Changes suggested by performance-use-std-move from #179467
DeltaFile
+1-1clang-tools-extra/clangd/ClangdLSPServer.cpp
+1-11 files

LLVM/project de457a6offload/test/offloading ompx_bare.c ompx_bare_multi_dim.cpp

fix formatting
DeltaFile
+3-1offload/test/offloading/ompx_bare.c
+3-1offload/test/offloading/ompx_bare_multi_dim.cpp
+6-22 files

LLVM/project f71e321clang/lib/AST/ByteCode InterpState.cpp InterpState.h, clang/test/AST/ByteCode constexpr-steps.cpp

[clang][bytecode] Implement constexpr step limit (#176150)

This only calls `noteStep()` on jump opcodes, so this works for loops.
It does not prevent "hangs" when a function is just _very_ long (could
be interesting how this interfaces with expand statements?).

Fixes https://github.com/llvm/llvm-project/issues/165951
DeltaFile
+17-2clang/lib/AST/ByteCode/InterpState.cpp
+10-0clang/test/AST/ByteCode/constexpr-steps.cpp
+10-0clang/lib/AST/ByteCode/InterpState.h
+3-3clang/lib/AST/ByteCode/Interp.cpp
+40-54 files

LLVM/project b169123llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/test/CodeGen/AMDGPU intrinsic-amdgcn-s-alloc-vgpr.ll

Address review comments
DeltaFile
+5-3llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+3-3llvm/test/CodeGen/AMDGPU/intrinsic-amdgcn-s-alloc-vgpr.ll
+8-62 files

LLVM/project 2b8cd80llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp

Update after upstream changes
DeltaFile
+2-2llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+2-21 files

LLVM/project 371c70eoffload/test/offloading/fortran target-no-loop.f90 target-parallel-do-collapse.f90

[offload] Adapt tests to new PluginInterface quoting [NFC]

https://github.com/llvm/llvm-project/commit/4096cb60175a3bfdde25dd0cca167416f4f4338e
removed the quotes around PluginInterface
DeltaFile
+6-6offload/test/offloading/fortran/target-no-loop.f90
+1-1offload/test/offloading/fortran/target-parallel-do-collapse.f90
+1-1offload/test/offloading/fortran/do-concurrent-to-omp-saxpy-2d.f90
+1-1offload/test/offloading/fortran/basic-target-teams-parallel-reduction.f90
+1-1offload/test/offloading/fortran/default-mapper-nested-derived-type.f90
+1-1offload/test/offloading/fortran/do-concurrent-to-omp-saxpy.f90
+11-117 files not shown
+18-1813 files

LLVM/project 1d61ac2clang/lib/CodeGen/TargetBuiltins AMDGPU.cpp

[clang][amdgpu] mapCABIAtomicOrdering - fix MSVC not all control paths return a value warning. NFC. (#180500)

DeltaFile
+1-0clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+1-01 files

LLVM/project bf84e84clang/lib/CodeGen/Targets AMDGPU.cpp

[clang][amdgpu] getLLVMSyncScopeStr - fix MSVC not all control paths return a value warning. NFC. (#180501)

DeltaFile
+1-0clang/lib/CodeGen/Targets/AMDGPU.cpp
+1-01 files

LLVM/project 2eb8112llvm/lib/CAS OnDiskGraphDB.cpp

[CAS] getInternalFileBackedObjectData - fix MSVC not all control paths return a value warning. NFC. (#180499)

DeltaFile
+1-0llvm/lib/CAS/OnDiskGraphDB.cpp
+1-01 files

LLVM/project 5b2bfceflang/lib/Optimizer/Analysis CMakeLists.txt

[flang][NFC] Remove dependency on FIRBuilder from FIRAnalysis. (#180300)

The dependency actually appears to be unused.

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
DeltaFile
+0-1flang/lib/Optimizer/Analysis/CMakeLists.txt
+0-11 files

LLVM/project 13cdecdflang/lib/Optimizer/HLFIR/Transforms ScheduleOrderedAssignments.cpp, flang/test/HLFIR/order_assignments where-array-sections.f90

handle the EitherIdenticalOrDisjoint as assuming identical
DeltaFile
+48-10flang/test/HLFIR/order_assignments/where-array-sections.f90
+16-11flang/lib/Optimizer/HLFIR/Transforms/ScheduleOrderedAssignments.cpp
+64-212 files

LLVM/project 49026a7clang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

Improve liveness to detect more invaldiations
DeltaFile
+16-13clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+16-3clang/test/Sema/warn-lifetime-safety-invalidations.cpp
+11-5clang/test/Sema/Inputs/lifetime-analysis.h
+4-4clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+47-254 files

LLVM/project 9803e3ellvm/docs AMDGPUUsage.rst

AMDGPUUsage: add async versions of existing entries in the table
DeltaFile
+6-0llvm/docs/AMDGPUUsage.rst
+6-01 files

LLVM/project 964651allvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 select-big-integer.ll

[X86] Allow handling of i128/256/512 SELECT on the FPU (#180197)

If the scalar integer selection sources are freely transferable to the
FPU, then splat to create an allbits select condition and create a
vector select instead
DeltaFile
+220-491llvm/test/CodeGen/X86/select-big-integer.ll
+36-0llvm/lib/Target/X86/X86ISelLowering.cpp
+256-4912 files

LLVM/project aac785bllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll

Merge remote-tracking branch 'remotes/origin/main' into s-alloc-vgpr-intrinsic
DeltaFile
+121,421-138,357llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+43,316-44,830llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+56,025-0llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+52,760-0polly/lib/External/isl/include/isl/typed_cpp.h
+12,842-18,547llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+30,890-0polly/lib/External/isl/include/isl/cpp.h
+317,254-201,7348,514 files not shown
+1,095,468-634,6868,520 files

LLVM/project 27a8ab0llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU indirect-reg-read-imm-idx.ll indirect-reg-read-imm-idx.mir

[AMDGPU] Fix V_INDIRECT_REG_READ_GPR_IDX expansion with immediate index (#179699)

The definition for V_INDIRECT_REG_READ_GPR_IDX_B32_V*'s SSrc_b32 operand
allows immediates, but the expansion logic handles only register cases
now. This can result in expansion failures when e.g.
llvm.amdgcn.wave.reduce.umin.i32 is folded into a constant and then used
as an insertelement idx.
DeltaFile
+21-0llvm/test/CodeGen/AMDGPU/indirect-reg-read-imm-idx.ll
+18-0llvm/test/CodeGen/AMDGPU/indirect-reg-read-imm-idx.mir
+1-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+40-23 files

LLVM/project fbe5ca2clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/test/Sema warn-lifetime-safety-invalidations.cpp

Improve liveness to detect more invaldiations
DeltaFile
+16-3clang/test/Sema/warn-lifetime-safety-invalidations.cpp
+11-5clang/test/Sema/Inputs/lifetime-analysis.h
+6-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+33-83 files

LLVM/project 3862a4fllvm/lib/CodeGen/GlobalISel RegBankSelect.cpp

[GlobalISel] Use named constant for impossible repair cost (#180490)

replace magic value `std::numeric_limits<unsigned>::max()` with a named
constant `ImpossibleRepairCost` to improve readability
DeltaFile
+9-4llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+9-41 files

LLVM/project 4ef7be9llvm/include/llvm/Transforms/Utils SimplifyLibCalls.h, llvm/lib/Transforms/Utils SimplifyLibCalls.cpp

[SimplifyLibCalls] Directly convert fmin/fmax to intrinsics (#177988)

Drop the custom shrinking code, which we'll also do for intrinsics.
Having libcall-only optimizations is confusing, as these are typically
directly emitted as intrinsics by the frontend.
DeltaFile
+4-15llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+1-1llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+5-162 files

LLVM/project 99fc904llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv fixed-vectors-abd.ll abd.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+28-42llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+22-27llvm/test/CodeGen/RISCV/rvv/abd.ll
+10-7llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+60-763 files