LLVM/project 1bea8cd — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp

Clarified Mangled comment, got rid of unnecessary switch, removed redundant comment and shortened variable names for parameter name and type vector
DeltaFile
+21-29lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+21-291 files

LLVM/project 4c7f8b0 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp

formatting...
DeltaFile
+3-3lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+3-31 files

LLVM/project 5b922eb — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.h DWARFASTParserFortran.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserFortranTests.cpp

[lldb][Fortran] Added support for functions to DWARFASTParserFortran plus tests
DeltaFile
+266-0lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+133-3lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+5-0lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.h
+404-33 files

LLVM/project 1fb62b4 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserFortranTests.cpp

[lldb][Fortran] Addressed feedback about code styling and changed one of the tests to contain different types in arguments and return type, not just integers
DeltaFile
+18-26lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+18-6lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+36-322 files

LLVM/project a845c8c — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.h DWARFASTParserFortran.cpp

Removed single line if brackets and changed function parsing parameters name as well as argument names.
DeltaFile
+12-12lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+4-4lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.h
+16-162 files

LLVM/project 2ed400e — lldb/source/Plugins/TypeSystem/Fortran FortranTypes.h

Used more concrete type profile, when looping through parameter types
DeltaFile
+1-1lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.h
+1-11 files

LLVM/project 3c4aa1a — lldb/source/Plugins/TypeSystem/Fortran TypeSystemFortran.h FortranTypes.h

[lldb][Fortran] Added llvm RTTI support to FortranFunction, renamed variable names in functions, GetFunctionType static function to get function type pointer and addressed feedback about code style
DeltaFile
+25-47lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+34-22lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.cpp
+23-11lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.h
+1-1lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+83-814 files

LLVM/project a3d4083 — lldb/source/Plugins/TypeSystem/Fortran TypeSystemFortran.h FortranTypes.cpp, lldb/unittests/Symbol TestTypeSystemFortran.cpp

[lldb][Fortran] Added support for functions in TypeSystemFortran and added tests for them
DeltaFile
+98-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+53-0lldb/unittests/Symbol/TestTypeSystemFortran.cpp
+37-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.h
+35-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.cpp
+15-18lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+238-185 files

LLVM/project 9855e27 — .github/workflows hlsl-matrix.yaml hlsl-test-all.yaml

