LLVM/project c543615llvm Maintainers.md

[LLVM] Add myself to the former maintainers list. (#169201)

I was the SelectionDAG maintainer (then called code owner) from
aebfacb008246b912e2fc5a454939a3de942303b (requested to take it up by
Evan Cheng) and yielded the role to Justin Bogner as of
d8ed65dda0b10b5d9fa6ebd2da46e733fbde5512.
DeltaFile
+1-0llvm/Maintainers.md
+1-01 files

LLVM/project d40c8dcclang/test/OpenMP parallel_default_variableCategory_codegen.cpp

[Clang][OpenMP] Make test use clang_cc1 (#169233)

This test does not actually need to use the clang driver. Using the
driver means that the environment plays much more into the tests
results. We ran into a situation where the driver decided not to pass
-fopenmp to the cc1 invocation, causing the test to fail.

This also makes the test more consistent with the other OpenMP tests and
should make it slightly faster (no subprocess invocation).
DeltaFile
+1-1clang/test/OpenMP/parallel_default_variableCategory_codegen.cpp
+1-11 files

LLVM/project 362de22lldb/cmake/modules LLDBConfig.cmake

[lldb] Fix SWIG bug detection in CMake (#169212)

The CMake
[`set()`](https://cmake.org/cmake/help/latest/command/set.html) command
does not accept a conditional expression as a value. As a result,
AFFECTED_BY_SWIG_BUG was being set to a string representation of the
condition rather than a boolean value, causing it to always evaluate as
truthy in subsequent if-checks.
DeltaFile
+7-2lldb/cmake/modules/LLDBConfig.cmake
+7-21 files

LLVM/project e5edb51clang/lib/Frontend CompilerInvocation.cpp, utils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Port 3773bbe9e7916ec89fb3e3cd02e29c54cabac82b
DeltaFile
+8-1utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+4-0utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
+0-2clang/lib/Frontend/CompilerInvocation.cpp
+1-1utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+14-45 files

LLVM/project e6f60a6clang/include/clang/CIR MissingFeatures.h, clang/lib/CIR/CodeGen CIRGenExprCXX.cpp CIRGenBuiltin.cpp

[CIR] Add builtin operator new/delete (#168578)

This PR adds `__builtin_operator_new` and `__builtin_operator_delete`.

The implementation is taken from clang code gen.
DeltaFile
+44-0clang/test/CIR/CodeGen/builtin_new_delete.cpp
+31-0clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+8-0clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+1-0clang/include/clang/CIR/MissingFeatures.h
+89-05 files

LLVM/project 9be344allvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 remat-fmov-vector-imm.mir

[AArch64] Mark FMOVvXfY_ns as rematerializable, cheap

Otherwise, the register allocator may spill and reload constants that
can be rematerialized with a single instruction.
DeltaFile
+194-0llvm/test/CodeGen/AArch64/remat-fmov-vector-imm.mir
+2-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+196-02 files

LLVM/project 8e2f544llvm/utils/TableGen/Common CodeGenDAGPatterns.h

[TableGen] Use std::array::fill instead of std::memset. NFC (#169204)

DeltaFile
+1-1llvm/utils/TableGen/Common/CodeGenDAGPatterns.h
+1-11 files

LLVM/project b5750aallvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 remat-fmov-vector-imm.mir

[AArch64] Mark FMOVvXfY_ns as rematerializable, cheap

Otherwise, the register allocator may spill and reload constants that
can be rematerialized with a single instruction.
DeltaFile
+160-0llvm/test/CodeGen/AArch64/remat-fmov-vector-imm.mir
+2-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+162-02 files

LLVM/project 3773bbeclang/include/clang/Frontend ASTUnit.h, clang/lib/Driver CreateASTUnitFromArgs.cpp CreateInvocationFromArgs.cpp

 [clang] Refactor to remove clangDriver dependency from clangFrontend  and flangFrontend (#165277)

This removes the dependency on clangDriver from clangFrontend and
flangFrontend.

This refactoring is part of a broader effort to support driver-managed
builds for compilations using C++ named modules and/or Clang modules.
It is required for linking the dependency scanning tooling against the
driver without introducing cyclic dependencies, which would otherwise
cause build failures when dynamic linking is enabled.
In particular, clangFrontend must no longer depend on clangDriver
for this to be possible.

This change was discussed in the following RFC:
https://discourse.llvm.org/t/rfc-new-clangoptions-library-remove-dependency-on-clangdriver-from-clangfrontend-and-flangfrontend/88773 
DeltaFile
+51-295clang/lib/Frontend/ASTUnit.cpp
+207-8clang/lib/Options/OptionUtils.cpp
+166-0clang/lib/Driver/CreateASTUnitFromArgs.cpp
+0-163clang/lib/Driver/ToolChains/CommonArgs.cpp
+65-81clang/include/clang/Frontend/ASTUnit.h
+119-0clang/lib/Driver/CreateInvocationFromArgs.cpp
+608-54756 files not shown
+1,047-79762 files

LLVM/project 8b7401fllvm/lib/Target/AArch64 AArch64MachineFunctionInfo.cpp

Fix MSVC "not all control paths return a value" warning. NFC. (#169222)

DeltaFile
+1-0llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
+1-01 files

LLVM/project a54edafllvm/include/llvm/ADT MapVector.h DenseMap.h, llvm/unittests/ADT MapVectorTest.cpp DenseMapTest.cpp

ADT: Complete the at() methods for DenseMap and MapVector (#169147)

Make it easier to use these containers as drop-in replacements for
std::map.
DeltaFile
+18-4llvm/include/llvm/ADT/MapVector.h
+15-0llvm/unittests/ADT/MapVectorTest.cpp
+8-0llvm/include/llvm/ADT/DenseMap.h
+8-0llvm/unittests/ADT/DenseMapTest.cpp
+49-44 files

LLVM/project 0332af2clang/include/clang/Basic BuiltinsX86.td

[X86] BuiltinsX86.td - merge avx512 cmp/ucmp builtins into common Features/Attributes blocks. NFC. (#169223)

DeltaFile
+22-74clang/include/clang/Basic/BuiltinsX86.td
+22-741 files

LLVM/project eea688fllvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 remat-fmov-vector-imm.mir

[AArch64] Mark FMOVvXfY_ns as rematerializable, cheap

Otherwise, the register allocator may spill and reload constants that
can be rematerialized with a single instruction.
DeltaFile
+159-0llvm/test/CodeGen/AArch64/remat-fmov-vector-imm.mir
+2-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+161-02 files

LLVM/project 21378fbllvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlanPatternMatch.h, llvm/test/Transforms/LoopVectorize fcmp-uno-fold-interleave.ll fmax-without-fast-math-flags-interleave.ll

[VPlan] Merge `fcmp uno` feeding AnyOf. (#166823)

Fold
  any-of (fcmp uno %A, %A), (fcmp uno %B, %B), ... ->
  any-of (fcmp uno %A, %B), ...

This pattern is generated to check if any vector lane is NaN, and
combining multiple compares is beneficial on architectures that have
dedicated instructions.

Alive2 Proof: https://alive2.llvm.org/ce/z/vA_aoM

Combine suggested as part of
https://github.com/llvm/llvm-project/pull/161735

PR: https://github.com/llvm/llvm-project/pull/166823
DeltaFile
+8-23llvm/test/Transforms/LoopVectorize/fcmp-uno-fold-interleave.ll
+29-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-5llvm/test/Transforms/LoopVectorize/fmax-without-fast-math-flags-interleave.ll
+2-5llvm/test/Transforms/LoopVectorize/AArch64/fmin-without-fast-math-flags.ll
+2-5llvm/test/Transforms/LoopVectorize/AArch64/fmax-without-fast-math-flags.ll
+4-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+47-381 files not shown
+48-397 files

LLVM/project 7485f34llvm/lib/Target/X86 X86ISelDAGToDAG.cpp, llvm/test/CodeGen/X86 pr169205.ll

[X86] X86ISelDAGToDAG - don't let ADD/SUB(X,1) -> SUB/ADD(X,-1) constant fold (#169217)

Extension to #168726 - ensure we peek through bitcasts to look for
constants (as constant folding will)

DAG should have constant folded this, but we're still fighting the lack
of proper topological sorting.

Fixes #169205
DeltaFile
+23-0llvm/test/CodeGen/X86/pr169205.ll
+2-1llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+25-12 files

LLVM/project 06fc87bflang/include/flang/Parser parse-tree.h, flang/lib/Parser openmp-parsers.cpp unparse.cpp

[flang][OpenMP] Better diagnostics for invalid or misplaced directives (#168885)

Add two more AST nodes, one for a misplaced end-directive, and one for
an invalid string following the OpenMP sentinel (e.g. "!$OMP XYZ").

Emit error messages when either node is encountered in semantic
analysis.
DeltaFile
+33-20flang/lib/Parser/openmp-parsers.cpp
+19-1flang/include/flang/Parser/parse-tree.h
+19-0flang/lib/Semantics/check-omp-structure.cpp
+16-0flang/test/Semantics/OpenMP/loop-association.f90
+6-6flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
+10-0flang/lib/Parser/unparse.cpp
+103-2710 files not shown
+129-3516 files

LLVM/project e4a96efclang/include/clang/CIR/Analysis FallThroughWarning.h, clang/lib/CIR/Analysis FallThroughWarning.cpp

Unknown should break
DeltaFile
+25-29clang/lib/CIR/Analysis/FallThroughWarning.cpp
+7-4clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+2-3clang/include/clang/CIR/Analysis/FallThroughWarning.h
+34-363 files

LLVM/project 93b20e7llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 int-to-fp-no-neon.ll itofp.ll

[AArch64] Extend int-to-fp load optimization to support f16 (#168076)

DeltaFile
+33-15llvm/test/CodeGen/AArch64/int-to-fp-no-neon.ll
+24-12llvm/test/CodeGen/AArch64/itofp.ll
+13-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+3-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+73-284 files

LLVM/project f7aa0ffclang/include/clang/CIR/Analysis FallThroughWarning.h, clang/lib/CIR/Analysis FallThroughWarning.cpp

test1 working
DeltaFile
+195-33clang/lib/CIR/Analysis/FallThroughWarning.cpp
+10-5clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+9-1clang/include/clang/CIR/Analysis/FallThroughWarning.h
+1-0clang/lib/Sema/AnalysisBasedWarnings.cpp
+215-394 files

LLVM/project 77a50e9mlir/lib/Dialect/Vector/IR ScalableValueBoundsConstraintSet.cpp

[mlir] Avoid else after return in ScalableValueBounds (NFC)
DeltaFile
+3-5mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
+3-51 files

LLVM/project a83e09aclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

[clang-format] Handle `&&` in requires clause in requires requires (#169207)

Fixes #152266
DeltaFile
+9-0clang/unittests/Format/TokenAnnotatorTest.cpp
+4-1clang/lib/Format/TokenAnnotator.cpp
+13-12 files

LLVM/project d8b6524lld/MinGW Driver.cpp, lld/test/MinGW driver.test

[LLD][MinGW] Handle MIPS machine (#157742)

DeltaFile
+6-0lld/test/MinGW/driver.test
+2-0lld/MinGW/Driver.cpp
+8-02 files

LLVM/project 8ea5e20mlir/include/mlir/Dialect/XeGPU/Transforms Passes.td, mlir/lib/Dialect/XeGPU/Transforms XeGPUPropagateLayout.cpp

[MLIR][XeGPU] Disable block count usage in layout propagation (#168504)

DeltaFile
+24-0mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
+13-0mlir/include/mlir/Dialect/XeGPU/Transforms/Passes.td
+2-4mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
+39-43 files

LLVM/project 0e416f4clang/include/clang/CIR/Analysis CIRAnalysisKind.h, clang/include/clang/CIR/Sema CIRAnalysisKind.h

Rename sema/ to analysis/ and add new test
DeltaFile
+222-0clang/lib/CIR/Analysis/FallThroughWarning.cpp
+0-170clang/lib/CIR/Sema/FallThroughWarning.cpp
+0-117clang/include/clang/CIR/Sema/CIRAnalysisKind.h
+117-0clang/include/clang/CIR/Analysis/CIRAnalysisKind.h
+0-67clang/lib/CIR/Sema/CIRAnalysisKind.cpp
+67-0clang/lib/CIR/Analysis/CIRAnalysisKind.cpp
+406-3548 files not shown
+564-44214 files

LLVM/project a088e74clang/lib/StaticAnalyzer/Core BugSuppression.cpp, clang/test/Analysis suppression-attr.cpp

[analyzer] Fix [[clang::suppress]] for template instantiations (#168954)

BugSuppression works by traversing the lexical decl context of the
decl-with-issue to record what source ranges should be suppressed by
some attribute.
Note that the decl-with-issue will be changed to the lexical decl
context of the original decl-with-issue, to make suppression attributes
work that were attached to the CXXRecordDecl containing the
CXXMethodDecl (bug report's DeclWithIssue).

It happens so that it uses a DynamicRecursiveASTVisitor, which has a
couple of traversal options. Namely:

 - ShouldVisitTemplateInstantiations
 - ShouldWalkTypesOfTypeLocs
 - ShouldVisitImplicitCode
 - ShouldVisitLambdaBody

By default, these have the correct values, except for

    [7 lines not shown]
DeltaFile
+24-1clang/test/Analysis/suppression-attr.cpp
+6-1clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
+30-22 files

LLVM/project 08f72fellvm/utils/TableGen/Common CodeGenDAGPatterns.h

[TableGen] Remove unnecessary use of MVT::SimpleTy. NFC

This was missed in 0ef522ff68fff4266bf85e7b7a507a16a8fd34ee
DeltaFile
+1-1llvm/utils/TableGen/Common/CodeGenDAGPatterns.h
+1-11 files

LLVM/project b9107bfllvm/lib/Target/RISCV RISCVSubtarget.h RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV zilsd.ll

[RISCV] Support zilsd-4byte-align for i64 load/store in SelectionDAG. (#169182)

I think we need to keep the SelectionDAG code for volatile load/store so
we should support 4 byte alignment when possible.
DeltaFile
+91-0llvm/test/CodeGen/RISCV/zilsd.ll
+7-0llvm/lib/Target/RISCV/RISCVSubtarget.h
+2-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+1-3llvm/lib/Target/RISCV/RISCVZilsdOptimizer.cpp
+101-54 files

LLVM/project d5f3ab8llvm/test/CodeGen/AMDGPU local-atomicrmw-fsub.ll local-atomicrmw-fmax.ll, llvm/test/CodeGen/NVPTX atomics-b128.ll

Revert "[RegAlloc] Fix the terminal rule check for interfere with DstReg (#168661)"

This reverts commit 0859ac5866a0228f5607dd329f83f4a9622dedcc.

This caused a couple test failures, likely due to a mid-air collision.
Reverting for now to get the tree back to green and allow the original
author to run UTC/friends and verify the output.
DeltaFile
+1,424-1,382llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
+1,263-1,235llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
+1,263-1,235llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
+1,184-1,158llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
+92-96llvm/test/CodeGen/X86/i128-mul.ll
+75-75llvm/test/CodeGen/NVPTX/atomics-b128.ll
+5,301-5,18149 files not shown
+6,056-5,93955 files

LLVM/project 525e68eclang/docs ReleaseNotes.rst, clang/lib/Sema TreeTransform.h

Don't mark lambda non-dependent if nested in a generic lambda. (#149121)

Fixes #118187
Fixes #156579

An instantiated `LambdaExpr` can currently be marked as
`LDK_NeverDependent` if it's nested within a generic lambda. If that
`LambdaExpr` in fact depends on template parameters introduced by the
enclosing generic lambda, then its dependence will be misreported as
"never dependent" and spurious diagnostics can result.

The fix here proposed is a bit ugly, but the condition that it's being
bolted onto already seems like a bit of a hack, so this seems no worse
for wear.

Note that #89702 surfaced this change because it caused the inner lambda
expression to (correctly) be considered in a constant-evaluated context.
The affected check for whether to mark the inner lambda as
`LDK_NeverDependent` therefore started to apply, whereas it didn't

    [2 lines not shown]
DeltaFile
+22-1clang/test/SemaCXX/cxx2a-consteval.cpp
+2-0clang/lib/Sema/TreeTransform.h
+1-0clang/docs/ReleaseNotes.rst
+25-13 files

LLVM/project 0859ac5llvm/test/CodeGen/AMDGPU local-atomicrmw-fsub.ll local-atomicrmw-fmax.ll, llvm/test/CodeGen/NVPTX atomics-b128.ll

[RegAlloc] Fix the terminal rule check for interfere with DstReg (#168661)

This maybe a bug which is introduced by commit
6749ae36b4a33769e7a77cf812d7cd0a908ae3b9, and has been present ever
since.
In this case, `OtherReg` always overlaps with `DstReg` cause they from
the `Copy` all.
DeltaFile
+1,382-1,424llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
+1,235-1,263llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
+1,235-1,263llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
+1,158-1,184llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
+96-92llvm/test/CodeGen/X86/i128-mul.ll
+75-75llvm/test/CodeGen/NVPTX/atomics-b128.ll
+5,181-5,30149 files not shown
+5,939-6,05655 files