LLVM/project b4e751ellvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.set.rounding.ll

AMDGPU: Optimize set_rounding if input is known to fit in 2 bits (#88588)

We don't need to figure out the weird extended rounding modes or
handle offsets to keep the lookup table in 64-bits.
    
https://reviews.llvm.org/D153258

Depends #88587
DeltaFile
+104-308llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
+41-21llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+145-3292 files

LLVM/project 6218992clang/lib/Sema SemaTemplate.cpp, clang/test/SemaCXX cxx20-ctad-type-alias.cpp

[clang] CTAD: fix the aggregate deduction guide for alias templates.

For alias templates, the way we construct their aggregate deduction guides is
not following the standard way. We should do the same thing as we do for
implicit deduction guides.
DeltaFile
+2-60clang/lib/Sema/SemaTemplate.cpp
+14-0clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
+7-0clang/test/SemaTemplate/deduction-guide.cpp
+23-603 files

LLVM/project 4036514clang/lib/Sema SemaTemplate.cpp

Refactor: Extract the core deduction-guide construction implementation from DeclareImplicitDeductionGuidesForTypeAlias

We move the core implementation to a dedicate function, so that it can
be reused in other places.
DeltaFile
+203-187clang/lib/Sema/SemaTemplate.cpp
+203-1871 files

LLVM/project 7c64b53llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel BUILD.gn

[gn build] Port ed299b3efd66
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn
+1-01 files

LLVM/project e47d7c6llvm/lib/Target/AMDGPU AMDGPUInsertSingleUseVDST.cpp

Fix MSVC signed/unsigned mismatch warning. NFC.
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUInsertSingleUseVDST.cpp
+1-11 files

LLVM/project ed299b3llvm/include/llvm/CodeGen/GlobalISel GIMatchTableExecutor.h GIMatchTableExecutorImpl.h, llvm/include/llvm/Support Compiler.h

[GlobalISel] Optimize ULEB128 usage (#90565)

- Remove some cases where ULEB128 isn't needed
- Add a fastDecodeULEB128 tailored for GlobalISel which does unchecked
decoding optimized for the common case, which is 1 byte values. We
rarely have >1 byte Inst IDs, OpIdx, etc. and those are the most common
ULEB users by far.

This specific LEB128 decode function generates almost 2x less
instructions than the generic one.
DeltaFile
+49-0llvm/unittests/CodeGen/GlobalISel/GIMatchTableExecutorTest.cpp
+24-2llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
+6-9llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h
+8-0llvm/include/llvm/Support/Compiler.h
+6-2llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
+1-0llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
+94-136 files

LLVM/project 8480c93clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticSemaKinds.td

[clang] pointer to member with qualified-id enclosed in parentheses in unevaluated context should be invalid (#89713)

clang don't check whether the operand of the & operator is enclosed in
parantheses when pointer to member is formed in unevaluated context, for
example:

```cpp
struct foo { int val; };

int main() { decltype(&(foo::val)) ptr; }
```

`decltype(&(foo::val))` should be invalid, but clang accepts it. This PR
fixes this issue.

Fixes #40906.

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>
DeltaFile
+17-0clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
+16-0clang/lib/Sema/SemaExpr.cpp
+3-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+2-0clang/docs/ReleaseNotes.rst
+38-04 files

LLVM/project e4b04b3mlir/include/mlir/Dialect/Transform/IR TransformOps.td, mlir/include/mlir/Dialect/Transform/Interfaces TransformInterfaces.h

[mlir] make transform.foreach_match forward arguments (#89920)

It may be useful to have access to additional handles or parameters when
performing matches and actions in `foreach_match`, for example, to
parameterize the matcher by rank or restrict it in a non-trivial way.
Enable `foreach_match` to forward additional handles from operands to
matcher symbols and from action symbols to results.
DeltaFile
+123-37mlir/lib/Dialect/Transform/IR/TransformOps.cpp
+110-0mlir/test/Dialect/Transform/foreach-match.mlir
+81-4mlir/test/Dialect/Transform/ops-invalid.mlir
+38-22mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
+29-5mlir/lib/Dialect/Transform/Interfaces/TransformInterfaces.cpp
+13-0mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
+394-686 files

LLVM/project edbe6ebllvm/lib/CodeGen/SelectionDAG LegalizeFloatTypes.cpp, llvm/lib/Target/SystemZ SystemZISelLowering.cpp

SystemZ: Don't promote atomic store in IR (#90899)

This is the mirror to the recent atomic load change. The same
bitcast-back-to-integer case is a small code quality regression for the
same reason. This would disappear with a bitcastable legal 128-bit type.
DeltaFile
+35-11llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+16-7llvm/test/CodeGen/SystemZ/atomic-store-08.ll
+0-1llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+51-193 files

LLVM/project 6535e7allvm/test/CodeGen/SystemZ copy-phys-reg-gr128-to-vr128.mir

SystemZ: Remove redundant copy tests from 75f4baa70
DeltaFile
+0-31llvm/test/CodeGen/SystemZ/copy-phys-reg-gr128-to-vr128.mir
+0-311 files

LLVM/project 44648ccllvm/lib/Target/AMDGPU AMDGPUAsmPrinter.cpp, llvm/test/CodeGen/AMDGPU pal-metadata-3.0.ll

[AMDGPU] Always emit lds_size in PAL ELF Metadata 3.0 (#87222)

Emit lds_size for all shader types in PAL metadata.
DeltaFile
+39-0llvm/test/CodeGen/AMDGPU/pal-metadata-3.0.ll
+4-4llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+43-42 files

LLVM/project 9731b77llvm/docs AMDGPUUsage.rst ReleaseNotes.rst, llvm/lib/Target/AMDGPU SIModeRegisterDefaults.cpp SIISelLowering.cpp

AMDGPU: Implement llvm.set.rounding (#88587)

Use a shift of a magic constant and some offseting to convert from
flt_rounds values.

I don't know why the enum defines Dynamic = 7. The standard suggests -1
is the cannot determine value. If we could start the extended values at
4 we wouldn't need the extra compare sub and select.

https://reviews.llvm.org/D153257
DeltaFile
+1,919-0llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
+113-0llvm/lib/Target/AMDGPU/SIModeRegisterDefaults.cpp
+72-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+12-0llvm/lib/Target/AMDGPU/SIModeRegisterDefaults.h
+6-0llvm/docs/AMDGPUUsage.rst
+2-0llvm/docs/ReleaseNotes.rst
+2,124-02 files not shown
+2,127-08 files

LLVM/project 13a6fe8clang/include/clang/CIRFrontendAction CIRGenAction.h, clang/lib/CIR/CodeGen CIRGenModule.h

fix comments

Created using spr 1.3.5
DeltaFile
+4-4clang/include/clang/CIRFrontendAction/CIRGenAction.h
+3-5clang/lib/CIR/CodeGen/CIRGenModule.h
+6-0clang/lib/FrontendTool/CMakeLists.txt
+1-1clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+2-0clang/lib/CIR/FrontendAction/CMakeLists.txt
+16-105 files

LLVM/project 70b5a22llvm/lib/Transforms/Utils MemoryTaggingSupport.cpp, llvm/test/Instrumentation/HWAddressSanitizer alloca.ll

[hwasan] Don't crash on vscale allocas (#90932)

getAllocaSizeInBytes will crash casting size to
constant.
DeltaFile
+18-0llvm/test/Instrumentation/HWAddressSanitizer/alloca.ll
+2-0llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
+20-02 files

LLVM/project 4300febclang/include/clang/CIR CIRGenerator.h, clang/include/clang/CIRFrontendAction CIRGenAction.h

get buildTopLevelDecl to run

Created using spr 1.3.5
DeltaFile
+45-2clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+31-0clang/include/clang/CIR/CIRGenerator.h
+24-3clang/lib/CIR/CodeGen/CIRGenModule.h
+20-0clang/lib/CIR/CodeGen/CIRGenerator.cpp
+16-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-4clang/include/clang/CIRFrontendAction/CIRGenAction.h
+139-97 files not shown
+158-1513 files

LLVM/project e450f98lldb/source/Utility Scalar.cpp, lldb/test/API/python_api/type TestTypeList.py main.cpp

[lldb] Fix Scalar::GetData for non-multiple-of-8-bits values (#90846)

It was aligning the byte size down. Now it aligns up. This manifested
itself as SBTypeStaticField::GetConstantValue returning a zero-sized
value for `bool` fields (because clang represents bool as a 1-bit
value).

I've changed the code for float Scalars as well, although I'm not aware
of floating point values that are not multiples of 8 bits.
DeltaFile
+30-0lldb/unittests/Utility/ScalarTest.cpp
+13-0lldb/test/API/python_api/type/TestTypeList.py
+2-2lldb/source/Utility/Scalar.cpp
+1-0lldb/test/API/python_api/type/main.cpp
+46-24 files

LLVM/project 0ddf974flang/test/Lower/OpenMP default-clause.f90, llvm/lib/Transforms/AggressiveInstCombine AggressiveInstCombine.cpp

rebase

Created using spr 1.3.4
DeltaFile
+243-23llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+0-219llvm/test/Transforms/AggressiveInstCombine/strcmp.ll
+216-0llvm/test/Transforms/AggressiveInstCombine/strncmp-1.ll
+147-0llvm/test/Transforms/AggressiveInstCombine/strncmp-2.ll
+59-20mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+51-4flang/test/Lower/OpenMP/default-clause.f90
+716-26616 files not shown
+855-31422 files

LLVM/project b03e7a5llvm/test/Instrumentation/HWAddressSanitizer alloca.ll

[HWASAN] Regenerate a test (#90943)

DeltaFile
+81-81llvm/test/Instrumentation/HWAddressSanitizer/alloca.ll
+81-811 files

LLVM/project 922ab70llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[MLIR][OpenMP] Extend omp.private materialization support: `dealloc` (#90841)

Extends current support for delayed privatization during translation to
LLVM IR. This adds support for materlizaing the `dealloc` region in
`omp.private` ops when this region contains clean-up/deallocation logic
that needs to be executed at the end of the parallel region.

This changes the `OMPIRBuilder` slightly to execute the finalization
callback **after** the privatization callback. This allows us to collect
information about privatized variables on the MLIR and LLVM sides so
that we can properly emit deallocation logic.
DeltaFile
+59-20mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+53-0mlir/test/Target/LLVMIR/openmp-omp.private-dealloc.mlir
+13-13llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+125-333 files

LLVM/project f8fedfblldb/packages/Python/lldbsuite/test/make Makefile.rules

[lldb] Fix TestSharedLibStrippedSymbols for #90622

`ifeq` needs to be at the beginning of a line, otherwise it's
interpreted as part of the recipe.
DeltaFile
+2-2lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+2-21 files

LLVM/project 4ad6962mlir/test/Dialect/Transform irdl.mlir

[mlir] Fix test added in 105c992c83aa527c6c50d60becd4d66b476b0a32.
DeltaFile
+1-1mlir/test/Dialect/Transform/irdl.mlir
+1-11 files

LLVM/project e8cda37utils/bazel/llvm-project-overlay/llvm/unittests BUILD.bazel

[llvm][bazel] Fix BUILD after dcf376aae738252fb52a73bcf7f58fd030e15ee2.
DeltaFile
+1-0utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+1-01 files

LLVM/project 37f6ba4flang/include/flang/Lower AbstractConverter.h, flang/lib/Lower Bridge.cpp

[flang][OpenMP] Fix construct privatization in default clause (#72510)

Current implementation of default clause privatization incorrectly fails
to privatize in presence of non-OpenMP constructs (i.e. nested
constructs with regions whose symbols need to be privatized in the scope
of the parent OpenMP construct). This patch fixes the same by
considering non-OpenMP constructs separately by collecting symbols of a
nested region if it is a non-OpenMP construct with a region, and
privatizing it in the scope of the parent OpenMP construct.

Fixes https://github.com/llvm/llvm-project/issues/71914 and
https://github.com/llvm/llvm-project/issues/71915
DeltaFile
+51-4flang/test/Lower/OpenMP/default-clause.f90
+27-11flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+5-2flang/include/flang/Lower/AbstractConverter.h
+5-1flang/lib/Lower/OpenMP/DataSharingProcessor.h
+3-3flang/test/Lower/OpenMP/default-clause-byref.f90
+1-1flang/lib/Lower/Bridge.cpp
+92-226 files

LLVM/project 6b94870llvm/include/llvm/Analysis ValueTracking.h, llvm/lib/Analysis ValueTracking.cpp

[AggressiveInstCombine] Inline strcmp/strncmp (#89371)

Inline calls to strcmp(s1, s2) and strncmp(s1, s2, N), where N and
exactly one of s1 and s2 are constant.

For example:

```c
int res = strcmp(s, "ab");
```

is converted to

```c
int res = (int)s[0] - (int)'a';
if (res != 0)
  goto END;
res = (int)s[1] - (int)'b';
if (res != 0)

    [6 lines not shown]
DeltaFile
+243-23llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+0-219llvm/test/Transforms/AggressiveInstCombine/strcmp.ll
+216-0llvm/test/Transforms/AggressiveInstCombine/strncmp-1.ll
+147-0llvm/test/Transforms/AggressiveInstCombine/strncmp-2.ll
+7-0llvm/lib/Analysis/ValueTracking.cpp
+2-0llvm/include/llvm/Analysis/ValueTracking.h
+615-2421 files not shown
+616-2437 files

LLVM/project 7c28408clang/include/clang/Basic DiagnosticParseKinds.td, clang/lib/Parse ParseOpenMP.cpp

Revert "Revert "[OpenMP][TR12] change property of map-type modifier." (#90885)"

This reverts commit eea81aa29848361eb5b24f24d2af643fdeb9adfd.
DeltaFile
+59-46clang/test/OpenMP/target_map_messages.cpp
+58-0clang/test/OpenMP/target_ast_print.cpp
+40-4clang/lib/Parse/ParseOpenMP.cpp
+5-0clang/include/clang/Basic/DiagnosticParseKinds.td
+162-504 files

LLVM/project b62c45cclang/lib/Parse ParseOpenMP.cpp

Fix sanitize problem. (#90800)

Currently isMapType could return OpenMPMapModifierKind.

The change is to return OpenMPMapTypeKind only, if it is not MapType
Kind OMPC_MAP_unknown is returned.
DeltaFile
+6-2clang/lib/Parse/ParseOpenMP.cpp
+6-21 files

LLVM/project e4aedc2bolt/test/X86 bolt-address-translation-yaml.test

fix test

Created using spr 1.3.4
DeltaFile
+2-2bolt/test/X86/bolt-address-translation-yaml.test
+2-21 files

LLVM/project c7d15ce

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+0-00 files

LLVM/project d2af1eaclang/lib/Format UnwrappedLineParser.cpp

[clang-format][NFC] Minor improvement to parseLabel()
DeltaFile
+3-2clang/lib/Format/UnwrappedLineParser.cpp
+3-21 files

LLVM/project 6f6e255bolt/test/X86 bolt-address-translation-yaml.test, bolt/tools/bat-dump bat-dump.cpp

Updated test

Created using spr 1.3.4
DeltaFile
+27-7bolt/test/X86/bolt-address-translation-yaml.test
+17-6bolt/tools/bat-dump/bat-dump.cpp
+44-132 files