LLVM/project 292a74fflang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp resolve-directives.cpp

[flang][OpenMP] Implement checks for rectangular loops (#190648)

Detect non-rectangular loops, emit diagnostic messages when the
construct requires that the affected loops are rectangular. Delete
similar checks from resolve-directive.cpp.

Issue: https://github.com/llvm/llvm-project/issues/185287
DeltaFile
+191-1flang/lib/Semantics/openmp-utils.cpp
+0-84flang/lib/Semantics/resolve-directives.cpp
+31-1flang/lib/Semantics/check-omp-loop.cpp
+20-0flang/include/flang/Semantics/openmp-utils.h
+12-6flang/test/Semantics/OpenMP/do22.f90
+9-3flang/test/Semantics/OpenMP/tile06.f90
+263-951 files not shown
+269-957 files

LLVM/project 6732640lld/test/COFF pdb-publics-hashes.s, llvm/lib/DebugInfo/PDB/Native GSIStreamBuilder.cpp

[pdb] Fix public symbol hashing in GSIHashStreamBuilder::finalizeBuckets (#190133)

BulkPublic.Name is not necessarily null terminated, so make sure not to
hash past its actual length.

In practice it would often be null terminated, but in the cases where it
was not, we would compute the wrong hash here, put it in the wrong hash
bucket, preventing debuggers from looking up the symbol by name, causing
issues such as
https://discourse.llvm.org/t/pdb-generated-by-lld-link-doesnt-point-to-correct-entry-point-when-debugged-using-visual-studio/90349
DeltaFile
+30-0lld/test/COFF/pdb-publics-hashes.s
+1-1llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
+31-12 files

LLVM/project 0b070abllvm/include/llvm/Support/LSP Protocol.h, mlir/lib/Tools/mlir-lsp-server MLIRServer.cpp LSPServer.cpp

[mlir][lsp] Use rootUri and rootPath for source files (#185479)

When looking up source files, consider the rootUri and rootPath (if set) and filename is non local path.
DeltaFile
+69-28mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
+35-0mlir/test/mlir-lsp-server/rooturi_rel_path.test
+11-0mlir/lib/Tools/mlir-lsp-server/LSPServer.cpp
+7-0llvm/include/llvm/Support/LSP/Protocol.h
+2-2mlir/test/mlir-lsp-server/diagnostics.test
+3-0mlir/lib/Tools/mlir-lsp-server/MLIRServer.h
+127-302 files not shown
+130-318 files

LLVM/project 2b7ce18mlir/lib/Dialect/Arith/IR ArithCanonicalization.td

skip canonicalization if rounding mode is set
DeltaFile
+8-4mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
+8-41 files

LLVM/project 6689389llvm/lib/Target/PowerPC PPCISelLowering.cpp PPCISelLowering.h, llvm/test/CodeGen/PowerPC bitcast-truncate-vec-i1.ll

[PowerPC] Optimize bitcast(truncate) patterns using vbpermq (#181233)

Use vbpermq and vbpermd to efficiently pack i1 vector bits into scalar
integers, avoiding stack operations during type legalization.
Fixes https://github.com/llvm/llvm-project/issues/171879
DeltaFile
+203-0llvm/test/CodeGen/PowerPC/bitcast-truncate-vec-i1.ll
+79-0llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+6-0llvm/lib/Target/PowerPC/PPCISelLowering.h
+288-03 files

LLVM/project 645f589flang/lib/Semantics openmp-utils.cpp

Replace std::set with llvm::DenseSet
DeltaFile
+2-2flang/lib/Semantics/openmp-utils.cpp
+2-21 files

LLVM/project a2959a1flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp

Remove merge conflict marks
DeltaFile
+0-10flang/include/flang/Semantics/openmp-utils.h
+0-8flang/lib/Semantics/openmp-utils.cpp
+0-182 files

LLVM/project 23a5227mlir/include/mlir/Dialect/Arith/IR ArithOps.td, mlir/lib/Conversion/ArithToLLVM ArithToLLVM.cpp

remove remainderf
DeltaFile
+15-21mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+0-11mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
+3-8mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
+2-4mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+1-3mlir/test/Dialect/Arith/ops.mlir
+21-475 files

LLVM/project 2ce48b2llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstCombine cast.ll

[ConstantFolding] Fix bitcasting vectors with non-integer ratios (#179640)

For both downcast and upcast this patch introduces support for
bitcasting vectors with non-integer ratios [1, 2]. Also this patch
increases the coherence between casts [3].

1. Fixes a crash on downcast where the ratio is not an integer (e.g., <3
x i32> to <4 x i24>). Previously this led to leading to an incorrect
number of result elements and subsequent crashes in RAUW.
Fixes #179626 

2. Fixes a miscompilation on upcast where ratio is not an integer (e.g.,
<4 x i24> to <3 x i32>). Previously this led to wrong result.
Fixes #181195 

3. Fix incoherent value emitting between down/up cast
a. When upcasting, emit Poison and Undef not only if the source vector
consists of only one of these values. (e.g., `bitcast <4 x i32> <i32
undef, i32 undef, i32 1, i32 undef> to <2 x i64>` returns `<2 x i64>

    [3 lines not shown]
DeltaFile
+194-53llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+61-67llvm/lib/Analysis/ConstantFolding.cpp
+2-2llvm/test/Transforms/InstCombine/cast.ll
+1-2llvm/test/Transforms/SCCP/bitcast-vector-refinement.l.ll
+1-1llvm/test/Transforms/InstCombine/X86/x86-sse4a.ll
+1-1llvm/test/Transforms/InstCombine/X86/x86-sse4a-inseltpoison.ll
+260-1266 files

LLVM/project e03b731lldb/source/Target Target.cpp, lldb/test/Shell/Platform/AutoLoad/Darwin dsym-auto-load-modules-multiple.test

[lldb] Add setting to specify (by name) which module's scripting resources can be auto-loaded (#188722)

* Depends on: https://github.com/llvm/llvm-project/pull/189696

This is part of [this
RFC](https://discourse.llvm.org/t/rfc-lldb-moving-libc-data-formatters-out-of-lldb/89591)
which is about turning the libc++ data-formatters into auto-loadable
Python scripts.

Eventually we want the Python data-formatters for `libc++` to be
automatically loaded without requiring user opt-in (since that's how the
builtin formatters have always worked and, in my opinion, we can't
transition to an opt-in model if users have always had the
data-formatters available). To do so we need a way to distinguish which
modules we can *always* auto-load from safe-paths, and which require
`target.load-script-from-symbol-file` to be set to `true`.

This patch adds a setting (`target.auto-load-modules`) that is a
dictionary from module-name to the `LoadScriptFromSymFile` enum,

    [21 lines not shown]
DeltaFile
+129-0lldb/unittests/Platform/PlatformDarwinTest.cpp
+112-0lldb/unittests/Platform/PlatformTest.cpp
+38-0lldb/test/Shell/Platform/AutoLoad/UNIX/auto-load-modules-multiple.test
+38-0lldb/test/Shell/Platform/AutoLoad/Darwin/dsym-auto-load-modules-multiple.test
+34-0lldb/source/Target/Target.cpp
+29-0lldb/test/Shell/Platform/AutoLoad/UNIX/auto-load-modules-not-in-dict.test
+380-012 files not shown
+609-518 files

LLVM/project 116b045lldb/source/Commands CommandObjectSource.cpp, lldb/source/Expression Materializer.cpp

[lldb] Make argument to ConstString::AsCString explicit (#190183)

This patch makes the default parameter to ConstString::AsCString
explicit. Currently it defaults to `nullptr`. However, there a bunch of
callsites that do `printf("%s", foo.AsCString())`, which is UB (I have
at least 1 crash on me where this was the root cause).

Alternatively we could change the default to `""` instead of `nullptr`,
but code that did `if (foo.AsCString())` would then change meaning.

Command I ran to generate this patch:
```
rg "\.AsCString\(\)" lldb -l | xargs sed -i '' 's/\.AsCString()/.AsCString(nullptr)/g'
```

There's also a commonly used `Status::AsCString` with a default
parameter. So I added a temporary:
```
const char *AsCString(std::nullptr_t) const = delete;

    [7 lines not shown]
DeltaFile
+95-105lldb/source/Expression/Materializer.cpp
+51-53lldb/source/ValueObject/ValueObjectSynthetic.cpp
+32-31lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp
+14-15lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+13-14lldb/source/Commands/CommandObjectSource.cpp
+16-11lldb/source/Target/DynamicRegisterInfo.cpp
+221-22984 files not shown
+482-49290 files

LLVM/project 679828eclang/include/clang/Driver SyclInstallationDetector.h, clang/lib/Driver/ToolChains SYCL.cpp

Revert "[Driver] Update SYCL runtime library name and path for target-specific directories" (#190715)

Reverts llvm/llvm-project#189053

Needs to go together with
https://github.com/llvm/llvm-project/pull/188770/
DeltaFile
+0-14clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
+14-0clang/test/Driver/Inputs/SYCL/libsycl.ll
+4-6clang/lib/Driver/ToolChains/SYCL.cpp
+2-2clang/test/Driver/sycl-offload-jit.cpp
+2-2clang/include/clang/Driver/SyclInstallationDetector.h
+2-2clang/test/Driver/link-device-code.test
+24-261 files not shown
+25-287 files

LLVM/project 43f7050flang/docs F202X.md

[flang] Added a note about Fortran 202X (F202X) (#190627)

Fortran 202X should no longer be used to refer to Fortran 2023 standard.
DeltaFile
+6-0flang/docs/F202X.md
+6-01 files

LLVM/project ecffdc1offload/plugins-nextgen/amdgpu/src rtl.cpp

[Offload] Fix trailing '\0' in ISA name (#190791)

Summary:
Recent changes broke this handling by creating a string-ref that
included the null byte. This made the StringRef compare for the
environemtn ISA with the user ISA fail trivially due to mismatching
sizes.
DeltaFile
+2-3offload/plugins-nextgen/amdgpu/src/rtl.cpp
+2-31 files

LLVM/project e223cbdclang/lib/CIR/CodeGen CIRGenFunction.cpp CIRGenException.cpp, clang/test/CIR/CodeGen ctor-try-body.cpp

[CIR] Implement constructor 'try-body' lowering (#190613)

C++ supports the ability to have the 'body' of a constructor be a 'try'
block. The effect of this is that base construction and initializers are
also within the same try/catch chain. This patch implements this
lowering.

Classic codegen does this by just emitting the 'begin' and 'end' try as
their own functions, then can emit the body separately between calls.
However, CIR doesn't really afford us that ability, so this patch
extracts a function that takes a callback object that is used to emit
the function body. This allows us to do a simple 'emitStmt' in the
normal cases, plus a `emitCtorPrologue` followed by `emitStmt` in the
try-body case.
DeltaFile
+80-0clang/test/CIR/CodeGen/ctor-try-body.cpp
+32-15clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+24-6clang/lib/CIR/CodeGen/CIRGenException.cpp
+7-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+143-214 files

LLVM/project 3d6fcc3clang/test/CodeGen/AArch64/neon intrinsics.c, libc/shared rpc_server.h

Merge branch 'main' into users/kparzysz/e21-is-rectangular
DeltaFile
+344-594llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
+733-127llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier.ll
+807-0offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
+776-8libc/shared/rpc_server.h
+773-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-608libc/src/__support/RPC/rpc_server.h
+3,433-1,337552 files not shown
+18,720-8,406558 files

LLVM/project 5a0ef1fflang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp

[flang][OpenMP] Introduce `semantics::omp::LoopControl` (#190647)

This structure will contain the symbol for the iteration variable, the
lower and upper bounds, and the increment if present in the form of
evaluate::Expr. A source construct (such as DO CONCURRENT) may have
several iteration variables, each with its own bounds and increment,
represented by a list of LoopControl structures.

For loop-transformation constructs that produce additional loops the
current code returns an empty list of LoopControls, but it may be
extended in the future to represent the yet-nonexistent loops for more
accurate semantic analysis.

The code introduced in this PR is not executed yet, but will be used in
an upcoming PR.

Issue: https://github.com/llvm/llvm-project/issues/185287

---------

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>
DeltaFile
+57-5flang/lib/Semantics/openmp-utils.cpp
+18-0flang/include/flang/Semantics/openmp-utils.h
+75-52 files

LLVM/project e61fc8cmlir/lib/Dialect/Tosa/IR TosaOps.cpp, mlir/test/Dialect/Tosa invalid.mlir tosa-infer-shapes.mlir

[mlir][tosa] Add TOSA Avg Pool 2D Adaptive (#190200)

Implements:
- Operator definition
- Operator verifier
- InferType implementation
- Validation 
- Tests

Signed-off-by: Deeptanshu Sekhri <deeptanshu.sekhri at arm.com>
Co-authored-by: Iliyan Georgiev <iliyan.georgiev at arm.com>
Co-authored-by: Deeptanshu Sekhri <deeptanshu.sekhri at arm.com>
DeltaFile
+233-91mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+193-0mlir/test/Dialect/Tosa/invalid.mlir
+83-0mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
+72-0mlir/test/Dialect/Tosa/ops.mlir
+60-0mlir/test/Dialect/Tosa/level_check.mlir
+9-47mlir/test/Dialect/Tosa/invalid_extension.mlir
+650-13811 files not shown
+919-15417 files

LLVM/project 93b0409llvm/lib/Target/SPIRV SPIRVGlobalRegistry.cpp, llvm/lib/Target/SPIRV/MCTargetDesc SPIRVInstPrinter.cpp

[SPIR-V] Use OpDecorateId instead of OpDecorate for memory aliasing decorations (#190731)

AliasScopeINTEL and NoAliasINTEL decorations take ID operands, so they
must use OpDecorateId rather than OpDecorate per the SPIR-V spec

related to #190736
DeltaFile
+8-7llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-masked-load-store.ll
+2-1llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
+1-1llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+1-1llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp
+12-104 files

LLVM/project 11a73a1mlir/include/mlir/Conversion/ArithCommon AttrToLLVMConverter.h, mlir/include/mlir/Dialect/Arith/IR ArithOps.td

address comments
DeltaFile
+28-21mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+2-2mlir/include/mlir/Conversion/ArithCommon/AttrToLLVMConverter.h
+30-232 files

LLVM/project b9e9e7bclang/lib/CIR/CodeGen CIRGenExprAggregate.cpp, clang/test/CIR/CodeGen agg-init-constexpr.cpp

[CIR] Implement aggregate-expr-init with a const-expr lowering (#190631)

An aggregate initialized by a ConstantExpr happens when you have a
consteval constructor. This patch implements this lowering.

There is a bit of a difference in decisions between classic-codegen and
cir lowering, where classic-codegen will do init-via-GEP, whereas CIR
does either a struct-store, or a memcpy, otherwise these seem identical.

There IS a branch (if emitting a constant-expr fails) that appears dead
to the best of my knowledge, but since classic-codegen does it, I left
the version there. It is at most a pessimisation of the constant-emit
(just emitting the expression), so it shouldn't cause problems.
DeltaFile
+39-0clang/test/CIR/CodeGen/agg-init-constexpr.cpp
+14-1clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
+53-12 files

LLVM/project 589ed98flang/lib/Semantics check-omp-structure.h

Update check-omp-structure.h
DeltaFile
+0-4flang/lib/Semantics/check-omp-structure.h
+0-41 files

LLVM/project 47d457bclang/lib/CIR/CodeGen CIRGenExpr.cpp, clang/test/CIR/CodeGen mem-expr-fn.cpp

[CIR] Implement lowering for member-expr of function decl type (#190655)

This patch ends up being pretty trivial to reproduce, and the
implementation is just to call an already implemented function, however
this shows up a few times in various test suites. So I've implemented
it.
DeltaFile
+26-0clang/test/CIR/CodeGen/mem-expr-fn.cpp
+2-4clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+28-42 files

LLVM/project a756da5llvm/utils/lit/lit ProgressBar.py

Merge branch 'main' into users/kparzysz/e20-loop-control
DeltaFile
+83-23llvm/utils/lit/lit/ProgressBar.py
+83-231 files

LLVM/project ee91761flang/include/flang/Semantics openmp-utils.h

Update openmp-utils.h
DeltaFile
+0-4flang/include/flang/Semantics/openmp-utils.h
+0-41 files

LLVM/project bcbccf0flang/include/flang/Semantics openmp-utils.h

Apply suggestion from @Meinersbur

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>
DeltaFile
+0-1flang/include/flang/Semantics/openmp-utils.h
+0-11 files

LLVM/project 5620a92llvm/utils/lit/lit ProgressBar.py

[lit] cross platform progress bar (#189970)
DeltaFile
+83-23llvm/utils/lit/lit/ProgressBar.py
+83-231 files

LLVM/project 87c63e8flang/lib/Semantics check-omp-loop.cpp

Update check-omp-loop.cpp
DeltaFile
+1-1flang/lib/Semantics/check-omp-loop.cpp
+1-11 files

LLVM/project a301a78flang/lib/Semantics check-omp-loop.cpp

Update check-omp-loop.cpp
DeltaFile
+1-0flang/lib/Semantics/check-omp-loop.cpp
+1-01 files

LLVM/project ea4d428clang/test/CodeGen/AArch64/neon intrinsics.c, libc/shared rpc_server.h

Merge branch 'main' into users/kparzysz/e20-loop-control
DeltaFile
+344-594llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
+733-127llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier.ll
+807-0offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
+776-8libc/shared/rpc_server.h
+773-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-608libc/src/__support/RPC/rpc_server.h
+3,433-1,337525 files not shown
+17,608-8,215531 files