LLVM/project a0850ccllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV][NFC] Add deprecation comment
DeltaFile
+5-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+5-01 files

LLVM/project 1229402llvm/lib/Target/AMDGPU VOP3PInstructions.td

[AMDGPU] Clean up VOP3PWMMA_Profile by removing XF32 related stuff (#180688)

XF32 is no longer supported in WMMA (the support was removed already)
DeltaFile
+63-67llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+63-671 files

LLVM/project d354ea6llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel llvm.amdgcn.raw.buffer.atomic.cmpswap.ll llvm.amdgcn.struct.buffer.atomic.cmpswap.ll

AMDGPU/GlobalISel: RegBankLegalize rules for buffer atomic cmpswap (#180666)

DeltaFile
+6-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+3-3llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.cmpswap.ll
+3-3llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.cmpswap.ll
+1-1llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.cmpswap.ll
+1-1llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.cmpswap.ll
+14-85 files

LLVM/project 11c2613clang/lib/Basic/Targets WebAssembly.cpp, clang/test/Driver wasm-features.c

[WebAssembly] Add initial support for compact imports proposal (#176617)

This change adds initial support to libObject for reading compact
imports and support for writing compact imports in the linker.

There is minimal testing here since to tools like lllvm-readobj, and
obj2yaml don't currently report compact imports any differently.

See https://github.com/WebAssembly/compact-import-section
DeltaFile
+75-49llvm/lib/Object/WasmObjectFile.cpp
+34-4lld/wasm/SyntheticSections.cpp
+27-0lld/test/wasm/compact-imports.s
+12-0clang/lib/Basic/Targets/WebAssembly.cpp
+6-0clang/test/Driver/wasm-features.c
+4-0lld/wasm/WriterUtils.cpp
+158-535 files not shown
+167-5311 files

LLVM/project ce94d63clang/test/CodeGenOpenCL amdgpu-debug-info-variable-expression.cl, clang/test/Driver amdgpu-toolchain-opencl.cl opencl.cl

Make OpenCL an OSType rather than an EnvironmentType. (#170297)

OpenCL was added as an `EnvironmentType` in
https://github.com/llvm/llvm-project/pull/78655, but there is no
explanation as to why it was added as such, even after explicitly asking
in the PR
(https://github.com/llvm/llvm-project/pull/78655#issuecomment-2743162853).
This PR makes it an `OSType` instead, which feels more natural, and
updates tests accordingly.

---------

Co-authored-by: Marcos Maronas <marcos.maronas at intel.com>
DeltaFile
+15-15clang/test/Driver/amdgpu-toolchain-opencl.cl
+3-3llvm/lib/TargetParser/Triple.cpp
+1-1clang/test/Driver/opencl.cl
+1-1clang/test/CodeGenOpenCL/amdgpu-debug-info-variable-expression.cl
+1-1llvm/include/llvm/TargetParser/Triple.h
+1-1llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
+22-221 files not shown
+23-237 files

LLVM/project 040b9adllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV][NFC] Add deprecation comment
DeltaFile
+5-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+5-01 files

LLVM/project cdbe288lldb/include/lldb/Interpreter OptionValueProperties.h, lldb/source/Core PluginManager.cpp CoreProperties.td

[LLDB] Set and verify paths of properties from tablegen (#179524)

In #168245, I attempted to dump the available settings to Markdown. That
required a full build of LLDB. However, to build the docs, only the swig
wrappers should need to be compiled. The comment was that we should be
able to use the definitions from the TableGen files.

Currently, the property definitions in don't have information about the
path where they will be available. They only contain a `Definition`
which groups properties, so they can be added to
`OptionValueProperties`.

With this PR, I'm adding the path for each property definition. For
example, `symbols.enable-external-lookup` would have `Name =
enable-external-lookup, Path = symbols`. In LLDB itself, we don't need
this path, we only need it for the documentation. To avoid mismatches
between the actual path and the declared one, I added a debug-only check
when a property group is added to a parent
(`OptionValueProperties::AppendProperty`).

    [8 lines not shown]
DeltaFile
+39-2lldb/source/Interpreter/OptionValueProperties.cpp
+24-0lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp
+7-7lldb/source/Target/TargetProperties.td
+6-1lldb/include/lldb/Interpreter/OptionValueProperties.h
+6-0lldb/source/Core/PluginManager.cpp
+3-3lldb/source/Core/CoreProperties.td
+85-1342 files not shown
+134-5848 files

LLVM/project 1be30dellvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Finish SPIRVTypeInst implementation
DeltaFile
+31-4llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+31-41 files

LLVM/project 00b9fbfllvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Add a `SPIRVTypeInst` type with some guardrails

Currently `SPIRVType` is an alias of `MachineInstr`:

```cpp
using SPIRVType = const MachineInstr;
```

Consider the function below from the backend:

```cpp
inline Register getTypeReg(MachineRegisterInfo *MRI, Register OpReg) {
    SPIRVType *TypeInst = MRI->getVRegDef(OpReg);
      return TypeInst && TypeInst->getOpcode() ==
      SPIRV::OpFunctionParameter
                   ? TypeInst->getOperand(1).getReg()
                                : OpReg;
}
```

    [10 lines not shown]
DeltaFile
+23-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+23-01 files

LLVM/project 2a73320llvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV][NFC] Replace `SPIRVType` with `SPIRVTypeInst`
DeltaFile
+8-5llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+8-51 files

LLVM/project 4198357llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVGlobalRegistry.cpp

[SPIRV] Replace SPIRVType with SPIRVTypeInst as much as we can

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+325-322llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+203-193llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+178-167llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+94-94llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+56-55llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+37-31llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+893-8629 files not shown
+988-95315 files

LLVM/project d3a70f3flang-rt/lib/runtime character.cpp, flang-rt/unittests/Runtime CharacterTest.cpp

[flang] Implement 'F_C_STRING' library function (Fortran 2023) (#174474)

Implement `F_C_STRING` to convert a Fortran string to a C
null-terminated string. Documented in F2023 Standard: 18.2.3.9
`F_C_STRING (STRING [, ASIS])`.
DeltaFile
+95-0flang-rt/unittests/Runtime/CharacterTest.cpp
+52-0flang/test/Lower/Intrinsics/f_c_string.f90
+49-0flang/test/Semantics/f_c_string.f90
+30-0flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+20-0flang-rt/lib/runtime/character.cpp
+14-0flang/include/flang/Optimizer/Builder/Runtime/Character.h
+260-06 files not shown
+288-112 files

LLVM/project a88274fmlir/include/mlir/Dialect/OpenACC OpenACCUtils.h, mlir/include/mlir/Dialect/OpenACC/Analysis OpenACCSupport.h

[mlir][acc] Support lazy remark message construction (#180665)

The OpenACC remark emission utilities previously only accepted Twine for
message construction. However, complex remarks often require additional
logic to build messages, such as resolving variable names. This results
in unnecessary work when remarks are disabled.

Add an overload that accepts a lambda for message generation, which is
only invoked when remark emission is enabled. Update ACCLoopTiling to
use this lazy API for tile size reporting.

Additionally, getVariableName now returns numeric strings for constant
integer values. This is also being used by ACCLoopTiling along with the
lazy remark update.
DeltaFile
+27-18mlir/lib/Dialect/OpenACC/Transforms/ACCLoopTiling.cpp
+31-9mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
+22-3mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
+24-0mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
+8-2mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
+4-3mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
+116-356 files

LLVM/project 2df92a5mlir/test/CAPI rewrite.c

[MLIR] Fix mismatched format specifier warning
DeltaFile
+3-2mlir/test/CAPI/rewrite.c
+3-21 files

LLVM/project 9475f6aclang/test/Driver cuda-detect.cu, flang/lib/Frontend CompilerInstance.cpp

Reland "[NVPTX] Validate user-specified PTX version against SM version" (#180116)

Previous commit message: 

>Previous commit message: 
>
>> Original commit message:
>>
>>>When users explicitly specify a PTX version via -mattr=+ptxNN that's
insufficient for their target SM, we now emit a fatal error. Previously,
we silently upgraded the PTX version to the minimum required for the
target SM.
>>>
>>>When no SM or PTX version is specified, we now use PTX 3.2 (the
minimum for the default SM 3.0) instead of PTX 6.0.
>>
>>The following commits should fix the failures that arose when I
previously tried to land this commit:
>>

    [39 lines not shown]
DeltaFile
+91-2llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp
+15-57llvm/lib/Target/NVPTX/NVPTX.td
+51-0llvm/test/CodeGen/NVPTX/ptx-version-validation.ll
+8-7clang/test/Driver/cuda-detect.cu
+3-12flang/lib/Frontend/CompilerInstance.cpp
+0-14llvm/test/CodeGen/NVPTX/wmma-ptx86-sm120a.py
+168-9227 files not shown
+232-14333 files

LLVM/project 9f85346clang/include/clang/AST Mangle.h, clang/lib/AST Mangle.cpp

Address reviewer comments
DeltaFile
+65-70clang/lib/CodeGen/CGObjCMac.cpp
+12-8clang/lib/AST/Mangle.cpp
+2-2clang/include/clang/AST/Mangle.h
+1-2clang/lib/CodeGen/CGObjC.cpp
+80-824 files

LLVM/project 05bb31fmlir/test/lib/Dialect/Test TestOpsSyntax.td, mlir/test/mlir-tblgen op-format.mlir

[MLIR] Guard optional operand resolution in generated op parsers

Skip resolveOperands for optional operands when they are absent to
avoid out-of-bounds access on the empty types vector.
DeltaFile
+11-0mlir/test/lib/Dialect/Test/TestOpsSyntax.td
+6-0mlir/test/mlir-tblgen/op-format.mlir
+6-0mlir/tools/mlir-tblgen/OpFormatGen.cpp
+23-03 files

LLVM/project ac2cf48clang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.rst

typo

Created using spr 1.3.7
DeltaFile
+1-1clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.rst
+1-11 files

LLVM/project 87d9d55mlir/test/CAPI rewrite.c

[MLIR] Fix mismatched format specifier warning
DeltaFile
+2-2mlir/test/CAPI/rewrite.c
+2-21 files

LLVM/project 30f4b9clibcxx/test/libcxx-03/transitive_includes to_csv.py, libcxx/test/libcxx/transitive_includes to_csv.py

[libc++] Use ValueError instead of non-existent ArgumentError (#179526)

ArgumentError does not exist. argparse.ArgumentError does exist, but
that is not what we want to use. I presume this was never caught because
we never execute that line.
DeltaFile
+1-1libcxx/test/libcxx-03/transitive_includes/to_csv.py
+1-1libcxx/test/libcxx/transitive_includes/to_csv.py
+2-22 files

LLVM/project bc3b446clang/docs ReleaseNotes.rst, clang/lib/Sema SemaInit.cpp

[clang] Fix sema on ObjCLifetime conversion (#178524)

Clang can't handle objc lifetime correctly when casting 
We reuse the approach similar to lifetime: First remove it before the
conversion, then add it back.

Add a test 

Fixes https://github.com/llvm/llvm-project/issues/177478
DeltaFile
+50-0clang/test/CodeGenObjCXX/arc-lifetime-rvalue-ref-binding.mm
+39-0clang/test/SemaObjCXX/arc-lifetime-rvalue-ref-binding.mm
+25-6clang/lib/Sema/SemaInit.cpp
+3-1clang/docs/ReleaseNotes.rst
+117-74 files

LLVM/project 5df1732llvm/lib/CodeGen TargetLoweringBase.cpp

[NFC] Initialize AtomicLoadExtActions array (#180752)

DeltaFile
+1-0llvm/lib/CodeGen/TargetLoweringBase.cpp
+1-01 files

LLVM/project 076da86flang-rt/lib/runtime file.cpp iostat.cpp, flang-rt/unittests/Runtime ExternalIOTest.cpp

[flang][runtime] OPEN(STATUS='NEW') should fail on extant file (#180605)

An OPEN(..., STATUS='NEW') statement should fail when the named file
exists, and also should not delete it when the failure is a recoverable
error.
DeltaFile
+34-0flang-rt/unittests/Runtime/ExternalIOTest.cpp
+9-0flang-rt/lib/runtime/file.cpp
+2-0flang-rt/lib/runtime/iostat.cpp
+1-0flang/include/flang/Runtime/iostat-consts.h
+46-04 files

LLVM/project 7e1fff4flang-rt/lib/runtime time-intrinsic.cpp, flang/lib/Semantics check-call.cpp

[flang][runtime] Improve handling of short DATE_AND_TIME(VALUES=) (#180557)

When the actual argument associated with the VALUES= dummy argument of
the intrinsic subroutine DATE_AND_TIME has fewer than eight elements, we
crash with an internal error in the runtime.

With this patch, the compiler now checks the size of the vector at
compilation time, when it is known, and gracefully copes with a short
vector at execution time otherwise, without crashing.
DeltaFile
+14-9flang-rt/lib/runtime/time-intrinsic.cpp
+20-0flang/lib/Semantics/check-call.cpp
+5-0flang/test/Semantics/bug2203.f90
+39-93 files

LLVM/project 0d64801flang/include/flang/Parser preprocessor.h, flang/lib/Parser prescan.cpp preprocessor.cpp

[flang] Recognize compiler directives after expansion in comment (#180062)

The compiler can recognize a compiler directive when one results from a
macro expansion at the beginning of a non-comment source line, as in
"#define FOO !$OMP". But it can't recognize a compiler directive that
initially appears as a comment line, as in "!BAR" after "#define BAR
$OMP". Extend the prescanner to recognize such cases in free form
source. (Fixed form is a much more complicated case for this recognition
and will be addressed later if needed.)

Fixes https://github.com/llvm/llvm-project/issues/178481.
DeltaFile
+117-67flang/lib/Parser/prescan.cpp
+12-8flang/lib/Parser/preprocessor.cpp
+9-3flang/lib/Parser/prescan.h
+4-4flang/include/flang/Parser/preprocessor.h
+7-0flang/test/Preprocessing/bug178481.F90
+149-825 files

LLVM/project 4b8f866llvm/lib/Target/AMDGPU FLATInstructions.td DSInstructions.td

[AMDGPU][NFC] Use RegisterOperand instead of RegisterClass (#180574)

RegisterOperand has decoder/other methods and is generally preferred for
operands.
DeltaFile
+59-59llvm/lib/Target/AMDGPU/FLATInstructions.td
+21-21llvm/lib/Target/AMDGPU/DSInstructions.td
+21-21llvm/lib/Target/AMDGPU/BUFInstructions.td
+101-1013 files

LLVM/project e6f5e49llvm/include/llvm/Support/Windows WindowsSupport.h, llvm/lib/Support/Windows Path.inc

[Windows][Support] Add helper to expand short 8.3 form paths (#178480)

Windows supports short 8.3 form filenames (for example,
`compile_commands.json` -> `COMPIL~1.JSO`) for legacy reasons. See:
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#short-vs-long-names

Such paths are not unusual because, on Windows, the system temporary
directory is commonly derived from the `TMP`/`TEMP` environment
variables. For historical compatibility reasons, these variables are
often set to short 8.3 form paths on systems where user names exceed
eight characters.

Introduce `windows::makeLongFormPath()` to convert paths to their long
form by expanding any 8.3 components via `GetLongPathNameW`.

As part of this change:
- Extended-length path prefix handling is centralized by adding
`stripExtendedPrefix()` and reusing it in `realPathFromHandle()`.
- `widenPath()` is cleaned up to use shared prefix constants.

    [2 lines not shown]
DeltaFile
+159-0llvm/unittests/Support/Path.cpp
+77-15llvm/lib/Support/Windows/Path.inc
+5-0llvm/include/llvm/Support/Windows/WindowsSupport.h
+241-153 files

LLVM/project 1d13412clang/lib/CodeGen/TargetBuiltins ARM.cpp

[clang][nfc] Remove `else` after `return` in ARM.cpp (#180733)

Align with the LLVM coding standard:
* https://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return
DeltaFile
+46-48clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+46-481 files

LLVM/project b526df5clang/test/Driver sanitizer-ld.c

Correcting sanitizer-ld test to expect `-lstdc++` or `-lc++` (#180736)

#164842 introduced a new testcase which failed in the following
test-builders:

- [fuchsia-x86_64-linux](https://lab.llvm.org/buildbot/#/builders/11/builds/33349)
- [llvm-clang-win-x-aarch](https://lab.llvm.org/buildbot/#/builders/193/builds/14309)
- [llvm-clang-win-x-armv7l](https://lab.llvm.org/buildbot/#/builders/38/builds/7708)

 In these setups `-lc++` is expected instead of `-lstdc++`.

Signed-off-by: Björn Svensson <bjorn.a.svensson at est.tech>
DeltaFile
+3-1clang/test/Driver/sanitizer-ld.c
+3-11 files

LLVM/project b48833bmlir/include/mlir/IR ExtensibleDialect.h

[MLIR] Make the verification order fixed in DynamicOpTraitList (#180758)

Currently we use `DenseMap` in `DynamicOpTraitList` to store traits and
iterate over the `DenseMap`, and we found that the order is not fixed
and we also cannot control verification order.

In this PR we use `MapVector` to preserve the insertion order so that
the verification order over traits can be fixed and users can tune the
verification order.
DeltaFile
+1-1mlir/include/mlir/IR/ExtensibleDialect.h
+1-11 files