[all-commits] [llvm/llvm-project] c736ca: [clang-tidy] Ensure functions are anchored in the ...
Amir Ayupov via All-commits
all-commits at lists.llvm.org
Thu Jul 18 16:21:14 PDT 2024
Branch: refs/heads/users/aaupov/spr/bolt-expose-pseudo-probe-function-checksum
Home: https://github.com/llvm/llvm-project
Commit: c736ca85c38ce9c30a2286382d8023604f34f9e8
https://github.com/llvm/llvm-project/commit/c736ca85c38ce9c30a2286382d8023604f34f9e8
Author: matthew-f <551862+matthew-f at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
Log Message:
-----------
[clang-tidy] Ensure functions are anchored in the global namespace (#99084)
The regular expressions match functions that aren't anchored in the
global namespace. For example `::connect` matches `QObject::connect`
This change is to remove these false positives
Commit: 86ef699060394c82dcda7e86ff70d8cabeabcc2a
https://github.com/llvm/llvm-project/commit/86ef699060394c82dcda7e86ff70d8cabeabcc2a
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M lldb/source/Core/DynamicLoader.cpp
M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
M lldb/source/Target/Process.cpp
Log Message:
-----------
[lldb] progressive progress reporting for darwin kernel/firmware (#98845)
When doing firmware/kernel debugging, it is frequent that binaries and
debug info need to be retrieved / downloaded, and the lack of progress
reports made for a poor experience, with lldb seemingly hung while
downloading things over the network. This PR adds progress reports to
the critical sites for these use cases.
Commit: c7b08ac01fa98db7c9ec7c3bbe9784c2d20f91e9
https://github.com/llvm/llvm-project/commit/c7b08ac01fa98db7c9ec7c3bbe9784c2d20f91e9
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M lld/test/MachO/implicit-and-allowable-clients.test
Log Message:
-----------
[lld-macho][test] Require "shell" feature for usage of `ln -s` (#99355)
The use of `ln -s` is not guaranteed to be supported on Windows.
Commit: 6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
https://github.com/llvm/llvm-project/commit/6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
M mlir/test/Conversion/ConvertToSPIRV/index.mlir
M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/lib/Conversion/CMakeLists.txt
A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
M mlir/tools/mlir-opt/CMakeLists.txt
M mlir/tools/mlir-opt/mlir-opt.cpp
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[mlir][spirv] Implement vector type legalization for function signatures (#98337)
### Description
This PR implements a minimal version of function signature conversion to
unroll vectors into 1D and with a size supported by SPIR-V (2, 3 or 4
depending on the original dimension). This PR also includes new unit
tests that only check for function signature conversion.
### Future Plans
- Check for capabilities that support vectors of size 8 or 16.
- Set up `OneToNTypeConversion` and `DialectConversion` to replace the
current implementation that uses `GreedyPatternRewriteDriver`.
- Introduce other vector unrolling patterns to cancel out the
`vector.insert_strided_slice` and `vector.extract_strided_slice` ops and
fully legalize the vector types in the function body.
- Handle `func::CallOp` and declarations.
- Restructure the code in `SPIRVConversion.cpp`.
- Create test passes for testing sets of patterns in isolation.
- Optimize the way original shape is splitted into target shapes, e.g.
`vector<5xi32>` can be splitted into `vector<4xi32>` and
`vector<1xi32>`.
---------
Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
Commit: d748dab6010dfd4ddf63cd59c0a89487824aa038
https://github.com/llvm/llvm-project/commit/d748dab6010dfd4ddf63cd59c0a89487824aa038
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port #98653 (#99356)
Commit: 963e25ae60f43ea77b686bd506171ee7482f044a
https://github.com/llvm/llvm-project/commit/963e25ae60f43ea77b686bd506171ee7482f044a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/add_pointer.h
Log Message:
-----------
[libc++][NFC] Remove a few unused includes (#98808)
Commit: 81955da03bd4731b668fee401b3d6aca8b7d4da6
https://github.com/llvm/llvm-project/commit/81955da03bd4731b668fee401b3d6aca8b7d4da6
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/benchmarks/CMakeLists.txt
M libcxx/benchmarks/lit.cfg.py
M libcxx/docs/BuildingLibcxx.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/TestingLibcxx.rst
Log Message:
-----------
[libc++] Remove special handling of the native C++ library in benchmarks (#98529)
There were some ad-hoc settings that allowed running the benchmarks
against the native C++ Standard Library. While this ability is very
useful, it was done before the test suite was quite independent of
libc++ itself. Instead, it is better to streamline running the
benchmarks on the native standard library by using a custom Lit
configuration like we do with the test suite.
A follow-up patch will rework the integration of benchmarks with the Lit
configuration used for the test suite so that we can reuse the same
mechanism for both, making it easy to benchmark the native standard
library.
It will also make benchmarks way more user-friendly to run since we will
be able to run them like we run individual tests, which is a pain point
right now.
Commit: 18cdfa72e046a40deeee4372ee98602fd1a65a94
https://github.com/llvm/llvm-project/commit/18cdfa72e046a40deeee4372ee98602fd1a65a94
Author: Lei Wang <wlei at fb.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/lib/ProfileData/SampleProf.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
Log Message:
-----------
[SampleFDO] Stale profile call-graph matching (#95135)
Profile staleness could be due to function renaming. Given that sample
profile loader relies on exact string matching, a trivial change in the
function signature( such as `int foo()` --> `long foo()` ) can make the
mangled name different, the function profile(including all nested
children profile) becomes unavailable.
This patch introduces stale profile call-graph level matching, targeting
at identifying the trivial function renaming and reusing the old
function profile.
Some noteworthy details:
1. Extend the LCS based CFG level matching to identify new function.
- Extend to match function and profile have different name instead of
the exact function name matching. This leverages LCS, i.e during the
finding of callsite anchor matching, when two function name are
different, try matching the functions instead of return.
- In LCS, the equal function check is replaced by
`functionMatchesProfile`.
- Only try matching functions that are new functions(neither appears on
each side). This reduces the matching scope as we don't need to match
the originally matched function.
2. Determine the matching by call-site anchor similarity check.
- A new function `functionMatchesProfile(IRFunc, ProfFunc)` is used to
check the renaming for the possible <IRFunc, ProfFunc> pair, use the
LCS(diff) matching to compute the equal set and we define: `Similarity =
|equalSet * 2| / (|A| + |B|)`. The profile name is marked as renamed if
the similarity is above a
threshold(`-func-profile-similarity-threshold`)
3. Process the matching in top-down function order
- when a caller's is done matching, the new function names are saved for
later use, using top-down order will maximize the reused results.
- `ProfileNameToFuncMap` is used to save or cache the matching result.
4. Update the original profile at the end using `ProfileNameToFuncMap`.
5. Added a new switch --salvage-unused-profile to control this, default
is false.
Verified on one Meta's internal big service, confirmed 90%+ of the found
renaming pair is good. (There could be incorrect renaming pair if the
num of the anchor is small, but checked that those functions are simple
cold function)
Commit: 0bb68b55715487447ffceaa1ab59f7a0bc8c7979
https://github.com/llvm/llvm-project/commit/0bb68b55715487447ffceaa1ab59f7a0bc8c7979
Author: Doug Wyatt <doug at sonosphere.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/Type.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaOverload.cpp
Log Message:
-----------
Performance optimizations for function effects (nonblocking attribute etc.) (#96844)
- Put new FunctionProtoType trailing objects last.
- Inline FunctionEffectsRef::get()
- Manually inline FunctionEffectsRef::Profile().
---------
Co-authored-by: Doug Wyatt <dwyatt at apple.com>
Commit: 0778f5c1f11da599b71d6c9f5990fd880ff7cb46
https://github.com/llvm/llvm-project/commit/0778f5c1f11da599b71d6c9f5990fd880ff7cb46
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M lld/ELF/LinkerScript.h
M lld/ELF/Relocations.cpp
M lld/ELF/Relocations.h
M lld/ELF/ScriptParser.cpp
M lld/ELF/Writer.cpp
M lld/docs/ReleaseNotes.rst
A lld/test/ELF/linkerscript/nocrossrefs.test
Log Message:
-----------
[ELF] Support NOCROSSREFS and NOCROSSERFS_TO
Implement the two commands described by
https://sourceware.org/binutils/docs/ld/Miscellaneous-Commands.html
After `outputSections` is available, check each output section described
by at least one `NOCROSSREFS`/`NOCROSSERFS_TO` command. For each checked
output section, scan relocations from its input sections.
This step is slow, therefore utilize `parallelForEach(isd->sections, ...)`.
To support non SHF_ALLOC sections, `InputSectionBase::relocations`
(empty) cannot be used. In addition, we may explore eliminating this
member to speed up relocation scanning.
Some parse code is adapted from #95714.
Close #41825
Pull Request: https://github.com/llvm/llvm-project/pull/98773
Commit: 93d38d7f08864397f1e751c8cecde5ea302ecced
https://github.com/llvm/llvm-project/commit/93d38d7f08864397f1e751c8cecde5ea302ecced
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp
Log Message:
-----------
[lldb][test] Fix simulator test for std::unique_ptr (#99357)
libcxx-simulators/unique_ptr/main.cpp uses __builtin_printf, that
maps to printf on Windows. Include stdio.h to avoid linker errors
on Windows.
See https://lab.llvm.org/buildbot/#/builders/141/builds/853
Commit: 858147d0b88b50f6829834a059d95924ea8e5d4d
https://github.com/llvm/llvm-project/commit/858147d0b88b50f6829834a059d95924ea8e5d4d
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Include new/delete in baremetal targets (#99279)
These don't include libcxxabi yet so we need new/delete in libcxx.
Commit: e3b8d3649789a59e54a32998780fb64d0663284c
https://github.com/llvm/llvm-project/commit/e3b8d3649789a59e54a32998780fb64d0663284c
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Target/ARC/ARCISelLowering.cpp
M llvm/lib/Target/CSKY/CSKYISelLowering.cpp
Log Message:
-----------
[ARC,CSKY] Update getMemcpy after #98969
Commit: 321a0c00425adeab84bce657cac85ae4634df910
https://github.com/llvm/llvm-project/commit/321a0c00425adeab84bce657cac85ae4634df910
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/Stmt.h
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/test/CodeGen/pragma-cx-limited-range.c
Log Message:
-----------
The pragma STDC CX_LIMITED_RANGE ON should have precedence. (#98520)
The `pragma STDC CX_LIMITED_RANGE` should have precedence over the
command line `-fcomplex-arithmetic`.
Commit: ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
https://github.com/llvm/llvm-project/commit/ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
Author: vporpo <vporpodas at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/lib/SandboxIR/SandboxIR.cpp
Log Message:
-----------
[SandboxIR][NFC] Add some comments (#99359)
Commit: 093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
https://github.com/llvm/llvm-project/commit/093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
Log Message:
-----------
[instcombine] Improve coverage for reductions of i1 types
In advance of an upcoming change to generalize some of this to scalable
vector types.
Commit: ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
https://github.com/llvm/llvm-project/commit/ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Log Message:
-----------
[ClangLinkerWrapper] Fix intermediate file naming for multi-arch compilation (#99325)
When save-temps is enabled and the given offload-archs differ
only in target features with the same arch, the intermediate
postlink.bc and postopt.bc files were getting overwritten. This
fix, suffixes the intermediate file names with the complete
TargetID.
E.g. `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postlink.bc`
and `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postopt.bc`
Commit: 130ef7375493b560df08546666338233bacf95e5
https://github.com/llvm/llvm-project/commit/130ef7375493b560df08546666338233bacf95e5
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Install libc++ for baremetal targets (#99372)
We already build the library and want to install it also.
Commit: 194f98c2210bf40d0490613fddbf83e04c18ad9b
https://github.com/llvm/llvm-project/commit/194f98c2210bf40d0490613fddbf83e04c18ad9b
Author: Xing Xue <xingxue at outlook.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libcxx/cmake/caches/AIX.cmake
M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
M libcxx/cmake/caches/s390x-ibm-zos.cmake
M libcxx/include/__configuration/abi.h
M libcxx/include/ios
A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp
Log Message:
-----------
[libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (#89305)
`libcxx std::basic_ios` uses `WEOF` to indicate the `fill` value is
uninitialized. On some platforms (e.g AIX and zOS in 64-bit mode)
`wchar_t` is 4 bytes `unsigned` and `wint_t` is also 4 bytes which means
`WEOF` cannot be distinguished from `WCHAR_MAX` by
`std::char_traits<wchar_t>::eq_int_type()`, meaning this valid character
value cannot be stored on affected platforms (as the implementation
triggers reinitialization to `widen(’ ’)`).
This patch introduces a new helper class `_FillHelper` uses a boolean
variable to indicate whether the fill character has been initialized,
which is used by default in libcxx ABI version 2. The patch does not
affect ABI version 1 except for targets AIX in 32- and 64-bit and z/OS
in 64-bit (so that the layout of the implementation is compatible with
the current IBM system provided libc++)
This is a continuation of Phabricator patch
[D124555](https://reviews.llvm.org/D124555). This patch uses a modified
version of the [approach](https://reviews.llvm.org/D124555#3566746)
suggested by @ldionne .
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: David Tenty <daltenty.dev at gmail.com>
Commit: da5264efa3ae50d61a4fc584f8c4f60a51539a96
https://github.com/llvm/llvm-project/commit/da5264efa3ae50d61a4fc584f8c4f60a51539a96
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M utils/bazel/README.md
Log Message:
-----------
[bazel][docs] Update build documentation (#99339)
This PR updates the Quick Start section to provide more detailed build
instructions.
Commit: 21e6777957457451196084cd48ebc42bce9619f0
https://github.com/llvm/llvm-project/commit/21e6777957457451196084cd48ebc42bce9619f0
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M mlir/include/mlir/CAPI/Rewrite.h
Log Message:
-----------
[mlir][NFC] Add rewrite header to fix standalone header compile (#99370)
This uses `MlirRewriterBase` from from `mlir-c/Rewrite.h` without
including it.
Commit: ff0821583eab1651ff126bbf4f881e6163b67435
https://github.com/llvm/llvm-project/commit/ff0821583eab1651ff126bbf4f881e6163b67435
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
Log Message:
-----------
[msan] Precommit MSan Arm NEON vst tests (#98247)
These tests show that MSan currently does not handle vst (or vld)
correctly.
Commit: 51122fb4469b56b207bcae0c39182f961e4276fd
https://github.com/llvm/llvm-project/commit/51122fb4469b56b207bcae0c39182f961e4276fd
Author: Vladislav Khmelevsky <och95 at yandex.ru>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT][NFC] Fix build (#99361)
On clang 14 the build is failing with:
reference to local binding 'ParentName' declared in enclosing function
'llvm::bolt::RewriteInstance::registerFragments'
Commit: a51f343b433120e45f186e5507e8a522d4d7192f
https://github.com/llvm/llvm-project/commit/a51f343b433120e45f186e5507e8a522d4d7192f
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
A llvm/test/CodeGen/X86/udiv-exact.ll
Log Message:
-----------
[CodeGen] Emit more efficient magic numbers for exact udivs (#87161)
Have simpler lowering for exact udivs in both SelectionDAG and
GlobalISel.
The algorithm is the same between unsigned exact divs and signed divs
save for arithmetic vs logical shift for even divisors, according to
Hacker's Delight, 2nd Edition, page 242.
Commit: d85f1054fbb04c5299848bf81aa350442f9a56c7
https://github.com/llvm/llvm-project/commit/d85f1054fbb04c5299848bf81aa350442f9a56c7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
Log Message:
-----------
[RISCV] Teach fillUpExtensionSupportForSplat to handle nxvXi64 VMV_V_X_VL on RV32. (#99251)
A nxvXi64 VMV_V_X_VL on RV32 sign extends its 32 bit input to 64 bits.
If that input is positive, the sign extend can also be considered as a
zero extend.
Commit: b5e4d323badbd24324bfab4366b670977b16df07
https://github.com/llvm/llvm-project/commit/b5e4d323badbd24324bfab4366b670977b16df07
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel][mlir] Add MathToROCDL to fix layering check (#99377)
Commit: 8044a863518166db1a1e05df5c76e26d53dbbcb9
https://github.com/llvm/llvm-project/commit/8044a863518166db1a1e05df5c76e26d53dbbcb9
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M compiler-rt/www/index.html
Log Message:
-----------
[compiler-rt][www] Update standalone build instruction (#98707)
Follow up to #71500
Commit: 495d3ea989d4e97ce77ee73d6b35b171a7346019
https://github.com/llvm/llvm-project/commit/495d3ea989d4e97ce77ee73d6b35b171a7346019
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineSink.cpp
A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir
Log Message:
-----------
[MachineSink][RISCV] Only call isConstantPhysReg or isIgnorableUse for uses. (#99363)
The included test case contains X0 as a def register. X0 is considered a
constant register when it is a use. When its a def, it means to throw
away the result value.
If we treat it as a constant register here, we will execute the continue
and not assign `DefReg` to any register. This will cause a crash when
trying to get the register class for `DefReg` after the loop.
By only checking isConstantPhysReg for uses, we will reach the `return
false` a little further down and stop processing this instruction.
Commit: 63fae3ed656241a1d6a19c3e773ecc9bfff3e182
https://github.com/llvm/llvm-project/commit/63fae3ed656241a1d6a19c3e773ecc9bfff3e182
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: no else after return etc. NFC. (#99298)
Commit: 2bb65660ae8b9b2e1896b07b881505a4ffc0393b
https://github.com/llvm/llvm-project/commit/2bb65660ae8b9b2e1896b07b881505a4ffc0393b
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
Log Message:
-----------
[LV] Allow re-processing of operands of instrs feeding interleave group
Follow up to d216615518 to update dead interleave group pointer detection
to allow re-processing of operands of instructions determined to only feed
interleave groups.
This is needed because instructions feeding interleave group pointers
can become dead in any order, as per the newly added test case.
Commit: a742693f6104055ec026852a70a68275fb82f7a0
https://github.com/llvm/llvm-project/commit/a742693f6104055ec026852a70a68275fb82f7a0
Author: Mircea Trofin <mtrofin at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
Log Message:
-----------
[ctx_prof] Add missing test for `PGOContextualProfile::getContainedGuids`
Commit: 33cb29cc3e38990173688aee353d6cbeeb187728
https://github.com/llvm/llvm-project/commit/33cb29cc3e38990173688aee353d6cbeeb187728
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
M flang/test/Fir/cuf-invalid.fir
M flang/test/Lower/CUDA/cuda-allocatable.cuf
Log Message:
-----------
[flang][cuda] Use cuf.alloc/cuf.free for local descriptor (#98518)
Local descriptor for cuda allocatable need to be handled on host and
device. One solution is to duplicate the descriptor (one on the host and
one on the device) and keep them in sync or have the descriptor in
managed/unified memory so we don't to take care of any sync.
The second solution is probably the one we will implement. In order to
have more flexibility on how descriptor representing cuda allocatable
are allocated, this patch updates the lowering to use the cuf operations
alloc and free to managed them.
Commit: fffe2728534a238ff0024e11a18280f85094dcde
https://github.com/llvm/llvm-project/commit/fffe2728534a238ff0024e11a18280f85094dcde
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
Log Message:
-----------
[ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#98702)
If the subtrahend is larger, iterate the minuend set instead.
Noticed when subtracting a large set from a number of other smaller
sets for an upcoming MemProf change, this change makes that much faster.
I subsequently found a couple of callsites in one file that were calling
set_subtract with a vector subtrahend, which doesn't have the "count()"
interface. Add a separate helper for subtracting a vector.
Commit: 306196349f7e7a92156ca733f876d503049696e7
https://github.com/llvm/llvm-project/commit/306196349f7e7a92156ca733f876d503049696e7
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
Log Message:
-----------
Revert "[ADT] Make set_subtract more efficient when subtrahend is larger (NFC)" (#99386)
Reverts llvm/llvm-project#98702
This broke some mlir code and needs investigation.
Commit: 1ecffdaf27cb456aecc5a1c0272d3994d26bf645
https://github.com/llvm/llvm-project/commit/1ecffdaf27cb456aecc5a1c0272d3994d26bf645
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/CMakeLists.txt
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/utils/gpu/loader/Loader.h
M libc/utils/gpu/loader/Main.cpp
M libc/utils/gpu/loader/amdgpu/Loader.cpp
M libc/utils/gpu/loader/nvptx/Loader.cpp
Log Message:
-----------
[libc] Add Kernel Resource Usage to nvptx-loader (#97503)
This PR allows `nvptx-loader` to read the resource usage of `_start`,
`_begin`, and `_end` when executing CUDA binaries.
Example output:
```
$ nvptx-loader --print-resource-usage libc/benchmarks/gpu/src/ctype/libc.benchmarks.gpu.src.ctype.isalnum_benchmark.__build__
[ RUN ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper
[ OK ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper: 93 cycles, 76 min, 470 max, 23 iterations, 78000 ns, 80 stddev
_begin registers: 25
_start registers: 80
_end registers: 62
```
---------
Co-authored-by: Joseph Huber <huberjn at outlook.com>
Commit: 82b800ecb35fb46881aa52000fa40b1b99aa654e
https://github.com/llvm/llvm-project/commit/82b800ecb35fb46881aa52000fa40b1b99aa654e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Limit number of the external uses analysis, NFC.
BoUpSLP::buildExternalUses runs through all the users of the vectorized
scalars, which may require significant amount of time, if there are too
many users. Limited the analysis, if there are too many users, all of
them are replaced, not individually.
Commit: 10b4834b76e0473eee3eb70490dd39366589534d
https://github.com/llvm/llvm-project/commit/10b4834b76e0473eee3eb70490dd39366589534d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/utils/gpu/loader/amdgpu/Loader.cpp
Log Message:
-----------
[libc] Fix wrong printf usage in AMDGPU loader
Commit: f6add66b720f85bf1092af7d6702b7397da57349
https://github.com/llvm/llvm-project/commit/f6add66b720f85bf1092af7d6702b7397da57349
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
Log Message:
-----------
[instcombine] Extend logical reduction canonicalization to scalable vectors (#99366)
These transformations do not depend on the type being fixed in size, so
enable them for scalable vectors too. Unlike for fixed vectors, these
are only a canonicalization - the bitcast lowering for and/or/add is not
legal on a scalable vector type.
Commit: d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
https://github.com/llvm/llvm-project/commit/d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M compiler-rt/lib/scudo/standalone/string_utils.h
M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
M compiler-rt/lib/scudo/standalone/vector.h
Log Message:
-----------
[scudo] Add static vector functionality. (#98986)
The scudo vector implementation maintains static local data before
switching to dynamically allocated data as the array size grows.
Users of the vector must now specify the size of the static local data
through the vector template (the default size has been removed).
If 0 is specified for the size of the static local data, an assertion
will
be triggered.
Commit: 07f8a65d09608d67bfd6adbd62bb0999c7363456
https://github.com/llvm/llvm-project/commit/07f8a65d09608d67bfd6adbd62bb0999c7363456
Author: Oliver Hunt <oliver at apple.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGDeclCXX.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
A clang/test/CodeGenCXX/ptrauth-throw.cpp
Log Message:
-----------
[clang] Ensure pointers passed to runtime support functions are correctly signed (#98276)
Updates codegen for global destructors and raising exceptions to ensure
that the function pointers being passed are signed using the correct
schema.
Notably this requires that CodeGenFunction::createAtExitStub to return
an opaque Constant* rather than a Function* as the value being emitted
is no longer necessarily a raw function pointer depending on the
configured ABI.
Co-Authored-By: Akira Hatanaka <ahatanaka at apple.com>
Co-Authored-By: John McCall <rjmccall at apple.com>
Commit: 7647174738bf1b8e58c854c488183a849403d5db
https://github.com/llvm/llvm-project/commit/7647174738bf1b8e58c854c488183a849403d5db
Author: David Truby <david.truby at arm.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M flang/test/Driver/linker-flags.f90
Log Message:
-----------
[flang] Add -rtlib flag (#99058)
This patch allows the -rtlib flag with flang-new to select between the
libgcc_s and compiler-rt runtimes. The behaviour is identical to the
same flag with clang.
Commit: 83251a22f623df8d27b6184d19b24c18d314f2bd
https://github.com/llvm/llvm-project/commit/83251a22f623df8d27b6184d19b24c18d314f2bd
Author: Scallop Ye <yescallop at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M compiler-rt/lib/fuzzer/FuzzerFork.cpp
Log Message:
-----------
[libFuzzer] Fix incorrect coverage number in fork mode (#82335)
Closes #82307.
I built LLVM with the changes and tested fuzzing in fork mode. The
coverage number was correct:
```
[ye at ye-arch ~]$ /home/ye/work/llvm-project/build/bin/clang++ -fsanitize=fuzzer test_fuzzer.cc
[ye at ye-arch ~]$ ./a.out corpus -fork=4
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 3152497917
INFO: Loaded 1 modules (40 inline 8-bit counters): 40 [0x5aa6f7b310d0, 0x5aa6f7b310f8),
INFO: Loaded 1 PC tables (40 PCs): 40 [0x5aa6f7b310f8,0x5aa6f7b31378),
INFO: -fork=4: fuzzing in separate process(s)
INFO: -fork=4: 56 seed inputs, starting to fuzz in /tmp/libFuzzerTemp.FuzzWithFork54465.dir
#600649: cov: 36 ft: 224 corp: 56 exec/s: 300324 oom/timeout/crash: 0/0/0 time: 2s job: 1 dft_time: 0
#1548208: cov: 36 ft: 224 corp: 56 exec/s: 315853 oom/timeout/crash: 0/0/0 time: 3s job: 2 dft_time: 0
#2465991: cov: 36 ft: 224 corp: 56 exec/s: 229445 oom/timeout/crash: 0/0/0 time: 4s job: 3 dft_time: 0
#3887877: cov: 36 ft: 224 corp: 56 exec/s: 284377 oom/timeout/crash: 0/0/0 time: 5s job: 4 dft_time: 0
```
Commit: 884772fdd6213c1bc16316b1e57fe08d85bdbc2d
https://github.com/llvm/llvm-project/commit/884772fdd6213c1bc16316b1e57fe08d85bdbc2d
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDecl.cpp
M clang/test/Sema/attr-weak.c
M clang/test/SemaCXX/attr-weak.cpp
Log Message:
-----------
[Sema] Don't drop weak_import from a declaration if its definition isn't seen (#85886)
I believe this is what the original commit (33e022650adee965c65f9aea086ee74f3fd1bad5) was trying to do.
This fixes a bug where clang removes the attribute from a declaration that follows a declaration directly contained in a linkage-specification.
rdar://61865848
Commit: 83fbd79319a4d997520c85ab41997692a58cd958
https://github.com/llvm/llvm-project/commit/83fbd79319a4d997520c85ab41997692a58cd958
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
M libc/cmake/modules/LLVMLibCHeaderRules.cmake
M libc/include/CMakeLists.txt
M libc/newhdrgen/class_implementation/classes/function.py
M libc/newhdrgen/header.py
Log Message:
-----------
[libc] newheadergen: configured cmake (#98828)
- all headers in the build system are generated by newheadergen
- tested on gpu-build
---------
Co-authored-by: Rose Zhang <rosezhang at google.com>
Commit: 9ce5b38dc32a5f023e9824afe246978130b9080e
https://github.com/llvm/llvm-project/commit/9ce5b38dc32a5f023e9824afe246978130b9080e
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/config/linux/x86_64/headers.txt
A libc/newhdrgen/yaml/arpa/arpa_inet.yaml
R libc/newhdrgen/yaml/arpa_inet.yaml
M libc/newhdrgen/yaml/assert.yaml
A libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
M libc/newhdrgen/yaml/math.yaml
M libc/newhdrgen/yaml/pthread.yaml
R libc/newhdrgen/yaml/rpc.yaml
M libc/newhdrgen/yaml/search.yaml
M libc/newhdrgen/yaml/sys/sys_time.yaml
M libc/newhdrgen/yaml/wchar.yaml
Log Message:
-----------
[libc] final edits to newheadergen yaml files (#98983)
- final run of integration tests to deal with incorrect YAML input
(finished sys headers, will finish the rest today)
- add any new functions made in recent PRs
Commit: e0f3484874964ed749355d5a652e876efe3a05de
https://github.com/llvm/llvm-project/commit/e0f3484874964ed749355d5a652e876efe3a05de
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M .git-blame-ignore-revs
Log Message:
-----------
[lldb][nfc] add an nfc entry to the .git-blame-ignore-revs.
Commit: 90cbb1ec4ff9c687f7ebca505845388655ed5582
https://github.com/llvm/llvm-project/commit/90cbb1ec4ff9c687f7ebca505845388655ed5582
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/config/linux/x86_64/headers.txt
Log Message:
-----------
[libc] Temporarily disable statvfs header (#99405)
The statfvs header was not generating for a while. Patch #98983 added it
to the list of headers, but it's apparently broken right now so this
patch comments it out until it can be fixed.
Commit: ad023a844ab19f37ea0abd2130ec81ea2663937b
https://github.com/llvm/llvm-project/commit/ad023a844ab19f37ea0abd2130ec81ea2663937b
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] newheadergen: cmakelist file changes (#99404)
Commit: d772cdd6279de1e578dfdfca7432327a1806c659
https://github.com/llvm/llvm-project/commit/d772cdd6279de1e578dfdfca7432327a1806c659
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
Log Message:
-----------
[ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#99401)
This patch is based on:
commit fffe2728534a238ff0024e11a18280f85094dcde
Author: Teresa Johnson <tejohnson at google.com>
Date: Wed Jul 17 13:53:10 2024 -0700
This iteration comes with a couple of improvements:
- We now accommodate S2Ty being SmallPtrSet, which has remove_if(pred)
but not erase(iterator). (Lack of this code path broke the mlir
build.)
- The code path for erase(iterator) now pre-increments the iterator to
avoid problems with iterator invalidation.
Commit: 21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
https://github.com/llvm/llvm-project/commit/21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/newhdrgen/yaml/wchar.yaml
Log Message:
-----------
[libc] newheadergen: removing extra .h (#99408)
Commit: ab142c635e5edeb381fb3bd0222501cd2108c176
https://github.com/llvm/llvm-project/commit/ab142c635e5edeb381fb3bd0222501cd2108c176
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] newheadergen: quick fix to fuchsia build (#99410)
Commit: d5fe73515a609639c63013478236bd81978db6b7
https://github.com/llvm/llvm-project/commit/d5fe73515a609639c63013478236bd81978db6b7
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
Revert "[libc] newheadergen: quick fix to fuchsia build" (#99412)
Reverts llvm/llvm-project#99410
Commit: ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
https://github.com/llvm/llvm-project/commit/ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
Revert "[libc] newheadergen: cmakelist file changes" (#99413)
Reverts llvm/llvm-project#99404
Commit: 58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
https://github.com/llvm/llvm-project/commit/58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
M libc/cmake/modules/LLVMLibCHeaderRules.cmake
M libc/include/CMakeLists.txt
M libc/newhdrgen/class_implementation/classes/function.py
M libc/newhdrgen/header.py
Log Message:
-----------
Revert "[libc] newheadergen: configured cmake" (#99414)
Reverts llvm/llvm-project#98828
Commit: 4283f1ad18db9878b98f98e7a36b4f94ab674d29
https://github.com/llvm/llvm-project/commit/4283f1ad18db9878b98f98e7a36b4f94ab674d29
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M compiler-rt/test/fuzzer/lit.cfg.py
Log Message:
-----------
[NFC][fuzzer] Remove unhelpful lit notes
They are not actionable.
Commit: 888b130bdfd98bda71e14fb10893113cbbd15733
https://github.com/llvm/llvm-project/commit/888b130bdfd98bda71e14fb10893113cbbd15733
Author: Sam Clegg <sbc at chromium.org>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M lld/wasm/Options.td
Log Message:
-----------
[lld][WebAssembly] Consolidate --fatal-warnings and --no-fatal-warnings options. NFC (#99374)
Also document defaults for boolean options.
See https://reviews.llvm.org/D42859
Commit: c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
https://github.com/llvm/llvm-project/commit/c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
Author: hev <wangrui at loongson.cn>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
Log Message:
-----------
[LoongArch] Remove spurious mask operations from andn->icmp on 16 and 8 bit values (#99272)
Commit: fe6c24000f2d7316899d4ec4c12273892326ed47
https://github.com/llvm/llvm-project/commit/fe6c24000f2d7316899d4ec4c12273892326ed47
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang-tools-extra/clangd/CMakeLists.txt
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/ClangdLSPServer.h
M clang-tools-extra/clangd/ClangdServer.cpp
M clang-tools-extra/clangd/ClangdServer.h
M clang-tools-extra/clangd/Compiler.h
M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
M clang-tools-extra/clangd/GlobalCompilationDatabase.h
A clang-tools-extra/clangd/ModulesBuilder.cpp
A clang-tools-extra/clangd/ModulesBuilder.h
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/Preamble.h
A clang-tools-extra/clangd/ProjectModules.h
A clang-tools-extra/clangd/ScanningProjectModules.cpp
A clang-tools-extra/clangd/ScanningProjectModules.h
M clang-tools-extra/clangd/test/CMakeLists.txt
A clang-tools-extra/clangd/test/modules.test
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/CMakeLists.txt
A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/TestFS.h
M clang-tools-extra/docs/ReleaseNotes.rst
Log Message:
-----------
[clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (#66462)
Alternatives to https://reviews.llvm.org/D153114.
Try to address https://github.com/clangd/clangd/issues/1293.
See the links for design ideas and the consensus so far. We want to have
some initial support in clang18.
This is the initial support for C++20 Modules in clangd.
As suggested by sammccall in https://reviews.llvm.org/D153114,
we should minimize the scope of the initial patch to make it easier
to review and understand so that every one are in the same page:
> Don't attempt any cross-file or cross-version coordination: i.e. don't
> try to reuse BMIs between different files, don't try to reuse BMIs
> between (preamble) reparses of the same file, don't try to persist the
> module graph. Instead, when building a preamble, synchronously scan
> for the module graph, build the required PCMs on the single preamble
> thread with filenames private to that preamble, and then proceed to
> build the preamble.
This patch reflects the above opinions.
# Testing in real-world project
I tested this with a modularized library:
https://github.com/alibaba/async_simple/tree/CXX20Modules. This library
has 3 modules (async_simple, std and asio) and 65 module units. (Note
that a module consists of multiple module units). Both `std` module and
`asio` module have 100k+ lines of code (maybe more, I didn't count). And
async_simple itself has 8k lines of code. This is the scale of the
project.
The result shows that it works pretty well, ..., well, except I need to
wait roughly 10s after opening/editing any file. And this falls in our
expectations. We know it is hard to make it perfect in the first move.
# What this patch does in detail
- Introduced an option `--experimental-modules-support` for the support
for C++20 Modules. So that no matter how bad this is, it wouldn't affect
current users. Following off the page, we'll assume the option is
enabled.
- Introduced two classes `ModuleFilesInfo` and
`ModuleDependencyScanner`. Now `ModuleDependencyScanner` is only used by
`ModuleFilesInfo`.
- The class `ModuleFilesInfo` records the built module files for
specific single source file. The module files can only be built by the
static member function `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef
File, ...)`.
- The class `PreambleData` adds a new member variable with type
`ModuleFilesInfo`. This refers to the needed module files for the
current file. It means the module files info is part of the preamble,
which is suggested in the first patch too.
- In `isPreambleCompatible()`, we add a call to
`ModuleFilesInfo::CanReuse()` to check if the built module files are
still up to date.
- When we build the AST for a source file, we will load the built module
files from ModuleFilesInfo.
# What we need to do next
Let's split the TODOs into clang part and clangd part to make things
more clear.
The TODOs in the clangd part include:
1. Enable reusing module files across source files. The may require us
to bring a ModulesManager like thing which need to handle `scheduling`,
`the possibility of BMI version conflicts` and `various events that can
invalidate the module graph`.
2. Get a more efficient method to get the `<module-name> ->
<module-unit-source>` map. Currently we always scan the whole project
during `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef File, ...)`.
This is clearly inefficient even if the scanning process is pretty fast.
I think the potential solutions include:
- Make a global scanner to monitor the state of every source file like I
did in the first patch. The pain point is that we need to take care of
the data races.
- Ask the build systems to provide the map just like we ask them to
provide the compilation database.
3. Persist the module files. So that we can reuse module files across
clangd invocations or even across clangd instances.
TODOs in the clang part include:
1. Clang should offer an option/mode to skip writing/reading the bodies
of the functions. Or even if we can requrie the parser to skip parsing
the function bodies.
And it looks like we can say the support for C++20 Modules is initially
workable after we made (1) and (2) (or even without (2)).
Commit: 3e47f6ba4a2aae7a8414dfeafa21d8d79e806c43
https://github.com/llvm/llvm-project/commit/3e47f6ba4a2aae7a8414dfeafa21d8d79e806c43
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
M llvm/lib/Target/Mips/MipsFastISel.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
M llvm/lib/Target/PowerPC/PPCFastISel.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
Log Message:
-----------
Rapply "[Target] Use range-based for loops (NFC) (#98844)"
This iteration drops hunks where the loop body adds more elements.
Commit: ad154281230d83ee551e12d5be48bb956ef47ed3
https://github.com/llvm/llvm-project/commit/ad154281230d83ee551e12d5be48bb956ef47ed3
Author: David Tenty <daltenty at ibm.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp
Log Message:
-----------
[NFC][libc++][test] loosen XFAIL condition for setfill_wchar_max.pass.cpp
So we can also match aarch64 triples which have four components instead of three when disabling the test, which the case on some buildbots.
Follow on to #89305
Commit: edfe25064e13c9cabf1cf3398f7760bf0991ae3e
https://github.com/llvm/llvm-project/commit/edfe25064e13c9cabf1cf3398f7760bf0991ae3e
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[MemProf] Consolidate increments in callee matching code (#99385)
To facilitate some follow on changes, consolidate the incrementing of
the edge iterator used during callee matching to the for loop statement.
This requires an additional adjustment in the case of tail call
handling.
Commit: c184b94ff6546c8ba8ac54b5127189427567978f
https://github.com/llvm/llvm-project/commit/c184b94ff6546c8ba8ac54b5127189427567978f
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
Log Message:
-----------
[C++20] [Modules] Write ODRHash for decls in GMF
Previously, we skipped calculating ODRHash for decls in GMF when writing
them to .pcm files as an optimization. But actually, it is not
true that this will be a pure optimization. Whether or not it is
beneficial depends on the use cases. For example, if we're writing a
function `a` in module and there are 10 consumers of `a` in other TUs,
then the other TUs will pay for the cost to calculate the ODR hash for
`a` ten times. Then this optimization doesn't work. However, if all the
consumers of the module didn't touch `a`, then we can save the cost to
calculate the ODR hash of `a` for 1 times.
And the assumption to make it was: generally, the consumers of a module
may only consume a small part of the imported module. This is the reason
why we tried to load declarations, types and identifiers lazily. Then it
looks good to do the similar thing for calculating ODR hashs.
It works fine for a long time, until we started to look into the support
of modules in clangd. Then we meet multiple issue reports complaining
we're calculating ODR hash in the wrong place. To workaround these issue
reports, I decided to always write the ODRhash for decls in GMF. In my
local test, I only observed less than 1% compile time regression after
doing this. So it should be fine.
Commit: 464d321ee8dde1eaf14b5537eaf030e6df513849
https://github.com/llvm/llvm-project/commit/464d321ee8dde1eaf14b5537eaf030e6df513849
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Transforms/StackArrays.cpp
A flang/test/Transforms/stack-arrays-hlfir.f90
M flang/test/Transforms/stack-arrays.fir
Log Message:
-----------
[flang][stack-arrays] Extend pass to work on declare ops and within omp regions (#98810)
Extends the stack-arrays pass to support `fir.declare` ops. Before that,
we did not recognize malloc-free pairs for which `fir.declare` is used
to declare the allocated entity. This is because the `free` op was
invoked on the result of the `fir.declare` op and did not directly use
the allocated memory SSA value.
This also extends the pass to collect the analysis results within OpenMP
regions.
Commit: 5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
https://github.com/llvm/llvm-project/commit/5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
Author: vporpo <vporpodas at google.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/docs/SandboxIR.md
M llvm/include/llvm/SandboxIR/SandboxIR.h
A llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/lib/SandboxIR/CMakeLists.txt
M llvm/lib/SandboxIR/SandboxIR.cpp
A llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/CMakeLists.txt
A llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
[SandboxIR] IR Tracker (#99238)
This is the first patch in a series of patches for the IR change
tracking component of SandboxIR.
The tracker collects changes in a vector of `IRChangeBase` objects and
provides a `save()`/`accept()`/`revert()` API.
Each type of IR changing event is captured by a dedicated subclass of
`IRChangeBase`. This patch implements only one of them, that for
updating a `sandboxir::Use` source value, named `UseSet`.
Commit: 27ee33d1368b9772f75285932c00479a0fae82ee
https://github.com/llvm/llvm-project/commit/27ee33d1368b9772f75285932c00479a0fae82ee
Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
Log Message:
-----------
[mlir][linalg] Decompose winograd operators (#96183)
Convert Linalg winograd_filter_transform, winograd_input_transform, and
winograd_output_transform into nested loops with matrix multiplication
with constant transform matrices.
Support several configurations of Winograd Conv2D, including F(2, 3),
F(4, 3) and F(2, 5). These configurations show that the implementation
can support different kernel size (3 and 5) and different output size
(2 and 4). Besides symetric kernel size 3x3 and 5x5, this patch also
supports 1x3, 3x1, 1x5, and 5x1 kernels.
The implementation is based on the paper, Fast Algorithm for
Convolutional Neural Networks. (https://arxiv.org/abs/1509.09308)
Reviewers: ftynse, Max191, GeorgeARM, nicolasvasilache, MaheshRavishankar, dcaballe, rengolin
Reviewed By: ftynse, Max191
Pull Request: https://github.com/llvm/llvm-project/pull/96183
Commit: 4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
https://github.com/llvm/llvm-project/commit/4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
Author: Joachim <jenke at itc.rwth-aachen.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/test/OpenMP/depend_iterator_bug.c
M clang/test/OpenMP/task_codegen.c
Log Message:
-----------
[OpenMP] Fix calculation of dependencies for multi-dimensional iteration space (#99347)
The expectation for multiple iterators used in a single depend clause
(`depend(iterator(i=0:5,j=0:5), in:x[i][j])`) is that the iterator space
is the product of the iteration vectors (25 in that case). The current
codeGen only works correctly, if `numIterators() = 1`. For more
iterators, the execution results in runtime assertions or segfaults.
The modified codeGen first calculates the iteration space, then
multiplies to the number of dependencies in the depend clause and
finally adds to the total number of iterator dependencies.
Commit: 810adbaa0236eed10ecfd9f96837b6d23d308a7d
https://github.com/llvm/llvm-project/commit/810adbaa0236eed10ecfd9f96837b6d23d308a7d
Author: Tristan Ross <rosscomputerguy at protonmail.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
Log Message:
-----------
[RISCV] Remove unused include in RISCVMCTargetDesc.h (#98790)
Goes in hand with #97130, split out to figure out CI fails. Should just
build whatever subprojects utilize the `RISCVMCTargetDesc.h` header and
it should build & test just like normal.
Co-authored-by: pca006132 <john.lck40 at gmail.com>
Commit: fbf8b82cd02818c0888805bb39abbf550333bea6
https://github.com/llvm/llvm-project/commit/fbf8b82cd02818c0888805bb39abbf550333bea6
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/InterpBlock.cpp
M clang/lib/AST/Interp/InterpState.cpp
Log Message:
-----------
[clang][Interp][NFC] Be more cautious about Block initialization state
... when moving a Block to a DeadBlock. Only invoke the MoveFn if the
old block was initialized at all.
Commit: 0e986e395f9cd759b859ba0c934c0d73de4554c8
https://github.com/llvm/llvm-project/commit/0e986e395f9cd759b859ba0c934c0d73de4554c8
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/utils/mlgo-utils/pyproject.toml
Log Message:
-----------
[MLGO] Fix MLGO executable scripts
The MLGO executable scripts were previously set up incorrectly with the
entrypoints. This patch corrects the entrypoints so that the scripts
work as expected rather than throwing import errors in the wrapper.
Commit: 1e6672af2497042d5dad0236c2ad9e61f879ac07
https://github.com/llvm/llvm-project/commit/1e6672af2497042d5dad0236c2ad9e61f879ac07
Author: serge-sans-paille <sguelton at mozilla.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M flang/runtime/command.cpp
Log Message:
-----------
[Flang][Runtime] Simplify StringLength implementation
This implementation relies on arithmetic conversion, let's see what
happens when we do
std::size_t length{std::strlen(string)};
if (length <= std::numeric_limits<std::int64_t>::max())
return static_cast<std::int64_t>(length);
1) if size_t == uint32_t (or lower), then the comparison operator
invokes integral promotion to uint64_t, the comparison happens, it's
fine.
2) if size_t == uint64_t, then the comparison is done between unsigned
types, which implies a conversion of
std::numeric_limits<std::int64_t>::max() to uint64_t, which happens
without accuracy loss, fine
3) if size_t == uint128_t (or higher), then we invoke integral promotion
of std::int64_t, it's also fine.
So this snippet has the same behavior as the existing one, while being
easier to read.
Commit: f36331770267501e157ac34afc3ca7d7a0bfb52c
https://github.com/llvm/llvm-project/commit/f36331770267501e157ac34afc3ca7d7a0bfb52c
Author: Alexander Pivovarov <pivovaa at amazon.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M clang/include/clang/AST/Stmt.h
M clang/lib/AST/MicrosoftMangle.cpp
M llvm/include/llvm/ADT/APFloat.h
M llvm/lib/Support/APFloat.cpp
M llvm/unittests/ADT/APFloatTest.cpp
Log Message:
-----------
[APFloat] Add support for f8E4M3 IEEE 754 type (#97179)
This PR adds `f8E4M3` type to APFloat.
`f8E4M3` type follows IEEE 754 convention
```c
f8E4M3 (IEEE 754)
- Exponent bias: 7
- Maximum stored exponent value: 14 (binary 1110)
- Maximum unbiased exponent value: 14 - 7 = 7
- Minimum stored exponent value: 1 (binary 0001)
- Minimum unbiased exponent value: 1 − 7 = −6
- Precision specifies the total number of bits used for the significand (mantisa),
including implicit leading integer bit = 3 + 1 = 4
- Follows IEEE 754 conventions for representation of special values
- Has Positive and Negative zero
- Has Positive and Negative infinity
- Has NaNs
Additional details:
- Max exp (unbiased): 7
- Min exp (unbiased): -6
- Infinities (+/-): S.1111.000
- Zeros (+/-): S.0000.000
- NaNs: S.1111.{001, 010, 011, 100, 101, 110, 111}
- Max normal number: S.1110.111 = +/-2^(7) x (1 + 0.875) = +/-240
- Min normal number: S.0001.000 = +/-2^(-6)
- Max subnormal number: S.0000.111 = +/-2^(-6) x 0.875 = +/-2^(-9) x 7
- Min subnormal number: S.0000.001 = +/-2^(-6) x 0.125 = +/-2^(-9)
```
Related PRs:
- [PR-97118](https://github.com/llvm/llvm-project/pull/97118) Add f8E4M3
IEEE 754 type to mlir
Commit: 7b08c2774ca7350b372f70f63135eacc04d739c5
https://github.com/llvm/llvm-project/commit/7b08c2774ca7350b372f70f63135eacc04d739c5
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
Log Message:
-----------
[mlir][Linalg] Remove unused header include.
There seems to be no direct usage of any tosa utils.
Commit: 0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
https://github.com/llvm/llvm-project/commit/0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
Log Message:
-----------
[AMDGPU] Simplify selection of llvm.amdgcn.inverse.ballot. NFCI. (#99345)
Commit: 14c323cfd66454c65324c4d5b9d9b6a9c5651eca
https://github.com/llvm/llvm-project/commit/14c323cfd66454c65324c4d5b9d9b6a9c5651eca
Author: Dominik Adamski <dominik.adamski at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/test/Driver/amdgpu-openmp-toolchain.c
Log Message:
-----------
[OpenMP][AMDGPU] Do not attach -fcuda-is-device (#99002)
-fcuda-is-device flag is not used for OpenMP offloading for AMD GPUs and
it does not need to be added as clang cc1 option for OpenMP code.
This PR has the same functionality as
https://github.com/llvm/llvm-project/pull/96909 but it doesn't introduce
regression for virtual function support.
Commit: 7aabdb8776eb11b90d43162254db47df46806ec9
https://github.com/llvm/llvm-project/commit/7aabdb8776eb11b90d43162254db47df46806ec9
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
Log Message:
-----------
[clang][Interp][NFC] Protect ByteCodeEmitter against unfinished fns
This is similar to a check in TextNodeDumper.cpp. Without this, we will
crash later when trying to iterate over FuncDecl->params().
Commit: 4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
https://github.com/llvm/llvm-project/commit/4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
Author: David Green <david.green at arm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
A llvm/test/CodeGen/AArch64/stack-hazard.ll
Log Message:
-----------
[AArch64] Add streaming-mode stack hazards. (#98956)
Under some SME contexts, a coprocessor with its own separate cache will
be used for FPR operations. This can create hazards if the CPU and the
SME unit try to access the same area of memory, including if the access
is to an area of the stack.
To try to alleviate that, this patch attempts to introduce extra padding
into the stack frame between FP and GPR accesses, controlled by the
StackHazardSize option. Without changing the layout of the stack frame,
a stack object of the right size is added between GPR and FPR CSRs.
Another is added to the stack objects section, and stack objects are
sorted so that FPR > Hazard padding slot > GPRs (where possible).
Unfortunately some things are not handled well (VLA area, FPR arguments
on the stack, object with both GPR and FPR accesses), but if those are
controlled by the user then the entire stack frame becomes GPR at the
start/end with FPR in the middle, surrounded by Hazard padding. This can
greatly help reduce something that can be difficult for the user to
control themselves.
The current implementation is opt-in through an
-aarch64-stack-hazard-size flag, and should have no effect if the option
is unset. In the long run the implementation might change (for example
using more base pointers to separate in more cases, re-enabling ldp/stp
using an extra register, etc), but this gets at least something for
people to use in llvm-19 if they need it. The only change whilst the
option is unset will be a fix for making sure the stack increment is
added at the right place when it cannot be converted to postinc
(++MBBI). I believe without extra padding that can not normally be
reached.
Commit: 8afb395aeef5335554c623f92f48cbdc9ffe927d
https://github.com/llvm/llvm-project/commit/8afb395aeef5335554c623f92f48cbdc9ffe927d
Author: Ilya Leoshkevich <iii at linux.ibm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp
Log Message:
-----------
[sanitizer] Fix running sanitizer_bad_report_path_test on Linux as root (#97732)
Running tests as root is not the greatest idea, however, there is one
valid use case - running them in a container in order to verify LLVM on
different distros. There is no reason to configure unprivileged users
in a container, so one works as root.
sanitizer_bad_report_path_test assumes that creating a file in a
non-writable directory would fail, which is not the always case. For
example, when we are on Linux and CAP_DAC_OVERRIDE, which root has, is
in effect. Therefore, one solution is to drop it. However, that would
be Linux-specific.
Instead, use argv[0] as if it were a directory. mkdir() on top of a
file should be prohibited by all supported Posix operating systems.
Combine this with a partial revert of commit f4214e1469ad ("[sanitizer]
Skip test on Android where chmod is not working"), since we shouldn't
need to exclude Android anymore.
Commit: a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
https://github.com/llvm/llvm-project/commit/a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/test/Lower/Intrinsics/second.f90
Log Message:
-----------
[flang] load SECOND result in genSecond (#99342)
Until genSecond, all intrinsic `genXXX` returning scalar intrinsic
(except NULL) were returning them as value.
The code calling genIntrinsicCall is using that assumption when
generation the asExprOp because hflir.expr<> of scalar are badly
supported in tools (I should likely just forbid them all together), the
type is meant for "non trivial" values: arrays, character, and derived
type. For instance, the added tests crashed with error: `'arith.subf' op
operand #0 must be floating-point-like, but got '!hlfir.expr<f32>'`
Load the result in genSecond and add an assert after genIntrinsicCall to
better enforce this.
Commit: e93df78bd46b585c0bdabdbdc95410e4c08b9d38
https://github.com/llvm/llvm-project/commit/e93df78bd46b585c0bdabdbdc95410e4c08b9d38
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s
Log Message:
-----------
[llvm/DWARF] Recursively resolve DW_AT_signature references (#97423)
findRecursively follows DW_AT_specification and DW_AT_abstract_origin
references, but not DW_AT_signature. As far as I can tell, there is no
fundamental difference between these attributes that would make this
behavior desirable, and this just seems like a consequence of the fact
that this attribute is newer. This patch aims to change that.
The motivation is some code in lldb, which assumes that it can construct
a qualified name of a type by just walking the parent chain and looking
at the name attribute. This works for "regular" debug info, even when
some of the DIEs are just forward declarations, but it breaks in the
presence of type units, because of the need to explicitly resolve the
signature reference.
While LLDB does not use the llvm's DWARFDie class (yet?), this seems
like a very important change in the overall API, and any divergence here
would complicate eventual reunification, which is why I am making the
change in the llvm API first. However, putting lldb aside, I think this
change is beneficial in llvm on its own, as it allows us to remove the
explicit DW_AT_signature resolution in the DWARFTypePrinter.
Commit: 09cbb45edd149d30766c87be4628e4df13f3496d
https://github.com/llvm/llvm-project/commit/09cbb45edd149d30766c87be4628e4df13f3496d
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/lib/Core/DIEBuilder.cpp
Log Message:
-----------
[BOLT][DWARF][NFC] A better DIEBuilder for the llvm API change in #98905 (#99324)
The caller (cloneAttribute) already switches on the reference type. By
aligning the cases with the retrieval functions, we can avoid branching
twice.
Commit: 2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
https://github.com/llvm/llvm-project/commit/2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/docs/CommandGuide/clang.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/Ofast.c
Log Message:
-----------
[clang] Add deprecation warning for `-Ofast` driver option (#98736)
This patch implements consensus on the corresponding RFC documented
here: https://discourse.llvm.org/t/rfc-deprecate-ofast/78687/72
Specifically, I added a deprecation warning for `-Ofast`, that suggests
to use `-O3` or `-O3` with `-ffast-math`, and a new diagnostic group for
aforementioned warning.
Deprecation period is going to be lengthy, so I hope this PR can be
merged in time for Clang 19.
Commit: cf66cec7c4481ff39525232d64a4d5215cca3ac5
https://github.com/llvm/llvm-project/commit/cf66cec7c4481ff39525232d64a4d5215cca3ac5
Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/PatternMatch.h
M llvm/unittests/IR/PatternMatch.cpp
Log Message:
-----------
Recommit "[PatternMatch] Fix issue of stale reference in new `m_{I,F,}Cmp` matchers" (3rd Try) (#99292)
The first fix forgot to fixup the commutative matchers...
Commit: 94cd18b7fcf239b85698ad70f145ca5fa5edd516
https://github.com/llvm/llvm-project/commit/94cd18b7fcf239b85698ad70f145ca5fa5edd516
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
Log Message:
-----------
[CVP] Add test for phi merging of vectors (NFC)
Commit: 3eba28d1fd3347a1658f68b63285148b0bb25fab
https://github.com/llvm/llvm-project/commit/3eba28d1fd3347a1658f68b63285148b0bb25fab
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/CheckExprLifetime.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/SemaCXX/warn-dangling-local.cpp
Log Message:
-----------
[clang] Extend lifetime analysis to support assignments for pointer-like objects. (#99032)
This is a follow-up patch to #96475 to detect dangling assignments for
C++ pointer-like objects (classes annotated with the
`[[gsl::Pointer]]`). Fixes #63310.
Similar to the behavior for built-in pointer types, if a temporary owner
(`[[gsl::Owner]]`) object is assigned to a pointer-like class object,
and this temporary object is destroyed at the end of the full assignment
expression, the assignee pointer is considered dangling. In such cases,
clang will emit a warning:
```
/tmp/t.cpp:7:20: warning: object backing the pointer my_string_view will be destroyed at the end of the full-expression [-Wdangling-assignment-gsl]
7 | my_string_view = CreateString();
| ^~~~~~~~~~~~~~
1 warning generated.
```
This new warning is `-Wdangling-assignment-gsl`. It is initially
disabled, but I intend to enable it by default in clang 20.
I have initially tested this patch on our internal codebase, and it has
identified many use-after-free bugs, primarily related to `string_view`.
Commit: 26af44b3985c762b2cbaf348f8012a30af09151f
https://github.com/llvm/llvm-project/commit/26af44b3985c762b2cbaf348f8012a30af09151f
Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll
Log Message:
-----------
[DebugInfo][SCCPSolver] Fix missing debug locations (#98876)
Fixes #98875
Commit: 57539418bae45e3c972e8f4f0a88577f807e8697
https://github.com/llvm/llvm-project/commit/57539418bae45e3c972e8f4f0a88577f807e8697
Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll
Log Message:
-----------
[SROA] Fix debug locations for variables with non-zero offsets (#97750)
Fixes issue #61981 by adjusting variable location offsets (in the DIExpression)
when splitting allocas.
Patch [4/4] to fix structured bindings in SROA.
NOTE: There's still a bug in mem2reg which generates incorrect locations in some
situations: if the variable fragment has an offset into the new (split) alloca,
mem2reg will fail to convert that into a bit shift (the location contains a
garbage offset). That's not addressed here.
insertNewDbgInst - Now takes the address-expression and FragmentInfo as
separate parameters because unlike dbg_declares dbg_assigns want those to go
to different places. dbg_assign records put the variable fragment info in the
value expression only (whereas dbg_declare has only one expression so puts it
there - ideally this information wouldn't live in DIExpression, but that's
another issue).
MigrateOne - Modified to correctly compute the necessary offsets and fragment
adjustments. The previous implementation produced bogus locations for variables
with non-zero offsets. The changes replace most of the body of this lambda, so
it might be easier to review in a split-diff view and focus on the change as a
whole than to compare it to the old implementation.
This uses calculateFragmentIntersect and extractLeadingOffset added in previous
patches in this series, and createOrReplaceFragment described below.
createOrReplaceFragment - Similar to DIExpression::createFragmentExpression
except for 3 important distinctions:
1. The new fragment isn't relative to an existing fragment.
2. There are no checks on the the operation types because it is assumed
the location this expression is computing is not implicit (i.e., it's
always safe to create a fragment because arithmetic operations apply
to the address computation, not to an implicit value computation).
3. Existing extract_bits are modified independetly of fragment changes
using \p BitExtractOffset. A change to the fragment offset or size
may affect a bit extract. But a bit extract offset can change
independently of the fragment dimensions.
Returns the new expression, or nullptr if one couldn't be created. Ideally
this is only used to signal that a bit-extract has become zero-sized (and thus
the new debug record has no size and can be dropped), however, it fails for
other reasons too - see the FIXME below.
FIXME: To keep the scope of this change focused on non-bitfield structured
bindings the function bails in situations that
DIExpression::createFragmentExpression fails. E.g. when fragment and bit
extract sizes differ. These limitations can be removed in the future.
Commit: cbd255942b52c3576aa0dca444811512fff43714
https://github.com/llvm/llvm-project/commit/cbd255942b52c3576aa0dca444811512fff43714
Author: dlav-sc <daniil.avdeev at syntacore.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
Log Message:
-----------
[lldb] add RISCV target specific info in API tests (#99039)
Add information about RISCV first register in python API testsuite, that
is used to check register readability in tests.
Fixed tests on RISCV target:
TestBreakpointByFileColonLine.BreakpointByLineAndColumnTestCase
TestAddressBreakpoints.AddressBreakpointTestCase
TestBreakpointAutoContinue.BreakpointAutoContinue
TestInterruptBacktrace.TestInterruptingBacktrace
TestBadAddressBreakpoints.BadAddressBreakpointTestCase
TestScriptedResolver.TestScriptedResolver
TestStopHookScripted.TestStopHooks
TestBreakpointConditions.BreakpointConditionsTestCase
TestLocalVariables.LocalVariablesTestCase
TestFindLineEntry.FindLineEntry
TestScriptedResolver.TestScriptedResolver
TestInlineSourceFiles.InlineSourceFilesTestCase
TestModuleAndSection.ModuleAndSectionAPIsTestCase
TestFrameVar.TestFrameVar
TestInferiorAssert.AssertingInferiorTestCase
TestInferiorCrashing.CrashingInferiorTestCase
TestInferiorCrashingStep.CrashingInferiorStepTestCase
TestRegistersIterator.RegistersIteratorTestCase
TestCoroutineHandle.TestCoroutineHandle
TestWithLimitDebugInfo.TestWithLimitDebugInfo
TestLLDBIterator.LLDBIteratorTestCase
TestMemoryWrite.MemoryWriteTestCase
TestNestedTemplate.NestedTemplateTestCase
TestParrayVrsCharArrayChild.TestParrayVrsCharArrayChild
TestRecursiveInferior.CrashingRecursiveInferiorTestCase
TestRecursiveInferiorStep.CrashingRecursiveInferiorStepTestCase
TestRunLocker.TestRunLocker
TestSampleTest.RenameThisSampleTestTestCase
TestUniqueTypes3.UniqueTypesTestCase3
TestPrintStackTraces.ThreadsStackTracesTestCase
TestUnicodeSymbols.TestUnicodeSymbols
TestUnusedInlinedParameters.TestUnusedInlinedParameters
TestValueVarUpdate.ValueVarUpdateTestCase
TestPtrRef2Typedef.PtrRef2TypedefTestCase
TestDataFormatterStdIterator.StdIteratorDataFormatterTestCase
TestDataFormatterStdString.StdStringDataFormatterTestCase
TestDataFormatterStdVBool.StdVBoolDataFormatterTestCase
Commit: 26cb88e3210af24942310a192431c8d7c3544e21
https://github.com/llvm/llvm-project/commit/26cb88e3210af24942310a192431c8d7c3544e21
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s
Log Message:
-----------
Revert "[llvm/DWARF] Recursively resolve DW_AT_signature references" (#99444)
Reverts llvm/llvm-project#97423 due to a failure in the
cross-project-tests.
Commit: 80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
https://github.com/llvm/llvm-project/commit/80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/include/clang-c/Index.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
A clang/test/OpenMP/reverse_ast_print.cpp
A clang/test/OpenMP/reverse_codegen.cpp
A clang/test/OpenMP/reverse_messages.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
A openmp/runtime/test/transform/reverse/foreach.cpp
A openmp/runtime/test/transform/reverse/intfor.c
A openmp/runtime/test/transform/reverse/iterfor.cpp
A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp
Log Message:
-----------
[Clang][OpenMP] Add reverse directive (#92916)
Add the reverse directive which will be introduced in the upcoming
OpenMP 6.0 specification. A preview has been published in [Technical
Report 12](https://www.openmp.org/wp-content/uploads/openmp-TR12.pdf).
---------
Co-authored-by: Alexey Bataev <a.bataev at outlook.com>
Commit: 1dfbd07255f50ab3920d397dda5f8f9c05020f76
https://github.com/llvm/llvm-project/commit/1dfbd07255f50ab3920d397dda5f8f9c05020f76
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/test/Analysis/ValueTracking/known-bits.ll
M llvm/test/Analysis/ValueTracking/known-fpclass.ll
M llvm/test/Analysis/ValueTracking/known-non-zero.ll
Log Message:
-----------
[ValueTracking] Add tests for `llvm.vector.reverse` with `DemandedElts`; NFC
Commit: 6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
https://github.com/llvm/llvm-project/commit/6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/known-bits.ll
Log Message:
-----------
[ValueTracking] Consistently propagate `DemandedElts` is `computeKnownBits`
Commit: 72ff0499bba72eecc1b3d19833027b6c04337041
https://github.com/llvm/llvm-project/commit/72ff0499bba72eecc1b3d19833027b6c04337041
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/known-non-zero.ll
Log Message:
-----------
[ValueTracking] Consistently propagate `DemandedElts` is `isKnownNonZero`
Commit: e8eeda8e4dc581ae744bc64a2683b5533fec8922
https://github.com/llvm/llvm-project/commit/e8eeda8e4dc581ae744bc64a2683b5533fec8922
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[ValueTracking] Consistently propagate `DemandedElts` is `ComputeNumSignBits`
Commit: 0589762e4e42a21796ca74eeb356cdfc50eaa232
https://github.com/llvm/llvm-project/commit/0589762e4e42a21796ca74eeb356cdfc50eaa232
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/known-fpclass.ll
Log Message:
-----------
[ValueTracking] Consistently propagate `DemandedElts` is `computeKnownFPClass`
Closes #99080
Commit: c1263b326439dd623264d35ac5d006800092bac6
https://github.com/llvm/llvm-project/commit/c1263b326439dd623264d35ac5d006800092bac6
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/test/Transforms/SCCP/phis.ll
Log Message:
-----------
[SCCP] Add tests for vectors ins phis (NFC)
Commit: 474d35f238d46010d12485734e62de91cb469404
https://github.com/llvm/llvm-project/commit/474d35f238d46010d12485734e62de91cb469404
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/safestack/safestack.cpp
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/test/safestack/lit.cfg.py
Log Message:
-----------
[safestack] Various Solaris fixes (#99290)
Even with the `-u __safestack_init` link order fixed on Solaris, there
are still several safestack test issues left:
- While 540fd42c755f20f7b79c6c79493ec36d8cb9b3d3 enabled safestack on
Solaris in the driver unconditionally, it ignored that Solaris also
exists on SPARC and forgot to enable SPARC support for the runtime lib.
This patch fixes that.
- The tests fail to link with undefined references to
`__sanitizer_internal_memset` etc in `safestack.cpp.o` and
`interception_linux.cpp.o`. These are from indirectly including
`sanitizer_redefine_builtins.h`. Instead of using the implementations
from `sanitizer_common` as was done in [[safestack] Various Solaris
fixes](https://github.com/llvm/llvm-project/pull/98469), this patch
disables the interception as discussed in [Revert "[safestack] Various
Solaris fixes"](https://github.com/llvm/llvm-project/pull/98541). A
similar issue affects 32-bit Linux/sparc where compiling `safestack.cpp`
with `-ftrivial-auto-var-init=pattern` causes the compiler to generate
calls to `memset` to initialize a `pthread_attr_t` which is larger than
can be handled inline. This is avoided by defining
`SANITIZER_COMMON_NO_REDEFINE_BUILTINS` in `safestack.cpp` and also
adding definitions of the interceptors that just forward to `libc` for
the benefit of `interception_linux.cpp`.
- The `pthread*.c` tests `FAIL` with
``` safestack CHECK failed:
/vol/llvm/src/llvm-project/local/compiler-rt/lib/safestack/safestack.cpp:227
size ```
The problem is that `pthread_attr_init` initializes the `stacksize`
attribute to 0, signifying the default. Unless explicitly overridded, it
stays that way. I think this is allowed by XPG7. Since safestack cannot
deal with this, I set `size` to the defaults documented in
`pthread_create(3C)`. Unfortunately, there's no macro for those values
outside of private `libc` headers.
- The Solaris `syscall` interface isn't stable. This is not just a
theoretical concern, but the syscalls have changed incompatibly several
times in the past. Therefore this patch switches the implementations of
`TgKill` (where `SYS_lwp_kill` doesn't exist on Solaris 11.4 anyway),
`Mmap`, `Munmap`, and `Mprotect` to the same `_REAL*` solution already
used in `sanitizer_solaris.cpp`.
With those changes, safestack compiles and all tests `PASS`, so the
tests are re-enabled for good.
Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`,
`x86_64-pc-linux-gnu`, and `sparc64-unknown-linux-gnu`.
Commit: b1864a8d6ab8bfd346922e36d80e684a4eaf3248
https://github.com/llvm/llvm-project/commit/b1864a8d6ab8bfd346922e36d80e684a4eaf3248
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
M lld/test/MachO/link-search-at-rpath.s
M lld/test/MachO/rpath.s
Log Message:
-----------
[lld-macho] Ignore duplicate `-rpath` entries (#99289)
Starting with Xcode 16 (dyld-1122), Apple's binary utilities, e.g.
`dyld_info` (but not dyld itself), will refuse to load binaries built
against the macOS 15 SDK or newer that contain the same `LC_RPATH`
entry multiple times:
https://github.com/apple-oss-distributions/dyld/blob/rel/dyld-1122/mach_o/Policy.cpp#L246-L249
`ld-prime` deduplicates entries (regardless of the deployment target),
we now do the same. We also match `ld-prime`'s and `ld64`'s behavior by
warning on duplicate `-rpath` arguments. This can be disabled by the
LLD-specific `--no-warn-duplicate-rpath` flag.
Commit: 1ce89899ad33a0d2976859d8d278dba4342cbb6b
https://github.com/llvm/llvm-project/commit/1ce89899ad33a0d2976859d8d278dba4342cbb6b
Author: Dmitry Polukhin <34227995+dmpolukhin at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
Log Message:
-----------
[clang-tidy] Fix false in unnecessary-value-param inside templates (#98488)
Summary:
If callExpr is type dependent, there is no way to analyze individual
arguments until template specialization. Before this diff only calls
with dependent callees were skipped so unnecessary-value-param was
processing arguments that had non-dependent type that gave false
positives because the call was not fully resolved till specialization.
So now instead of checking type dependent callee, the whole expression
will be checked for type dependent.
Test Plan: check-clang-tools
Commit: dfddc0c4843baaf9605aeb1c4f82eac185e90265
https://github.com/llvm/llvm-project/commit/dfddc0c4843baaf9605aeb1c4f82eac185e90265
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/make_signed.h
M libcxx/include/atomic
M libcxx/include/expected
M libcxx/include/filesystem
M libcxx/include/format
M libcxx/include/forward_list
M libcxx/include/functional
M libcxx/include/iterator
M libcxx/include/mdspan
M libcxx/include/memory
M libcxx/include/memory_resource
M libcxx/include/module.modulemap
M libcxx/include/numeric
M libcxx/include/ostream
M libcxx/include/random
M libcxx/include/ranges
M libcxx/include/stop_token
M libcxx/include/string_view
M libcxx/include/type_traits
M libcxx/include/utility
M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
M libcxx/test/libcxx/transitive_includes/cxx03.csv
M libcxx/test/libcxx/transitive_includes/cxx11.csv
M libcxx/test/libcxx/transitive_includes/cxx14.csv
M libcxx/test/libcxx/transitive_includes/cxx17.csv
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
M libcxx/test/support/test_iterators.h
Log Message:
-----------
[libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)
This is a follow-up to #83740.
Commit: c6144cb0de35013e19ddd4d9fbc86367bb1ba223
https://github.com/llvm/llvm-project/commit/c6144cb0de35013e19ddd4d9fbc86367bb1ba223
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[ValueTracking] Remove unnecessary `m_ElementWiseBitCast` from `isKnownNonZeroFromOperator`; NFC
Commit: d097f430a172a5d798a39b416b1af84f4ec572e1
https://github.com/llvm/llvm-project/commit/d097f430a172a5d798a39b416b1af84f4ec572e1
Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
M lldb/tools/lldb-server/lldb-platform.cpp
Log Message:
-----------
[lldb] Fixed the error `unable to launch a GDB server` in API tests (#98833)
TestPlatformLaunchGDBServer.py runs `ldb-server` w/o parameters
`--min-gdbserver-port`, `--max-gdbserver-port` or `--gdbserver-port`. So
`gdbserver_portmap` is empty and
`gdbserver_portmap.GetNextAvailablePort()` will return 0. Do not call
`portmap_for_child.AllowPort(0)` in this case. Otherwise
`portmap_for_child.GetNextAvailablePort()` will allocate and never free
the port 0 and next call `portmap_for_child.GetNextAvailablePort()` will
fail.
Added few asserts in `GDBRemoteCommunicationServerPlatform::PortMap` to
avoid such issue in the future.
This patch fixes a bug added in #88845. The behaviour is very close to
#97537 w/o parameters `--min-gdbserver-port`, `--max-gdbserver-port` and
`--gdbserver-port`.
Commit: ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
https://github.com/llvm/llvm-project/commit/ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
Author: Uday Bondhugula <uday at polymagelabs.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
Log Message:
-----------
[MLIR] NFC. Remove anti-patterns given the default null init for Value (#99457)
Remove anti-patterns given the default null init for Value. Drop some
extra includes while on this file. NFC.
Co-authored-by: GitHub runner <github-runner at polymagelabs.com>
Commit: e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
https://github.com/llvm/llvm-project/commit/e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
Author: Him188 <tguan at nvidia.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
Log Message:
-----------
[AArch64][GISel] Always fold G_SHL into addressing mode where possible, unless the subtarget has addr-lsl-slow-14 (#96603)
Before this patch, we fold G_SHL into addressing mode lsl only when
there is exactly one usage, or all the usages are memory ops, or we are
optimizing for size. However, lsl is free on all aarch64 targets except
those with FeatureAddrLSLSlow14.
This patch uses this fact and always folds G_SHL into lsl for memory
ops, with exceptions for FeatureAddrLSLSlow14.
This patch also fixes GISel 15% regression in TSVC kernel s482, and
brings regression in s291 from 20% to 10%.
Commit: c661422db04d86b83c1bfeed18e31745a3725357
https://github.com/llvm/llvm-project/commit/c661422db04d86b83c1bfeed18e31745a3725357
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
Log Message:
-----------
[Clang] Handle OMPReverseDirectiveClass in switch
Commit: 783e07f3a4f4684613ffb4a442c97f25c83f309b
https://github.com/llvm/llvm-project/commit/783e07f3a4f4684613ffb4a442c97f25c83f309b
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/ashr-demand.ll
Log Message:
-----------
[InstCombine] Add tests cases related to demanded use bits for ashr
When trying to improve value tracking in
https://github.com/llvm/llvm-project/pull/97693
some regressions was found due to a "weirdness" in simplify demanded
use bits for ashr. Normally an ashr is replaced by lshr when the
shifted in bits aren't demanded. Some years ago (see commit
22178dd33b346020) there was a test case motivating to keep the ashr
when any sign bit (besides the shifted in bits) was demanded. The
weird part about it is that the better we get at analysing known sign
bits, the less likely it is that we canonicalize from ashr to lshr.
That makes it hard to tune other combines to work based on the
canonicalization, as well as possibly resulting in unexpected
regressions when improving value tracking.
This patch adds a test case for which it would be better to
canonicalize ashr into lshr when possible. Worth mentioning is also
that reverting 22178dd33b346020 doesn't seem to cause regressions
in any other lit tests (not even the one added in 22178dd33b346020).
Commit: b8c4c58ecf186dd91f40bdff4d1bdad403435789
https://github.com/llvm/llvm-project/commit/b8c4c58ecf186dd91f40bdff4d1bdad403435789
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/test/Transforms/InstCombine/ashr-demand.ll
Log Message:
-----------
[InstCombine] Turn AShr into LShr more often in SimplifyDemandedUseBits (#99155)
The functional change here is to undo "llvm-svn: 311773", aka D36936,
aka commit 22178dd33b3460207b8. That patch avoided to convert AShr
into LShr in SimplifyDemandedUseBits based on known sign bits
analysis. Even if it would be legal to turn the shift into a
logical shift (given by the fact that the shifted in bits wasn't
demanded), that patch prevented converting the shift into LShr when
any of the original sign bits were demanded.
One side effect of the reverted functionalty was that the better we
were at computing number of sign bits, the less likely it was that
we would replace AShr by LShr during SimplifyDemandedUseBits. This
was seen in https://github.com/llvm/llvm-project/pull/97693/ when
an improvement of ComputeNumSignBits resulted in regressions due
to no longer rewriting AShr to LShr.
The test case from D36936 still passes after this commit. So it seems
like at least the compiler has been taught how to optimize that
scenario even if we do the AShr->LShr transform more aggressively.
Commit: c68c289984d161d220b9434be5dbbfc387981e23
https://github.com/llvm/llvm-project/commit/c68c289984d161d220b9434be5dbbfc387981e23
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M flang/lib/Parser/openmp-parsers.cpp
A flang/test/Parser/OpenMP/proc-bind.f90
Log Message:
-----------
[Flang][OpenMP] Add support for proc_bind=primary (#99319)
The support was missing only in the parser, all other phases handle the
primary option for proc_bind.
Fixes one of the issues in parsing for gomp/affinity-1.f90.
(https://discourse.llvm.org/t/proposal-rename-flang-new-to-flang/69462/60)
Commit: da0c8b275564f814a53a5c19497669ae2d99538d
https://github.com/llvm/llvm-project/commit/da0c8b275564f814a53a5c19497669ae2d99538d
Author: Hau Hsu <hau.hsu at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M compiler-rt/lib/asan/asan_mapping.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Log Message:
-----------
[RISCV][sanitizer] Fix sanitizer support for different virtual memory layout (#66743)
This PR combines the following reviews from Phabricator:
* https://reviews.llvm.org/D139823
* https://reviews.llvm.org/D139827
Other related (and merged) reviews are:
* https://reviews.llvm.org/D152895
* https://reviews.llvm.org/D152991
* https://reviews.llvm.org/D152990
---------
Co-authored-by: Kito Cheng <kito.cheng at gmail.com>
Commit: 4a19be5d45e4b1e02c2512023151be5d56ef5744
https://github.com/llvm/llvm-project/commit/4a19be5d45e4b1e02c2512023151be5d56ef5744
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/string
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][strings] P2591R5: Concatenation of strings and string views (#88389)
Implemented: https://wg21.link/P2591R5
- https://eel.is/c++draft/string.syn
- https://eel.is/c++draft/string.op.plus
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: b7a6cca218aef4e18ce03a58561555ef0dee7231
https://github.com/llvm/llvm-project/commit/b7a6cca218aef4e18ce03a58561555ef0dee7231
Author: Xing Xue <xingxue at outlook.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
Log Message:
-----------
[libc++][test] XFAIL sized deallocation tests for AIX, z/OS, and MinGW (#98960)
The sized deallocation test cases fail on AIX, z/OS, and MinGW because
they default to `-fno-sized-deallocation`. This patch XFAILs these test
cases for the affected targets. Once they change the default, we will
get `unexpectedly pass`.
Commit: 6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
https://github.com/llvm/llvm-project/commit/6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libclc/CMakeLists.txt
M libclc/cmake/modules/AddLibclc.cmake
Log Message:
-----------
[libclc] Revise IDE folder structure (#89746)
Reviewers of #89153 suggested to break up the patch into per-subproject
patches. This is the libclc part. See #89153 for the entire series and
motivation.
Update the folder titles for targets in the monorepository that have not
seen taken care of for some time. These are the folders that targets are
organized in Visual Studio and XCode
(`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
when using the respective CMake's IDE generator.
* Ensure that every target is in a folder
* Use a folder hierarchy with each LLVM subproject as a top-level folder
* Use consistent folder names between subprojects
* When using target-creating functions from AddLLVM.cmake, automatically
deduce the folder. This reduces the number of
`set_property`/`set_target_property`, but are still necessary when
`add_custom_target`, `add_executable`, `add_library`, etc. are used. A
LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
root CMakeLists.txt.
Commit: c0084c36ed55ce78331aca7d0d10781a9f00b256
https://github.com/llvm/llvm-project/commit/c0084c36ed55ce78331aca7d0d10781a9f00b256
Author: Hideto Ueno <uenoku.tokotoko at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
Log Message:
-----------
[mlir][BytecodeReader] Const qualify *SectionReader, NFC (#99376)
`StringSectionReader`, `ResourceSectionReader` and
`PropertiesSectionReader` are immutable after `initialize` so this PR
adds const to their parsing functions and references in `AttrTypeReader`
and `DialectReader`.
Commit: 7e6a73959ae97b1f9476a90290a492ba90cb950d
https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d
Author: Romaric Jodin <rjodin at chromium.org>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libclc/clspv/lib/math/fma.cl
M libclc/generic/include/clc/convert.h
M libclc/generic/include/math/clc_ldexp.h
M libclc/generic/lib/clcmacro.h
M libclc/generic/lib/gen_convert.py
M libclc/generic/lib/math/acos.cl
M libclc/generic/lib/math/acosh.cl
M libclc/generic/lib/math/acospi.cl
M libclc/generic/lib/math/asinh.cl
M libclc/generic/lib/math/atan.cl
M libclc/generic/lib/math/atan2.cl
M libclc/generic/lib/math/atan2pi.cl
M libclc/generic/lib/math/atanh.cl
M libclc/generic/lib/math/atanpi.cl
M libclc/generic/lib/math/cbrt.cl
M libclc/generic/lib/math/clc_ldexp.cl
M libclc/generic/lib/math/clc_pown.cl
M libclc/generic/lib/math/clc_remquo.cl
M libclc/generic/lib/math/clc_rootn.cl
M libclc/generic/lib/math/clc_sw_binary.inc
M libclc/generic/lib/math/clc_sw_unary.inc
M libclc/generic/lib/math/cos.cl
M libclc/generic/lib/math/cosh.cl
M libclc/generic/lib/math/cospi.cl
M libclc/generic/lib/math/exp.cl
M libclc/generic/lib/math/expm1.cl
M libclc/generic/lib/math/fdim.inc
M libclc/generic/lib/math/frexp.inc
M libclc/generic/lib/math/ilogb.cl
M libclc/generic/lib/math/lgamma.cl
M libclc/generic/lib/math/lgamma_r.cl
M libclc/generic/lib/math/lgamma_r.inc
M libclc/generic/lib/math/log10.cl
M libclc/generic/lib/math/log1p.cl
M libclc/generic/lib/math/log2.cl
M libclc/generic/lib/math/log_base.h
M libclc/generic/lib/math/logb.cl
M libclc/generic/lib/math/pown.inc
M libclc/generic/lib/math/remquo.inc
M libclc/generic/lib/math/rootn.inc
M libclc/generic/lib/math/sin.cl
M libclc/generic/lib/math/sincos.inc
M libclc/generic/lib/math/sinh.cl
M libclc/generic/lib/math/sinpi.cl
M libclc/generic/lib/math/tanh.cl
Log Message:
-----------
libclc: increase fp16 support (#98149)
Increase fp16 support to allow clspv to continue to be OpenCL compliant
following the update of the OpenCL-CTS adding more testing on math
functions and conversions with half.
Math functions are implemented by upscaling to fp32 and using the fp32
implementation. It garantees the accuracy required for half-precision
float-point by the CTS.
Commit: 61a58633d541780e34e6d459af2631b3539d415f
https://github.com/llvm/llvm-project/commit/61a58633d541780e34e6d459af2631b3539d415f
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
Log Message:
-----------
[gn build] Port fe6c24000f2d (clangd modules)
Commit: d1d14b78d18a9f45f36e580fdd8d499a4bf09093
https://github.com/llvm/llvm-project/commit/d1d14b78d18a9f45f36e580fdd8d499a4bf09093
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/SandboxIR/BUILD.gn
Log Message:
-----------
[gn build] Port 5338bd3c8ac5
Commit: 38f1dd2e45b854c1d682dd1d4481ef471e61fa10
https://github.com/llvm/llvm-project/commit/38f1dd2e45b854c1d682dd1d4481ef471e61fa10
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/docs/gpu/support.rst
Log Message:
-----------
[libc] Remove `strerror_r` on the GPU for now
Summary:
This function has conflicting definitions, which makes it difficult to
use in an offloading setting. Disable it for now.
Commit: cb3de24b5c0a662ba4a03c6c06a2d765d558bf62
https://github.com/llvm/llvm-project/commit/cb3de24b5c0a662ba4a03c6c06a2d765d558bf62
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx2c.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/__iterator/concepts.h
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][iterator][ranges] P2997R1: Removing the common reference requirement from the indirectly invocable concepts (#98817)
Implements as DR against C++20: https://wg21.link/P2997R1
References:
- https://eel.is/c++draft/indirectcallable.indirectinvocable
- https://eel.is/c++draft/version.syn#header:%3cversion%3e
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: b634e057ddecc41dce046887d0f0854fed305374
https://github.com/llvm/llvm-project/commit/b634e057ddecc41dce046887d0f0854fed305374
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll
Log Message:
-----------
[SLP][REVEC] Fix false assumption of the source for castToScalarTyElem. (#99424)
The argument V may come from adjustExtracts, which is the vector operand
of ExtractElementInst. In addition, it is not existed in getTreeEntry.
The vector operand of ExtractElementInst may have a type of <1 x Ty>,
ensuring that the number of elements in ScalarTy and VecTy are equal.
reference: https://github.com/llvm/llvm-project/issues/99411
Commit: 68cb903594cd03dd708ef70c85c10807a6deefb5
https://github.com/llvm/llvm-project/commit/68cb903594cd03dd708ef70c85c10807a6deefb5
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vselect-avx.ll
Log Message:
-----------
Revert d43ec97de081755990264049eba09cb7c83cb321 "[X86] combineConcatVectorOps - IsConcatFree - peek through bitcasts to find inplace subvectors."
I've been given reports of this causing infinite loops downstream - I'm going to revert for now while I investigate.
Commit: 8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
https://github.com/llvm/llvm-project/commit/8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/CMakeLists.txt
M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
M libc/benchmarks/gpu/LibcGpuBenchmark.h
M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp
Log Message:
-----------
[libc] Add Multithreaded GPU Benchmarks (#98964)
This PR runs benchmarks on a 32 threads (A single warp on NVPTX) by
default, adding the option for single threaded benchmarks. We can
specify that a benchmark should be run on a single thread using the
`SINGLE_THREADED_BENCHMARK()` macro.
I chose to use a flag here so that other options could be added in the
future.
Commit: bf02f41726a48e5eb1dbe7c188f9e36ec6a29ac2
https://github.com/llvm/llvm-project/commit/bf02f41726a48e5eb1dbe7c188f9e36ec6a29ac2
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/Sema/ParsedAttr.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/test/C/C2y/n3254.c
M clang/test/Sema/alignas.c
Log Message:
-----------
Fix a regression with alignas on structure members in C (#98642)
This was a 19.x regression and thus has no release note.
Fixes #95032
Commit: c5f402f95d9617882b26d5799f503383b895c2e4
https://github.com/llvm/llvm-project/commit/c5f402f95d9617882b26d5799f503383b895c2e4
Author: Egor Zhdan <e_zhdan at apple.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesWriter.cpp
Log Message:
-----------
[APINotes] Reduce memory footprint for Obj-C/C++ contexts
We were storing extraneous data for certain Objective-C/C++ entities.
Specifically, for declarations that can be nested in another context
(such as functions) we were storing the kind of the parent context in
addition to its ID. The ID is always sufficient.
This removes the logically incorrect usages of `ContextTableKey` that
don't actually describe a context, but rather describe a single
declaration. This introduces `SingleDeclTableKey` to store that kind of
entities in a more compact and reasonable way.
Commit: 39bb244a16e59cb8f2080f96e9de599007762635
https://github.com/llvm/llvm-project/commit/39bb244a16e59cb8f2080f96e9de599007762635
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/revec.ll
Log Message:
-----------
[SLP][REVEC] Make Instruction::Call support vector instructions. (#99317)
Commit: 27ec379f636ceac655faa290e78735ea98e02cbf
https://github.com/llvm/llvm-project/commit/27ec379f636ceac655faa290e78735ea98e02cbf
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll
Log Message:
-----------
[AMDGPU] Do not select llvm.amdgcn.inverse.ballot with wrong wave size (#99470)
This produces a "cannot select" error, instead of failing later with an
illegal vgpr to sgpr copy.
Commit: 7f2bd53b142ec147da9f8bd98775be1d14457ba1
https://github.com/llvm/llvm-project/commit/7f2bd53b142ec147da9f8bd98775be1d14457ba1
Author: Robin Caloudis <robin.caloudis at gmx.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/include/__math/traits.h
M libcxx/test/std/numerics/c.math/isfinite.pass.cpp
Log Message:
-----------
[libc++] Fix acceptance of convertible-to-{float,double,long double} in std::isfinite() (#98841)
Closes https://github.com/llvm/llvm-project/issues/98816.
Commit: 6a141610f1fc3a53b5b1fd86fa996a90f5c1b849
https://github.com/llvm/llvm-project/commit/6a141610f1fc3a53b5b1fd86fa996a90f5c1b849
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Add getGFNICtrlMask helper for the constant creation and bitcasting. NFC.
Commit: fde51e24b593087a15494203ef68a77bb4f12115
https://github.com/llvm/llvm-project/commit/fde51e24b593087a15494203ef68a77bb4f12115
Author: Janet Cobb <jason.e.cobb at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/utils/libcxx/test/params.py
Log Message:
-----------
[libc++][test] Raise a useful error when no -std=c++NN flag is found to work (#99423)
Recently ran into an issue with symptoms very similar to
https://github.com/llvm/llvm-project/issues/56816 while attempting to
build and test libc++ on NixOS. The error message is cryptic (just
`StopIteration`), which was very annoying to track down. The error at
least saying "hey your compiler's bad" would have saved me quite a bit
of time figuring out the issue.
Commit: 3eb666e292baf87c969be733de858b0cb7ead13f
https://github.com/llvm/llvm-project/commit/3eb666e292baf87c969be733de858b0cb7ead13f
Author: Krasimir Georgiev <krasimir at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
Log Message:
-----------
update bazel for a6d2da8b9d7be19816dd4c76b02016c19618c1be
Commit: fc65a9603bf16ed1fe98fbee6933bca9e2083384
https://github.com/llvm/llvm-project/commit/fc65a9603bf16ed1fe98fbee6933bca9e2083384
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
M clang/test/AST/Interp/new-delete.cpp
Log Message:
-----------
[clang][Interp] Run record destructors when deallocating dynamic memory
Commit: 4dfa75c663e53be1d548b340e562dd5c4e87fe65
https://github.com/llvm/llvm-project/commit/4dfa75c663e53be1d548b340e562dd5c4e87fe65
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__type_traits/is_enum.h
R libcxx/include/__type_traits/is_scoped_enum.h
M libcxx/include/module.modulemap
M libcxx/include/type_traits
Log Message:
-----------
[libc++] Merge is_scoped_enum.h into is_enum.h (#99458)
Commit: 561246e90282a72b5b0c437cbbdae171526aad8f
https://github.com/llvm/llvm-project/commit/561246e90282a72b5b0c437cbbdae171526aad8f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/remove_cv.h
Log Message:
-----------
[libc++][NFC] Remove wrong #endif comment
Commit: 15495b8cd4051d05c1b88c919e7c509a8ea4056a
https://github.com/llvm/llvm-project/commit/15495b8cd4051d05c1b88c919e7c509a8ea4056a
Author: Johannes Reifferscheid <jreiffers at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/test/CAPI/rewrite.c
Log Message:
-----------
[mlir] Fix unused-variable warning w/o assertions. (#99489)
Commit: d00b35534d068510025d22e5bd9c4fdac45757fb
https://github.com/llvm/llvm-project/commit/d00b35534d068510025d22e5bd9c4fdac45757fb
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
A clang/test/AST/Interp/cxx2a.cpp
Log Message:
-----------
[clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns
Commit: d9cb65ff483a2f79d0d3f0239796abe829372e52
https://github.com/llvm/llvm-project/commit/d9cb65ff483a2f79d0d3f0239796abe829372e52
Author: Romaric Jodin <rjodin at chromium.org>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libclc/generic/include/clc/convert.h
M libclc/generic/lib/gen_convert.py
Log Message:
-----------
libclc: fix convert with half (#99481)
Fix following update of libclc introducing more fp16 support:
https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d
Commit: ad7aeb0ff58ebd29f68adb85c64e8010639e2a76
https://github.com/llvm/llvm-project/commit/ad7aeb0ff58ebd29f68adb85c64e8010639e2a76
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
R clang/test/AST/Interp/cxx2a.cpp
Log Message:
-----------
Revert "[clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns"
This reverts commit d00b35534d068510025d22e5bd9c4fdac45757fb.
This breaks the ms-constexpr test:
https://lab.llvm.org/buildbot/#/builders/144/builds/2605
Commit: a778909168746e266ad52b817a758328cdd28311
https://github.com/llvm/llvm-project/commit/a778909168746e266ad52b817a758328cdd28311
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 4dfa75c663e5
Commit: 684a61506a3ddc943b8baef1d14c96bbf82e6c04
https://github.com/llvm/llvm-project/commit/684a61506a3ddc943b8baef1d14c96bbf82e6c04
Author: A. Jiang <de34 at live.cn>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/ReleaseNotes/20.rst
M libcxx/include/__chrono/weekday.h
M libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/comparisons.pass.cpp
Log Message:
-----------
[libc++][chrono] Remove non-standard relational operators for `std::chrono::weekday` (#98730)
These operators are absent in https://eel.is/c++draft/time.syn and a note in
https://eel.is/c++draft/time.cal.wd.overview#1 indicates that the absence is
intended.
This patch removes the undocumented extension, while providing a migration path
for vendors by providing the `_LIBCPP_ENABLE_REMOVED_WEEKDAY_RELATIONAL_OPERATORS`
macro. This macro will be honored for the LLVM 19 release and will be removed after
that, at which point allocator will be removed unconditionally.
Commit: 078198f310d55925ccd9e1aa5b6ff4af3b36bbc7
https://github.com/llvm/llvm-project/commit/078198f310d55925ccd9e1aa5b6ff4af3b36bbc7
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
M llvm/unittests/CodeGen/InstrRefLDVTest.cpp
Log Message:
-----------
[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)
A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).
About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).
We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.
Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.
Commit: 50b657c8f655a86826e94131729b0f13a58acbca
https://github.com/llvm/llvm-project/commit/50b657c8f655a86826e94131729b0f13a58acbca
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
M llvm/unittests/CodeGen/InstrRefLDVTest.cpp
Log Message:
-----------
Revert "[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)"
This reverts commit 078198f310d55925ccd9e1aa5b6ff4af3b36bbc7.
Buildbots unhappy, I must have fluffed it
Commit: 1a80153ba91f1e623c042fa0ae1ee5ab67087c0e
https://github.com/llvm/llvm-project/commit/1a80153ba91f1e623c042fa0ae1ee5ab67087c0e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC]Simplify the structure and improve message of safe distance analysis for scalable vectorization. (#99487)
Commit: 92f9f014015554c5dd18df4699765cc42853a04d
https://github.com/llvm/llvm-project/commit/92f9f014015554c5dd18df4699765cc42853a04d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bitreverse.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
M llvm/test/CodeGen/X86/vector-bitreverse.ll
Log Message:
-----------
[X86] getGFNICtrlMask - create a vXi8 mask instead of a bitcasted vXi64 mask.
Helps avoid some missed load-folds by stripping away bitcasts and make it easier to grok the GF2P8AFFINEQB masks.
Commit: 9fae0c6f9c05915a5daac5b368258a40e1fab237
https://github.com/llvm/llvm-project/commit/9fae0c6f9c05915a5daac5b368258a40e1fab237
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
A clang/test/AST/Interp/cxx2a.cpp
Log Message:
-----------
Reapply "[clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns"
This reverts commit ad7aeb0ff58ebd29f68adb85c64e8010639e2a76.
Commit: cd495d2cdd84a22026a115c7e9923c27b196732e
https://github.com/llvm/llvm-project/commit/cd495d2cdd84a22026a115c7e9923c27b196732e
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
A a-abfdec1d.o.tmp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Driver/Options.td
M clang/include/clang/Frontend/FrontendOptions.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/Driver/ftime-trace-sections.cpp
M clang/test/Driver/ftime-trace.cpp
M clang/tools/driver/cc1_main.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
M llvm/include/llvm/Support/TimeProfiler.h
M llvm/lib/Support/TimeProfiler.cpp
Log Message:
-----------
Add source file name for template instantiations in -ftime-trace (#98320)
This is helpful in identifying file and location which contain the particular template declaration.
Commit: 1cc107234969c33a7036b9694da57f4223e3e4d7
https://github.com/llvm/llvm-project/commit/1cc107234969c33a7036b9694da57f4223e3e4d7
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
A llvm/test/MachineVerifier/test_uscmp.mir
M llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-cxx.td
M llvm/test/TableGen/GlobalISelEmitter.td
Log Message:
-----------
[GlobalIsel] Add G_SCMP and G_UCMP instructions (#98894)
https://github.com/llvm/llvm-project/pull/83227
Commit: 47b63cd508f993d9fab2acfbf0dcf86cdc8c5335
https://github.com/llvm/llvm-project/commit/47b63cd508f993d9fab2acfbf0dcf86cdc8c5335
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/Options.td
A lld/test/MachO/reproduce-thin-archive-objc.s
M lld/test/MachO/reproduce-thin-archives.s
Log Message:
-----------
[lld-macho] Save all thin archive members in repro tarball (#97169)
Previously, we only saved those members of thin archives into a repro
file that were actually used during linking. However, -ObjC handling
requires us to inspect all members, even those that don't end up being
loaded.
We weren't handling missing members correctly and crashed with an
"unhandled `Error`" failure in LLVM_ENABLE_ABI_BREAKING_CHECKS builds.
To fix this, we now eagerly load all object files and warn when
encountering missing members (in the instances where it wasn't a hard
error before). To avoid having to patch out the checks when dealing
with older repro files, the `--no-warn-thin-archive-missing-members`
flag is added as an escape hatch.
Commit: c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8
https://github.com/llvm/llvm-project/commit/c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/test/Preprocessor/aarch64-target-features.c
Log Message:
-----------
[clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)
Whenever these tests change, it's difficult to see why they don't match,
and the diff after you've fixed them isn't easy to grok. By splitting
them with a sed pipe, we fix both issues simultaneously.
Commit: 257a0d535ac052a4eb1bb847605eff1eb169087d
https://github.com/llvm/llvm-project/commit/257a0d535ac052a4eb1bb847605eff1eb169087d
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/Opcodes.td
M clang/test/AST/Interp/cxx11.cpp
Log Message:
-----------
[clang][Interp] Diagnose out-of-range casts to enum types
Commit: 7d74ca9513a3fa53b482230c20b1977a1f3d121b
https://github.com/llvm/llvm-project/commit/7d74ca9513a3fa53b482230c20b1977a1f3d121b
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
M llvm/test/Transforms/SCCP/phis.ll
Log Message:
-----------
[ValueLattice] Support constant vectors in mergeIn() (#99466)
This is a followup to vector support in LVI/CVP/SCCP. In mergeIn(), if
one of the operands is a vector of integer constant, we should try to
convert it into a constant range, in case that allows performing a range
union to something better than overdefined.
Commit: 9711f6bda1363eb3b8850ee67958ab90357db006
https://github.com/llvm/llvm-project/commit/9711f6bda1363eb3b8850ee67958ab90357db006
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/test/Transforms/GVN/condprop.ll
Log Message:
-----------
[GVN] Add additional tests for pointer replacement (NFC)
Commit: f6b06b42a3f4f59ff33da20d42358f2768eaf726
https://github.com/llvm/llvm-project/commit/f6b06b42a3f4f59ff33da20d42358f2768eaf726
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/CodeGen/Address.h
M clang/lib/CodeGen/CGBuilder.h
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/lib/CodeGen/CGValue.h
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Headers/ptrauth.h
A clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
A clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c
Log Message:
-----------
[PAC] Implement function pointer re-signing (#98847)
Re-signing occurs when function type discrimination is enabled and a
function pointer is converted to another function pointer type that
requires signing using a different discriminator. A function pointer is
re-signed using discriminator zero when it's converted to a pointer to a
non-function type such as `void*`.
---------
Co-authored-by: Ahmed Bougacha <ahmed at bougacha.org>
Co-authored-by: John McCall <rjmccall at apple.com>
Commit: 676efd0ffb717215c752f200fe14163732290dcc
https://github.com/llvm/llvm-project/commit/676efd0ffb717215c752f200fe14163732290dcc
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
M llvm/unittests/CodeGen/InstrRefLDVTest.cpp
Log Message:
-----------
Reapply 078198f310d5 "Index DebugVariables and some DILocations"
Now revised to actually make the unit test compile, which I'd been
ignoring. No actual functional change, it's a type difference.
Original commit message follows.
[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)
A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).
About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).
We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.
Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.
Commit: 497ea1d84951626dea5bf644fef2d99e145e21ac
https://github.com/llvm/llvm-project/commit/497ea1d84951626dea5bf644fef2d99e145e21ac
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Log Message:
-----------
[DAG] tryToFoldExtendSelectLoad - reuse existing SDLoc. NFC.
Commit: 2bdcfbe62cb9a08df4b58a17d44be0a3082df053
https://github.com/llvm/llvm-project/commit/2bdcfbe62cb9a08df4b58a17d44be0a3082df053
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/CXX/drs/cwg24xx.cpp
M clang/test/SemaCXX/cxx-deprecated.cpp
Log Message:
-----------
[clang] Fix crash in concept deprecation (#98622)
There is a gap between `getAs<AutoType>()` and
`getConstrainedAutoType()` that the original patch #92295 was not aware
of.
Fixes #98164
Commit: a2d309912a2863dfe7286ffde67b968e8c720b07
https://github.com/llvm/llvm-project/commit/a2d309912a2863dfe7286ffde67b968e8c720b07
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
A clang/test/CodeGen/aarch64-fmv-resolver-emission.c
M clang/test/CodeGen/aarch64-mixed-target-attributes.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-version.c
A clang/test/CodeGenCXX/aarch64-fmv-resolver-emission.cpp
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/CodeGenCXX/attr-target-version.cpp
M clang/test/CodeGenCXX/fmv-namespace.cpp
Log Message:
-----------
[FMV][AArch64] Do not emit ifunc resolver on use. (#97761)
It was raised in https://github.com/llvm/llvm-project/issues/81494 that
we are not generating correct code when there is no TU-local caller.
The suggestion was to emit a resolver:
* Whenever there is a use in the TU.
* When the TU has a definition of the default version.
See the comment for more details:
https://github.com/llvm/llvm-project/issues/81494#issuecomment-1985963497
This got addressed with https://github.com/llvm/llvm-project/pull/84405.
Generating a resolver on use means that we may end up with multiple
resolvers across different translation units. Those resolvers may not be
the same because each translation unit may contain different version
declarations (user's fault). Therefore the order of linking the final
image determines which of these weak symbols gets selected, resulting in
non consisted behavior. I am proposing to stop emitting a resolver on
use and only do so in the translation unit which contains the default
definition. This way we guarantee the existence of a single resolver.
Now, when a versioned function is used we want to emit a declaration of
the function symbol omitting the multiversion mangling.
I have added a requirement to ACLE mandating that all the function
versions are declared in the translation unit which contains the default
definition: https://github.com/ARM-software/acle/pull/328
Commit: 9af3628ce7400a96205a4c4468867c3c11dd4b2f
https://github.com/llvm/llvm-project/commit/9af3628ce7400a96205a4c4468867c3c11dd4b2f
Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/CodeGen/Targets/SystemZ.cpp
M clang/test/CodeGen/SystemZ/systemz-abi.c
Log Message:
-----------
[SystemZ] Fix transparent_union calling convention
The SystemZ ABI code was missing code to handle the transparent_union
extension. Arguments of such types are specified to be passed like
the first member of the union, instead of according to the usual
ABI calling convention for aggregates.
This did not make much difference in practice as the SystemZ ABI
already specifies that 1-, 2-, 4- or 8-byte aggregates are passed
in registers. However, there *is* a difference if the first member
of the transparent union is a scalar integer type smaller than word
size - if passed as a scalar, it needs to be zero- or sign-extended
to word size, while if passed as aggregate, it is not.
Fixed by adding code to handle transparent_union similar to what
is done on other targets.
Commit: 0c4023ae3b64c54ff51947e9776aee0e963c5635
https://github.com/llvm/llvm-project/commit/0c4023ae3b64c54ff51947e9776aee0e963c5635
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
Log Message:
-----------
[RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)
We were only checking that the node from the worklist is a supported
root. We weren't checking the strategy or any of its operands unless it
was the original node. For any other node, we just rechecked the
original node's strategy and operands.
The effect of this is that we don't do all of the transformations at
once. Instead, when there were multiple possible nodes to transform we
would only do them as each node was visited by the main DAG combine
worklist.
The test shows a case where we widened an instruction without removing
all of the uses of the vsext. The sext is shared by one node that shares
another sext node with the root another node that doesn't share anything
with the root.
Commit: 342bd4b89355c27203b5f1abd8c43de6b01aba14
https://github.com/llvm/llvm-project/commit/342bd4b89355c27203b5f1abd8c43de6b01aba14
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
A llvm/test/ExecutionEngine/JITLink/x86-64/MachO_archive_two_objects_same_name.s
Log Message:
-----------
[orc] Add the name of static archives to the name of their member objects (#99407)
Changes "MyObj.o" to "/path/to/libMyLib.a(MyObj.o)".
This allows us to differentiate between objects that have the same
basename but came from different archives. It also fixes a bug where if
two such objects were both linked and both have initializer sections
their initializer symbol would cause a duplicate symbol error.
rdar://131782514
Commit: 10627d20044cb13d3fa60a3bce31d37edb3a591f
https://github.com/llvm/llvm-project/commit/10627d20044cb13d3fa60a3bce31d37edb3a591f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
Log Message:
-----------
Revert "[RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)"
This reverts commit 0c4023ae3b64c54ff51947e9776aee0e963c5635.
I messed up re-generating the test after the change.
Commit: 0ce11a1a763d46e4afe678f3f94a1932c1dcfe5d
https://github.com/llvm/llvm-project/commit/0ce11a1a763d46e4afe678f3f94a1932c1dcfe5d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
Log Message:
-----------
[libc++] Add a release note about C++03 being frozen after LLVM 21 (#95894)
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: 2bf91db0c743f041c9f83609399f75654c07445a
https://github.com/llvm/llvm-project/commit/2bf91db0c743f041c9f83609399f75654c07445a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libcxx/include/string
Log Message:
-----------
[libc++] Use char_traits::copy while inserting when possible (#97201)
This reduces the number of asm lines from 707 to 519 for this snippet:
```c++
auto test(std::string& str, const char* begin, const char* end) {
str.insert(str.begin(), begin, end);
}
```
While that's not a performance metric, I've never seen a use of `memcpy`
result in a performance regression for any realistic usage.
Commit: 77ac07444d32668d5826ef27c24180fb10425213
https://github.com/llvm/llvm-project/commit/77ac07444d32668d5826ef27c24180fb10425213
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
Log Message:
-----------
Re-commit "[RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)"
With correct test update.
Original message:
We were only checking that the node from the worklist is a supported
root. We weren't checking the strategy or any of its operands unless it
was the original node. For any other node, we just rechecked the
original node's strategy and operands.
The effect of this is that we don't do all of the transformations at
once. Instead, when there were multiple possible nodes to transform we
would only do them as each node was visited by the main DAG combine
worklist.
The test shows a case where we widened an instruction without removing
all of the uses of the vsext. The sext is shared by one node that shares
another sext node with the root another node that doesn't share anything
with the root.
Commit: c0c157a51832a2c7bbd09a449e33cc94d7747abf
https://github.com/llvm/llvm-project/commit/c0c157a51832a2c7bbd09a449e33cc94d7747abf
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M bolt/include/bolt/Rewrite/DWARFRewriter.h
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT][DWARF][NFC] Remove DWO ranges base (#99284)
Removes getters and setters for DWO ranges base due to it not being
used.
Commit: 8c8e0ddae96882247717b8ae1739abcf09726eab
https://github.com/llvm/llvm-project/commit/8c8e0ddae96882247717b8ae1739abcf09726eab
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/test/AST/Interp/cxx11.cpp
Log Message:
-----------
[clang][Interp][test] Use fixed triple in cxx11 test
This uses 'long', which has a different size on Windows. The test
I copied this from also uses x86_64-linux.
This should fix the bot:
https://lab.llvm.org/buildbot/#/builders/81/builds/853
Commit: fe04aafe6c27f32ad4ba38e552d06d14431cb2de
https://github.com/llvm/llvm-project/commit/fe04aafe6c27f32ad4ba38e552d06d14431cb2de
Author: Uday Bondhugula <uday at polymagelabs.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Analysis/LoopAnalysis.h
M mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
M mlir/test/Dialect/Affine/loop-tiling-validity.mlir
Log Message:
-----------
[MLIR][Affine] NFC. Expose affine loop tiling validity utility (#99459)
Move the utility to check for the validity of tiling affine loop nests
to affine loop utils and expose for users outside the loop tiling pass
or downstream users.
Commit: 06ab30b57450694818dbb649dec2a687f44df7f4
https://github.com/llvm/llvm-project/commit/06ab30b57450694818dbb649dec2a687f44df7f4
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
Log Message:
-----------
[AMDGPU] Constant folding of llvm.amdgcn.trig.preop (#98562)
If the parameters(the input and segment select) coming in to
amdgcn.trig.preop intrinsic are compile time constants, we pre-compute
the output of amdgcn.trig.preop on the CPU and replaces the uses with
the computed constant.
This work extends the patch https://reviews.llvm.org/D120150 to make it
a complete coverage.
For the segment select, only src1[4:0] are used. A segment select is
invalid if we are selecting the 53-bit segment beyond the [1200:0] range
of the 2/PI table. 0 is returned when a segment select is not valid.
Commit: 371777695fe1b5407753ef2232d1b73014d3e501
https://github.com/llvm/llvm-project/commit/371777695fe1b5407753ef2232d1b73014d3e501
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Assert uniform recipes don't get predicated for when vectorizing.
Add assertion ensuring invariant on construction, split off as suggested
from https://github.com/llvm/llvm-project/pull/98892.
Commit: d06b55e7934635049d55efff2dc9e745f911240c
https://github.com/llvm/llvm-project/commit/d06b55e7934635049d55efff2dc9e745f911240c
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M flang/runtime/misc-intrinsic.cpp
Log Message:
-----------
[Flang][Runtime] Improve runtime implementation of the RENAME intrinsic (#99445)
The RENAME implementation in the Fortran runtime had a few glitches that
had to be addressed:
- Wrong usage of RTDECL (fixed)
- Issue fatal error when trying to use RENAME on a target device (fixed)
Commit: 3d69bbc35158822c9e1371b5c37a24213a8a81fc
https://github.com/llvm/llvm-project/commit/3d69bbc35158822c9e1371b5c37a24213a8a81fc
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZInstrHFP.td
M llvm/test/MC/SystemZ/insn-bad.s
M llvm/test/MC/SystemZ/insn-good.s
Log Message:
-----------
Allow MAY(R)? to accept the high components of register pairs (#98606)
The HFP instructions `MAY` and `MAYR`, unlike any other floating point
instructions, allow the specification of a 128bit register pair by
either the lower-numbered or the higher-numbered component register. In
order to support this, but change as little about codegen as possible,
the existing `MAY(R)?` definition is made `CodeGenOnly`, while a copy is
provided for the assembler and disassembler, which simply accepts a
64bit floating point register in place of the 128bit one. This copy is
stripped of its pattern to prevent codegen from using it.
The corresponding assembly tests that checked the register specification
rule that this commit removes from `MAY(R)?` have also been removed.
Commit: 574dbe3e9cdaf94b390015a53b76f87bdaf68aae
https://github.com/llvm/llvm-project/commit/574dbe3e9cdaf94b390015a53b76f87bdaf68aae
Author: Christopher Di Bella <cjdb at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Log Message:
-----------
suppresses unused variable warning (#99526)
Commit: 74e51e3efe1d4c79c1b7914c3ead19832e8cc1fb
https://github.com/llvm/llvm-project/commit/74e51e3efe1d4c79c1b7914c3ead19832e8cc1fb
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/revec-fix-99411.ll
R llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll
Log Message:
-----------
Move the test to the correct folder. A test specified for a target
should remain in its designated folder.
Commit: 13a8f8d51962b59949496c460ea0b8ad22ae908a
https://github.com/llvm/llvm-project/commit/13a8f8d51962b59949496c460ea0b8ad22ae908a
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-19 (Fri, 19 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
Log Message:
-----------
[InferAttrs] Set attributes for `remainder` (#99521)
Fixes one of the issues in
https://github.com/llvm/llvm-project/issues/99497.
Commit: 1c55586e9a475a09b7d769e7fc9a254e7150c972
https://github.com/llvm/llvm-project/commit/1c55586e9a475a09b7d769e7fc9a254e7150c972
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/lib/Lex/Preprocessor.cpp
Log Message:
-----------
[clang] Fix typo in comments
Commit: ce8c43fe274f3f090cad2342af6032176efb846f
https://github.com/llvm/llvm-project/commit/ce8c43fe274f3f090cad2342af6032176efb846f
Author: Lei Wang <wlei at fb.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfile.cpp
Log Message:
-----------
Fix assertion of null pointer samples in inline replay mode (#99378)
Fix https://github.com/llvm/llvm-project/issues/97108. In inline replay
mode, `CalleeSamples` may be null and the order doesn't matter.
Commit: b2dcf62c514d3c9c143c85bd029d22098b92c38d
https://github.com/llvm/llvm-project/commit/b2dcf62c514d3c9c143c85bd029d22098b92c38d
Author: Meredith Julian <35236176+mjulian31 at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
A llvm/test/CodeGen/NVPTX/i1-ext-load.ll
A llvm/test/CodeGen/NVPTX/i1-load-lower.ll
Log Message:
-----------
[NVPTX] fix emission for i1 load and extload (#99392)
Currently, an illegal 2-byte load from a 1-byte global variable is being
generated. This change instead generates a 1-byte load and zero-extends
it to i16 register. This was always the intended behavior of the
function.
In addition, an i1 ext load of any kind needs to be promoted. A missing
setLoadExtAction for ISD::EXTLOAD was causing an "Unhandled source type"
unreachable due to an illegal i1 ext load during ISelDAGtoDAG (see below
bug).
Bug https://github.com/llvm/llvm-project/issues/98033.
Commit: 04bcd74df73af6fed16bfd0d6784fc0aec582bc0
https://github.com/llvm/llvm-project/commit/04bcd74df73af6fed16bfd0d6784fc0aec582bc0
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
R a-abfdec1d.o.tmp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Driver/Options.td
M clang/include/clang/Frontend/FrontendOptions.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/Driver/ftime-trace-sections.cpp
M clang/test/Driver/ftime-trace.cpp
M clang/tools/driver/cc1_main.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
M llvm/include/llvm/Support/TimeProfiler.h
M llvm/lib/Support/TimeProfiler.cpp
Log Message:
-----------
Revert "Add source file name for template instantiations in -ftime-trace" (#99534)
Reverts llvm/llvm-project#98320
Breaks windows tests:
```
Step 8 (test-build-unified-tree-check-clang-unit) failure: test (failure)
******************** TEST 'Clang-Unit :: Support/./ClangSupportTests.exe/1/3' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe-Clang-Unit-4296-1-3.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=3 GTEST_SHARD_INDEX=1 C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe
--
Script:
--
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe --gtest_filter=TimeProfilerTest.TemplateInstantiations
--
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Support\TimeProfilerTest.cpp(278): error: Expected equality of these values:
R"(
Frontend
| ParseFunctionDefinition (fooB)
| ParseFunctionDefinition (fooMTA)
| ParseFunctionDefinition (fooA)
| ParseDeclarationOrFunctionDefinition (test.cc:3:5)
| | ParseFunctionDefinition (user)
| PerformPendingInstantiations
| | InstantiateFunction (fooA<int>, ./a.h:7)
| | | InstantiateFunction (fooB<int>, ./b.h:3)
| | | InstantiateFunction (fooMTA<int>, ./a.h:4)
)"
Which is: "\nFrontend\n| ParseFunctionDefinition (fooB)\n| ParseFunctionDefinition (fooMTA)\n| ParseFunctionDefinition (fooA)\n| ParseDeclarationOrFunctionDefinition (test.cc:3:5)\n| | ParseFunctionDefinition (user)\n| PerformPendingInstantiations\n| | InstantiateFunction (fooA<int>, ./a.h:7)\n| | | InstantiateFunction (fooB<int>, ./b.h:3)\n| | | InstantiateFunction (fooMTA<int>, ./a.h:4)\n"
buildTraceGraph(Json)
Which is: "\nFrontend\n| ParseFunctionDefinition (fooB)\n| ParseFunctionDefinition (fooMTA)\n| ParseFunctionDefinition (fooA)\n| ParseDeclarationOrFunctionDefinition (test.cc:3:5)\n| | ParseFunctionDefinition (user)\n| PerformPendingInstantiations\n| | InstantiateFunction (fooA<int>, .\\a.h:7)\n| | | InstantiateFunction (fooB<int>, .\\b.h:3)\n| | | InstantiateFunction (fooMTA<int>, .\\a.h:4)\n"
With diff:
@@ -7,5 +7,5 @@
| | ParseFunctionDefinition (user)
| PerformPendingInstantiations
-| | InstantiateFunction (fooA<int>, ./a.h:7)
-| | | InstantiateFunction (fooB<int>, ./b.h:3)
-| | | InstantiateFunction (fooMTA<int>, ./a.h:4)\n
+| | InstantiateFunction (fooA<int>, .\\a.h:7)
+| | | InstantiateFunction (fooB<int>, .\\b.h:3)
+| | | InstantiateFunction (fooMTA<int>, .\\a.h:4)\n
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Support\TimeProfilerTest.cpp:278
Expected equality of these values:
R"(
Frontend
| ParseFunctionDefinition (fooB)
| ParseFunctionDefinition (fooMTA)
| ParseFunctionDefinition (fooA)
| ParseDeclarationOrFunctionDefinition (test.cc:3:5)
| | ParseFunctionDefinition (user)
| PerformPendingInstantiations
| | InstantiateFunction (fooA<int>, ./a.h:7)
```
Commit: 9fb049c8c6a77026fa75a8d36b386a7f5a60613a
https://github.com/llvm/llvm-project/commit/9fb049c8c6a77026fa75a8d36b386a7f5a60613a
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/math/index.rst
M libc/spec/llvm_libc_ext.td
M libc/spec/stdc.td
M libc/src/__support/FPUtil/generic/CMakeLists.txt
A libc/src/__support/FPUtil/generic/mul.h
M libc/src/math/CMakeLists.txt
A libc/src/math/dmulf128.h
A libc/src/math/dmull.h
A libc/src/math/f16mul.h
A libc/src/math/f16mulf.h
A libc/src/math/f16mulf128.h
A libc/src/math/f16mull.h
A libc/src/math/fmulf128.h
A libc/src/math/fmull.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/dmulf128.cpp
A libc/src/math/generic/dmull.cpp
A libc/src/math/generic/f16mul.cpp
A libc/src/math/generic/f16mulf.cpp
A libc/src/math/generic/f16mulf128.cpp
A libc/src/math/generic/f16mull.cpp
M libc/src/math/generic/fmul.cpp
A libc/src/math/generic/fmulf128.cpp
A libc/src/math/generic/fmull.cpp
M libc/test/src/math/CMakeLists.txt
R libc/test/src/math/FMulTest.h
A libc/test/src/math/MulTest.h
A libc/test/src/math/dmull_test.cpp
A libc/test/src/math/f16mul_test.cpp
A libc/test/src/math/f16mulf_test.cpp
A libc/test/src/math/f16mull_test.cpp
M libc/test/src/math/fmul_test.cpp
A libc/test/src/math/fmull_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
R libc/test/src/math/smoke/FMulTest.h
A libc/test/src/math/smoke/MulTest.h
A libc/test/src/math/smoke/dmulf128_test.cpp
A libc/test/src/math/smoke/dmull_test.cpp
A libc/test/src/math/smoke/f16mul_test.cpp
A libc/test/src/math/smoke/f16mulf128_test.cpp
A libc/test/src/math/smoke/f16mulf_test.cpp
A libc/test/src/math/smoke/f16mull_test.cpp
M libc/test/src/math/smoke/fmul_test.cpp
A libc/test/src/math/smoke/fmulf128_test.cpp
A libc/test/src/math/smoke/fmull_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
Log Message:
-----------
[libc][math][c23] Add {f,d}mul{l,f128} and f16mul{,f,l,f128} C23 math functions (#98972)
Part of #93566.
Fixes #94833.
Commit: b37bdadbe784339e455915368a4893d3bd4a1193
https://github.com/llvm/llvm-project/commit/b37bdadbe784339e455915368a4893d3bd4a1193
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M libc/newhdrgen/class_implementation/classes/function.py
M libc/newhdrgen/header.py
R libc/newhdrgen/tests/output/test_small.h
M libc/newhdrgen/tests/test_integration.py
Log Message:
-----------
[libc] newheadergen: adding h_def_file arg to test (#99397)
- spacing with _NOEXCEPT
Commit: 78e3bfc120c8a23e246f544a5e9fb122828a21a7
https://github.com/llvm/llvm-project/commit/78e3bfc120c8a23e246f544a5e9fb122828a21a7
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[LLDB][test] Drop OS/HOST_OS detection code from Makefile.rules (#99535)
Remove commands for OS/HOST_OS detection from Makefile.rules to simplify
it, since logic for these variables has been implemented in
`lldb/packages/Python/lldbsuite/test/lldbplatformutil.py`
(7021e44b2f0e11717c0d82456bad0fed4a0b48f9).
Commit: c5432d31cb339262451215f6cf9c356a514a1770
https://github.com/llvm/llvm-project/commit/c5432d31cb339262451215f6cf9c356a514a1770
Author: vporpo <vporpodas at google.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
[SandboxIR][Tracker] Track eraseFromParent() (#99431)
This patch adds tracking support for Instruction::eraseFromParent(). The
Instruction is not actually being erased, but instead it is detached
from the instruction list and drops its Use edges. The original
instruction position and Use edges are saved in the `EraseFromParent`
change object, and are being used during `revert()` to restore the
original state.
Commit: 507c18b445ef88d985d95181db8107f669aed998
https://github.com/llvm/llvm-project/commit/507c18b445ef88d985d95181db8107f669aed998
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst
Log Message:
-----------
[clang-tidy] Few tiny fixes after #99084
Update documentation, and correct configuration
Commit: 5431a31f87387763cca8d014e7c07394bab7a1ad
https://github.com/llvm/llvm-project/commit/5431a31f87387763cca8d014e7c07394bab7a1ad
Author: Rafael Stahl <dummdoof-doof at web.de>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.rst
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
Log Message:
-----------
[clang-tidy][NFC] Fix gsl::not_null template parameter (#99472)
`T` is expected to be a pointer type.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-nullptr
Commit: 280d90d0fdb2734af6c071064c6f87a8fe8d06d0
https://github.com/llvm/llvm-project/commit/280d90d0fdb2734af6c071064c6f87a8fe8d06d0
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx11-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w32-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w64-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w32.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w64.cl
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
Log Message:
-----------
AMDGPU: Add back half and bfloat support for global_load_tr16 pats (#99540)
half and bfloat are common types for 16-bit elements. The support of
them was original there and dropped due to some reasons. This work adds
the support of the float types back.
Commit: 9527d77aefcf214944a4c8bd284dde3ffe9dff60
https://github.com/llvm/llvm-project/commit/9527d77aefcf214944a4c8bd284dde3ffe9dff60
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
Log Message:
-----------
[mlir][spirv] Restructure code in `SPIRVConversion.cpp`. NFC. (#99393)
Commit: f6f88f4b99638821af803d1911ab6a7dac04880b
https://github.com/llvm/llvm-project/commit/f6f88f4b99638821af803d1911ab6a7dac04880b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
Log Message:
-----------
[LLVM] Silence compiler-rt warning in runtimes build (#99525)
Summary:
The `compiler-rt` project wants `LLVM_CMAKE_DIR` but the
`llvm_ExternalProject_add` interface sets the `LLVM_CONFIG_PATH`. This
patch just makes the utility pass that as well.
Commit: 5e8cd29d62a72ed18e7bc782554d7f14eccec0ee
https://github.com/llvm/llvm-project/commit/5e8cd29d62a72ed18e7bc782554d7f14eccec0ee
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
A llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll
Log Message:
-----------
[RISCV] Add coverage for vector combine reduce(cast x) transformation
This covers both the existing trunc transform - basically checking
that it performs sanely with the RISCV cost model - and a planned
change to handle sext/zext as well.
Commit: eed72d4381261bfe1acb693fb8751c05765c4831
https://github.com/llvm/llvm-project/commit/eed72d4381261bfe1acb693fb8751c05765c4831
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
M mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir
Log Message:
-----------
[mlir][ArmSME] Support filling liveness 'holes' in the tile allocator (#98350)
Holes in a live range are points where the corresponding value does not
need to be in a tile/register. If the tile allocator keeps track of
these holes it can reuse tiles for more values (avoiding spills).
Take this simple example:
```mlir
func.func @example(%cond: i1) {
%tileA = arm_sme.get_tile : vector<[4]x[4]xf32>
cf.cond_br %cond, ^bb2, ^bb1
^bb1:
// If we end up here we never use %tileA again!
"test.some_use"(%tileB) : (vector<[4]x[4]xf32>) -> ()
cf.br ^bb3
^bb2:
"test.some_use"(%tileA) : (vector<[4]x[4]xf32>) -> ()
cf.br ^bb3
^bb3:
return
}
```
If you were to calculate the liveness of %tileA and %tileB. You'd see
there is a hole in the liveness of %tileA in bb1:
```
%tileA %tileB
^bb0: Live
^bb1: Live
^bb2: Live
```
The tile allocator can make use of that hole and reuse the tile ID it
assigned to %tileA for %tileB.
Commit: 1bd307706a1377e3a80064f9031b637a33fc29c7
https://github.com/llvm/llvm-project/commit/1bd307706a1377e3a80064f9031b637a33fc29c7
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-18 (Thu, 18 Jul 2024)
Changed paths:
M .git-blame-ignore-revs
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Rewrite/DWARFRewriter.h
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
M clang-tools-extra/clangd/CMakeLists.txt
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/ClangdLSPServer.h
M clang-tools-extra/clangd/ClangdServer.cpp
M clang-tools-extra/clangd/ClangdServer.h
M clang-tools-extra/clangd/Compiler.h
M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
M clang-tools-extra/clangd/GlobalCompilationDatabase.h
A clang-tools-extra/clangd/ModulesBuilder.cpp
A clang-tools-extra/clangd/ModulesBuilder.h
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/Preamble.h
A clang-tools-extra/clangd/ProjectModules.h
A clang-tools-extra/clangd/ScanningProjectModules.cpp
A clang-tools-extra/clangd/ScanningProjectModules.h
M clang-tools-extra/clangd/test/CMakeLists.txt
A clang-tools-extra/clangd/test/modules.test
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/CMakeLists.txt
A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/TestFS.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.rst
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/docs/CommandGuide/clang.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang-c/Index.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/AST/Type.h
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Driver/Options.td
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/InterpBlock.cpp
M clang/lib/AST/Interp/InterpState.cpp
M clang/lib/AST/Interp/Opcodes.td
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/Address.h
M clang/lib/CodeGen/CGBuilder.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGDeclCXX.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CGValue.h
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/Targets/SystemZ.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Headers/ptrauth.h
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/CheckExprLifetime.cpp
M clang/lib/Sema/ParsedAttr.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/AST/Interp/cxx11.cpp
A clang/test/AST/Interp/cxx2a.cpp
M clang/test/AST/Interp/new-delete.cpp
M clang/test/C/C2y/n3254.c
M clang/test/CXX/drs/cwg24xx.cpp
M clang/test/CodeGen/SystemZ/systemz-abi.c
A clang/test/CodeGen/aarch64-fmv-resolver-emission.c
M clang/test/CodeGen/aarch64-mixed-target-attributes.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-version.c
M clang/test/CodeGen/pragma-cx-limited-range.c
A clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
A clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c
A clang/test/CodeGenCXX/aarch64-fmv-resolver-emission.cpp
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/CodeGenCXX/attr-target-version.cpp
M clang/test/CodeGenCXX/fmv-namespace.cpp
A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
A clang/test/CodeGenCXX/ptrauth-throw.cpp
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx11-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w32-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w64-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w32.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w64.cl
M clang/test/Driver/Ofast.c
M clang/test/Driver/amdgpu-openmp-toolchain.c
M clang/test/OpenMP/depend_iterator_bug.c
A clang/test/OpenMP/reverse_ast_print.cpp
A clang/test/OpenMP/reverse_codegen.cpp
A clang/test/OpenMP/reverse_messages.cpp
M clang/test/OpenMP/task_codegen.c
M clang/test/Preprocessor/aarch64-target-features.c
M clang/test/Sema/alignas.c
M clang/test/Sema/attr-weak.c
M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/SemaCXX/attr-weak.cpp
M clang/test/SemaCXX/cxx-deprecated.cpp
M clang/test/SemaCXX/warn-dangling-local.cpp
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/asan/asan_mapping.h
M compiler-rt/lib/fuzzer/FuzzerFork.cpp
M compiler-rt/lib/safestack/safestack.cpp
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
M compiler-rt/lib/scudo/standalone/string_utils.h
M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
M compiler-rt/lib/scudo/standalone/vector.h
M compiler-rt/test/fuzzer/lit.cfg.py
M compiler-rt/test/safestack/lit.cfg.py
R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp
M compiler-rt/www/index.html
M flang/include/flang/Semantics/tools.h
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
M flang/lib/Optimizer/Transforms/StackArrays.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/runtime/command.cpp
M flang/runtime/misc-intrinsic.cpp
M flang/test/Driver/linker-flags.f90
M flang/test/Fir/cuf-invalid.fir
M flang/test/Lower/CUDA/cuda-allocatable.cuf
M flang/test/Lower/Intrinsics/second.f90
A flang/test/Parser/OpenMP/proc-bind.f90
A flang/test/Transforms/stack-arrays-hlfir.f90
M flang/test/Transforms/stack-arrays.fir
M libc/benchmarks/gpu/CMakeLists.txt
M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
M libc/benchmarks/gpu/LibcGpuBenchmark.h
M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/config/gpu/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/linux/x86_64/headers.txt
M libc/docs/gpu/support.rst
M libc/docs/math/index.rst
M libc/newhdrgen/class_implementation/classes/function.py
M libc/newhdrgen/header.py
R libc/newhdrgen/tests/output/test_small.h
M libc/newhdrgen/tests/test_integration.py
A libc/newhdrgen/yaml/arpa/arpa_inet.yaml
R libc/newhdrgen/yaml/arpa_inet.yaml
M libc/newhdrgen/yaml/assert.yaml
A libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
M libc/newhdrgen/yaml/math.yaml
M libc/newhdrgen/yaml/pthread.yaml
R libc/newhdrgen/yaml/rpc.yaml
M libc/newhdrgen/yaml/search.yaml
M libc/newhdrgen/yaml/sys/sys_time.yaml
M libc/newhdrgen/yaml/wchar.yaml
M libc/spec/llvm_libc_ext.td
M libc/spec/stdc.td
M libc/src/__support/FPUtil/generic/CMakeLists.txt
A libc/src/__support/FPUtil/generic/mul.h
M libc/src/math/CMakeLists.txt
A libc/src/math/dmulf128.h
A libc/src/math/dmull.h
A libc/src/math/f16mul.h
A libc/src/math/f16mulf.h
A libc/src/math/f16mulf128.h
A libc/src/math/f16mull.h
A libc/src/math/fmulf128.h
A libc/src/math/fmull.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/dmulf128.cpp
A libc/src/math/generic/dmull.cpp
A libc/src/math/generic/f16mul.cpp
A libc/src/math/generic/f16mulf.cpp
A libc/src/math/generic/f16mulf128.cpp
A libc/src/math/generic/f16mull.cpp
M libc/src/math/generic/fmul.cpp
A libc/src/math/generic/fmulf128.cpp
A libc/src/math/generic/fmull.cpp
M libc/test/src/math/CMakeLists.txt
R libc/test/src/math/FMulTest.h
A libc/test/src/math/MulTest.h
A libc/test/src/math/dmull_test.cpp
A libc/test/src/math/f16mul_test.cpp
A libc/test/src/math/f16mulf_test.cpp
A libc/test/src/math/f16mull_test.cpp
M libc/test/src/math/fmul_test.cpp
A libc/test/src/math/fmull_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
R libc/test/src/math/smoke/FMulTest.h
A libc/test/src/math/smoke/MulTest.h
A libc/test/src/math/smoke/dmulf128_test.cpp
A libc/test/src/math/smoke/dmull_test.cpp
A libc/test/src/math/smoke/f16mul_test.cpp
A libc/test/src/math/smoke/f16mulf128_test.cpp
A libc/test/src/math/smoke/f16mulf_test.cpp
A libc/test/src/math/smoke/f16mull_test.cpp
M libc/test/src/math/smoke/fmul_test.cpp
A libc/test/src/math/smoke/fmulf128_test.cpp
A libc/test/src/math/smoke/fmull_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
M libc/utils/gpu/loader/Loader.h
M libc/utils/gpu/loader/Main.cpp
M libc/utils/gpu/loader/amdgpu/Loader.cpp
M libc/utils/gpu/loader/nvptx/Loader.cpp
M libclc/CMakeLists.txt
M libclc/clspv/lib/math/fma.cl
M libclc/cmake/modules/AddLibclc.cmake
M libclc/generic/include/clc/convert.h
M libclc/generic/include/math/clc_ldexp.h
M libclc/generic/lib/clcmacro.h
M libclc/generic/lib/gen_convert.py
M libclc/generic/lib/math/acos.cl
M libclc/generic/lib/math/acosh.cl
M libclc/generic/lib/math/acospi.cl
M libclc/generic/lib/math/asinh.cl
M libclc/generic/lib/math/atan.cl
M libclc/generic/lib/math/atan2.cl
M libclc/generic/lib/math/atan2pi.cl
M libclc/generic/lib/math/atanh.cl
M libclc/generic/lib/math/atanpi.cl
M libclc/generic/lib/math/cbrt.cl
M libclc/generic/lib/math/clc_ldexp.cl
M libclc/generic/lib/math/clc_pown.cl
M libclc/generic/lib/math/clc_remquo.cl
M libclc/generic/lib/math/clc_rootn.cl
M libclc/generic/lib/math/clc_sw_binary.inc
M libclc/generic/lib/math/clc_sw_unary.inc
M libclc/generic/lib/math/cos.cl
M libclc/generic/lib/math/cosh.cl
M libclc/generic/lib/math/cospi.cl
M libclc/generic/lib/math/exp.cl
M libclc/generic/lib/math/expm1.cl
M libclc/generic/lib/math/fdim.inc
M libclc/generic/lib/math/frexp.inc
M libclc/generic/lib/math/ilogb.cl
M libclc/generic/lib/math/lgamma.cl
M libclc/generic/lib/math/lgamma_r.cl
M libclc/generic/lib/math/lgamma_r.inc
M libclc/generic/lib/math/log10.cl
M libclc/generic/lib/math/log1p.cl
M libclc/generic/lib/math/log2.cl
M libclc/generic/lib/math/log_base.h
M libclc/generic/lib/math/logb.cl
M libclc/generic/lib/math/pown.inc
M libclc/generic/lib/math/remquo.inc
M libclc/generic/lib/math/rootn.inc
M libclc/generic/lib/math/sin.cl
M libclc/generic/lib/math/sincos.inc
M libclc/generic/lib/math/sinh.cl
M libclc/generic/lib/math/sinpi.cl
M libclc/generic/lib/math/tanh.cl
M libcxx/CMakeLists.txt
M libcxx/benchmarks/CMakeLists.txt
M libcxx/benchmarks/lit.cfg.py
M libcxx/cmake/caches/AIX.cmake
M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
M libcxx/cmake/caches/s390x-ibm-zos.cmake
M libcxx/docs/BuildingLibcxx.rst
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/ReleaseNotes/20.rst
M libcxx/docs/Status/Cxx2c.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/docs/TestingLibcxx.rst
M libcxx/include/CMakeLists.txt
M libcxx/include/__chrono/weekday.h
M libcxx/include/__configuration/abi.h
M libcxx/include/__iterator/concepts.h
M libcxx/include/__math/traits.h
M libcxx/include/__type_traits/add_pointer.h
M libcxx/include/__type_traits/is_enum.h
R libcxx/include/__type_traits/is_scoped_enum.h
M libcxx/include/__type_traits/make_signed.h
M libcxx/include/__type_traits/remove_cv.h
M libcxx/include/atomic
M libcxx/include/expected
M libcxx/include/filesystem
M libcxx/include/format
M libcxx/include/forward_list
M libcxx/include/functional
M libcxx/include/ios
M libcxx/include/iterator
M libcxx/include/mdspan
M libcxx/include/memory
M libcxx/include/memory_resource
M libcxx/include/module.modulemap
M libcxx/include/numeric
M libcxx/include/ostream
M libcxx/include/random
M libcxx/include/ranges
M libcxx/include/stop_token
M libcxx/include/string
M libcxx/include/string_view
M libcxx/include/type_traits
M libcxx/include/utility
M libcxx/include/version
M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
M libcxx/test/libcxx/transitive_includes/cxx03.csv
M libcxx/test/libcxx/transitive_includes/cxx11.csv
M libcxx/test/libcxx/transitive_includes/cxx14.csv
M libcxx/test/libcxx/transitive_includes/cxx17.csv
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/numerics/c.math/isfinite.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
M libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/comparisons.pass.cpp
M libcxx/test/support/test_iterators.h
M libcxx/utils/generate_feature_test_macro_components.py
M libcxx/utils/libcxx/test/params.py
M lld/ELF/LinkerScript.h
M lld/ELF/Relocations.cpp
M lld/ELF/Relocations.h
M lld/ELF/ScriptParser.cpp
M lld/ELF/Writer.cpp
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/Options.td
M lld/docs/ReleaseNotes.rst
A lld/test/ELF/linkerscript/nocrossrefs.test
M lld/test/MachO/implicit-and-allowable-clients.test
M lld/test/MachO/link-search-at-rpath.s
A lld/test/MachO/reproduce-thin-archive-objc.s
M lld/test/MachO/reproduce-thin-archives.s
M lld/test/MachO/rpath.s
M lld/wasm/Options.td
M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/source/Core/DynamicLoader.cpp
M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
M lldb/source/Target/Process.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp
M lldb/tools/lldb-server/lldb-platform.cpp
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/docs/SandboxIR.md
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/ADT/SetOperations.h
M llvm/include/llvm/Analysis/ValueLattice.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/IR/PatternMatch.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/SandboxIR/SandboxIR.h
A llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/lib/CodeGen/MachineSink.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
M llvm/lib/ProfileData/SampleProf.cpp
M llvm/lib/SandboxIR/CMakeLists.txt
M llvm/lib/SandboxIR/SandboxIR.cpp
A llvm/lib/SandboxIR/Tracker.cpp
M llvm/lib/Support/APFloat.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/ARC/ARCISelLowering.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
M llvm/lib/Target/CSKY/CSKYISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/Mips/MipsFastISel.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
M llvm/lib/Target/PowerPC/PPCFastISel.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZInstrHFP.td
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
M llvm/test/Analysis/ValueTracking/known-bits.ll
M llvm/test/Analysis/ValueTracking/known-fpclass.ll
M llvm/test/Analysis/ValueTracking/known-non-zero.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
A llvm/test/CodeGen/AArch64/stack-hazard.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
A llvm/test/CodeGen/NVPTX/i1-ext-load.ll
A llvm/test/CodeGen/NVPTX/i1-load-lower.ll
M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir
M llvm/test/CodeGen/X86/bitreverse.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
A llvm/test/CodeGen/X86/udiv-exact.ll
M llvm/test/CodeGen/X86/vector-bitreverse.ll
M llvm/test/CodeGen/X86/vselect-avx.ll
M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll
M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
A llvm/test/ExecutionEngine/JITLink/x86-64/MachO_archive_two_objects_same_name.s
A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
M llvm/test/MC/SystemZ/insn-bad.s
M llvm/test/MC/SystemZ/insn-good.s
A llvm/test/MachineVerifier/test_uscmp.mir
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
M llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-cxx.td
M llvm/test/TableGen/GlobalISelEmitter.td
M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
M llvm/test/Transforms/GVN/condprop.ll
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
M llvm/test/Transforms/InstCombine/ashr-demand.ll
M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
M llvm/test/Transforms/SCCP/phis.ll
A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll
A llvm/test/Transforms/SLPVectorizer/X86/revec-fix-99411.ll
M llvm/test/Transforms/SLPVectorizer/revec.ll
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
A llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll
M llvm/unittests/ADT/APFloatTest.cpp
M llvm/unittests/CodeGen/InstrRefLDVTest.cpp
M llvm/unittests/IR/PatternMatch.cpp
M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
M llvm/unittests/SandboxIR/CMakeLists.txt
A llvm/unittests/SandboxIR/TrackerTest.cpp
M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/SandboxIR/BUILD.gn
M llvm/utils/mlgo-utils/pyproject.toml
M mlir/include/mlir/CAPI/Rewrite.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/Affine/Analysis/LoopAnalysis.h
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/CAPI/rewrite.c
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
M mlir/test/Conversion/ConvertToSPIRV/index.mlir
M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/Dialect/Affine/loop-tiling-validity.mlir
M mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir
A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
M mlir/test/lib/Conversion/CMakeLists.txt
A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
M mlir/tools/mlir-opt/CMakeLists.txt
M mlir/tools/mlir-opt/mlir-opt.cpp
A openmp/runtime/test/transform/reverse/foreach.cpp
A openmp/runtime/test/transform/reverse/intfor.c
A openmp/runtime/test/transform/reverse/iterfor.cpp
A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp
M utils/bazel/README.md
M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
Expose PseudoProbeDecoder as shared_ptr in BinaryContext
Created using spr 1.3.4
Compare: https://github.com/llvm/llvm-project/compare/833ff8e63309...1bd307706a13
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list