LLVM/project ff03f23llvm/lib/Target/WebAssembly WebAssemblyCleanCodeAfterTrap.cpp WebAssemblyTargetMachine.cpp, llvm/test/CodeGen/WebAssembly unreachable.ll

[WebAssembly] remove instruction after builtin trap (#90207)

`llvm.trap` will be convert as `unreachable` which is terminator.
Instruction after terminator will cause validation failed.
This PR introduces a pass to clean instruction after terminator.
Fixes: #68770.
DeltaFile
+80-0llvm/lib/Target/WebAssembly/WebAssemblyCleanCodeAfterTrap.cpp
+6-6llvm/test/MC/WebAssembly/global-ctor-dtor.ll
+9-2llvm/test/CodeGen/WebAssembly/unreachable.ll
+4-0llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+2-0llvm/lib/Target/WebAssembly/WebAssembly.h
+1-0llvm/lib/Target/WebAssembly/CMakeLists.txt
+102-86 files

LLVM/project 7b5b521llvm/lib/Transforms/Scalar DFAJumpThreading.cpp

[DFAJumpThreading][NFC] Use const reference as range variable (#90342)

Fixes #90286
DeltaFile
+1-1llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
+1-11 files

LLVM/project b5e8555llvm/lib/Transforms/Scalar MemCpyOptimizer.cpp

[MemCpyOpt][NFC] Format codebase (#90225)

This patch automatically formats the code.
DeltaFile
+62-57llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+62-571 files

LLVM/project 9e30c96llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64ISelLowering.h, llvm/test/CodeGen/AArch64 fpmode.ll

[AArch64] Lowering of fpmode intrinsics in DAG (#80611)

LLVM intrinsics `get_fpmode`, `set_fpmode` and `reset_fpmode` operate
control modes, the bits of FP environment that affect FP operations. On
AArch64 these bits are in FPCR. The lowering implemented to produce code
close to that of GLIBC.
DeltaFile
+68-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+19-24llvm/test/CodeGen/AArch64/fpmode.ll
+6-0llvm/lib/Target/AArch64/AArch64ISelLowering.h
+93-243 files

LLVM/project b2c9f7dclang-tools-extra/clang-tidy/readability AvoidReturnWithVoidValueCheck.cpp

[clang-tidy] Ensure nullable variable is not accessed without validity test (#90173)

DeltaFile
+5-2clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp
+5-21 files

LLVM/project c229f76llvm/lib/Transforms/Scalar DFAJumpThreading.cpp

[DFAJumpThreading] Avoid exploring the paths that never come back (#85505)

This patch does:
- Preserve loop info when unfolding selects.
- Reduce the search space for loop paths.
DeltaFile
+33-9llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
+33-91 files

LLVM/project 7152194llvm/lib/Target/Mips Mips32r6InstrInfo.td MipsISelLowering.cpp, llvm/test/CodeGen/Mips mipsr6-minmaxnum.ll

[MIPS] match llvm.{min,max}num with {min,max}.fmt for R6 (#89021)

- The behavior is similar to UCOMISD on x86, which is also used to
compare two fp values, specifically on handling of NaNs.
- Update related tests regarding this change.
- The further goal is to implement `llvm.minimum` and `llvm.maximum`
intrinsics for MIPS R6 and Pre-R6.

Part of https://github.com/llvm/llvm-project/issues/64207
DeltaFile
+301-186llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
+69-0llvm/test/CodeGen/Mips/mipsr6-minmaxnum.ll
+16-0llvm/lib/Target/Mips/Mips32r6InstrInfo.td
+9-0llvm/lib/Target/Mips/MipsISelLowering.cpp
+395-1864 files

LLVM/project 8400324libcxx/include/__algorithm find.h ranges_find.h, libcxx/include/__string char_traits.h

[libc++][NFC] Rename __find_impl to __find (#90163)

For most algorithms we've just added underscores to the detail function.
This changes `std::find` to match that pattern.
DeltaFile
+9-11libcxx/include/__algorithm/find.h
+2-2libcxx/include/__algorithm/ranges_find.h
+2-2libcxx/include/__string/char_traits.h
+13-153 files

LLVM/project 9bb84cellvm/include/llvm/ADT StringRef.h, llvm/unittests/ADT StringRefTest.cpp

[ADT] Add StringRef::{starts,ends}_with(char) (#90311)

This patch adds to StringRef the equivalent of
std::string_view::{starts,ends}_with(char) in C++20.
DeltaFile
+6-0llvm/include/llvm/ADT/StringRef.h
+4-0llvm/unittests/ADT/StringRefTest.cpp
+10-02 files

LLVM/project 7aa6896llvm/include/llvm/ProfileData MemProf.h MemProfReader.h, llvm/lib/ProfileData InstrProfReader.cpp

Revert "[memprof] Introduce FrameIdConverter and CallStackIdConverter" (#90318)

Reverts llvm/llvm-project#90307

Breaks bots https://lab.llvm.org/buildbot/#/builders/5/builds/42943
DeltaFile
+48-14llvm/unittests/ProfileData/InstrProfTest.cpp
+0-58llvm/include/llvm/ProfileData/MemProf.h
+31-13llvm/lib/ProfileData/InstrProfReader.cpp
+28-6llvm/unittests/ProfileData/MemProfTest.cpp
+9-5llvm/include/llvm/ProfileData/MemProfReader.h
+116-965 files

LLVM/project bc349cellvm/include/llvm/CodeGen/GlobalISel Utils.h CombinerHelper.h, llvm/include/llvm/Target/GlobalISel Combine.td

[GlobalIsel] combine insert vector element (#89363)

preliminary steps
poison symbols
DeltaFile
+110-0llvm/test/CodeGen/AArch64/GlobalISel/combine-insert-vec-elt.mir
+83-0llvm/lib/CodeGen/GlobalISel/Utils.cpp
+31-2llvm/include/llvm/Target/GlobalISel/Combine.td
+26-0llvm/include/llvm/CodeGen/GlobalISel/Utils.h
+24-1llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
+3-0llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
+277-36 files

LLVM/project 9145514mlir/lib/Dialect/Arith/IR ArithCanonicalization.td, mlir/test/Dialect/Arith canonicalize.mlir

[mlir][arith] fix canonicalization of mulsi_extended for i1 (#90150)

There is the `MulSIExtendedRHSOne` canonicalization for
arith.mulsi_extended that is defined as follows: `mulsi_extended(x, 1)
-> [x, extsi(cmpi slt, x, 0)]`. In the implementation of this, there is
a `IsScalarOrSplatOne` constraint for the second argument. However, this
constraint does not correctly handle situation when multiplying i1
values. Therefore, an additional constraint has been added which checks
the second argument for strict positivity.

fix #88732
DeltaFile
+22-0mlir/test/Dialect/Arith/canonicalize.mlir
+1-0mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
+23-02 files

LLVM/project 85a9528libcxx/include/__utility no_destroy.h, libcxx/test/libcxx/transitive_includes cxx20.csv

[libcxx] Remove empty ~__no_destroy (#89882)

Primary motivation: is that after #84651 msan will
complain if fields accessed after ~__no_destroy.

My understanding of the https://eel.is/c++draft/basic.life#10
Static object with trivial destruction has program lifetime.
Static object with empty destuctor has implicit lifetime, and
accessing the object after lifetime is UB.

It was UB before #84651, it's just msan ignored union members.

Existing code with unions uses empty destructor, so accessing after
the main() can cause UB.

"placement new" version can have trivial destructor, so there is no end
of lifetime.

Secondary motivation: empty destructor will register __cxa_atexit with

    [12 lines not shown]
DeltaFile
+31-0libcxx/test/libcxx/utilities/no_destroy.pass.cpp
+11-20libcxx/include/__utility/no_destroy.h
+1-0libcxx/test/libcxx/transitive_includes/cxx20.csv
+43-203 files

LLVM/project 90a959autils/bazel/llvm-project-overlay/llvm BUILD.bazel, utils/bazel/llvm-project-overlay/llvm/unittests BUILD.bazel

[Bazel] Add llvm-mca unittests (#90309)

This patch refactors the llvm-mca rules slightly so that the source
files within the tool source directory but not the library source
directory are included in a separate cc_library. This patch also adds
the llvm-mca unittests.
DeltaFile
+19-8utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+26-0utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+45-82 files

LLVM/project 3385616llvm/utils/gn/secondary/llvm/lib/Target/Hexagon BUILD.gn

[gn build] Port cb508a0032eb
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/BUILD.gn
+1-01 files

LLVM/project cb508a0llvm/lib/Target/Hexagon HexagonCopyHoisting.cpp HexagonTargetMachine.cpp, llvm/test/CodeGen/Hexagon hexagon-copy-hoisting.mir

[Hexagon] Add Hexagon Copy Hoisting pass (#89313)

Adds the HexagonCopyHoisting pass, which moves a common copy instruction
into a basic block if it is present in all successor basic blocks.

---------

Co-authored-by: Jyotsna Verma <jverma at quicinc.com>
DeltaFile
+272-0llvm/lib/Target/Hexagon/HexagonCopyHoisting.cpp
+101-84llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
+53-0llvm/test/CodeGen/Hexagon/hexagon-copy-hoisting.mir
+1-0llvm/lib/Target/Hexagon/CMakeLists.txt
+427-844 files

LLVM/project 315dc4bclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format FormatTest.cpp

[clang-format] Add a space after a word token only if required (#90161)

Fixes #78166.
DeltaFile
+7-19clang/lib/Format/TokenAnnotator.cpp
+17-8clang/unittests/Format/FormatTest.cpp
+24-272 files

LLVM/project e04df69llvm/include/llvm/ProfileData MemProf.h MemProfReader.h, llvm/lib/ProfileData InstrProfReader.cpp

[memprof] Introduce FrameIdConverter and CallStackIdConverter (#90307)

Currently, we convert FrameId to Frame and CallStackId to a call stack
at several places.  This patch unifies those into function objects --
FrameIdConverter and CallStackIdConverter.

The existing implementation of CallStackIdConverter, being removed in
this patch, handles both FrameId and CallStackId conversions.  This
patch splits it into two phases for flexibility (but make them
composable) because some places only require the FrameId conversion.
DeltaFile
+14-48llvm/unittests/ProfileData/InstrProfTest.cpp
+58-0llvm/include/llvm/ProfileData/MemProf.h
+13-31llvm/lib/ProfileData/InstrProfReader.cpp
+6-28llvm/unittests/ProfileData/MemProfTest.cpp
+5-9llvm/include/llvm/ProfileData/MemProfReader.h
+96-1165 files

LLVM/project d6bf04fllvm/lib/LTO LTO.cpp

[LTO] Remove extraneous ArrayRef (NFC) (#90306)

We don't need to explicitly create these instances of ArrayRef because
Hasher::update takes ArrayRef, and ArrayRef can be implicitly
constructed from C arrays.
DeltaFile
+2-2llvm/lib/LTO/LTO.cpp
+2-21 files

LLVM/project de375fbclang/lib/Driver/ToolChains Gnu.cpp, lld/ELF/Arch RISCV.cpp

[RISCV] Move OrderedExtensionMap typedef to RISCVISAUtils.h. NFC
DeltaFile
+30-38llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+5-9llvm/include/llvm/TargetParser/RISCVISAInfo.h
+7-0llvm/include/llvm/Support/RISCVISAUtils.h
+1-3llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
+1-3clang/lib/Driver/ToolChains/Gnu.cpp
+2-2lld/ELF/Arch/RISCV.cpp
+46-551 files not shown
+47-567 files

LLVM/project f93e4eelibcxx/test/libcxx/transitive_includes cxx20.csv

add "chrono new" into cxx20.csv
DeltaFile
+1-0libcxx/test/libcxx/transitive_includes/cxx20.csv
+1-01 files

LLVM/project 2e5035aclang/lib/Driver/ToolChains Darwin.cpp, clang/test/AST ast-dump-stmt-json.cpp

Revert "[clang] Enable sized deallocation by default in C++14 onwards (#83774)" (#90299)

https://lab.llvm.org/buildbot/#/builders/168/builds/20063 (should be
fixed with #90292)

More details in #83774

This reverts commit cf5a8b489464d09dfdd7a48ce7c8b41d3c9bf819.
DeltaFile
+3-241clang/test/AST/ast-dump-stmt-json.cpp
+0-59clang/tools/clang-repl/CMakeLists.txt
+0-59clang/unittests/Interpreter/CMakeLists.txt
+3-55clang/lib/Driver/ToolChains/Darwin.cpp
+10-10clang/test/Lexer/cxx-features.cpp
+8-9clang/test/CXX/drs/cwg292.cpp
+24-43336 files not shown
+113-55542 files

LLVM/project 6dbaa89clang/lib/Format ContinuationIndenter.cpp, clang/unittests/Format FormatTestComments.cpp

[clang-format] Fix a regression in ContinuationIndenter (#88414)

Commit d06b92391513 caused a regression that breaks after a block
comment adjacent to a function paramter that follows.

Fixes #86573.

(cherry picked from commit d61edecbfd099143e0e2617505fec921524938f8)
DeltaFile
+7-1clang/lib/Format/ContinuationIndenter.cpp
+4-0clang/unittests/Format/FormatTestComments.cpp
+11-12 files

LLVM/project 51ff7f3clang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

[clang-format] Fix a regression in annotating TrailingReturnArrow (#86624)

Fixes #86559.

(cherry picked from commit a7f4576ff4e296ff42b16d9d91aadf82b5ea325c)
DeltaFile
+4-0clang/unittests/Format/TokenAnnotatorTest.cpp
+2-0clang/lib/Format/TokenAnnotator.cpp
+6-02 files

LLVM/project b4c0a3fclang/lib/Driver/ToolChains Darwin.cpp, clang/test/AST ast-dump-stmt-json.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+3-241clang/test/AST/ast-dump-stmt-json.cpp
+0-59clang/unittests/Interpreter/CMakeLists.txt
+0-59clang/tools/clang-repl/CMakeLists.txt
+3-55clang/lib/Driver/ToolChains/Darwin.cpp
+10-10clang/test/Lexer/cxx-features.cpp
+8-9clang/test/CXX/drs/cwg292.cpp
+24-43336 files not shown
+113-55542 files

LLVM/project 9487faelibcxx/include/__utility no_destroy.h

Update no_destroy.h
DeltaFile
+1-0libcxx/include/__utility/no_destroy.h
+1-01 files

LLVM/project 3ec858bbolt/lib/Rewrite RewriteInstance.cpp

[BOLT] Refactor patchELFPHDRTable() (#90290)

Mostly NFC accept for one assertion that was converted into an error.
DeltaFile
+56-49bolt/lib/Rewrite/RewriteInstance.cpp
+56-491 files

LLVM/project ad2816ellvm/tools/llvm-exegesis/lib SubprocessMemory.cpp

[llvm-exegesis] Use const reference for range variable

In the SubprocessMemory destructor, I was using a normal std::string to
hold the name of the current shared memory name, but a const reference
works just as well in this situation while having better performance
characteristics.

Fixes #90289
DeltaFile
+1-1llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp
+1-11 files

LLVM/project 5569c21llvm/lib/Target/RISCV/Disassembler RISCVDisassembler.cpp

[RISCV] Split RISCVDisassembler::getInstruction into a 16-bit and 32-bit version. (#90254)

This reduces nesting of the common 32-bit case and makes it easier to
add longer instruction lengths in the future.
DeltaFile
+119-99llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+119-991 files

LLVM/project 176ab5ellvm/tools/llvm-lto2 llvm-lto2.cpp

[llvm-lto2] Simplify SymbolResolutions loop and avoid expensive std::string copy. NFC
DeltaFile
+3-4llvm/tools/llvm-lto2/llvm-lto2.cpp
+3-41 files