LLVM/project 2d10684libcxx/docs/ReleaseNotes 23.rst, libcxx/include/__algorithm ranges_fold.h

[libcxx] Optimize `ranges::fold_left_with_iter` for segmented iterators (#177853)

Part of https://github.com/llvm/llvm-project/issues/102817.

This patch attempts to optimize the performance of
`ranges::fold_left_with_iter` for segmented iterators.

- before

```
# | rng::fold_left(vector<int>)/8             2.78 ns         2.78 ns    241953718
# | rng::fold_left(vector<int>)/32            12.2 ns         12.2 ns     57579851
# | rng::fold_left(vector<int>)/50            19.2 ns         19.2 ns     36487764
# | rng::fold_left(vector<int>)/8192          3226 ns         3226 ns       216811
# | rng::fold_left(vector<int>)/1048576     441842 ns       441839 ns         1592
# | rng::fold_left(deque<int>)/8              2.83 ns         2.83 ns    243888678
# | rng::fold_left(deque<int>)/32             16.6 ns         16.6 ns     42297458
# | rng::fold_left(deque<int>)/50             22.3 ns         22.3 ns     31387998
# | rng::fold_left(deque<int>)/8192           2492 ns         2492 ns       281637

    [26 lines not shown]
DeltaFile
+12-4libcxx/include/__algorithm/ranges_fold.h
+7-0libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
+4-0libcxx/docs/ReleaseNotes/23.rst
+23-43 files

LLVM/project 823e3e0libc/src/__support/math exp.h expm1.h

[libc][math] Resolve size issues on baremetal and cleanup code. (#179707)

DeltaFile
+21-20libc/src/__support/math/exp.h
+17-18libc/src/__support/math/expm1.h
+16-18libc/src/__support/math/exp10.h
+24-9libc/src/__support/math/sincosf_utils.h
+14-13libc/src/__support/math/acosf.h
+12-14libc/src/__support/math/exp2.h
+104-92110 files not shown
+336-322116 files

LLVM/project 744827ellvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 pr179489.ll

[X86] Fixed truncated masked stores (#179853)

Fixes: #179489
DeltaFile
+57-0llvm/test/CodeGen/X86/pr179489.ll
+10-2llvm/lib/Target/X86/X86ISelLowering.cpp
+67-22 files

LLVM/project db07843clang/lib/CodeGen/TargetBuiltins AMDGPU.cpp

Comment
DeltaFile
+0-2clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+0-21 files

LLVM/project f0dcb2fmlir/include/mlir/IR BuiltinTypeInterfaces.td BuiltinTypeInterfaces.h, mlir/lib/IR BuiltinTypes.cpp BuiltinAttributes.cpp

getter / iterator via interface
DeltaFile
+153-0mlir/lib/IR/BuiltinTypes.cpp
+32-110mlir/lib/IR/BuiltinAttributes.cpp
+68-56mlir/include/mlir/IR/BuiltinTypeInterfaces.td
+53-0mlir/lib/IR/BuiltinTypeInterfaces.cpp
+20-13mlir/lib/IR/AsmPrinter.cpp
+16-0mlir/include/mlir/IR/BuiltinTypeInterfaces.h
+342-1794 files not shown
+365-19310 files

LLVM/project 3e240e0llvm/include/llvm/IR DebugInfo.h, llvm/lib/Analysis ModuleDebugInfoPrinter.cpp

[DebugInfo] Add macro tracking support to DebugInfoFinder

Extend DebugInfoFinder to collect and expose macro debug information
(DIMacro and DIMacroFile nodes).

Also update ModuleDebugInfoPrinter to display macro information including
the macro type, name, value, and source location.
DeltaFile
+44-0llvm/lib/IR/DebugInfo.cpp
+32-0llvm/test/DebugInfo/Generic/debuginfofinder-macros.ll
+25-0llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp
+8-0llvm/include/llvm/IR/DebugInfo.h
+109-04 files

LLVM/project 31a0195mlir/include/mlir/IR BuiltinTypeInterfaces.td BuiltinTypeInterfaces.h, mlir/lib/IR BuiltinTypes.cpp BuiltinAttributes.cpp

getter / iterator via interface
DeltaFile
+153-0mlir/lib/IR/BuiltinTypes.cpp
+32-110mlir/lib/IR/BuiltinAttributes.cpp
+68-56mlir/include/mlir/IR/BuiltinTypeInterfaces.td
+53-0mlir/lib/IR/BuiltinTypeInterfaces.cpp
+20-13mlir/lib/IR/AsmPrinter.cpp
+16-0mlir/include/mlir/IR/BuiltinTypeInterfaces.h
+342-1795 files not shown
+363-19011 files

LLVM/project 238ccd0llvm/include/llvm/ADT ScopeExit.h

[llvm][ADT] Mark scope_exit contructors [[nodiscard]] (#179720)

DeltaFile
+3-2llvm/include/llvm/ADT/ScopeExit.h
+3-21 files

LLVM/project df38810llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-non-volatile-accesses.ll promote-alloca-vgpr-ratio.ll

[AMDGPU][PromoteAlloca] Set !amdgpu.non.volatile if promotion fails

I thought about doing this in a separate pass, but this pass already has all the necessary analysis for this to be a trivial addition.
We can simply set `!amdgpu.non.volatile`  if all other attempts to promote the operation failed.
DeltaFile
+45-0llvm/test/CodeGen/AMDGPU/promote-alloca-non-volatile-accesses.ll
+23-18llvm/test/CodeGen/AMDGPU/promote-alloca-vgpr-ratio.ll
+29-2llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+2-2llvm/test/CodeGen/AMDGPU/promote-alloca-memset.ll
+99-224 files

LLVM/project 33cb864llvm/lib/Target/AMDGPU SIISelLowering.cpp

Rename to MOThreadPrivate
DeltaFile
+1-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1-11 files

LLVM/project 28c76cfllvm/docs AMDGPUUsage.rst, llvm/lib/Target/AMDGPU SIISelLowering.cpp

Pull metadata impl at the top of the patch stack
DeltaFile
+218-0llvm/test/CodeGen/AMDGPU/memory-legalizer-non-volatile.ll
+23-0llvm/docs/AMDGPUUsage.rst
+2-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+243-03 files

LLVM/project e619011llvm/test/CodeGen/AMDGPU pei-build-spill-offset-overflow-gfx950.mir

fix test
DeltaFile
+2-2llvm/test/CodeGen/AMDGPU/pei-build-spill-offset-overflow-gfx950.mir
+2-21 files

LLVM/project c493141llvm/test/Bitcode compatibility.ll, llvm/test/CodeGen/AMDGPU default-fp-mode.ll

Fix test merge
DeltaFile
+34-67llvm/test/Transforms/Attributor/nofpclass.ll
+9-9llvm/test/Transforms/Attributor/denormal-fp-math.ll
+8-8llvm/test/Bitcode/compatibility.ll
+5-5llvm/test/CodeGen/AMDGPU/default-fp-mode.ll
+2-2llvm/test/Transforms/InstSimplify/constant-fold-fp-denormal.ll
+0-3llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maxnum.ll
+58-9412 files not shown
+69-10818 files

LLVM/project 54eb7b8llvm/test/Transforms/Attributor nofpclass.ll

Fix test
DeltaFile
+10-10llvm/test/Transforms/Attributor/nofpclass.ll
+10-101 files

LLVM/project 99858b1llvm/test/Bitcode auto_upgrade_denormal_fp_math.ll

Clean up upgrade test
DeltaFile
+8-5llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+8-51 files

LLVM/project 38ce2c1clang/test/CodeGen denormalfpmode-f32.c, llvm/docs LangRef.rst

Address comments
DeltaFile
+49-48llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+12-6llvm/test/Assembler/invalid_denormal_fpenv.ll
+4-13mlir/test/Target/LLVMIR/Import/function-attributes.ll
+9-5llvm/lib/AsmParser/LLParser.cpp
+8-4llvm/docs/LangRef.rst
+6-6clang/test/CodeGen/denormalfpmode-f32.c
+88-826 files not shown
+103-9612 files

LLVM/project a204d2dllvm/include/llvm-c Core.h, llvm/lib/IR Core.cpp

Add C API to set this
DeltaFile
+34-0llvm/include/llvm-c/Core.h
+30-0llvm/unittests/IR/AttributesTest.cpp
+16-0llvm/lib/IR/Core.cpp
+80-03 files

LLVM/project 99ca83cmlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td

Commented out code
DeltaFile
+0-3mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+0-31 files

LLVM/project 21477f0llvm/lib/AsmParser LLParser.cpp, mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td

Address comments
DeltaFile
+2-4llvm/lib/AsmParser/LLParser.cpp
+0-3mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+2-72 files

LLVM/project f2d9926llvm/docs LangRef.rst

LangRef whitespace
DeltaFile
+2-2llvm/docs/LangRef.rst
+2-21 files

LLVM/project b95dc12llvm/test/Assembler denormal_fpenv.ll, llvm/test/Bitcode compatibility.ll auto_upgrade_denormal_fp_math.ll

bar syntax and only print input if different from output.

Breaks update_test_checks Function Attrs comment check in the rare
case where the modes mismatch.
DeltaFile
+72-72llvm/test/Bitcode/compatibility.ll
+70-72llvm/test/Assembler/denormal_fpenv.ll
+57-57llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
+48-48llvm/test/Transforms/InstSimplify/canonicalize.ll
+42-42llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+40-44llvm/test/Transforms/Attributor/denormal-fp-math.ll
+329-335156 files not shown
+861-848162 files

LLVM/project b8110ffllvm/docs LangRef.rst

Documentation examples
DeltaFile
+6-0llvm/docs/LangRef.rst
+6-01 files

LLVM/project 581360fllvm/lib/AsmParser LLParser.cpp, llvm/lib/Support FloatingPointMode.cpp

XXX - syntax change
DeltaFile
+14-4llvm/lib/AsmParser/LLParser.cpp
+5-5llvm/test/Assembler/denormal_fpenv.ll
+1-1llvm/lib/Support/FloatingPointMode.cpp
+20-103 files

LLVM/project 32c3b38llvm/docs LangRef.rst

Fix links in documentation
DeltaFile
+7-6llvm/docs/LangRef.rst
+7-61 files

LLVM/project 1f908d0llvm/include/llvm/IR Attributes.h, llvm/lib/IR Attributes.cpp

remove raw
DeltaFile
+0-8llvm/lib/IR/Attributes.cpp
+0-6llvm/include/llvm/IR/Attributes.h
+0-142 files

LLVM/project 5c6dd77llvm/lib/AsmParser LLParser.cpp, llvm/lib/Support FloatingPointMode.cpp

Revert "XXX - syntax change"

This reverts commit 1336cd4e7d2754ea5eddf2a43c1f66c615ea40ff.
DeltaFile
+4-14llvm/lib/AsmParser/LLParser.cpp
+5-5llvm/test/Assembler/denormal_fpenv.ll
+1-1llvm/lib/Support/FloatingPointMode.cpp
+10-203 files

LLVM/project 4646085llvm/lib/AsmParser LLParser.cpp, llvm/test/Assembler denormal_fpenv.ll invalid_denormal_fpenv.ll

IR: Promote "denormal-fp-math" to a first class attribute

Convert "denormal-fp-math" and "denormal-fp-math-f32" into a first
class denormal_fpenv attribute. Previously the query for the effective
deormal mode involved two string attribute queries with parsing. I'm
introducing more uses of this, so it makes sense to convert this
to a more efficient encoding. The old representation was also awkward
since it was split across two separate attributes. The new encoding
just stores the default and float modes as bitfields, largely avoiding
the need to consider if the other mode is set.

The syntax in the common cases looks like this:
  `denormal_fpenv(preservesign,preservesign)`
  `denormal_fpenv(float: preservesign,preservesign)`
  `denormal_fpenv(dynamic,dynamic float: preservesign,preservesign)`

I wasn't sure about reusing the float type name instead of adding a
new keyword. It's parsed as a type but only accepts float. I'm also
debating switching the name to subnormal to match the current

    [18 lines not shown]
DeltaFile
+374-0llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+297-0llvm/test/Assembler/denormal_fpenv.ll
+228-2llvm/test/Bitcode/compatibility.ll
+187-0llvm/test/Assembler/invalid_denormal_fpenv.ll
+57-57llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
+101-0llvm/lib/AsmParser/LLParser.cpp
+1,244-59227 files not shown
+2,410-973233 files

LLVM/project 92c26bbllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/AArch64 fold-equivalent-reduction-cmp.ll

[VectorCombine] Fix crash in foldEquivalentReductionCmp on i1 vector (#179917)

DeltaFile
+74-0llvm/test/Transforms/VectorCombine/AArch64/fold-equivalent-reduction-cmp.ll
+8-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+82-02 files

LLVM/project bbc4a21clang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGen ubsan-function-sugared.cpp ubsan-function.cpp

[ARM][clang] Add some build attributes support (#161106)

"unsafe-fp-math" and related function attribites will be removed in
future, let frontend generate some hints for ARM backend to generate ABI
tags.
DeltaFile
+31-0clang/lib/CodeGen/CodeGenModule.cpp
+24-0clang/test/CodeGen/ARM/build-attributes.c
+3-3clang/test/CodeGen/ubsan-function-sugared.cpp
+3-3clang/test/CodeGen/ubsan-function.cpp
+61-64 files

LLVM/project 195a07dflang/lib/Lower/OpenMP Utils.cpp OpenMP.cpp, flang/lib/Optimizer/OpenMP DoConcurrentConversion.cpp

[flang][OpenMP][DoConcurrent] Emit declare mapper for records

Extends `do concurrent` device support by emitting compiler-generated
declare mapper ops for live-ins whose types are record types and have
allocatable members.
DeltaFile
+0-107flang/lib/Lower/OpenMP/Utils.cpp
+97-0flang/lib/Utils/OpenMP.cpp
+36-1flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp
+28-0flang/test/Transforms/DoConcurrent/implicit_mapper.f90
+14-1flang/lib/Lower/OpenMP/OpenMP.cpp
+10-2flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+185-1112 files not shown
+194-1158 files