LLVM/project dfc02b7llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses BUILD.gn, llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework BUILD.gn

[gn] port c1f6fd24aa637d6a
DeltaFile
+12-0llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
+13-02 files

LLVM/project 77667d7flang-rt/test/Driver safe-trampoline-gnustack.f90

[flang] Fix the CHECK: directive to ensure flagging RWE (NFC) (#187186)

Update the check to catch "RWE" in the header.
DeltaFile
+1-3flang-rt/test/Driver/safe-trampoline-gnustack.f90
+1-31 files

LLVM/project c0064f7libc/src/__support/FPUtil dyadic_float.h

[libc][math] Fix missing underflow exception in DyadicFloat::generic_as (#186734)

The `generic_as` function in `dyadic_float.h` had a missing `underflow =
true` at the exact boundary where `unbiased_exp == -EXP_BIAS -
FRACTION_LEN`.
At this boundary, the mantissa MSB maps exactly to the round bit, so
out_mantissa is 0 and the result can only be 0 or min_subnormal. The
value is at most min_subnormal / 2, so it is always tiny and always
inexact `underflow` must be signaled. The < case and the general
subnormal range both already set underflow = true this boundary case was
the only gap.

this specifically fix this error in the erfcf16 function 
```
Extracted erfcf16.cpp.o from archive for linking
Running exhaustive check in --rndn mode...
Missing underflow exception for x=0x1.eacp+1 (y=0x1p-24)
```


    [5 lines not shown]
DeltaFile
+3-0libc/src/__support/FPUtil/dyadic_float.h
+3-01 files

LLVM/project fa8d3c8llvm/lib/Target/AArch64 AArch64DeadRegisterDefinitionsPass.cpp AArch64.h

[NewPM] Add port for AArch64DeadRegisterDefinitionsPass (#187180)

Adds a newPM pass for AArch64DeadRegisterDefinitions

* Refactors base logic into an Impl class
* Renames old pass with the "Legacy" suffix
* Adds the new pass manager pass using refactored logic

No existing `.mir` tests to update.

Context and motivation in
https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers
DeltaFile
+31-10llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
+8-1llvm/lib/Target/AArch64/AArch64.h
+1-1llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+1-0llvm/lib/Target/AArch64/AArch64PassRegistry.def
+41-124 files

LLVM/project 073d019openmp/device/include Synchronization.h

[OpenMP] Use the standard fences now that they are supported (#187138)

Summary:
We can now use these on NVPTX properly.
DeltaFile
+0-17openmp/device/include/Synchronization.h
+0-171 files

LLVM/project 1db8096libc/src/__support/math hypotf.h

[libc][math] Improve hypotf performance. (#186627)

Update the check for when a more careful rounding is needed, and remove
the redundant clear exception step.
DeltaFile
+56-39libc/src/__support/math/hypotf.h
+56-391 files

LLVM/project 2a8168dclang/lib/CIR/Dialect/Transforms CXXABILowering.cpp, clang/test/CIR/CodeGen no-odr-use.cpp

[CIR] Add support for arrays-of-pointer-to-member-data (#186887)

This patch adds support for arrays of pointer-to-member-data, just like
we do for pointer-to-member-function. This patch also does a refactor of
some basic value lowering, which both makes this apply to locals and
constants, but also unifies them in preperation of future work when it
comes to record types.

Other than the otherwise-not-quite-intentional change (the recursion got
    this feature, and I realized it worked while looking at other
    things!), this is NFCI.
DeltaFile
+48-54clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
+24-1clang/test/CIR/CodeGen/no-odr-use.cpp
+72-552 files

LLVM/project 1b904e9clang/lib/CIR/CodeGen CIRGenModule.cpp CIRGenBuilder.h

[CIR][NFC] Unify the 'null data member attr' getters (#186876)

In preperation of actually lowering data members as fields to a record
type, this patch does a minor refactor to make their single current use
have a slightly simpler interface. This will prevent us from having to
copy/paste this later.

Also, this patch removes a pair of now-orphaned builders, instead
preferring to use the ones that come from the parent builder type.
DeltaFile
+11-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+0-10clang/lib/CIR/CodeGen/CIRGenBuilder.h
+3-7clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+3-0clang/lib/CIR/CodeGen/CIRGenModule.h
+17-174 files

LLVM/project 138cae4clang/lib/CIR/Dialect/Transforms CXXABILowering.cpp

[CIR][NFC] Split the CXXABI 'TypeConverter' into its own type. (#186874)

This is currently an NFC change, as the CXXABITypeConverter has no
members yet. This patch splits it off into its own type, as it is going
to need to have members when we start transforming record types, but
doesn't implement that part yet (coming in future patches).
DeltaFile
+47-49clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
+47-491 files

LLVM/project de3f573clang/lib/CIR/Dialect/Transforms CXXABILowering.cpp, clang/test/CIR/CodeGen abi-lower-after-unreachable.cpp

[CIR] Fix bug where block after-unreachable wasn't CXXABILowered (#186869)

If a TU has an 'unreachable' block, it wouldn't be CXXABILower'ed, which
would cause a legalization failure. This patch adds the same solution we
do in LowerToLLVM, which is to make sure we transform those sections
separately.
DeltaFile
+70-1clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
+31-0clang/test/CIR/CodeGen/abi-lower-after-unreachable.cpp
+101-12 files

LLVM/project dafadf5clang/lib/Frontend VerifyDiagnosticConsumer.cpp

Fix MSVC "not all control paths return a value" warning. NFC. (#187265)
DeltaFile
+1-0clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
+1-01 files

LLVM/project f4283a7libclc/clc/include/clc/math gentype.inc, libclc/clc/lib/generic/geometric clc_length.inc

libclc: Move FLT_MIN gentype macros
DeltaFile
+25-25libclc/clc/lib/generic/geometric/clc_length.inc
+6-0libclc/clc/include/clc/math/gentype.inc
+31-252 files

LLVM/project b15fa37libclc/clc/include/clc/math clc_sincos_helpers_decl.inc, libclc/clc/lib/generic/math clc_sincos_helpers.inc clc_tan.inc

libclc: Improve float trig function handling (#187264)

Most of this was originally ported from rocm device libs in
c0ab2f81e3ab5c7a4c2e0b812a873c3a7f9dca8b, so merge
in more recent changes.
DeltaFile
+47-107libclc/clc/lib/generic/math/clc_sincos_helpers.inc
+23-4libclc/clc/lib/generic/math/clc_tan.inc
+6-7libclc/clc/lib/generic/math/clc_sin.inc
+6-7libclc/clc/lib/generic/math/clc_cos.inc
+9-1libclc/clc/include/clc/math/clc_sincos_helpers_decl.inc
+4-0libclc/clc/lib/generic/math/clc_tan.cl
+95-1261 files not shown
+97-1277 files

LLVM/project d7dbf1bmlir/docs/Dialects GPU.md

[mlir][gpu] Fix typo in documentation (#156619)
DeltaFile
+1-1mlir/docs/Dialects/GPU.md
+1-11 files

LLVM/project e6fe20elibclc/clc/include/clc/math clc_sincos_helpers_decl.inc, libclc/clc/lib/generic/math clc_sincos_helpers.inc clc_tan.inc

libclc: Improve float trig function handling

Most of this was originally ported from rocm device libs in
c0ab2f81e3ab5c7a4c2e0b812a873c3a7f9dca8b, so merge
in more recent changes.
DeltaFile
+47-107libclc/clc/lib/generic/math/clc_sincos_helpers.inc
+23-4libclc/clc/lib/generic/math/clc_tan.inc
+6-7libclc/clc/lib/generic/math/clc_cos.inc
+6-7libclc/clc/lib/generic/math/clc_sin.inc
+9-1libclc/clc/include/clc/math/clc_sincos_helpers_decl.inc
+4-0libclc/clc/lib/generic/math/clc_tan.cl
+95-1261 files not shown
+97-1277 files

LLVM/project 9b8532dlibclc/clc/lib/generic/math clc_sincos.inc

libclc: Clean up sincos macro usage (#187260)

Handle this more like fract, and implement other
address spaces on top of the private overload with
a temporary variable.
DeltaFile
+16-10libclc/clc/lib/generic/math/clc_sincos.inc
+16-101 files

LLVM/project d304cdalibclc/clc/lib/generic/math clc_sincos.inc

libclc: Clean up sincos macro usage

Handle this more like fract, and implement other
address spaces on top of the private overload with
a temporary variable.
DeltaFile
+16-10libclc/clc/lib/generic/math/clc_sincos.inc
+16-101 files

LLVM/project 2ecd001libclc/clc/lib/generic/math clc_cos.inc clc_tan.inc

libclc: Use select function instead of ?: for some fp selects (#187253)

It seems that ?: is not quite equivalent to select for floating-point
vectors. With ?:, the resulting IR involves integer bitcasts and
integer vector typed select. Use select so this is an fp-select. This
enables finite math only contexts to optimize out the select.

This feels like it's a clang bug though.
DeltaFile
+3-3libclc/clc/lib/generic/math/clc_cos.inc
+3-2libclc/clc/lib/generic/math/clc_tan.inc
+3-2libclc/clc/lib/generic/math/clc_sin.inc
+9-73 files

LLVM/project 2f44f69flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp check-omp-loop.cpp

[flang][OpenMP] Use OmpDirectiveSpecification for range/depth queries, NFC (#187109)

That makes them usable for a potential future implementation of APPLY.
DeltaFile
+18-20flang/lib/Semantics/openmp-utils.cpp
+2-2flang/include/flang/Semantics/openmp-utils.h
+2-2flang/lib/Semantics/check-omp-loop.cpp
+22-243 files

LLVM/project a9605a9clang-tools-extra/clangd Diagnostics.cpp Diagnostics.h, clang-tools-extra/clangd/unittests ConfigCompileTests.cpp DiagnosticsTests.cpp

[clangd] Support suppressions for driver diagnostics (#182912)

Rebase of https://reviews.llvm.org/D127844
Fixes [#1142](https://github.com/clangd/clangd/issues/1142)
DeltaFile
+37-27clang-tools-extra/clangd/Diagnostics.cpp
+0-37clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
+21-0clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+15-0clang-tools-extra/clangd/unittests/CompilerTests.cpp
+2-6clang-tools-extra/clangd/Diagnostics.h
+0-5clang-tools-extra/clangd/ParsedAST.cpp
+75-751 files not shown
+75-807 files

LLVM/project e3b6c61llvm/lib/Target/LoongArch LoongArchLASXInstrInfo.td LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lsx remat.ll

[LoongArch] Mark VREPLGR2VR/XVREPLGR2VR as re-materializable

The VREPLGR2VR and XVREPLGR2VR instruction families replicate a
scalar general-purpose register value into all elements of a vector
register. These instructions are side-effect free and relatively
cheap, with their result depending only on the input register.

Mark them as isReMaterializable to allow the register allocator to
recompute the value when profitable instead of spilling and reloading
it from memory.

This can help reduce register pressure and avoid unnecessary memory
traffic in vectorized code.
DeltaFile
+10-14llvm/test/CodeGen/LoongArch/lsx/remat.ll
+2-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+2-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+14-143 files

LLVM/project 81ecd00llvm/lib/Target/AMDGPU VOP3PInstructions.td SIFoldOperands.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.h

AMDGPU: Codegen for v_dual_dot2acc_f32_f16/bf16 from VOP3

Codegen for v_dual_dot2acc_f32_f16/bf16 for targets that only have VOP3
version of the instruction.
Since there is no VOP2 version, instroduce temporary mir DOT2ACC pseudo
that is selected when there are no src_modifiers. This DOT2ACC pseudo
has src2 tied to dst (like the VOP2 version), PostRA pseudo expansion will
restore pseudo to VOP3 version of the instruction.
CreateVOPD will recoginize such VOP3 pseudo and generate v_dual_dot2acc.
DeltaFile
+170-312llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
+96-95llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
+31-4llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+21-8llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+27-0llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+16-1llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
+361-4204 files not shown
+380-42210 files

LLVM/project 9e6266cllvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp VOP2Instructions.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.fdot2.ll llvm.amdgcn.fdot2.f32.bf16.ll

AMDGPU: Improve codegen for VOP2 v_dot2c_f32_f16/bf16

Select VOP2 version when there are no src_modifers, otherwise VOP3.
DeltaFile
+64-212llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
+20-48llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
+41-9llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+14-12llvm/lib/Target/AMDGPU/VOP2Instructions.td
+22-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+8-0llvm/lib/Target/AMDGPU/AMDGPUGISel.td
+169-2813 files not shown
+178-2819 files

LLVM/project 1fde846llvm/test/CodeGen/LoongArch/lsx remat.ll

[LoongArch] Add tests for VREPLGR2VR/XVREPLGR2VR rematerialization
DeltaFile
+43-0llvm/test/CodeGen/LoongArch/lsx/remat.ll
+43-01 files

LLVM/project e42fd5ellvm/lib/Target/AMDGPU VOP3PInstructions.td AMDGPUInstructionSelector.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.fdot2.ll llvm.amdgcn.fdot2.f32.bf16.ll

AMDGPU: Fix src2_modifiers for v_dot2_f32_f16/bf16
DeltaFile
+14-21llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
+23-5llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+16-0llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+6-9llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
+9-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+4-2llvm/lib/Target/AMDGPU/VOPInstructions.td
+72-374 files not shown
+81-3710 files

LLVM/project 4186bcdllvm/test/CodeGen/AMDGPU llvm.amdgcn.fdot2.ll llvm.amdgcn.fdot2.f32.bf16.ll

AMDGPU: Add more tests for v_dot2_f32_f16/bf16

Test for src modifiers, inline constants and vopd codegen.
DeltaFile
+1,769-45llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
+944-116llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
+2,713-1612 files

LLVM/project 5d427d9flang/include/flang/Parser message.h

[flang] Add const-qualified version of parser::Messages::messages()
DeltaFile
+1-0flang/include/flang/Parser/message.h
+1-01 files

LLVM/project 0a5e51dllvm/test/CodeGen/AMDGPU dynamic_stackalloc.ll llvm.amdgcn.reduce.sub.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fshr.ll

Merge branch 'main' into users/kparzysz/e11-use-ods-for-queries
DeltaFile
+2,113-1,374llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
+1,412-1,169llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+1,096-146llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.sub.ll
+1,047-142llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
+7,604-3,1611,158 files not shown
+28,779-9,9711,164 files

LLVM/project bbb8ab5llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp

[AArch64][GlobalISel] Add patterns for scalar sqdmlal/sqdmlsl
DeltaFile
+8-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+1-0llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+9-02 files

LLVM/project fd47fbelldb/test/API/lang/cpp/incomplete-types Makefile

[lldb] Do not use mkdir -p in makefile on Windows (#187244)

`Make` uses systems's `mkdir` on Windows even if Git's mkdir.exe is
present in PATH. Windows's mkdir does not support the parameter `-p` and
creates the directory `-p` instead. Few other tests also use `mkdir -p`
but they are linux, objc or macosx related.

---------

Co-authored-by: Charles Zablit <c_zablit at apple.com>
DeltaFile
+1-1lldb/test/API/lang/cpp/incomplete-types/Makefile
+1-11 files