[HLSL] Migrate pre-commit HLSL CI to Windows (and off Beanz's closet Mac) (#230639)

Pre-commit validation of HLSL and DirectX changes includes a run of
[offload test suite](https://github.com/llvm/offload-test-suite), which
currently executes on a Mac laptop in Beanz' closet. This change updates
the pipeline to run on a self-hosted Windows runner, with software GPU
offload coverage through D3D12 WARP.

The original pipeline was running `check-llvm` and `check-clang` test
groups. Since DirectX has become an official LLVM target this is no
longer necessary. The HLSL & DirectX tests that are included in the
`check-llvm`/`check-clang` groups are already being run by existing
pre-commit CIs.

The pipeline now executes only offload tests suite runtime tests on WARP
and plus the LLVM `dxil-dis` tool tests, which only depend on `llc`,
`llvm-objcopy` and the 'filecheck` tools from the LLVM build.

Fixes llvm/wg-hlsl#477
DeltaFile
+8-17.github/workflows/hlsl-test-all.yaml
+3-4.github/workflows/hlsl-matrix.yaml
+11-212 files

LLVM/project d97b507 — lld/test/MachO arm64e-auth-pointer.s

[lld-macho] Require a 64-bit host for arm64e-auth-pointer.s (#238623)

The test's far.o case needs a 4 GiB zerofill section, but lld keeps
section sizes in size_t, so on 32-bit hosts the section is empty, _far
isn't far, and the expected error never comes. This broke
clang-armv8-lld-2stage. Like dead-strip.s, require llvm-64-bits.

Fixes https://lab.llvm.org/buildbot/#/builders/122/builds/329

Assisted-by: Claude
DeltaFile
+1-1lld/test/MachO/arm64e-auth-pointer.s
+1-11 files

LLVM/project f9d311a — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

feedback

Created using spr 1.3.7
DeltaFile
+7,612-3,682llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,478llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,069llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-1,953llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-15,3765,318 files not shown
+127,677-52,3695,324 files

LLVM/project f400da2 — llvm/lib/Target/DirectX DirectXTargetMachine.cpp DirectX.h, llvm/test/CodeGen/DirectX/ContainerData PdbInPrivate-no-pdbname.ll PdbInPrivate.ll

[DirectX] Port DXContainerPDB to NewPM

Standard NewPM pass porting.

Reviewers: bogner

Pull Request: https://github.com/llvm/llvm-project/pull/238173
DeltaFile
+227-0llvm/lib/Target/DirectX/DXILContainerPDB.cpp
+0-206llvm/lib/Target/DirectX/DXContainerPDB.cpp
+9-3llvm/lib/Target/DirectX/DirectX.h
+3-3llvm/test/CodeGen/DirectX/ContainerData/PdbInPrivate.ll
+2-2llvm/test/CodeGen/DirectX/ContainerData/PdbInPrivate-no-pdbname.ll
+2-2llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
+243-2163 files not shown
+246-2189 files

LLVM/project 38e949f — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+7,612-3,682llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,478llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,069llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-1,953llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-15,3765,303 files not shown
+127,202-52,1175,309 files

LLVM/project 59d011c — clang/lib/CodeGen CGExpr.cpp, clang/test/CodeGen bpf-attr-preserve-access-index-9.c

[Clang][BPF] Preserve every subscript of multi-dimensional array members (#237589)

A member access is relocated with CO-RE either inside
`__builtin_preserve_access_index()` or through the preserve_access_index
attribute on the record. For an array member with more than one
subscript, the builtin works, but the attribute does not. With
```
  #define __pai __attribute__((preserve_access_index))
  struct S { long x; int y; } __pai;
  union V { long l; struct S m[2][3]; } __pai;
  struct T {
    struct S a[2][3];
    union V g[3][2];
    struct S (*q)[3];
    struct S *p[3];
    struct S v[2][3][4];
  } __pai;
```
the relocations for `t->a[1][2].y` are:

    [63 lines not shown]
DeltaFile
+27-0clang/test/CodeGen/bpf-attr-preserve-access-index-9.c
+5-1clang/lib/CodeGen/CGExpr.cpp
+32-12 files

LLVM/project ae92e25 — mlir/include/mlir/Dialect/SCF/Utils Utils.h, mlir/lib/Dialect/SCF/Utils Utils.cpp

[MLIR][SCF] Handle empty ranges in mlir::loopUnrollByFactor. (#237094)

## TL; DR
This patches fixes empty ranges such as $[42, 0; 4]$ in
`mlir::loopUnrollByFactor`

According to the SCF documentation, the precondition is 
> Lower bound, upper bound, and step are interpreted as signed integers
by default, or as unsigned integers if the unsignedCmp unit attribute is
present. The step is required to be strictly positive.

However, even though in the case that lower bound, upper bound, and step
are all positive, we can construct an empty range such as $[42, 0; 4]$,
which leads to wrong behavior as reported in triton-lang/triton/issues/12525
DeltaFile
+75-2mlir/test/Dialect/SCF/loop-unroll.mlir
+11-2mlir/lib/Dialect/SCF/Utils/Utils.cpp
+3-2mlir/test/Transforms/scf-loop-unroll.mlir
+2-2mlir/include/mlir/Dialect/SCF/Utils/Utils.h
+91-84 files

LLVM/project b6d7ce4 — clang/include/clang/Options Options.td, flang/lib/Frontend CompilerInvocation.cpp FrontendActions.cpp

[Flang] [Driver] Add -fplt and -fno-plt options (#235622)

The option is supported in clang and not in flang. This commit adds this
support. -fno-plt makes external calls use GOT indirection instead of
the PLT. The driver forwards it only for ELF x86 and AArch64, and the
default remains PLT.
DeltaFile
+34-0flang/test/Integration/fno-plt.f90
+31-0flang/test/Integration/fno-plt-ir.ll
+21-0flang/test/Driver/fno-plt.f90
+9-0flang/lib/Frontend/FrontendActions.cpp
+3-3clang/include/clang/Options/Options.td
+5-0flang/lib/Frontend/CompilerInvocation.cpp
+103-33 files not shown
+112-39 files

LLVM/project b9c08f1 — llvm/lib/Target/DirectX CMakeLists.txt DirectXTargetMachine.cpp, llvm/test/CodeGen/DirectX/ContainerData DebugName.test

[DirectX] Port DXContainerGlobals to NewPM

Standard NewPM pass porting. There are a lot of function_refs because
this pass uses a lot of Analyses. I don't think there is a cleaner way
to do this.

Reviewers: bogner

Pull Request: https://github.com/llvm/llvm-project/pull/238167
DeltaFile
+506-0llvm/lib/Target/DirectX/DXILContainerGlobals.cpp
+0-467llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+9-3llvm/lib/Target/DirectX/DirectX.h
+2-2llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
+1-1llvm/test/CodeGen/DirectX/ContainerData/DebugName.test
+1-1llvm/lib/Target/DirectX/CMakeLists.txt
+519-47417 files not shown
+536-49023 files

LLVM/project b0aec08 — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+7,612-3,682llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,478llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,069llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-1,953llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-15,3765,280 files not shown
+126,652-51,5745,286 files

LLVM/project 2b7b98b — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.h DWARFASTParserFortran.cpp

Removed single line if brackets and changed function parsing parameters name as well as argument names.
DeltaFile
+12-12lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+4-4lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.h
+16-162 files

LLVM/project 605fe44 — lld/MachO ObjC.cpp, lld/test/MachO objc-category-merging-complete-test.s

[lld][MachO] Fix missing class name when merging categories into a class (#237948)

mergeCategoriesIntoBaseClass preset extInfo.baseClass, so
parseCatInfoToExtInfo skipped the branch that set baseClassName, and the
symbols of the merged lists were named without the class. Set the name
at both sites.
DeltaFile
+12-11lld/MachO/ObjC.cpp
+6-0lld/test/MachO/objc-category-merging-complete-test.s
+18-112 files

LLVM/project 07c3877 — llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer warning_attrs.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+16-12llvm/test/Instrumentation/MemorySanitizer/warning_attrs.ll
+12-4llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+28-162 files

LLVM/project 3daf886 — llvm/test/Instrumentation/MemorySanitizer warning_attrs.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+156-0llvm/test/Instrumentation/MemorySanitizer/warning_attrs.ll
+156-01 files

LLVM/project 3d7c25a — llvm/lib/Target/DirectX DirectXPassRegistry.def DirectXTargetMachine.cpp

[DirectX] Port DXILPrepareModule to NewPM

Standard NewPM pass porting.

Reviewers: bogner

Pull Request: https://github.com/llvm/llvm-project/pull/238156
DeltaFile
+181-157llvm/lib/Target/DirectX/DXILPrepare.cpp
+9-2llvm/lib/Target/DirectX/DirectX.h
+2-2llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
+1-0llvm/lib/Target/DirectX/DirectXPassRegistry.def
+193-1614 files

LLVM/project 8bcd852 — clang/docs ReleaseNotes.md, clang/lib/Driver Driver.cpp

[Clang][SYCL] Reject an unknown offload architecture on a SPIR-V target (#229249)

Diagnose an unknown `--offload-arch` on a SPIR-V target for SYCL.

Previously, with `--offload-targets=spirv64-unknown-unknown`, any
`--offload-arch` value was accepted, so a typo such as `xe-pcv` silently
created a job for a device that does not exist. For SYCL on a plain
SPIR-V target, `spirv32-unknown-unknown` or `spirv64-unknown-unknown`,
`--offload-arch` and `--no-offload-arch` must now name an Intel GPU or
CPU, an IGCA target or `generic`. Anything else is an error, as it
already is for CUDA and HIP, including a numeric name for a GPU that is
not listed, such as `xe_40.11.0`, and a name with target features, such
as `xe-pvc:foo`.

An Intel name or IGCA target is also an error on any other SPIR-V
target, e.g. "the target architecture 'igca_20ca' is not supported by
the target 'spirv64-amd-amdhsa'".
DeltaFile
+87-0clang/test/Driver/sycl-intel-gpu-arch.cpp
+44-15clang/lib/Driver/Driver.cpp
+10-0clang/test/Driver/sycl-offload-arch-igca.cpp
+5-0clang/docs/ReleaseNotes.md
+146-154 files

LLVM/project 3a047cd — .ci/lnt/llvm-test-suite machines.json, .github/workflows llvm-test-suite-run.yml

[ci] Collect profiles in the LLVM test-suite LNT runs on Linux (#237439)

Run the test-suite with `--use-perf all` on Linux, which collects
profiling data and submits it to LNT. Bump both machines since the
version of the test suite also changes.

Assisted by Claude
DeltaFile
+5-5.ci/lnt/llvm-test-suite/machines.json
+8-2.github/workflows/llvm-test-suite-run.yml
+13-72 files

LLVM/project 5ae4ee1 — llvm/lib/Analysis InlineCost.cpp, llvm/test/Transforms/Inline free-binop-cost.ll

[InlineCost] Ask TTI whether unsimplified vector and bool binops are free (#233841)

visitBinaryOperator charged every unsimplified binary operator without
consulting TTI, unlike casts, GEPs and other instructions. Return
TCC_Free from TTI::getInstructionCost as visitCastInst does.

This is an amended reland of #232397 attempting to workaround the
compile-time hit that led to the revert #232907.

It is different in two ways. First, it is now restricted to binary
operators.
Compares are left out because very few compare are currently counted as
free,
yet this is where we started to spend the majority of the queries.

Second, for binops, we query TTI only about vector and boolean
operations as this is where the majority of high-impact free operations
is.
DeltaFile
+30-0llvm/test/Transforms/Inline/free-binop-cost.ll
+9-1llvm/lib/Analysis/InlineCost.cpp
+39-12 files

LLVM/project dd8f586 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] NFC: use eliminateVarUsingEquality in existing callers

Replace the eliminateFromConstraint helper with the new
IntMatrix::eliminateColumnUsingRow / IntegerRelation::eliminateVarUsingEquality
primitives in gaussianEliminateVars, gaussianEliminate and
removeRedundantLocalVars, and delete it. Add an overload of
eliminateVarUsingEquality that takes the index of one of the relation's
own equalities as the pivot and skips that row.
DeltaFile
+27-63mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+4-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+31-632 files

LLVM/project a10d84e — mlir/include/mlir/Analysis/Presburger IntegerRelation.h Matrix.h, mlir/lib/Analysis/Presburger Matrix.cpp IntegerRelation.cpp

[mlir][Presburger] Add helpers for eliminating a variable using an equality

Add IntMatrix::eliminateColumnUsingRow, which eliminates a column from a
row using a pivot row with a positive multiplier on the row (a port of
ISL's isl_seq_elim), and IntegerRelation::eliminateVarUsingEquality,
which applies it to every equality and inequality of a relation (a port
of ISL's eliminate_var_using_equality).

Use them in reduceUsingEqualities in place of the file-local
eliminateColumnUsingEquality helper. These are intended as the shared
primitive behind the existing hand-rolled elimination loops (e.g. in
gaussianEliminateVars, gaussianEliminate and removeRedundantLocalVars),
which can be migrated separately.
DeltaFile
+13-29mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+22-0mlir/unittests/Analysis/Presburger/MatrixTest.cpp
+20-0mlir/lib/Analysis/Presburger/Matrix.cpp
+11-0mlir/include/mlir/Analysis/Presburger/Matrix.h
+8-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+74-295 files

LLVM/project 7603bc2 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::reduceUsingEqualities helper

Add a protected helper that rewrites all constraints of a relation using
the equalities of another relation in the same space, without changing
the intersection of the two. This is a port of ISL's
isl_basic_set_reduce_using_equalities together with
project_onto_involved: the equalities are first projected onto the
variables that occur in the relation being reduced, so that no new
variables (in particular, no locals of the other relation) are
introduced, and each remaining equality is then used to eliminate its
last variable with a non-zero coefficient from every constraint, so that
later variables (locals) are eliminated in favor of earlier ones.

This is a building block for context-based simplification (gist) and is
exercised by the gist tests added in a follow-up commit, since there is
no existing pattern for unit-testing protected members of
IntegerRelation.
DeltaFile
+108-0mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+17-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+125-02 files

LLVM/project 9c3042c — llvm/include/llvm/ProfileData InstrProf.h, llvm/include/llvm/Transforms/IPO MemProfContextDisambiguation.h

[MemProf] Handle local aliases in ThinLTO indirect tail-call cloning (#238190)

Indirect call targets in value profile metadata may come from
instrumentation PGO, keyed by PGOFuncName, or from SamplePGO and MemProf
synthesized targets, keyed by the binary symbol name (i.e. unprefixed
for locals), independent of the build's FDO mode. During the thin link,
updateValueInfoForIndirectCalls translates unprefixed local target GUIDs
to the local's actual ValueInfo, which then keys any MemProf callsite
record synthesized for a missing tail-call frame.

In distributed ThinLTO backends, the summary index omits original-name
mappings, so findIndirectTailCallCallsite reconstructs them from the
module's definitions via InstrProfSymtab. This failed for local aliases:
InstrProfSymtab does not index GlobalAliases, and an imported copy of an
alias (a Function created by replaceAliasWithAliasee) retains the
aliasee's !guid, so it was indexed under the aliasee's GUID rather than
the alias's, and could also shadow the aliasee's own function when both
were in the module. As a result, synthesized records targeting local
aliases were missed, leaving callers uncloned with undefined .memprof.*

    [26 lines not shown]
DeltaFile
+436-0llvm/test/ThinLTO/X86/memprof-tailcall-indirect-alias.ll
+212-0llvm/test/ThinLTO/X86/memprof-icp-imported-alias.ll
+71-12llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+20-6llvm/lib/ProfileData/InstrProf.cpp
+18-4llvm/include/llvm/ProfileData/InstrProf.h
+6-0llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
+763-226 files