LLVM/project c48a96fclang/include/clang/AST OpenMPClause.h, clang/lib/AST OpenMPClause.cpp

[Clang][OpenMP] Add parsing/sema for dims modifier in num_threads
DeltaFile
+149-41clang/include/clang/AST/OpenMPClause.h
+79-34clang/lib/Parse/ParseOpenMP.cpp
+62-37clang/lib/Sema/SemaOpenMP.cpp
+62-0clang/test/OpenMP/dims_modifier_ast_print.cpp
+52-7clang/lib/AST/OpenMPClause.cpp
+53-1clang/test/OpenMP/dims_modifier_messages.cpp
+457-12025 files not shown
+585-20531 files

LLVM/project 82fc083mlir/lib/Transforms/Utils CMakeLists.txt

[MLIR] Add missing MLIRPass dep when DMLIR_ENABLE_PDL_IN_PATTERNMATCH=OFF used (NFC) (#208289)

When PDL dialect is disabled during build stage
(`DMLIR_ENABLE_PDL_IN_PATTERNMATCH=OFF`) we got a compiler errors due to
some of pdl deps transitively includes `MLIRPass` but without PDL this
dep missing and lead to compile errors
DeltaFile
+1-0mlir/lib/Transforms/Utils/CMakeLists.txt
+1-01 files

LLVM/project 4b910dbllvm/lib/Target/AMDGPU SIFoldOperands.cpp

[NFCI][AMDGPU] Change foldOperand to return changed
DeltaFile
+29-24llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+29-241 files

LLVM/project 0fbdfc8mlir/include/mlir/Dialect/OpenACC/Transforms Passes.h Passes.td, mlir/lib/Dialect/OpenACC/Transforms ACCSpecializeForDevice.cpp

[mlir][acc] Specialize acc.on_device with constant arg for device (#208099) (#208351)

Fold known result acc.on_device to a constant in device-side code.

Re-submitted PR due to accidental stack PR merge
DeltaFile
+72-1mlir/test/Dialect/OpenACC/acc-specialize-for-device.mlir
+38-2mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForDevice.cpp
+8-1mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.h
+5-0mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
+123-44 files

LLVM/project a8264aeclang/test/SemaCXX deduced-return-type-cxx14.cpp

[clang] add triple to `test/SemaCXX/deduced-return-type-cxx14.cpp` (#208340)

Fixes issue reported here:
https://github.com/llvm/llvm-project/pull/208285#issuecomment-4919717057

Since that test file now uses the `cdecl` attribute, which is not
supported in some targets, pin that test to x86_64 triple.
DeltaFile
+6-6clang/test/SemaCXX/deduced-return-type-cxx14.cpp
+6-61 files

LLVM/project 7a0aea3flang/include/flang/Optimizer/Builder OpenACCIntrinsicCall.h IntrinsicCall.h, flang/lib/Lower ConvertCall.cpp

[flang][acc] Emit acc.on_device operation for acc_on_device call (#208098)

It is important we recognize acc_on_device calls as they need to be
folded during compilation. Emitting this operation helps with the
recognition of the runtime call in the optimizer.
DeltaFile
+48-0flang/lib/Optimizer/Builder/OpenACCIntrinsicCall.cpp
+23-19flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+32-0flang/include/flang/Optimizer/Builder/OpenACCIntrinsicCall.h
+5-15flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
+15-1flang/include/flang/Optimizer/Builder/IntrinsicCall.h
+8-7flang/lib/Lower/ConvertCall.cpp
+131-424 files not shown
+141-4510 files

LLVM/project 20a0cd8llvm/test/Transforms/SLPVectorizer/AArch64 fma-reduce-regression.ll

[SLP][NFC]Add a test with the regression in reduction, which should remain scalar FMAs



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208349
DeltaFile
+42-0llvm/test/Transforms/SLPVectorizer/AArch64/fma-reduce-regression.ll
+42-01 files

LLVM/project 01d928dflang/include/flang/Optimizer/Builder OpenACCIntrinsicCall.h IntrinsicCall.h, flang/lib/Lower ConvertCall.cpp

[flang][acc] Emit acc.on_device operation for acc_on_device call (#208098)

It is important we recognize acc_on_device calls as they need to be
folded during compilation. Emitting this operation helps with the
recognition of the runtime call in the optimizer.
DeltaFile
+48-0flang/lib/Optimizer/Builder/OpenACCIntrinsicCall.cpp
+23-19flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+32-0flang/include/flang/Optimizer/Builder/OpenACCIntrinsicCall.h
+5-15flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
+15-1flang/include/flang/Optimizer/Builder/IntrinsicCall.h
+8-7flang/lib/Lower/ConvertCall.cpp
+131-424 files not shown
+141-4510 files

LLVM/project 475684eclang/include/clang/AST OpenMPClause.h, clang/lib/AST OpenMPClause.cpp

[Clang][OpenMP] Add parsing/sema for dims modifier in num_threads
DeltaFile
+129-38clang/include/clang/AST/OpenMPClause.h
+79-34clang/lib/Parse/ParseOpenMP.cpp
+62-37clang/lib/Sema/SemaOpenMP.cpp
+62-0clang/test/OpenMP/dims_modifier_ast_print.cpp
+52-7clang/lib/AST/OpenMPClause.cpp
+53-1clang/test/OpenMP/dims_modifier_messages.cpp
+437-11725 files not shown
+565-20231 files

LLVM/project 1311971clang/docs OpenMPSupport.md OpenCLSupport.md

Fix header links, update tables, reformat URLs
DeltaFile
+398-242clang/docs/OpenMPSupport.md
+42-51clang/docs/OpenCLSupport.md
+26-26clang/docs/PointerAuthentication.md
+22-21clang/docs/ShadowCallStack.md
+9-9clang/docs/Modules.md
+4-4clang/docs/ThinLTO.md
+501-3532 files not shown
+503-3558 files

LLVM/project 336686dclang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete OperatorNewDeletePointers.cpp

fix clang-format
DeltaFile
+3-4clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointers.cpp
+3-41 files

LLVM/project 5d800d3clang/lib/Sema SemaInit.cpp, clang/test/AST ast-dump-init.cpp

[clang] Fix type of the MaterializeTemporaryExpr with incomplete array type. (#187618)

This affects constructs like `int f(int (&&x)[]); int z = f({1});`.

A temporary logically can't have incomplete type: if we don't know the
type, we can't materialize it. Rearrange the casts to make more sense.

I'm not sure this has any practical effects at the moment due to the way
we use skipRValueSubobjectAdjustments; we usually end up ignoring the
type of the MaterializeTemporaryExpr.
DeltaFile
+21-0clang/test/AST/ast-dump-init.cpp
+6-3clang/lib/Sema/SemaInit.cpp
+27-32 files

LLVM/project 349375alldb/include/lldb/Expression DWARFExpressionList.h, lldb/source/Expression DWARFExpressionList.cpp DWARFExpression.cpp

[LLDB] Add an API to check whether a variable is writable (#208042)

IDEs may offer functionality to set a variable to a specific value.
There are many situations where this isn't actually possible, for
example, if the variable's value is a constant or the result of a
complex DWARF expression. Instead of offering to change a value only to
have it fail with an error, this API lets the IDE query whether setting
a value is generally feasible so it can hide the action where it isn't
applicable.

rdar://142358140

Assisted-by: claude
DeltaFile
+51-30lldb/source/Expression/DWARFExpressionList.cpp
+30-0lldb/source/Expression/DWARFExpression.cpp
+20-0lldb/source/ValueObject/ValueObjectVariable.cpp
+20-0lldb/unittests/Expression/DWARFExpressionTest.cpp
+13-0lldb/include/lldb/Expression/DWARFExpressionList.h
+13-0lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
+147-307 files not shown
+205-3013 files

LLVM/project c5ff07eutils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Add missing deps from 1321b17 (#208338)
DeltaFile
+5-1utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+5-11 files

LLVM/project b5c94cfllvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 ldexp-avx512.ll

[X86] Split FLDEXP when AVX512 is not available (#208292)

Mark the 512-bit types Custom only under useAVX512Regs(); otherwise
generic type legalization splits FLDEXP into the legal narrower halves
that LowerFLDEXP handles.

Add a LIT test for the v8f64 -> two 256-bit vscalefpd split.

Co-authored-by: Yanliang Mu <yanliang.mu at intel.com>
DeltaFile
+31-0llvm/test/CodeGen/X86/ldexp-avx512.ll
+3-2llvm/lib/Target/X86/X86ISelLowering.cpp
+34-22 files

LLVM/project b310b1aflang/include/flang/Optimizer/Dialect/CUF CUFOps.td, flang/lib/Optimizer/Transforms/CUDA CUFAddConstructor.cpp

[flang][cuda] Register device/constant globals as device-resident under -gpu=mem:unified (#208336)

```fortran
module m
  integer, device   :: aaa;  bind(c, name='aaa_from_c') :: aaa
  integer, constant :: zzz;  bind(c, name='zzz_from_c') :: zzz
end module
```
```c
extern int aaa_from_c;
#pragma acc declare create(aaa_from_c)   // same for zzz_from_c
```

In this code, under `-gpu=mem:unified` a module-scope device/constant
global is registered only as a CUDA variable. Another translation unit
that declares the same symbol on the host can make it be treated as host
memory, so the device symbol is unresolved at run time.

Fix: emit `cuf.register_variable_static` for device/constant globals
under `mem:unified` so they are additionally registered as
device-resident.
DeltaFile
+32-0flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+20-0flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
+4-0flang/test/Fir/CUDA/cuda-constructor-2.f90
+56-03 files

LLVM/project 41bddc1clang/lib/ScalableStaticAnalysis/Analyses SSAFAnalysesCommon.cpp SSAFAnalysesCommon.h

[SSAF] Replace std::set with SetVector for deterministic order of contributor Decls

The container `std::set<const NamedDecl *>` created a
non-deterministic traversal order for a contributor's `Decls`, making
the resulting representative `Decls[0]` non-deterministic as well.

Also fix typos in assertion messages.

Follow-up to #204482.
DeltaFile
+2-2clang/lib/ScalableStaticAnalysis/Analyses/SSAFAnalysesCommon.cpp
+2-2clang/lib/ScalableStaticAnalysis/Analyses/SSAFAnalysesCommon.h
+4-42 files

LLVM/project ce9aabeclang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete OperatorNewDeletePointers.cpp OperatorNewDeletePointersExtractor.cpp, clang/test/Analysis/Scalable/OperatorNewDelete operator-new-delete.cpp

[SSAF][WPA] Operator new/delete overload entities that shall retain their types

A follow-up change to #206600.  This commit adds the WPA
implementation for those operator new/delete overload entities that
shall retain their types.  This WPA result will later be used to
filter unsafe buffer analysis results.

rdar://179151541
DeltaFile
+259-0clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointers.cpp
+0-118clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointersExtractor.cpp
+71-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary.json
+58-0clang/test/Analysis/Scalable/OperatorNewDelete/operator-new-delete.cpp
+40-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary-bad-id.json
+38-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary-no-key.json
+466-1188 files not shown
+569-12014 files

LLVM/project f8e1856flang/lib/Optimizer/Transforms/CUDA CUFAllocDelay.cpp, flang/test/Transforms/CUF cuf-alloc-delay.fir

[flang][cuda] Switch CUFAllocDelay to operate on fir.declare (#208334)

CUFAllocDelay previously matched hlfir.declare, requiring it to run
before HLFIR-to-FIR lowering. Match fir.declare instead so the pass can
be scheduled with the other CUF preparation passes (which also operate
on fir.declare), before cuf.alloc is lowered. The delay logic is
unchanged.
DeltaFile
+62-62flang/test/Transforms/CUF/cuf-alloc-delay.fir
+6-6flang/lib/Optimizer/Transforms/CUDA/CUFAllocDelay.cpp
+68-682 files

LLVM/project 0842f3cllvm/test/Transforms/ConstraintElimination induction-condition-in-loop-exit.ll constraint-overflow.ll

[ConstraintEli] Add more tests with latch guarded loops+overflows (NFC) (#208328)

Add additional tests with latch controlled loops and cases where we
currently bail out due to constraint-system overflows.
DeltaFile
+272-0llvm/test/Transforms/ConstraintElimination/induction-condition-in-loop-exit.ll
+32-0llvm/test/Transforms/ConstraintElimination/constraint-overflow.ll
+304-02 files

LLVM/project 6627c8fclang/test/SemaCXX deduced-return-type-cxx14.cpp

[clang] add triple to `test/SemaCXX/deduced-return-type-cxx14.cpp`

Fixes issue reported here: https://github.com/llvm/llvm-project/pull/208285#issuecomment-4919717057

Since that test file now uses the `cdecl` attribute, which is not supported
in some targets, pin that test to x86_64 triple.
DeltaFile
+6-6clang/test/SemaCXX/deduced-return-type-cxx14.cpp
+6-61 files

LLVM/project 7526131utils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Add missing deps from 1321b17
DeltaFile
+5-1utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+5-11 files

LLVM/project 3b0e6e4clang/test/CodeGen/AArch64 elf-pauthabi.c

Add missing test case of version = 0
DeltaFile
+6-0clang/test/CodeGen/AArch64/elf-pauthabi.c
+6-01 files

LLVM/project bc97c56llvm/include/llvm/IR IntrinsicsDirectX.td, llvm/lib/Target/DirectX DXILIntrinsicExpansion.cpp DXIL.td

[DirectX] Expand {u,s}mul.with.overflow in DXILIntrinsicExpansion (#207297)

DXIL has no op for the llvm.{u,s}mul.with.overflow intrinsics. These can
be emulated by performing the full multiply using double-width values
and then checking the high-part of the result. However, this should be
avoided for 32-bit values since we don't want to make the shader start
using 64-bit values if it wasn't before. In this case we can use the
UMul and IMul DXIL operations that return the result as separate low &
high values.

Wider (64-bit) multiplies, which can't widen further, compute the high
half with same-width arithmetic instead.

Fixes #207090

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Co-authored-by: Farzon Lotfi <farzonl at gmail.com>
DeltaFile
+100-0llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
+87-0llvm/test/CodeGen/DirectX/overflow_intrinsics.ll
+57-0llvm/test/CodeGen/DirectX/imul_umul.ll
+23-0llvm/lib/Target/DirectX/DXIL.td
+9-0llvm/lib/Target/DirectX/DXILOpBuilder.cpp
+4-0llvm/include/llvm/IR/IntrinsicsDirectX.td
+280-06 files

LLVM/project 1321b17utils/bazel/llvm-project-overlay/clang BUILD.bazel, utils/bazel/llvm-project-overlay/clang/unittests BUILD.bazel

[bazel] Port 01846f68e5 (#208325)

Assisted-by: Gemini
DeltaFile
+16-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
+17-02 files

LLVM/project 8975a68llvm/test/CodeGen/AArch64 arm64-tls-dynamics.ll tiny-model-static.ll

Do not clutter tests with split-file logic
DeltaFile
+0-14llvm/test/CodeGen/AArch64/arm64-tls-dynamics.ll
+0-10llvm/test/CodeGen/AArch64/tiny-model-static.ll
+0-10llvm/test/CodeGen/AArch64/extern-weak.ll
+0-10llvm/test/CodeGen/AArch64/tiny-model-pic.ll
+0-9llvm/test/CodeGen/AArch64/tagged-globals-pic.ll
+0-8llvm/test/CodeGen/AArch64/got-abuse.ll
+0-612 files not shown
+0-758 files

LLVM/project 6c428aaclang/include/clang/Basic AttrDocs.td

[clang][docs] Fix coro_await_elidable bullet list rendering

Add the blank line required before the reStructuredText bullet list and indent the continuation line for the second item. Without this, the generated AttributeReference page does not render the coro_await_elidable safe-elide-context bullets correctly.
DeltaFile
+2-1clang/include/clang/Basic/AttrDocs.td
+2-11 files

LLVM/project c2f5040clang/include/clang/AST DeclFriend.h, clang/lib/AST ASTImporter.cpp

Revert "[Clang] support friend declarations with a dependent nested-name-specifier" (#208302)

Reverts llvm/llvm-project#191268

---

Revert dependent friend support due to a crash in access checking
https://github.com/llvm/llvm-project/issues/208290
DeltaFile
+105-658clang/lib/Sema/SemaAccess.cpp
+10-257clang/test/CXX/temp/temp.decls/temp.friend/p5.cpp
+90-131clang/lib/Sema/SemaDeclCXX.cpp
+62-141clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+101-24clang/include/clang/AST/DeclFriend.h
+18-92clang/lib/AST/ASTImporter.cpp
+386-1,30335 files not shown
+596-1,82641 files

LLVM/project 9f709fbmlir/lib/Dialect/OpenACC/Transforms ACCSpecializeForHost.cpp, mlir/test/Dialect/OpenACC acc-specialize-for-host-fallback.mlir

[flang][OpenACC] Fix host fallback for acc.atomic.update (#207597)

The host fallback for `acc.atomic.update` only processed the first
operation in the region and used its result for the store, ignoring the
remaining operations and the `acc.yield` terminator. This generated
invalid IR when the region contained multiple operations.

1.Fix this by cloning all operations in the region and using the operand
of `acc.yield` as the final result to store.
2.Add tests for atomic read, write, update, and capture operations to
cover the host fallback path.

---------

Co-authored-by: ES3Q <ES3Q at QQ.COM>
DeltaFile
+70-0mlir/test/Dialect/OpenACC/acc-specialize-for-host-fallback.mlir
+7-3mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForHost.cpp
+77-32 files

LLVM/project 5c93fcellvm/lib/Transforms/Vectorize VPlanUtils.cpp VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan vplan-printing-reductions-tail-folded.ll vplan-sink-scalars-and-merge.ll

[VPlan] Model initial header mask as region value. (#196199)

Introduce a new VPRegionValue for the header mask, managed by loop
regions similar to the canonical IV.

The main benefit is we do not need to materialize the mask early and it
is trivial to find (no more need for patterns hard-coded in findHeaderMask).

It is currently materialized before computing costs, as we compute costs
for part of it currently.

PR: https://github.com/llvm/llvm-project/pull/196199
DeltaFile
+137-137llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
+83-83llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
+47-55llvm/test/Transforms/LoopVectorize/VPlan/tail-folding.ll
+6-93llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+49-49llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-sink-replicate-region.ll
+46-42llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+368-45948 files not shown
+621-68254 files