LLVM/project febe605llvm/lib/Target/RISCV RISCVInstrInfoVPseudos.td

[RISCV] Consistently name AVL operands as $vl. NFC (#182174)

Looking into using getNamedOperandIndex so we need to be consistent.

To avoid a conflict, I renamed the $vl output of vleff pseudos to
$vl_out. Arguably the AVL inputs should be $avl, but that requires more
changes and may interact with out of tree vendor specific instructions.
DeltaFile
+8-8llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
+8-81 files

LLVM/project dd4f88fllvm/utils profcheck-xfail.txt

[ProfCheck] Sort profcheck-xfail.txt

To make it more clear in diffs updating sets of tests.
DeltaFile
+29-29llvm/utils/profcheck-xfail.txt
+29-291 files

LLVM/project 3ca5384llvm/utils profcheck-xfail.txt

[ProfCheck] Remove now passing tests

There were quite a few tests in the profcheck-xfail.txt list that now
pass, likely due to other fixes coincidentally helping or someone
forgetting to update the list. Remove them from the list to ensure we
have test coverage.
DeltaFile
+0-30llvm/utils/profcheck-xfail.txt
+0-301 files

LLVM/project 1f2d97dllvm/include/llvm/IR ModuleSummaryIndex.h, llvm/lib/LTO LTO.cpp

[ThinLTO] Distinguish symbols that are promoted
DeltaFile
+27-0llvm/test/ThinLTO/X86/export2.ll
+21-1llvm/include/llvm/IR/ModuleSummaryIndex.h
+8-2llvm/lib/LTO/LTO.cpp
+9-0llvm/test/ThinLTO/X86/Inputs/export2.ll
+1-1llvm/test/ThinLTO/X86/module_asm2.ll
+1-1llvm/tools/llvm-link/llvm-link.cpp
+67-53 files not shown
+70-89 files

LLVM/project c7c95c2clang/include/clang/Basic DiagnosticSerializationKinds.td, clang/include/clang/Serialization ModuleFile.h

[modules] Add diagnostic about performed input file validation when encounter unrecoverable changed input file. (#180899)

The expected behavior for implicitly built modules is to validate input
files and to rebuild a module if there are any input file changes. But
if for some reason a module hasn't been rebuilt, it is useful to know if
the validation has been done and what kind of validation.

The goal is to make investigations for fixes like
f2a3079a1b48033a92d0a7d9f03251ebeb4a0c30 and
ada79f4c2691ab6546d379a144377162fd4f5191 easier.

rdar://159857416

---------

Co-authored-by: Cyndy Ishida <cyndyishida at gmail.com>
DeltaFile
+23-0clang/include/clang/Serialization/ModuleFile.h
+15-2clang/lib/Serialization/ASTReader.cpp
+5-1clang/include/clang/Basic/DiagnosticSerializationKinds.td
+2-1clang/test/Modules/module-file-modified.c
+1-1clang/test/Modules/validate-file-content.m
+1-1clang/test/PCH/modified-module-dependency.m
+47-61 files not shown
+48-77 files

LLVM/project f17e859llvm/lib/Target/RISCV RISCVInstrInfoZvk.td

[RISCV] Rename PALUVINoVm->ZvkALUVINoVm. NFC (#182077)

OP_VE was originally named OP_P which is how these classes got P in
their name. Replace P with Zvk.
DeltaFile
+20-20llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
+20-201 files

LLVM/project 2a48aablibclc CMakeLists.txt

[libclc] Enable -ffp-contract=fast-honor-pragmas globally (#153137)

Enable -ffp-contract=fast-honor-pragmas globally improves performance.
Verified that exp, trig, and hyperbolic functions pass the OpenCL CTS on
Intel GPUs with this flag enabled.
Note: exp/exp2 still require the fixes proposed in #179875; however,
those failures are independent of the fp-contract changes in this patch.
DeltaFile
+1-0libclc/CMakeLists.txt
+1-01 files

LLVM/project 3459bb4llvm/test/TableGen RegisterByHwMode.td RegisterByHwModeErrors.td, llvm/test/TableGen/Common RegisterByHwModeCommon.td

[TableGen] Introduce RegisterByHwMode

This is useful for `InstAlias` where a fixed register may depend on the
HwMode. The motivating use case for this is the RISC-V RVY ISA where
certain instructions mnemonics are remapped to take a different
register class depending on the HwMode and can be used as follows:
```
def NullReg : RegisterByHwMode<PtrRC, [RV32I, RV64I, RV64Y, RV64Y],
                                      [X0,    X0,    X0_Y,  X0_Y]>;
```

Pull Request: https://github.com/llvm/llvm-project/pull/175227
DeltaFile
+348-0llvm/test/TableGen/RegisterByHwMode.td
+92-0llvm/test/TableGen/Common/RegisterByHwModeCommon.td
+69-0llvm/test/TableGen/RegisterByHwModeErrors.td
+48-0llvm/utils/TableGen/RegisterInfoEmitter.cpp
+35-9llvm/utils/TableGen/AsmWriterEmitter.cpp
+36-4llvm/test/TableGen/RegClassByHwModeCompressPat.td
+628-1315 files not shown
+813-4721 files

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

rebase

Created using spr 1.3.8-beta.1
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,73410,452 files not shown
+1,171,684-645,00710,458 files

LLVM/project f9e0021llvm/lib/Target/RISCV RISCVInstrInfoVPseudos.td, llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.h

[RISCV] Use getNamedOperandIdx in getFRMOpNum/getVXRMOpNum. NFC (#182181)

Rather than relying on complex rules about the order of operands.
DeltaFile
+119-121llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
+2-0llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
+121-1212 files

LLVM/project e246d16llvm/lib/Target/RISCV RISCVFrameLowering.cpp RISCVSubtarget.cpp, llvm/test/CodeGen/RISCV riscv-scavenge-crash-2nd-pass-rv32.mir riscv-scavenge-crash-2nd-pass-rv64.mir

[RISCV] Force a frame pointer when the max reserved call frame exceeds simm12. (#182124)

We need to be able to address emergency spill slots without requiring a
register scavenging. This requires the emergency spill slot to be near
the SP or the FP to keep the offset small enough. If there is a large
reserved call frame, we can't keep the emergency spill slot near SP. But
we might not have a frame pointer.

This patch forces the use of a frame pointer when the max reserved call
frame is large so we can keep the emergency spill slot near it. This
idea is borrowed from AArch64.

Multiple MIR tests had to be updated to set the max call frame size as
the reserved registers are frozen before mirFileLoaded is called. I
copied mirFileLoaded from AArch64, but it appears the register freezing
moved after the AArch64 code was written.

Fixes #180199.
DeltaFile
+132-5llvm/test/CodeGen/RISCV/riscv-scavenge-crash-2nd-pass-rv32.mir
+57-3llvm/test/CodeGen/RISCV/riscv-scavenge-crash-2nd-pass-rv64.mir
+24-16llvm/test/CodeGen/RISCV/rvv/stack-probing-dynamic.ll
+20-3llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+11-0llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+4-0llvm/test/CodeGen/RISCV/xqccmp-cm-popretz.mir
+248-276 files not shown
+261-2812 files

LLVM/project cb2c26allvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp RISCVTargetTransformInfo.h, llvm/test/CodeGen/RISCV loop-strength-reduce-loop-invar.ll

[LSR][RISCV] Add support for cmp/branch fuse.

RISCV has cmp within branches, and therefore
costing using cmp/branch fuse in LSR is
useful to configure the proposed solution
cost for LSR.
DeltaFile
+218-326llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
+16-14llvm/test/CodeGen/RISCV/loop-strength-reduce-loop-invar.ll
+5-6llvm/test/Transforms/LoopStrengthReduce/RISCV/lsr-cost-compare.ll
+2-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+2-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+243-3465 files

LLVM/project 20bd5ecllvm/include/llvm/IR ModuleSummaryIndex.h, llvm/lib/LTO LTO.cpp

[ThinLTO] Distinguish symbols that are promoted
DeltaFile
+27-0llvm/test/ThinLTO/X86/export2.ll
+21-1llvm/include/llvm/IR/ModuleSummaryIndex.h
+8-2llvm/lib/LTO/LTO.cpp
+9-0llvm/test/ThinLTO/X86/Inputs/export2.ll
+1-1llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+1-1llvm/lib/Transforms/IPO/FunctionImport.cpp
+67-52 files not shown
+69-78 files

LLVM/project 7772a45flang-rt/lib/cuda stream.cpp, flang/include/flang/Optimizer/Builder CUDAIntrinsicCall.h

[flang][cuda] Add entry points for cudastreamsynchronize (#181932)

DeltaFile
+36-0flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
+12-0flang/test/Lower/CUDA/cuda-default-stream.cuf
+10-0flang/module/cuda_runtime_api.f90
+9-0flang-rt/lib/cuda/stream.cpp
+4-0flang/include/flang/Optimizer/Builder/CUDAIntrinsicCall.h
+2-0flang/include/flang/Runtime/CUDA/stream.h
+73-06 files

LLVM/project bfa6dedflang/include/flang/Evaluate tools.h, flang/test/Lower/CUDA cuda-data-transfer.cuf

[flang][cuda] Do managed array initialization on the device (#182171)

DeltaFile
+12-0flang/test/Lower/CUDA/cuda-data-transfer.cuf
+5-0flang/include/flang/Evaluate/tools.h
+17-02 files

LLVM/project 4e290e4mlir/test/mlir-tblgen gen-op-doc.td openmp-ops.td, mlir/tools/mlir-tblgen OpDocGen.cpp

[MLIR][tblgen] Honor `-dialect` in `-gen-{attrdef,op,typedef,enum}-doc`

Make all dialect documentation generators use the same set of records as
`-gen-dialect-doc`, which honors the `-dialect` tblgen option to filter
records by dialect. Add a `-keep-op-source-order` option to allow
`-gen-op-doc` to continue producing unsorted op lists if needed.

This commit factors the record collection, filtering, and sorting
performed in `emitDialectDoc` out into a separate `collectRecords`
function, returning a `DialectRecords` with the results. The emit
functions now all accept a `DialectRecords` argument instead of
collecting records themselves. Most changes are mechanical renamings and
moving code around.

This fixes a confusing issue where `gen-dialect-doc` would produce the
entire documentation for a dialect, but individual calls to
`gen-attrdef-doc` and the like would seemingly operate on a different
set of records, potentially covering multiple dialects. This all produce
the overall documentation now.
DeltaFile
+155-121mlir/tools/mlir-tblgen/OpDocGen.cpp
+20-0mlir/test/mlir-tblgen/gen-op-doc.td
+1-1mlir/test/mlir-tblgen/openmp-ops.td
+176-1223 files

LLVM/project 87419b5clang/include/clang/Basic DiagnosticSerializationKinds.td, clang/lib/Serialization ASTReader.cpp

[modules] Move diagnostic about specific mtime/size change into a note from an error. (#181963)

So far higher visibility is more confusing than actionable. Keep the
information available but make it less prominent.

rdar://159857416
DeltaFile
+3-2clang/include/clang/Basic/DiagnosticSerializationKinds.td
+3-2clang/lib/Serialization/ASTReader.cpp
+2-1clang/test/PCH/include-timestamp.cpp
+2-1clang/test/PCH/verify_pch.m
+2-1clang/test/PCH/validate-file-content.m
+2-1clang/test/Modules/validate-file-content.m
+14-86 files

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

[SDPatternMatch] Support conditionally binding the value matching a sub-pattern (#182091)

I've seen more and more occurrences of what is essentially
```
m_AllOf(<sub pattern>, m_Value(BindVal))
```
That is, bind to the same SDValue that matches the sub-pattern. Most
people won't even bother write this `m_AllOf` construct because it's too
long, and instead just write another `sd_match` against the bound value.

This patch adds
```
m_Value(BindVal, <sub pattern>)
```
To replace the `m_AllOf` construct above and conditionally bind the
SDValue that matches the sub-pattern.

---------

Co-authored-by: Stefan Weigl-Bosker <stefan at s00.xyz>
DeltaFile
+20-1llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+16-4llvm/include/llvm/CodeGen/SDPatternMatch.h
+36-52 files

LLVM/project 27eca71llvm/test/Analysis/CostModel/AArch64 sve-cmpsel.ll cmp.ll

[AArch64] Add extra scmp/ucmp costmodel test. NFC
DeltaFile
+24-0llvm/test/Analysis/CostModel/AArch64/sve-cmpsel.ll
+4-0llvm/test/Analysis/CostModel/AArch64/cmp.ll
+28-02 files

LLVM/project 6295b8eclang/cmake/caches VectorEngine.cmake, openmp CMakeLists.txt

[OpenMP] Remove standalone build mode (Reapply #149878) (#182022)

This reapplies #149878

Remove all the CMake code for openmp standalone builds. Standalone
builds have been superseded by the runtimes default build (also
sometimes called the standalone runtimes build). The runtimes default
build can be thought of a standalone build with the standalone
boilerplate contained in <llvm-project>/runtimes/CMakeLists.txt. There
is no need for each runtime to contain the same boilerplate code again.

Builds still using the standalone build via
```sh
cmake -S <llvm-project>/openmp ...
```
can switch over to the runtimes default build using
```sh
cmake -S <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp ...
```

    [10 lines not shown]
DeltaFile
+39-134openmp/cmake/OpenMPTesting.cmake
+46-90openmp/runtime/CMakeLists.txt
+43-76openmp/CMakeLists.txt
+1-20openmp/runtime/unittests/CMakeLists.txt
+0-8clang/cmake/caches/VectorEngine.cmake
+3-5openmp/runtime/src/CMakeLists.txt
+132-3334 files not shown
+136-33610 files

LLVM/project c6425aallvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 bool-mask.ll

[SLP]Support reduced or selects of bitmask as cmp bitcast

Converts reduced or(select %cmp, bitmask, 0) to zext(bitcast %vector_cmp to
i<num_reduced_values>) to in

Reviewers: RKSimon, hiraditya

Pull Request: https://github.com/llvm/llvm-project/pull/181940
DeltaFile
+147-5llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+24-24llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
+171-292 files

LLVM/project fbfe23eclang/lib/Tooling DependencyScanningTool.cpp

[clang][DependencyScanning] Use OverlayFS naming consistently [NFC] (#172352)

Changes the naming of the OverlayFileSystem parameter for more consistent use in
`DependencyScanningTool.cpp`.

(This addresses the feedback in 
https://github.com/llvm/llvm-project/pull/169964#discussion_r2620074122)
DeltaFile
+2-2clang/lib/Tooling/DependencyScanningTool.cpp
+2-21 files

LLVM/project 14b213fclang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp

[CIR][CodeGen] Use MapVector instead of StringMap for replacements (#181969)

When using llvm::StringMap transitive replacements may be out of order, so use llvm::MapVector which is also used in Clang's LLVM IR CodeGen.
DeltaFile
+1-2clang/lib/CIR/CodeGen/CIRGenModule.h
+1-1clang/lib/CIR/CodeGen/CIRGenModule.cpp
+2-32 files

LLVM/project a15d4e6clang/include/clang/Driver Driver.h, clang/lib/Driver Driver.cpp

[clang] Make makeInputArg available in Driver.h [NFC] (#182163)

This moves makeInputArg from Driver.cpp to Driver.h so it can be used by
other components.

This change is part of an effort to split #152770 into smaller, more
manageable pieces.
DeltaFile
+12-0clang/include/clang/Driver/Driver.h
+6-6clang/lib/Driver/Driver.cpp
+18-62 files

LLVM/project c483bb1clang/lib/Driver/ToolChains Darwin.cpp, clang/test/Driver darwin-sdk-vs-os-version.c

[clang][darwin] macOS no longer infers a minimum deployment version from the OS version (#181958)

The recent createFromSDKInfo refactor lost the
getSystemOrSDKMacOSVersion version adjustment on macOS, causing -arch
builds to create binaries that can't run on the host that built them.

rdar://170007161
DeltaFile
+6-3clang/lib/Driver/ToolChains/Darwin.cpp
+5-1clang/test/Driver/darwin-sdk-vs-os-version.c
+11-42 files

LLVM/project 9235a77clang/include/clang/Driver Types.h Driver.h, clang/lib/Driver Driver.cpp

[clang] Move InputTy and InputList out of the Driver class [NFC] (#182158)

This change moves InputTy and InputList outside of the Driver class to
allow wider usage.
InputTy and InputList are currently defined inside the Driver class,
which prevents other headers from using them without including Driver.h
(by foreward declaring).

This change is required for #152770 and is part of an effort to break
that PR into smaller pieces.
DeltaFile
+6-7clang/lib/Driver/Driver.cpp
+7-0clang/include/clang/Driver/Types.h
+0-6clang/include/clang/Driver/Driver.h
+13-133 files

LLVM/project aafe5e2lldb/test/API/tools/lldb-server TestAppleSimulatorOSType.py

[lldb] Disable shared build for TestAppleSimulatorOSType.py (#182167)

Follow up to #181720. Based on [this
failure](https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/as-lldb-cmake-os-verficiation/275/).
DeltaFile
+2-0lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
+2-01 files

LLVM/project f1615cellvm/lib/Target/RISCV RISCVInstrInfoXSf.td

[RISCV] Rename $r1 operand of Xsfvcp pseudoinstructions to $rs1. NFC

This matches other vector instructions.
DeltaFile
+8-8llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
+8-81 files

LLVM/project ddffc04flang/include/flang/Optimizer/OpenACC Passes.td, flang/include/flang/Optimizer/Support LazySymbolTable.h

[flang][acc] Add ACCDeclareActionConversion pass (#181894)

Implements the allocation and deallocation semantics for allocatables
and pointers in declare directives (OpenACC 3.4, Section 2.13.2). For a
non-shared memory device, allocate/deallocate must keep local and device
memory in sync.

Lowering generates recipe functions (with acc dialect ops to create the
device copy) and attaches an attribute to the operations that allocate
or deallocate the object. This pass finds those operations and inserts
calls to the corresponding recipe.

Example: for "!$acc declare create(arr)" and "allocate(arr(100))" in a
subroutine, the pass inserts a call to the post-alloc recipe after the
store so the device copy is created.

---------

Co-authored-by: Susan Tan <zujunt at nvidia.com>
DeltaFile
+209-0flang/lib/Optimizer/OpenACC/Transforms/ACCDeclareActionConversion.cpp
+99-0flang/test/Fir/OpenACC/declare-action-conversion.fir
+63-0flang/include/flang/Optimizer/Support/LazySymbolTable.h
+2-23flang/lib/Optimizer/Transforms/AbstractResult.cpp
+13-0flang/include/flang/Optimizer/OpenACC/Passes.td
+1-0flang/lib/Optimizer/OpenACC/Transforms/CMakeLists.txt
+387-236 files

LLVM/project 24402c6clang/docs ReleaseNotes.rst, clang/lib/Sema SemaCXXScopeSpec.cpp

[Clang] fix nested-name-specifier error recovery with ordinary lookup fallback results (#181828)

Fixes #181470

--- 

This patch addresses the regression caused by
f3dcec0ee73fee6a33fcfb422e04297e4d466de6. The assertion occurs when
nested-name-specifier error recovery tries to extend a nested name
specifier with a result found via ordinary lookup fallback


https://github.com/llvm/llvm-project/blob/75aa83c0c035a7a10f0f48355c93858f003b8e4e/clang/lib/Sema/SemaCXXScopeSpec.cpp#L725-L728

which can hit `getTypeDeclType` qualifier assertions


https://github.com/llvm/llvm-project/blob/75aa83c0c035a7a10f0f48355c93858f003b8e4e/clang/lib/Sema/SemaCXXScopeSpec.cpp#L420


https://github.com/llvm/llvm-project/blob/4f92cf9599c4077c08b7fac0a21624e55da572f9/clang/lib/AST/ASTContext.cpp#L5162-L5176
DeltaFile
+9-1clang/test/SemaCXX/nested-name-spec.cpp
+2-1clang/lib/Sema/SemaCXXScopeSpec.cpp
+1-0clang/docs/ReleaseNotes.rst
+12-23 files