[all-commits] [llvm/llvm-project] cfcd6a: [CodeGen] Set attributes on resolvers emitted afte...
Yuxuan Chen via All-commits
all-commits at lists.llvm.org
Thu Jul 25 13:01:19 PDT 2024
Branch: refs/heads/users/yuxuanchen1997/coro-transform-attr-must-elide
Home: https://github.com/llvm/llvm-project
Commit: cfcd6a9bfc1ba407a64f98339bf1501fa40ac824
https://github.com/llvm/llvm-project/commit/cfcd6a9bfc1ba407a64f98339bf1501fa40ac824
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGen/ifunc.c
M clang/test/CodeGen/kcfi.c
Log Message:
-----------
[CodeGen] Set attributes on resolvers emitted after ifuncs
Summary:
Visiting the ifunc calls `GetOrCreateLLVMFunction` with
`NotForDefinition` while visiting the resolver calls
`GetOrCreateLLVMFunction` with `ForDefinition`.
When an ifunc is emitted before its resolver, the `ForDefinition` call
does not call `SetFunctionAttributes`, because the function prematurely
returns due to `(Entry->getValueType() == Ty)` and
`llvm::GlobalIFunc::getResolverFunctionType(DeclTy)`.
This leads to missing `!kcfi_type` with -fsanitize=kcfi.
```
extern void ifunc0(void) __attribute__ ((ifunc("resolver0")));
void *resolver0(void) { return 0; } // SetFunctionAttributes not called
extern void ifunc1(void) __attribute__ ((ifunc("resolver1")));
static void *resolver1(void) { return 0; } // SetFunctionAttributes not called
extern void ifunc2(void) __attribute__ ((ifunc("resolver2")));
static void *resolver2(void*) { return 0; }
```
Ensure `SetFunctionAttributes` is called by calling
`GetOrCreateLLVMFunction` with a dummy non-function type. Now that the
`F->takeName(Entry)` code path may be taken, the
`DisableSanitizerInstrumentation` code
(https://reviews.llvm.org/D150262) should be moved to `checkAliases`,
when the resolver function is finalized.
Pull Request: https://github.com/llvm/llvm-project/pull/98832
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251761
Commit: d0ce5b952aa30a72d33ed2685a02c4c88fc2d0d5
https://github.com/llvm/llvm-project/commit/d0ce5b952aa30a72d33ed2685a02c4c88fc2d0d5
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Analysis/Presburger/QuasiPolynomial.h
M mlir/lib/Analysis/Presburger/Barvinok.cpp
M mlir/lib/Analysis/Presburger/IntegerRelation.cpp
M mlir/lib/Analysis/Presburger/LinearTransform.cpp
M mlir/lib/Analysis/Presburger/PWMAFunction.cpp
M mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
M mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
M mlir/lib/Analysis/Presburger/Simplex.cpp
M mlir/lib/Analysis/Presburger/Utils.cpp
Log Message:
-----------
mlir/Presburger: optimize to avoid creating copies (#97897)
Summary:
Optimize the Presburger library to avoid unnecessarily creating copies.
While at it, fix some other minor issues in the codebase.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251672
Commit: 65eecb1679ef0849cde4a0c331cd262db4070d66
https://github.com/llvm/llvm-project/commit/65eecb1679ef0849cde4a0c331cd262db4070d66
Author: gonzalobg <65027571+gonzalobg at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/NVPTX/load-store.ll
Log Message:
-----------
[NVPTX] Adds float/double tests to load-store tests. (#96436)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251607
Commit: 23e1e1441025db54ac09bf48b782b9d3e21cd92f
https://github.com/llvm/llvm-project/commit/23e1e1441025db54ac09bf48b782b9d3e21cd92f
Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/select-costs.ll
A llvm/test/Transforms/LoopVectorize/select-cmp-multiuse.ll
M llvm/test/Transforms/LoopVectorize/select-cmp.ll
Log Message:
-----------
[LoopVectorize] LLVM fails to vectorise loops with multi-bool varables (#89226)
This change allows to consider compare instructions in the loop with
multiple use inside the loop and outside.
This change allows to vectorise this loop:
int foo(float* a, int n) {
_Bool any = 0;
_Bool all = 1;
for (int i = 0; i < n; i++) {
if (a[i] < 0.0f) {
any = 1;
} else {
all = 0;
}
}
return all ? 1 : any ? 2 : 3;
}
Commit: 62947715aa3246ca4ef9e465dfbe9dbdb611cfa4
https://github.com/llvm/llvm-project/commit/62947715aa3246ca4ef9e465dfbe9dbdb611cfa4
Author: Nathan James <n.james93 at hotmail.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/boost/UseRangesCheck.h
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.h
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.h
M clang-tools-extra/docs/clang-tidy/checks/boost/use-ranges.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
A clang-tools-extra/test/clang-tidy/checkers/boost/Inputs/use-ranges/fake_boost.h
A clang-tools-extra/test/clang-tidy/checkers/boost/Inputs/use-ranges/fake_std.h
A clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
Log Message:
-----------
[clang-tidy] Allow specifying pipe syntax for use-ranges checks (#98696)
Summary:
Add `UseReversePipe` option to (boost|modernize)-use-ranges checks. This
controls whether to create a reverse view using function syntax
(`reverse(Range)`) or pipe syntax (`Range | reverse`)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251675
Commit: 950760daea63cd442ca1ba87d88b54a582c89a73
https://github.com/llvm/llvm-project/commit/950760daea63cd442ca1ba87d88b54a582c89a73
Author: Vitaly Goldshteyn <VitalyGoldstein at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param-delayed.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param-templates.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
Log Message:
-----------
[clang-tidy] Allow unnecessary-value-param to match templated functions including lambdas with auto. (#97767)
Clang-Tidy unnecessary-value-param value param will be triggered for
templated functions if at least one instantiontion with expensive to
copy type is present in translation unit.
It is relatively common mistake to write lambda functions with auto
arguments for expensive to copy types.
Commit: 644bd8c3092b8e7f07aad8feaffdf11fda93931c
https://github.com/llvm/llvm-project/commit/644bd8c3092b8e7f07aad8feaffdf11fda93931c
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/ptrauth_feature.c
Log Message:
-----------
[PAC][clang] Enhance preprocessor ptrauth tests (#98862)
Summary:
Test one feature at a time to make RUN lines shorter. See also
https://github.com/llvm/llvm-project/pull/96992#discussion_r1669394582
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251767
Commit: bebb5e2f0740d185193d2ebb5684a13acb659904
https://github.com/llvm/llvm-project/commit/bebb5e2f0740d185193d2ebb5684a13acb659904
Author: Chris Warner <73851242+cwarner-8702 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/implicit-widening-of-multiplication-result-constants.cpp
Log Message:
-----------
[clang-tidy] bugprone-implicit-widening ignores const exprs that fit (#98352)
Summary:
Add an option to the
`bugprone-implicit-widening-of-multiplication-result` clang-tidy checker
to suppress warnings when the expression is made up of all compile-time
constants (literals, `constexpr` values or results, etc.) and the result
of the multiplication is guaranteed to fit in both the source and
destination types.
This currently only works for signed integer types:
* For unsigned integers, the well-defined rollover behavior on overflow
prevents the checker from detecting that the expression does not
actually fit in the source expr type, and would produce false negatives.
I have a somewhat-hacky stab at addressing this I'd like to submit as a
follow-on PR
* For floating-point types, there's probably a little additional work to
be done to `Expr` to calculate the result at compile time
Even still, this seems like a helpful addition just for signed types,
and additional types can be added.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251699
Commit: 6c20a6cbd82580a0745c6336780a0697ef055100
https://github.com/llvm/llvm-project/commit/6c20a6cbd82580a0745c6336780a0697ef055100
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/test/X86/match-functions-with-calls-as-anchors.test
Log Message:
-----------
[bolt][test] Require asserts in X86/match-functions-with-calls-as-anchors.test (#98882)
Summary:
Otherwise, it fails due to the unsupported `--debug` flag in non-asserts
builds.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251760
Commit: 6da23659e5878a9e18f7668cd2eb35f385d5a94b
https://github.com/llvm/llvm-project/commit/6da23659e5878a9e18f7668cd2eb35f385d5a94b
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/CheckCompilerFeatures.cmake
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCFlagRules.cmake
A libc/cmake/modules/compiler_features/check_builtin_ceil_floor_rint_trunc.cpp
A libc/cmake/modules/compiler_features/check_builtin_round.cpp
A libc/cmake/modules/compiler_features/check_builtin_roundeven.cpp
R libc/src/math/aarch64/CMakeLists.txt
R libc/src/math/aarch64/ceil.cpp
R libc/src/math/aarch64/ceilf.cpp
R libc/src/math/aarch64/floor.cpp
R libc/src/math/aarch64/floorf.cpp
R libc/src/math/aarch64/round.cpp
R libc/src/math/aarch64/roundf.cpp
R libc/src/math/aarch64/trunc.cpp
R libc/src/math/aarch64/truncf.cpp
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/ceil.cpp
M libc/src/math/generic/ceilf.cpp
M libc/src/math/generic/ceilf16.cpp
M libc/src/math/generic/floor.cpp
M libc/src/math/generic/floorf.cpp
M libc/src/math/generic/floorf16.cpp
M libc/src/math/generic/rint.cpp
M libc/src/math/generic/rintf.cpp
M libc/src/math/generic/rintf16.cpp
M libc/src/math/generic/round.cpp
M libc/src/math/generic/roundeven.cpp
M libc/src/math/generic/roundevenf.cpp
M libc/src/math/generic/roundevenf16.cpp
M libc/src/math/generic/roundf.cpp
M libc/src/math/generic/roundf16.cpp
M libc/src/math/generic/trunc.cpp
M libc/src/math/generic/truncf.cpp
M libc/src/math/generic/truncf16.cpp
M libc/test/src/math/performance_testing/CMakeLists.txt
M libc/test/src/math/performance_testing/nearest_integer_funcs_perf.cpp
Log Message:
-----------
[libc][math] Optimize nearest integer functions using builtins when available (#98376)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251690
Commit: 259a9aaa4a2544f39b10f1e7aed87106cecab2dc
https://github.com/llvm/llvm-project/commit/259a9aaa4a2544f39b10f1e7aed87106cecab2dc
Author: Jessica Clarke <jrtc27 at jrtc27.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/RISCVUsage.rst
Log Message:
-----------
[RISCV][doc] Grammar fix
Fixes 884a07fee0ba36649561003e36d197323380f3d2
Commit: c92d0e525fd99a3b56b40d0057b7f907b54f0dfa
https://github.com/llvm/llvm-project/commit/c92d0e525fd99a3b56b40d0057b7f907b54f0dfa
Author: gonzalobg <65027571+gonzalobg at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
A llvm/test/CodeGen/NVPTX/load-store-sm-70.ll
M llvm/test/CodeGen/NVPTX/load-store.ll
Log Message:
-----------
[NVPTX] Add Volta Load/Store Atomics (.relaxed, .acquire, .release) and Volatile (.mmio/.volatile) support (#98022)
Summary:
This PR adds initial support for some of Volta's (sm_70) load/store
atomic and volatile/MMIO operations, hopefully without breaking any
preexisting code. Only relaxed, acquire, and release operations w/
volatile are handled.
This PR does not aim to add support for any of the following:
- syncscope support
- read atomic ops to const, param, grid param
- local memory atomics
- sequentially consistent atomics
- atomicrmw
- ...
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251724
Commit: a1e7ef6a77ee6db305576b0079fef99beba0146d
https://github.com/llvm/llvm-project/commit/a1e7ef6a77ee6db305576b0079fef99beba0146d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/PhaseOrdering/X86/blendv-select.ll
M llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
Log Message:
-----------
[VectorCombine] foldShuffleToIdentity - peek through bitcasts to see if they come from the same value to form identity sequence (#98334)
Summary: Workaround until I can get #96884 fixed properly - when trying to find identity sequences, peek through any bitcasts to see if the values all came from the same source. We don't run CSE frequently enough to merge all the bitcasts that we end up with.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251606
Commit: bb90b69a89949ce565e4a23a1d37cf79cc775989
https://github.com/llvm/llvm-project/commit/bb90b69a89949ce565e4a23a1d37cf79cc775989
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/PackedVector.h
Log Message:
-----------
Provide access to raw bits in PackedVector. NFC. (#98944)
Summary: Needed for future patch to access vector as an integer mask.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251582
Commit: 9c429833f208a0a1dec2a730c05d5f7fe8b24b6c
https://github.com/llvm/llvm-project/commit/9c429833f208a0a1dec2a730c05d5f7fe8b24b6c
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/docs/SandboxIR.md
M llvm/docs/UserGuides.rst
Log Message:
-----------
[SandboxIR][Doc] Add a Doc file for Sandbox IR (#98691)
This is under User Guides > Additional Topics > Sandbox IR.
Commit: 89892ef22212105e6f6cafd179e2b53970d645ad
https://github.com/llvm/llvm-project/commit/89892ef22212105e6f6cafd179e2b53970d645ad
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.h
Log Message:
-----------
[TableGen] Use std::move. NFC
Summary: Fix #98719
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251658
Commit: 8cc7edcffdb6d3ba3ba1040a391f7dc2b3479150
https://github.com/llvm/llvm-project/commit/8cc7edcffdb6d3ba3ba1040a391f7dc2b3479150
Author: jimingham <jingham at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Utility/Event.h
M lldb/source/Target/Process.cpp
M lldb/source/Utility/Event.cpp
M lldb/test/API/python_api/event/TestEvents.py
Log Message:
-----------
Private process events were being delivered to the secondary listener (#98571)
Summary:
This fixes a bug where Process events were being delivered to secondary
listeners when the Private state thread listener was processing the
event. That meant the secondary listener could get an event before the
Primary listener did. That in turn meant the state when the secondary
listener got the event wasn't right yet. Plus it meant that the
secondary listener saw more events than the primary (not all events get
forwarded from the private to the public Process listener.)
This bug became much more evident when we had a stop hook that did some
work, since that delays the Primary listener event delivery. So I also
added a stop-hook to the test, and put a little delay in as well.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251662
Commit: f44bd634461d649156e2c0addb5ea4c28d30f8bf
https://github.com/llvm/llvm-project/commit/f44bd634461d649156e2c0addb5ea4c28d30f8bf
Author: DianQK <dianqk at dianqk.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/Frontend/PerformanceTips.rst
Log Message:
-----------
[Docs] Store to poison is the canonical form for non-terminator unreachable (#98910)
Summary:
Add the content from
https://github.com/llvm/llvm-project/pull/96639#issuecomment-2189111902.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251667
Commit: 4961ff8459680e3da8188637a6ce4ff99e096601
https://github.com/llvm/llvm-project/commit/4961ff8459680e3da8188637a6ce4ff99e096601
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
A compiler-rt/test/sanitizer_common/TestCases/Linux/preadv2.cpp
Log Message:
-----------
[compiler-rt] adding preadv2/pwritev2 interceptions. (#97216)
Summary: Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251657
Commit: 682e1fc3faca9a66f312f8f85c09614020524d7f
https://github.com/llvm/llvm-project/commit/682e1fc3faca9a66f312f8f85c09614020524d7f
Author: Jim Ingham <jingham at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lldb/test/API/python_api/event/stop_hook.py
M lldb/unittests/Process/ProcessEventDataTest.cpp
Log Message:
-----------
git add a test file from a previous commit.
Summary:
A new file was added to the python_api/events test, but I forgot to
git add it before making the PR. The commit was:
44d9692e6a657ec46e98e4912ac56417da67cfee
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251697
Commit: 8e70484eaf0dbd90287018086f8ffb5da9137bcb
https://github.com/llvm/llvm-project/commit/8e70484eaf0dbd90287018086f8ffb5da9137bcb
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lldb/include/lldb/Symbol/SymbolLocation.h
M lldb/source/Target/AssertFrameRecognizer.cpp
Log Message:
-----------
[lldb/Symbol] Hoist SymbolLocation from AssertFrameRecognizer to reuse it (#98975)
Summary:
This patch hoists the `SymbolLocation` struct from the
`AssertFrameRecognizer` source file, since it's pretty generic and could
be reused for other purposes.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251720
Commit: 2134b3decd1604579efae759265a15d26428c8cb
https://github.com/llvm/llvm-project/commit/2134b3decd1604579efae759265a15d26428c8cb
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Bytecode/BytecodeOpInterface.h
M mlir/include/mlir/Bytecode/BytecodeReaderConfig.h
M mlir/lib/Bytecode/Writer/IRNumbering.cpp
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/DebugImporter.h
Log Message:
-----------
[mlir] Remove bytecode reader & writer header from interface. (#98920)
Flagged some additional headers missing in process.
Inspired by #98676
Commit: 256ebe72c263bc7b5e03484136b1e06354d57802
https://github.com/llvm/llvm-project/commit/256ebe72c263bc7b5e03484136b1e06354d57802
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/asan/asan_globals_win.cpp
M compiler-rt/lib/asan/asan_malloc_linux.cpp
M compiler-rt/lib/asan/asan_report.cpp
M compiler-rt/lib/asan/asan_suppressions.cpp
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/dfsan/dfsan_allocator.h
M compiler-rt/lib/hwasan/hwasan_allocator.cpp
M compiler-rt/lib/hwasan/hwasan_thread_list.cpp
M compiler-rt/lib/lsan/lsan_common.cpp
M compiler-rt/lib/lsan/lsan_common_linux.cpp
M compiler-rt/lib/lsan/lsan_thread.cpp
M compiler-rt/lib/memprof/memprof_thread.cpp
M compiler-rt/lib/msan/msan.cpp
M compiler-rt/lib/msan/msan_allocator.h
M compiler-rt/lib/msan/msan_interceptors.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
M compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
M compiler-rt/lib/sanitizer_common/sanitizer_atomic.h
M compiler-rt/lib/ubsan/ubsan_diag.cpp
Log Message:
-----------
[sanitizer] Replace ALIGNED with alignas
Summary:
C++11 `alignas` is already used extensively. `alignas` must precede
`static`, so adjust the ordering accordingly.
msan.cpp: Clang 15 doesn't allow `__attribute__((visibility("default"))) alignas(16)`.
Use the order `alignas(16) SANITIZER_INTERFACE_ATTRIBUTE`. Tested with Clang 7.
Pull Request: https://github.com/llvm/llvm-project/pull/98958
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251486
Commit: 26cf1c236c5465dfe3148ae4d515ad7dbbf1e660
https://github.com/llvm/llvm-project/commit/26cf1c236c5465dfe3148ae4d515ad7dbbf1e660
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/AArch64/ptrauth-call.ll
M llvm/test/CodeGen/AArch64/ptrauth-invoke.ll
Log Message:
-----------
[AArch64][PAC] Lower direct authenticated calls to ptrauth constants. (#97664)
Summary:
This tries to turn indirect ptrauth calls into direct calls, using
`ConstantPtrAuth::isKnownEquivalent` to compare the `ConstantPtrAuth`
target with the ptrauth call bundle.
This should be straightforward, other than the somewhat awkward GISel
handling, which has a handshake between CallLowering and IRTranslator to
elide the ptrauth when possible.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251467
Commit: a4cd77696f449f69772bab4786726b1f13bcb00b
https://github.com/llvm/llvm-project/commit/a4cd77696f449f69772bab4786726b1f13bcb00b
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/baremetal/api.td
M libc/config/gpu/api.td
M libc/config/linux/api.td
M libc/include/assert.h.def
A libc/newhdrgen/yaml/assert.yaml
Log Message:
-----------
[libc] newheadergen: added assert.yaml (#98826)
- removed assert macro definitions in api.td
- included macro definitions in assert.h.def
- added assert.yaml
Commit: af65718c2790c4bd34a1ba6355a6c26411b6fda9
https://github.com/llvm/llvm-project/commit/af65718c2790c4bd34a1ba6355a6c26411b6fda9
Author: Sirraide <aeternalmail at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
Log Message:
-----------
[Clang] Disallow explicit object parameters in more contexts (#89078)
Summary:
This diagnoses explicit object parameters in more contexts
where they aren’t supposed to appear in (e.g. function pointer
types, non-function member decls, etc.) [dcl.fct]
This fixes #85992.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251719
Commit: 3e77cafd41a0ac83f4fb82cf280a17dfc3c96d62
https://github.com/llvm/llvm-project/commit/3e77cafd41a0ac83f4fb82cf280a17dfc3c96d62
Author: jeffreytan81 <jeffreytan at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch.py
M lldb/tools/lldb-dap/lldb-dap.cpp
Log Message:
-----------
Add lldb version into initialize response lldb-dap (#98703)
Frequently, while troubleshooting user's debugging issues in VScode, we
would like to know lldb version so that we can confirm if certain
patch/feature is in or not.
This PR adds version string into `initialize` response so that telemetry
can track it.
---------
Co-authored-by: jeffreytan81 <jeffreytan at fb.com>
Commit: 64965fb2b176d11304c5b138008eea3226184885
https://github.com/llvm/llvm-project/commit/64965fb2b176d11304c5b138008eea3226184885
Author: Alexander Shaposhnikov <ashaposhnikov at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/CODE_OWNERS.TXT
Log Message:
-----------
[compiler-rt] Add code owner for nsan (#98967)
Add code owner for nsan.
Commit: bfb199cceffbb53d87b4bfddd6d3b0f862d375f9
https://github.com/llvm/llvm-project/commit/bfb199cceffbb53d87b4bfddd6d3b0f862d375f9
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
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/MipsConstantIslandPass.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:
-----------
[Target] Use range-based for loops (NFC) (#98844)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251677
Commit: 1c2ee337d51b2362cdf2ac8adaf0db8a949b415d
https://github.com/llvm/llvm-project/commit/1c2ee337d51b2362cdf2ac8adaf0db8a949b415d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwadd.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmul.ll
Log Message:
-----------
[RISCV] Form VFWMUL.VF and VFWADD.VF/WF when fp_extend is scalar and then splatted. (#98590)
Previously we only supported the extend being in the vector domain after
the splat.
Commit: daff79c30a78ed126f8393f2cea7649f6791b6a3
https://github.com/llvm/llvm-project/commit/daff79c30a78ed126f8393f2cea7649f6791b6a3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Simplify some checks of when we can't form a widening vector FP operation. NFCI
Summary:
The _VL nodes are only used with scalable vectors so we don't need
to check that.
It doesn't matter if Zvfhmin is enabled. All that really matters is
whether Zvfh is.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251737
Commit: 64d882d0dcfb4385a96385b4b83893f6f713f01a
https://github.com/llvm/llvm-project/commit/64d882d0dcfb4385a96385b4b83893f6f713f01a
Author: v01dXYZ <14996868+v01dXYZ at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
A llvm/test/MC/X86/intel-syntax-expr.s
Log Message:
-----------
[X86AsmParser] IntelExpression: End of Statement should check for valid end state (#95677)
Summary:
The following commit bfb7099eeb9b6f62510b1db0cb93a8c3cfa68236 added a
special case for End of Statement that doesn't check if the state
machine is rightfully in a state where ending is valid.
This PR suggest to revert this change to make `EndOfStatement` processed
as any other tokens that are not consumable by the state machine.
Fixes https://github.com/llvm/llvm-project/issues/94446
---------
Co-authored-by: v01dxyz <v01dxyz at v01d.xyz>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251503
Commit: dc1318a99de6b63f8bb6d3f7c354a83bc910bead
https://github.com/llvm/llvm-project/commit/dc1318a99de6b63f8bb6d3f7c354a83bc910bead
Author: JaydeepChauhan14 <167076022+JaydeepChauhan14 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/msse2avx.c
M clang/tools/driver/cc1as_main.cpp
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
A llvm/test/MC/AsmParser/sse2avx-att.s
M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
M llvm/utils/TableGen/X86ManualInstrMapping.def
Log Message:
-----------
[X86][MC,Driver] Support -msse2avx to encode SSE instruction with VEX prefix (#96860)
Summary:
For GCC compatibility
https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/x86-Options.html.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251694
Commit: 0777ad7042a603d2a8697d5e9dd205cc17e09035
https://github.com/llvm/llvm-project/commit/0777ad7042a603d2a8697d5e9dd205cc17e09035
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Arch/RISCV.cpp
M llvm/docs/ReleaseNotes.rst
M llvm/lib/TargetParser/Host.cpp
Log Message:
-----------
[RISCV] Add support for getHostCPUFeatures using hwprobe (#94352)
Summary:
This patch adds support for `sys::getHostCPUFeatures` using the RISC-V
hardware probing interface.
References:
+ Loongarch patch:
https://github.com/llvm/llvm-project/commit/e53f41c39f3eb5052965c720d2cb517d2945fd12
+ asm/hwprobe.h:
https://github.com/torvalds/linux/blob/2ab79514109578fc4b6df90633d500cf281eb689/arch/riscv/include/uapi/asm/hwprobe.h
+ glibc support:
https://inbox.sourceware.org/glibc-cvs/20240301151728.AD5963858C53@sourceware.org/T/#Z2e.:..:20240301151728.AD5963858C53::40sourceware.org:1sysdeps:unix:sysv:linux:riscv:sys:hwprobe.h
+ __NR_riscv_hwprobe syscall tutorial:
https://github.com/cyyself/hwprobe
+ hwprobe docs: https://docs.kernel.org/arch/riscv/hwprobe.html
---------
Co-authored-by: Yangyu Chen <cyy at cyyself.name>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251727
Commit: b74dadc24cd7a654db686fdae7ba1e29c6aec7cd
https://github.com/llvm/llvm-project/commit/b74dadc24cd7a654db686fdae7ba1e29c6aec7cd
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in SpaceBeforeParensOptions (#98849)
Summary:
Handle constructors/destructors for AfterFunctionDeclarationName and
AfterFunctionDefinitionName.
Fixes #98812.
Fixes #98820.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251612
Commit: 88a64ba75f813175df2b3f27c00fdc103d762975
https://github.com/llvm/llvm-project/commit/88a64ba75f813175df2b3f27c00fdc103d762975
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
M llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll
Log Message:
-----------
[RISCV] Don't expand zero stride vp.strided.load if SEW>XLEN (#98924)
Summary:
A splat of a <n x i64> on RV32 will get lowered as a zero strided load
anyway (and won't match any .vx splat patterns), so don't expand it to a
scalar load + splat to avoid writing it to the stack.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251553
Commit: a62c84e0365dbea276a30da1d1bcf29855e768e1
https://github.com/llvm/llvm-project/commit/a62c84e0365dbea276a30da1d1bcf29855e768e1
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Boolean.h
M clang/lib/AST/Interp/Integral.h
Log Message:
-----------
[clang][Interp][NFC] Use a templated conversion operator
Commit: ef6b2ad063545302c8733c7c726b489a119db04b
https://github.com/llvm/llvm-project/commit/ef6b2ad063545302c8733c7c726b489a119db04b
Author: Shengchen Kan <shengchen.kan at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/msse2avx.c
Log Message:
-----------
[X86][Driver] Try to fix the test msse2avx.c on non-X86 target
Summary: The test was added in https://github.com/llvm/llvm-project/pull/96860
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251552
Commit: db3ca9567722a21897a6dd8b4202a9be675f3ed9
https://github.com/llvm/llvm-project/commit/db3ca9567722a21897a6dd8b4202a9be675f3ed9
Author: walter erquinigo <walter at modular.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Host/Config.h.cmake
M lldb/packages/Python/lldbsuite/test/decorators.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/source/API/SBDebugger.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolLocator/CMakeLists.txt
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
R lldb/test/API/debuginfod/Normal/Makefile
R lldb/test/API/debuginfod/Normal/TestDebuginfod.py
R lldb/test/API/debuginfod/Normal/main.c
R lldb/test/API/debuginfod/SplitDWARF/Makefile
R lldb/test/API/debuginfod/SplitDWARF/TestDebuginfodDWP.py
R lldb/test/API/debuginfod/SplitDWARF/main.c
Log Message:
-----------
[LLDB] Revert #98351 and #98344
Summary:
This reverts commit 2fa1220a37a3f55b76a29803d8333b3a3937d53a.
This reverts commit b9496a74eb4029629ca2e440c5441614e766f773.
The patch #98344 causes a crash in LLDB when parsing some files like `numpy.libs/libgfortran-daac5196.so.5.0.0` on graviton (you can download it in https://drive.google.com/file/d/12ygLjJwWpzdYsrzBPp1JGiFHxcgM0-XY/view?usp=drive_link if you want to troubleshoot yourself).
The assert that is hit is the following:
```
llvm-project/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:2452: std::pair<unsigned int, std::map<long unsigned int, lldb_private::AddressClass> > ObjectFileELF::ParseSymbolTable(lldb_private::Symtab*, lldb::user_id_t, lldb_private::Section*): Assertion `strtab->GetObjectFile() == this' failed.
[383588:383636:20240716,025305.572639:ERROR crashpad_client_linux.cc:780] Crashpad isn't enabled
```
This object file doesn't have apparently a strings table but LLDB still tries to process it due to the code that is being reverted.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251733
Commit: bf6de71c1c65e6bb86a35086c1e034fd43a4d5ae
https://github.com/llvm/llvm-project/commit/bf6de71c1c65e6bb86a35086c1e034fd43a4d5ae
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/config/gpu/headers.txt
M libc/include/uchar.h.def
M libc/include/wchar.h.def
Log Message:
-----------
[libc] Enable 'wchar.h' for the GPU (#98973)
Summary:
This file is not really well populated, but is required for some targets
to configure. Enable it on the GPU for now.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251548
Commit: 780adaa0baa7bb14440ef180f4e21be0de5cef33
https://github.com/llvm/llvm-project/commit/780adaa0baa7bb14440ef180f4e21be0de5cef33
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lldb/include/lldb/Target/VerboseTrapFrameRecognizer.h
M lldb/source/Target/CMakeLists.txt
M lldb/source/Target/Process.cpp
A lldb/source/Target/VerboseTrapFrameRecognizer.cpp
A lldb/test/Shell/Recognizer/Inputs/verbose_trap.cpp
A lldb/test/Shell/Recognizer/verbose_trap.test
Log Message:
-----------
[lldb] Add frame recognizer for __builtin_verbose_trap (#80368)
This patch adds a frame recognizer for Clang's
`__builtin_verbose_trap`, which behaves like a
`__builtin_trap`, but emits a failure-reason string into debug-info in
order for debuggers to display
it to a user.
The frame recognizer triggers when we encounter
a frame with a function name that begins with
`__clang_trap_msg`, which is the magic prefix
Clang emits into debug-info for verbose traps.
Once such frame is encountered we display the
frame function name as the `Stop Reason` and display that frame to the
user.
Example output:
```
(lldb) run
warning: a.out was compiled with optimization - stepping may behave oddly; variables may not be available.
Process 35942 launched: 'a.out' (arm64)
Process 35942 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = Misc.: Function is not implemented
frame #1: 0x0000000100003fa4 a.out`main [inlined] Dummy::func(this=<unavailable>) at verbose_trap.cpp:3:5 [opt]
1 struct Dummy {
2 void func() {
-> 3 __builtin_verbose_trap("Misc.", "Function is not implemented");
4 }
5 };
6
7 int main() {
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = Misc.: Function is not implemented
frame #0: 0x0000000100003fa4 a.out`main [inlined] __clang_trap_msg$Misc.$Function is not implemented$ at verbose_trap.cpp:0 [opt]
* frame #1: 0x0000000100003fa4 a.out`main [inlined] Dummy::func(this=<unavailable>) at verbose_trap.cpp:3:5 [opt]
frame #2: 0x0000000100003fa4 a.out`main at verbose_trap.cpp:8:13 [opt]
frame #3: 0x0000000189d518b4 dyld`start + 1988
```
Commit: 1bfe3e7a83b8a2745785add1307cad4e2bec7ecf
https://github.com/llvm/llvm-project/commit/1bfe3e7a83b8a2745785add1307cad4e2bec7ecf
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
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/MipsConstantIslandPass.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:
-----------
Revert "[Target] Use range-based for loops (NFC) (#98844)"
Summary:
This reverts commit 3614f65a7ba9d925010e3316a1d93bcebc632178.
fixupImmediateBr seems to resize ImmBranches.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251487
Commit: b3862c3c858467968849518f261c3a1c500d9d4e
https://github.com/llvm/llvm-project/commit/b3862c3c858467968849518f261c3a1c500d9d4e
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/threads/CMakeLists.txt
A libc/src/__support/threads/spin_lock.h
Log Message:
-----------
[libc] add a simple TTAS spin lock (#98846)
Commit: 47954e1a59217d0b72aa519b0856bd7a9b4e6997
https://github.com/llvm/llvm-project/commit/47954e1a59217d0b72aa519b0856bd7a9b4e6997
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/ABIInfoImpl.cpp
M clang/lib/CodeGen/ABIInfoImpl.h
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/test/CodeGen/2009-06-14-anonymous-union-init.c
M clang/test/CodeGen/X86/x86_64-vaarg.c
M clang/test/CodeGen/paren-list-agg-init.cpp
M clang/test/CodeGen/voidptr-vaarg.c
M clang/test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
M clang/test/CodeGenCXX/bitfield-access-empty.cpp
M clang/test/CodeGenCXX/class-layout.cpp
M clang/test/CodeGenCXX/compound-literals.cpp
M clang/test/CodeGenCXX/exceptions.cpp
M clang/test/CodeGenCXX/lambda-deterministic-captures.cpp
M clang/test/CodeGenCXX/partial-destruction.cpp
M clang/test/CodeGenCXX/pod-member-memcpys.cpp
M clang/test/CodeGenCXX/pr18962.cpp
M clang/test/CodeGenCXX/references.cpp
M clang/test/CodeGenCXX/temporaries.cpp
A clang/test/CodeGenCXX/zero-init-empty-virtual.cpp
M clang/test/CodeGenObjCXX/lambda-to-block.mm
M clang/test/OpenMP/irbuilder_for_iterator.cpp
M clang/test/OpenMP/irbuilder_for_rangefor.cpp
M clang/test/OpenMP/task_member_call_codegen.cpp
Log Message:
-----------
[clang][CGRecordLayout] Remove dependency on isZeroSize (#96422)
Summary:
This is a follow-up from the conversation starting at
https://github.com/llvm/llvm-project/pull/93809#issuecomment-2173729801
The root problem that motivated the change are external AST sources that
compute `ASTRecordLayout`s themselves instead of letting Clang compute
them from the AST. One such example is LLDB using DWARF to get the
definitive offsets and sizes of C++ structures. Such layouts should be
considered correct (modulo buggy DWARF), but various assertions and
lowering logic around the `CGRecordLayoutBuilder` relies on the AST
having `[[no_unique_address]]` attached to them. This is a
layout-altering attribute which is not encoded in DWARF. This causes us
LLDB to trip over the various LLVM<->Clang layout consistency checks.
There has been precedent for avoiding such layout-altering attributes
from affecting lowering with externally-provided layouts (e.g., packed
structs).
This patch proposes to replace the `isZeroSize` checks in
`CGRecordLayoutBuilder` (which roughly means "empty field with
[[no_unique_address]]") with checks for
`CodeGen::isEmptyField`/`CodeGen::isEmptyRecord`.
**Details**
The main strategy here was to change the `isZeroSize` check in
`CGRecordLowering::accumulateFields` and
`CGRecordLowering::accumulateBases` to use the `isEmptyXXX` APIs
instead, preventing empty fields from being added to the `Members` and
`Bases` structures. The rest of the changes fall out from here, to
prevent lookups into these structures (for field numbers or base
indices) from failing.
Added `isEmptyRecordForLayout` and `isEmptyFieldForLayout` (open to
better naming suggestions). The main difference to the existing
`isEmptyRecord`/`isEmptyField` APIs, is that the `isEmptyXXXForLayout`
counterparts don't have special treatment for `unnamed bitfields`/arrays
and also treat fields of empty types as if they had
`[[no_unique_address]]` (i.e., just like the `AsIfNoUniqueAddr` in
`isEmptyField` does).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251747
Commit: fff54b4d5fef67476c6072db3682a894eecd867d
https://github.com/llvm/llvm-project/commit/fff54b4d5fef67476c6072db3682a894eecd867d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/test/Shell/SymbolFile/add-dsym.test
Log Message:
-----------
[lldb] Fix help syntax for add-dsym (target symbols add) (#98976)
Summary:
The help output incorrectly states that this command takes a shared
library name (<shlib-name>) while really it takes a path to a symbol
file.
rdar://131777043
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251520
Commit: abd99624102a1cddf7c1cbaf13a4900f5841c1ee
https://github.com/llvm/llvm-project/commit/abd99624102a1cddf7c1cbaf13a4900f5841c1ee
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGenCXX/zero-init-empty-virtual.cpp
Log Message:
-----------
[clang][test] zero-init-empty-virtual.cpp: remove redundant alignment check
Summary:
Fixes a `clang-armv8-quick` buildbot failure. Where the alignment
was `4` instead of `8`:
```
// CHECK: @{{.*}} = {{.*}}global %struct.Holder2 zeroinitializer, align 8
^
<stdin>:66:178: note: scanning from here
@g_holder1 = global %struct.Holder1 { %struct.polymorphic_base { ptr getelementptr inbounds inrange(-8, 12) ({ [5 x ptr] }, ptr @_ZTV16polymorphic_base, i32 0, i32 0, i32 2) } }, align 4
^
<stdin>:68:8: note: possible intended match here
@g_holder2 = global %struct.Holder2 zeroinitializer, align 4
^
```
This test isn't about checking alignment, so remove that from the
FileCheck entry.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251625
Commit: a4c9d84dfae7177ead6d87a2d5021b1aef23a1d3
https://github.com/llvm/llvm-project/commit/a4c9d84dfae7177ead6d87a2d5021b1aef23a1d3
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lldb/packages/Python/lldbsuite/test/make/libcxx-simulators-common/compressed_pair.h
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/Makefile
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/TestDataFormatterLibcxxUniquePtrSimulator.py
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/simulator/main.cpp
Log Message:
-----------
[lldb][test] Add a layout simulator test for std::unique_ptr (#98330)
This is motivated by the upcoming refactor of libc++'s
`__compressed_pair` in https://github.com/llvm/llvm-project/pull/76756
As this will require changes to numerous LLDB libc++ data-formatters
(see early draft https://github.com/llvm/llvm-project/pull/96538), it
would be nice to have a test-suite that will actually exercise both the
old and new layout. We have a matrix bot that tests old versions of
Clang (but currently those only date back to Clang-15). Having them in
the test-suite will give us quicker signal on what broke.
We have an existing test that exercises various layouts of `std::string`
over time in `TestDataFormatterLibcxxStringSimulator.py`, but that's the
only STL type we have it for. This patch proposes a new
`libcxx-simulators` directory which will take the same approach for all
the STL types that we can feasibly support in this way (as @labath
points out, for some types this might just not be possible due to their
implementation complexity). Nonetheless, it'd be great to have a record
of how the layout of libc++ types changed over time.
Some related discussion:
*
https://github.com/llvm/llvm-project/pull/97568#issuecomment-2213426804
Commit: 50feeb06a38a26a140d849d5bde717f31cb387e9
https://github.com/llvm/llvm-project/commit/50feeb06a38a26a140d849d5bde717f31cb387e9
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/Makefile
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestDataFormatterLibcxxStringSimulator.py
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/main.cpp
R lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/simulator/Makefile
R lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/simulator/TestDataFormatterLibcxxStringSimulator.py
R lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/simulator/main.cpp
Log Message:
-----------
[lldb][DataFormatter][test] Move std::string simulator to common libc++ simulators directory
Commit: 64f31c1e8743ba2542c2109ad34703de066e366f
https://github.com/llvm/llvm-project/commit/64f31c1e8743ba2542c2109ad34703de066e366f
Author: martinboehme <mboehme at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/ASTOps.h
M clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp
M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
Log Message:
-----------
[clang][dataflow] reland #96766 with fix (#98896)
Summary:
- **Reapply "[clang][dataflow] Teach `AnalysisASTVisitor` that
`typeid()` can be evaluated." (#96766)**
- **Turn on RTTI explicitly in `checkDataflowWithNoopAnalysis()`.**
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251696
Commit: 4d29e93c91641d755dbf1b86508bac2efdeaeb5b
https://github.com/llvm/llvm-project/commit/4d29e93c91641d755dbf1b86508bac2efdeaeb5b
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.h
Log Message:
-----------
[clang][Interp][NFC] Add Pointer::isDereferencable()
We currently have a few places where we check whether a pointer can
be read from at all. Add a function to do that.
Commit: a4e2afc4c9af820f0068772ede7ef05590589104
https://github.com/llvm/llvm-project/commit/a4e2afc4c9af820f0068772ede7ef05590589104
Author: Akshat Oke <76596238+Akshat-Oke at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
Log Message:
-----------
[NFC] Fix typos (#98454)
Summary: Co-authored-by: Akshat Oke <Akshat.Oke at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251617
Commit: 62c8d22557d7aa474f4d47f7f4de9bb166db5ff9
https://github.com/llvm/llvm-project/commit/62c8d22557d7aa474f4d47f7f4de9bb166db5ff9
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/EvalEmitter.cpp
M clang/test/AST/Interp/c23.c
Log Message:
-----------
[clang][Interp] Check for dereferencability before doing ltor cast
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251533
Commit: 88c5df3a96516072312382ab15416ab7ad0f2fd9
https://github.com/llvm/llvm-project/commit/88c5df3a96516072312382ab15416ab7ad0f2fd9
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/DebugData.h
M bolt/include/bolt/Rewrite/DWARFRewriter.h
M bolt/lib/Core/DebugData.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/test/X86/dwarf5-addr-section-reuse.s
Log Message:
-----------
[BOLT][DWARF][NFC] Refactor address writers (#98094)
Summary:
Refactors address writers to create an instance for each CU and its DWO
CU.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251470
Commit: 9c332c2d8a4ea85dce3060a9dfaa842bd71288a2
https://github.com/llvm/llvm-project/commit/9c332c2d8a4ea85dce3060a9dfaa842bd71288a2
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/EvalEmitter.cpp
M clang/test/CodeGenCXX/nullptr.cpp
Log Message:
-----------
[clang][Interp] Allow ltor casts for null pointers
Summary: We can't read from them but we special-case them later.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251516
Commit: d0e88a5adbb524b95e3fb3761a31630e5fad2f4f
https://github.com/llvm/llvm-project/commit/d0e88a5adbb524b95e3fb3761a31630e5fad2f4f
Author: Keyi Zhang <Kuree at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/test/Dialect/SCF/canonicalize.mlir
Log Message:
-----------
[MLIR][SCF] fix scf.index_switch fold convergence (#98535) (#98680)
If the `scf.index_switch` op has no result, the current fold logic
results in an infinite loop (see #98535). The is because `fold`
mechanism does not support *erasing* zero-result ops. This PR moves the
fold logic to a canonicalizer and fix the issue.
Commit: 7d439bdf50d2ba4f61de1150566c48771bebe92e
https://github.com/llvm/llvm-project/commit/7d439bdf50d2ba4f61de1150566c48771bebe92e
Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Preprocessor/riscv-target-features.c
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.rst
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/MC/RISCV/attribute-arch.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Bump the version of Zicfilp/Zicfiss to 1.0 (#98891)
Summary:
Both of them are ratified now.
https://wiki.riscv.org/display/HOME/Ratified+Extensions
This patch does not set them to non-experimental, since Zicfilp lacks
lld support and Zicfiss also lacks compiler-rt/libunwind support.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251754
Commit: 922e8f07d67e1362ba419f142daf547a7c96d321
https://github.com/llvm/llvm-project/commit/922e8f07d67e1362ba419f142daf547a7c96d321
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/cmp-to-cmn.ll
M llvm/test/CodeGen/AArch64/typepromotion-overflow.ll
Log Message:
-----------
[AArch64] Take cmn into account when adjusting compare constants (#98634)
Summary:
Turning a cmp into cmn saves an extra mov and negate instruction, so
take that into account when choosing when to flip the compare operands.
This will allow further optimizations down the line when we fold more
variations of negative compares to cmn.
As part of this, do not consider right-hand operands whose absolute
value can be encoded into a cmn if it is the 2nd operand.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251526
Commit: 30869fedb419f07d0d7a5d82ee910b5a602dfafc
https://github.com/llvm/llvm-project/commit/30869fedb419f07d0d7a5d82ee910b5a602dfafc
Author: Rajat Bajpai <rbajpai at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
A llvm/test/CodeGen/NVPTX/rcp-opt.ll
Log Message:
-----------
[NVPTX] Lower -1/x to neg.f64(rcp.rn.f64) instead of fdiv (#98343)
The NVPTX backend lowers 1/x to rcp.rn.f64 instruction instead of slower
fdiv instruction. However, in the case of -1/x, it uses the slower fdiv
instruction. After this change, -1/x will be lowered into neg.f64
(rcp.rn.f64).
Commit: fe01097f707f54c743c1fcd80f5543df8626001c
https://github.com/llvm/llvm-project/commit/fe01097f707f54c743c1fcd80f5543df8626001c
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
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/test/CodeGen/AMDGPU/check-subtarget-features.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll
M llvm/test/CodeGen/AMDGPU/unknown-processor.ll
M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/wave32.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10-wave32.txt
Log Message:
-----------
[AMDGPU] Remove wavefrontsize feature from GFX10+ (#98400)
Summary:
Processor definition shall not include a default feature which may be
switched off by a different wave size. This allows not to write
-mattr=-wavefrontsize32,+wavefrontsize64 in tests.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251504
Commit: b8cc7f4e809cc0505a78dd9f37b48acb83a42ca0
https://github.com/llvm/llvm-project/commit/b8cc7f4e809cc0505a78dd9f37b48acb83a42ca0
Author: David Stuttard <david.stuttard at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
Log Message:
-----------
[AMDGPU] Fix indirect dst bug for non-sgpr index (#98907)
Summary:
When emitting indirect dst, if the idx is not SGPR there was a bug that
didn't
take into account that the subregister might be different from
computeIndirectRegAndOffset.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251642
Commit: 78825773ce07a508c5e627a417ecc7300a7ee93f
https://github.com/llvm/llvm-project/commit/78825773ce07a508c5e627a417ecc7300a7ee93f
Author: Mel Chen <mel.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/VectorBuilder.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/IR/VectorBuilder.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-cond-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-inloop-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-intermediate-store.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-ordered-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[LV][EVL] Support in-loop reduction using tail folding with EVL. (#90184)
Summary:
Following from #87816, add VPReductionEVLRecipe to describe vector
predication reduction.
Address one of TODOs from #76172.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251485
Commit: 9d238864cfc299fd5fe6460eb92164144288b0c7
https://github.com/llvm/llvm-project/commit/9d238864cfc299fd5fe6460eb92164144288b0c7
Author: Tom Natan <130450079+tomnatan30 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/mlir-tblgen/gen-dialect-doc.td
M mlir/tools/mlir-tblgen/OpDocGen.cpp
Log Message:
-----------
Add support for enum doc gen (#98885)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251490
Commit: 6968f430ccf01942defba8f8dd5d0462ccb5cf75
https://github.com/llvm/llvm-project/commit/6968f430ccf01942defba8f8dd5d0462ccb5cf75
Author: Krasimir Georgiev <krasimir at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel
Log Message:
-----------
bazel build: pass __support_macros_config dep explicitly (NFCI) (#98999)
Summary:
Passing it explicitly makes it that it's not made available to targets
that don't need it (also we've got some internal integration that trips
on it being passed implicitly in the rule definition).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251590
Commit: dc6703030189439a9a3f3f0a45dad985a90dffb5
https://github.com/llvm/llvm-project/commit/dc6703030189439a9a3f3f0a45dad985a90dffb5
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaConcept.h
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
A clang/test/SemaCXX/cxx2c-fold-exprs.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[Clang][C++26] Implement "Ordering of constraints involving fold expressions (#98160)
Implement https://isocpp.org/files/papers/P2963R3.pdf
Commit: df291232da4fb39e1ba921e45f0c25f8cdddb024
https://github.com/llvm/llvm-project/commit/df291232da4fb39e1ba921e45f0c25f8cdddb024
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx1200.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx940.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-workgroup.ll
Log Message:
-----------
[AMDGPU] Implement GFX12 Memory Model (#98591)
Summary:
- Emit GLOBAL_WB instructions
- Reflect synscope on instructions's `scope:` operand
Fixes SWDEV-468508
Fixes SWDEV-470735
Fixes SWDEV-468392
Fixes SWDEV-469622
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251669
Commit: ff46bd8efc1d06120b34a7af9796dfbe19f35fe5
https://github.com/llvm/llvm-project/commit/ff46bd8efc1d06120b34a7af9796dfbe19f35fe5
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaConcept.h
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
R clang/test/SemaCXX/cxx2c-fold-exprs.cpp
M clang/www/cxx_status.html
Log Message:
-----------
Revert "[Clang][C++26] Implement "Ordering of constraints involving fold expressions" (#99007)
Summary:
Reverts llvm/llvm-project#98160
Breaks CI on some architectures
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251756
Commit: fc17f98456e86f50b8340470bd9118437a693144
https://github.com/llvm/llvm-project/commit/fc17f98456e86f50b8340470bd9118437a693144
Author: ita-sc <109672931+ita-sc at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Core/EmulateInstruction.h
M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.cpp
M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.h
M lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.cpp
A lldb/test/API/riscv/break-undecoded/Makefile
A lldb/test/API/riscv/break-undecoded/TestBreakpointIllegal.py
A lldb/test/API/riscv/break-undecoded/compressed.c
A lldb/test/API/riscv/break-undecoded/main.c
Log Message:
-----------
[lldb][riscv] Fix setting breakpoint for undecoded instruction (#90075)
Summary:
This patch adds an interface GetLastInstrSize to get information about
the size of last tried to be decoded instruction and uses it to set
software breakpoint if the memory can be decoded as instruction.
RISC-V architecture instruction format specifies the length of
instruction in first bits, so we can set a breakpoint for these cases.
This is needed as RISCV have a lot of extensions, that are not supported
by `EmulateInstructionRISCV`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251663
Commit: c01b1e4876aa729f7514184c680d60a83448c874
https://github.com/llvm/llvm-project/commit/c01b1e4876aa729f7514184c680d60a83448c874
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/CheckExprLifetime.cpp
Log Message:
-----------
[clang] Refactor: Introduce a new LifetimeKind for the assignment case, NFC (#99005)
Summary:
The current implementation for the assignment case uses a combination of
the `LK_Extended` lifetime kind and the validity of `AEntity`, which is
somewhat messy and doesn't align well with the intended mental model.
This patch introduces a dedicated lifetime kind to handle the assignment
case, simplifying the implementation and improving clarity.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251682
Commit: 2942c878d780cb5ca035b296bac4ed9225d2d2d1
https://github.com/llvm/llvm-project/commit/2942c878d780cb5ca035b296bac4ed9225d2d2d1
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/and-or-implied-cond.ll
Log Message:
-----------
[InstSimplify] Fix simplifyAndOrWithICmpEq with undef refinement (#98898)
Summary:
The final case in Simplify (where Res == Absorber and the predicate is
inverted) is not generally safe when the simplification is a refinement.
In particular, we may simplify assuming a specific value for undef, but
then chose a different one later.
However, it *is* safe to refine poison in this context, unlike in the
equivalent select folds. This is the reason why this fold did not use
AllowRefinement=false in the first place, and using that option would
introduce a lot of test regressions.
This patch takes the middle path of disabling undef refinements in
particular using the getWithoutUndef() SimplifyQuery option. However,
this option doesn't actually work in this case, because the problematic
fold is inside constant folding, and we currently don't propagate this
option all the way from InstSimplify over ConstantFolding to
ConstantFold. Work around this by explicitly checking for undef operands
in simplifyWithOpReplaced().
Finally, make sure that places where AllowRefinement=false also use
Q.getWithoutUndef(). I don't have a specific test case for this (the
original one does not work because we don't simplify selects with
constant condition in this mode in the first place) but this seems like
the correct thing to do to be conservative.
Fixes https://github.com/llvm/llvm-project/issues/98753.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251555
Commit: e919a72b41722263e88a12123382c8352149af5a
https://github.com/llvm/llvm-project/commit/e919a72b41722263e88a12123382c8352149af5a
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
Log Message:
-----------
[LV] Add missing check lines in vector.ph in tests.
Summary:
Match all instructions in vector.ph in sve-inductions-unusual-types.ll.
This should help to better show the impact of
https://github.com/llvm/llvm-project/pull/95305.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251659
Commit: cea2742066ca1fc6bebb8e21aea84a464becf029
https://github.com/llvm/llvm-project/commit/cea2742066ca1fc6bebb8e21aea84a464becf029
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/Instruction/RISCV/EmulateInstructionRISCV.cpp
Log Message:
-----------
[lldb][RISC-V] Remove unused variable
Summary: Added in a1ffabc403d4ce55ab2e665511b0b68a16d4850b.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251580
Commit: e4c3597fb94683468256f610b18207c0af64a853
https://github.com/llvm/llvm-project/commit/e4c3597fb94683468256f610b18207c0af64a853
Author: Daniel Grumberg <dgrumberg at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
M clang/lib/ExtractAPI/DeclarationFragments.cpp
Log Message:
-----------
[clang][ExtractAPI][NFC] Remove some nullptr dereference problems (#98914)
Summary:
A places try to get a NamedDecl's name using getName when it isn't a
simple identifier, migrate these areas to getNameAsString.
rdar://125315602
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251691
Commit: 0c6be722719c75a26629ba94d6e26eebad4e2b8a
https://github.com/llvm/llvm-project/commit/0c6be722719c75a26629ba94d6e26eebad4e2b8a
Author: Rodolfo Wottrich <rodolfo.wottrich at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
Log Message:
-----------
[llvm-readobj][ARM] Fix build attributes test's vendor name
Summary:
`armabi` is not one of the recognized vendor names in the public Arm
ABI. Use `aeabi` instead.
https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst#registered-vendor-names
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251683
Commit: 91f6698223770b75b758d34b3ddd5bcb56795c19
https://github.com/llvm/llvm-project/commit/91f6698223770b75b758d34b3ddd5bcb56795c19
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/docs/Intrinsics.md
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
A flang/test/Lower/Intrinsics/second.f90
Log Message:
-----------
[flang] Implement SECOND intrinsic (#98881)
Summary:
The SECOND intrinsic is a gnu extension providing an alias for CPU_TIME:
https://gcc.gnu.org/onlinedocs/gfortran/SECOND.html
This cannot be implemented as a straightforward alias because there is
both a function and a subroutine form.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251484
Commit: f5121eaf8e09854adf2f041410b2efd49814d9fd
https://github.com/llvm/llvm-project/commit/f5121eaf8e09854adf2f041410b2efd49814d9fd
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/do-collapse.f90
M flang/test/Semantics/OpenMP/do09.f90
Log Message:
-----------
[Flang][OpenMP] Restrict certain loops not allowed in associated loops (#91818)
Summary:
Extends the OmpCycleAndExitChecker to check that associated loops of a
loop construct are not DO WHILE or DO without control.
OpenMP 5.0 standard clearly mentions this restriction. Later standards
enforce this through the definition of associated loops and canonical
loop forms.
https://www.openmp.org/spec-html/5.0/openmpsu41.html
Fixes #81949
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251623
Commit: f0ac4a4cbe197a49af73ea58b1f01681f4eb04c9
https://github.com/llvm/llvm-project/commit/f0ac4a4cbe197a49af73ea58b1f01681f4eb04c9
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AArch64/no-sve-no-neon.ll
Log Message:
-----------
[AArch64] Fix assertion failure in getCastInstrCost
Summary:
We should not call `getVectorElementType` on the result MVT from
`getTypeLegalizationCost` when we don't if the legal type is a
vector. This is the case when the type needs to be legalized
using scalarization.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251602
Commit: 2d8c6b3655d6f8fbfcab2532d3f5be0be9757544
https://github.com/llvm/llvm-project/commit/2d8c6b3655d6f8fbfcab2532d3f5be0be9757544
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaExpr.cpp
M clang/test/SemaTemplate/instantiate-local-class.cpp
Log Message:
-----------
Revert "[Clang] Instantiate local constexpr functions eagerly (#95660)" (#98991)
Summary:
Unfortunately, #95660 has caused a regression in DeduceReturnType(),
where some of the local recursive lambdas are getting incorrectly rejected.
This reverts commit 5548ea34341e9d0ae645719c34b466ca3b9eaa5a. Also, this
adds an offending case to the test.
Closes #98526
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251570
Commit: 632b6e81b8e87e7bad47d556b52e5261549dcb8a
https://github.com/llvm/llvm-project/commit/632b6e81b8e87e7bad47d556b52e5261549dcb8a
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
M llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
M llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp
Log Message:
-----------
Split DWARFFormValue::getReference into four functions (#98905)
Summary:
The result of the function cannot be correctly interpreted without
knowing the precise form type (a type signature needs to be looked up
very differently from a supplementary debug info reference). The
function sort of worked because the two reference types (unit-relative
and section-relative) that can be handled uniformly are also the most
common types of references, but this setup made it easy to write code
which does not support other kinds of reference (and if one tried to
support them, the result didn't look pretty --
https://github.com/llvm/llvm-project/pull/97423/files#r1676217081).
The split is based on the reference type classification from DWARFv5
(Section 7.5.5 Classes and Forms), and it should enable uniform (if
slightly more verbose) hadling. Note that this only affects users which
want more control of how (or if) the references are resolved. Users
which just want to access the referenced DIE can use the higher level
API (DWARFDie::GetAttributeValueAsReferencedDie) which returns (or will
return after #97423 is merged) the correct die for all reference types
(except for supplementary references, which we don't support right now).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251742
Commit: 41333a945d1135789e7a94ee4984dda1af51729a
https://github.com/llvm/llvm-project/commit/41333a945d1135789e7a94ee4984dda1af51729a
Author: Kendal Harland <3987220+kendalharland at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/test/API/tools/lldb-dap/stepInTargets/TestDAP_stepInTargets.py
M lldb/test/API/tools/lldb-dap/stepInTargets/main.cpp
Log Message:
-----------
Fix test assertions in TestDAP_stepInTargets.py (#96687)
The strings this test is using seem to consistently fail to match
against the expected values when built & run targeting Windows amd64.
This PR updates them to the expected values.
To fix the test and avoid over-specifying for a specific platform, use
`assertIn(<target-substring>,...)` to see if we've got the correct
target label instead of comparing the demangler output for an exact
string match.
---------
Co-authored-by: kendal <kendal at thebrowser.company>
Commit: f92ffcb1795ccbf3db136338ca0557137c629cf7
https://github.com/llvm/llvm-project/commit/f92ffcb1795ccbf3db136338ca0557137c629cf7
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Use getBestPlan when interleaving only. (NFCI)
Use the getBestPlan() utility added in b841e2eca3 to also get the
scalar plan when interleaving only.
Commit: 5184b338fe73669df93f5ca73f0f0dc334d0916c
https://github.com/llvm/llvm-project/commit/5184b338fe73669df93f5ca73f0f0dc334d0916c
Author: DianQK <dianqk at dianqk.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
A llvm/test/Transforms/PhaseOrdering/pr98799-inline-simplifycfg-ub.ll
M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
Log Message:
-----------
[SimplifyCFG] Select the first instruction that we can handle in `passingValueIsAlwaysUndefined` (#98802)
Summary: Fixes #98799.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251495
Commit: ff98b7e8e2891b0cfcac78121f4010b51c32d53f
https://github.com/llvm/llvm-project/commit/ff98b7e8e2891b0cfcac78121f4010b51c32d53f
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
[lldb][Bazel] Add missing dependency.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251491
Commit: 6a539596bd5532c3f3d30e7e9a48c30c5dcf86d7
https://github.com/llvm/llvm-project/commit/6a539596bd5532c3f3d30e7e9a48c30c5dcf86d7
Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm-c/Core.h
M llvm/lib/IR/Core.cpp
M llvm/test/Bindings/llvm-c/echo.ll
M llvm/tools/llvm-c-test/echo.cpp
Log Message:
-----------
[C API] Add accessors for new no-wrap flags on GEP instructions (#97970)
Summary:
Previously, only the inbounds flag was accessible via the C API. This
adds support for any no-wrap related flags (currently nuw and nusw).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251605
Commit: cbd3a30cd235cdbd912861e7f437c151f8d0ff96
https://github.com/llvm/llvm-project/commit/cbd3a30cd235cdbd912861e7f437c151f8d0ff96
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/Driver.cpp
M lld/ELF/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
A llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
R llvm/include/llvm/CodeGen/RuntimeLibcalls.h
M llvm/include/llvm/CodeGen/TargetLowering.h
A llvm/include/llvm/IR/RuntimeLibcalls.h
M llvm/include/llvm/LTO/LTO.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/DwarfEHPrepare.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/IR/CMakeLists.txt
A llvm/lib/IR/RuntimeLibcalls.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/Object/IRSymtab.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/ARMFastISel.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMLegalizerInfo.h
M llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
M llvm/tools/lto/lto.cpp
Log Message:
-----------
[LLVM][LTO] Factor out RTLib calls and allow them to be dropped (#98512)
Summary:
The LTO pass and LLD linker have logic in them that forces extraction
and prevent internalization of needed runtime calls. However, these
currently take all RTLibcalls into account, even if the target does not
support them. The target opts-out of a libcall if it sets its name to
nullptr. This patch pulls this logic out into a class in the header so
that LTO / lld can use it to determine if a symbol actually needs to be
kept.
This is important for targets like AMDGPU that want to be able to use
`lld` to perform the final link step, but does not want the overhead of
uncalled functions. (This adds like a second to the link time trivially)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251770
Commit: 071acd946e8f89c4c543d5763678ae6df67729d5
https://github.com/llvm/llvm-project/commit/071acd946e8f89c4c543d5763678ae6df67729d5
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
Log Message:
-----------
[SSAUpdater] Avoid un-necessary SmallVector stores (#97820)
Summary:
The default template for the generic IDF calculator fetching
block-children will, by default:
* Fetch the children range from the relevant `GraphTraits`,
* Store all child nodes in a `SmallVector`,
* Return that `SmallVector` into the IDF calculator.
The only place this `SmallVector` is used is in a for-range loop... thus
there's no reason why we can't just iterate over the child range from
`GraphTraits`, instead of storing all the nodes locally then iterating
over the local copy. (If the children of a node change during IDF
calculation, everything is broken anyway).
This yields a 0.14% debug-info build performance improvement on the
compile time tracker, as InstrRefBasedLDV uses the SSA updater
intensively on all functions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251734
Commit: 18c950efa6d93ba168ced9d5f4eb5b1ba7b64dfa
https://github.com/llvm/llvm-project/commit/18c950efa6d93ba168ced9d5f4eb5b1ba7b64dfa
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Core/DIEBuilder.cpp
Log Message:
-----------
Fix bolt for #98905
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251577
Commit: 3e8102cbb5776d6d04e88d4a0ec4b249b8a3aa3f
https://github.com/llvm/llvm-project/commit/3e8102cbb5776d6d04e88d4a0ec4b249b8a3aa3f
Author: Egor Zhdan <e_zhdan at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/APINotes/Types.h
Log Message:
-----------
[APINotes] Remove unused API
Summary: This method is not actually used anywhere.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251546
Commit: 6526139d036aa8a5d5b76bf021ee6a7a512435a9
https://github.com/llvm/llvm-project/commit/6526139d036aa8a5d5b76bf021ee6a7a512435a9
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[llvm][Bazel] Adapt to 4eb30cfb3474e3770b465cdb39db3b7f6404c3ef
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251738
Commit: 2ce21a953753c5366c35d2151f9fe7f83815a135
https://github.com/llvm/llvm-project/commit/2ce21a953753c5366c35d2151f9fe7f83815a135
Author: RicoAfoat <51285519+RicoAfoat at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/test/CodeGen/X86/inline-asm-memop.ll
Log Message:
-----------
[SelectionDAG] use HandleSDNode instead of SDValue during SelectInlineAsmMemoryOperands (#85081)
Summary:
SelectInlineAsmMemoryOperands - change the vector of SDValue into a list of SDNodeHandle. Fixes issues where x86 might call replaceAllUses when matching address.
Fixes https://github.com/llvm/llvm-project/issues/82431 - see https://github.com/llvm/llvm-project/issues/82431 for more information.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251629
Commit: 3f940dfdfc03bea4c4bd7342ffcbc5cec066219a
https://github.com/llvm/llvm-project/commit/3f940dfdfc03bea4c4bd7342ffcbc5cec066219a
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/MyFirstTypoFix.rst
Log Message:
-----------
[llvm][Docs] Add explanatory note to MyFirstTypoFix intro
Summary:
To make it 100% clear that the changes are an example and the guide
should later be used with the reader's own changes to submit an
actual PR.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251496
Commit: 9a24032e14ae9112650fe6daf03826986880e556
https://github.com/llvm/llvm-project/commit/9a24032e14ae9112650fe6daf03826986880e556
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/InterpFrame.cpp
Log Message:
-----------
[clang][Interp] Ignore lambda static invoker frames in backtraces
See comment. No test but this is neccessary for a later commit.
Commit: 3e46f8d5f5f0cbd8c7469e76b7e51fc41f49772f
https://github.com/llvm/llvm-project/commit/3e46f8d5f5f0cbd8c7469e76b7e51fc41f49772f
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
Log Message:
-----------
[VPlan] Update test to use CHECK variables.
Summary: Update test to avoid using hard-coded VPValue IDs.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251716
Commit: c67612037a056909d2edb1f5cfcf2f11ac5f9abd
https://github.com/llvm/llvm-project/commit/c67612037a056909d2edb1f5cfcf2f11ac5f9abd
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/docs/index.rst
A lldb/docs/resources/qemu-testing.rst
R lldb/docs/use/qemu-testing.rst
Log Message:
-----------
[lldb][Docs] Move QEMU testing page into the developing lldb section
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251603
Commit: dc07b8d0a6075ffc5252a04e1b533572e70c48fd
https://github.com/llvm/llvm-project/commit/dc07b8d0a6075ffc5252a04e1b533572e70c48fd
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/baremetal/config.json
M libc/config/config.json
M libc/docs/configure.rst
M libc/src/stdlib/CMakeLists.txt
A libc/src/stdlib/heap_sort.h
M libc/src/stdlib/qsort.cpp
A libc/src/stdlib/qsort_data.h
M libc/src/stdlib/qsort_r.cpp
M libc/src/stdlib/qsort_util.h
A libc/src/stdlib/quick_sort.h
M libc/test/src/stdlib/CMakeLists.txt
A libc/test/src/stdlib/SortingTest.h
A libc/test/src/stdlib/heap_sort_test.cpp
M libc/test/src/stdlib/qsort_test.cpp
A libc/test/src/stdlib/quick_sort_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
Log Message:
-----------
[libc][stdlib] Implement heap sort. (#98582)
Commit: 4e50ae97b7468f5d436c63fb7a824801f1bff9d9
https://github.com/llvm/llvm-project/commit/4e50ae97b7468f5d436c63fb7a824801f1bff9d9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
Log Message:
-----------
[SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats.
Summary:
The patch enables detection of minnum/maxnum patterns for float point
instruction, represented as select/cmp. Also, enables better cost
estimation for integer min/max patterns since the compiler starts
to estimate the scalars separately.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251651
Commit: 913961e8153a16e43e536e619c4998f7c302d031
https://github.com/llvm/llvm-project/commit/913961e8153a16e43e536e619c4998f7c302d031
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Basic/TokenKinds.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Parse/Parser.h
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseTemplate.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/Preprocessor/embed_codegen.cpp
M clang/test/Preprocessor/embed_constexpr.cpp
M clang/test/Preprocessor/embed_weird.cpp
Log Message:
-----------
[clang] Inject tokens containing #embed back into token stream (#97274)
Instead of playing "whack a mole" with places where #embed should be
expanded as comma-separated list, just inject each byte as a token back
into the stream, separated by commas.
Commit: 39caba6625be58812eb22889e01c5de4cd3d2948
https://github.com/llvm/llvm-project/commit/39caba6625be58812eb22889e01c5de4cd3d2948
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__type_traits/invoke.h
R libcxx/include/__type_traits/is_member_function_pointer.h
R libcxx/include/__type_traits/is_member_object_pointer.h
M libcxx/include/__type_traits/is_member_pointer.h
M libcxx/include/module.modulemap
M libcxx/include/type_traits
Log Message:
-----------
[libc++] Merge is_member{,_object,_function}_pointer.h (#98727)
Summary:
The implementations for these traits have been simplified quite a bit,
since we have builtins available for them now.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251680
Commit: 4b83f5d5382aef5c12b653d1c5da4ec750b7a658
https://github.com/llvm/llvm-project/commit/4b83f5d5382aef5c12b653d1c5da4ec750b7a658
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/is_fundamental.h
M libcxx/include/__type_traits/is_null_pointer.h
M libcxx/include/__type_traits/is_scalar.h
Log Message:
-----------
[libc++] Simplify the implementation of is_null_pointer a bit (#98728)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251631
Commit: a2887d03693ed987796d088b5417c8a25079dec2
https://github.com/llvm/llvm-project/commit/a2887d03693ed987796d088b5417c8a25079dec2
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Move reportVectorizationInfo to LoopVectorize.cpp (NFC)
The function is only used in LoopVectorize.cpp, no need to define it in
header.
Commit: 12a639c17322026124850dfa68c00da5ad129312
https://github.com/llvm/llvm-project/commit/12a639c17322026124850dfa68c00da5ad129312
Author: Hari Limaye <hari.limaye at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
A llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll
Log Message:
-----------
[LoopIdiom] Reland: Support 'shift until less-than' idiom #95002 (#98298)
Summary:
The original patch failed to handle the case where the loopback
condition compared against a constant exceeding 64 bit unsigned range -
which caused a buildbot failure.
This PR fixes this and relands the original PR #95002.
The current loop idiom code for recognising and inserting a CTLZ
intrinsic does not support loops where the loopback control is based on
an unsigned less-than condition. This patch adds support for recognising
these loops and inserting a CTLZ intrinsic.
Fixes the missed optimization cases in #51064.
---------
Co-authored-by: David Sherwood <david.sherwood at arm.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251688
Commit: 9db7810a98877a421582fb6733cc73af714d763c
https://github.com/llvm/llvm-project/commit/9db7810a98877a421582fb6733cc73af714d763c
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/include/lldb/Host/BUILD.gn
Log Message:
-----------
Revert "[gn] port b9496a74eb40"
Summary:
This reverts commit 14fb6162a97e60a8aefcb0702a713f7a50205fce.
b9496a74eb40 got reverted in 27b2f4f861b8.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251581
Commit: 4cb886b83b94b7fb7ed9fa3be591e3ba6268fc01
https://github.com/llvm/llvm-project/commit/4cb886b83b94b7fb7ed9fa3be591e3ba6268fc01
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
Log Message:
-----------
Revert "[SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats."
This reverts commit c7aac38c29f564bc48f7cfb71d3b3b8b482c873b to fix
crashes reavealed by the buildbot in https://lab.llvm.org/buildbot/#/builders/168/builds/1104.
Commit: 6c797d3e2198a7c206a1f46664e230a2b4a57435
https://github.com/llvm/llvm-project/commit/6c797d3e2198a7c206a1f46664e230a2b4a57435
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/X86/AsmParser/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn
Log Message:
-----------
[gn] port bddab518db003f (X86AsmParser.cpp uses X86GenInstrMapping.inc)
Commit: 74a929b950c152071c4b06d93a1998c95e634fe4
https://github.com/llvm/llvm-project/commit/74a929b950c152071c4b06d93a1998c95e634fe4
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
M clang/lib/AST/Interp/Context.cpp
M clang/test/AST/Interp/lambda.cpp
Log Message:
-----------
[clang][Interp] Ignore incomplete records when visiting lambdas
We need them to be complete so we have knowledge about all the
lambda captures.
Commit: 65ddd87e6878a60c80fcb33e45cea3581b2d95b1
https://github.com/llvm/llvm-project/commit/65ddd87e6878a60c80fcb33e45cea3581b2d95b1
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn
Log Message:
-----------
[gn] port 8a27ef676e3c6 (lldbSymbol now includes clang headers)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251480
Commit: d5905bc3c1c7b950810db6eaafba15edc3e8dc7f
https://github.com/llvm/llvm-project/commit/d5905bc3c1c7b950810db6eaafba15edc3e8dc7f
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Analysis/Lint.cpp
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
M llvm/test/Verifier/intrinsic-immarg.ll
Log Message:
-----------
[Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)
Summary:
Following on from the discussion in
https://discourse.llvm.org/t/rfc-introducing-an-llvm-memset-pattern-inline-intrinsic/79496
and the equivalent change for llvm.memset.inline (#95397), this removes
the requirement that the length of llvm.memcpy.inline is constant.
PreISelInstrinsicLowering will expand llvm.memcpy.inline with
non-constant lengths, while the codegen path for constant lengths is
left unaltered.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251735
Commit: 59d83717df249e080b0bb39a279d1d9dcf914248
https://github.com/llvm/llvm-project/commit/59d83717df249e080b0bb39a279d1d9dcf914248
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Commands/CommandObjectProcess.cpp
M lldb/test/API/functionalities/load_unload/TestLoadUnload.py
Log Message:
-----------
[LLDB] Make 'process load' take remote os path delimiter into account (#98690)
Summary:
Currently, if we execute 'process load' with remote debugging, it uses
the host's path delimiter to look up files on a target machine. If we
run remote debugging of Linux target on Windows and execute "process
load C:\foo\a.so", lldb-server tries to load \foo\a.so instead of
/foo/a.so on the remote.
It affects several API tests.
This commit fixes that error. Also, it contains minor fixes for
TestLoadUnload.py for testing on Windows host and Linux target.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251565
Commit: 8f3a7938e9ba59193f9d18550bfadb97f0f4085c
https://github.com/llvm/llvm-project/commit/8f3a7938e9ba59193f9d18550bfadb97f0f4085c
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
Log Message:
-----------
[gn] port 8a27ef676e3c6 better
Summary:
I added this to the wrong target.
Reverts 00f83a85c754e and adds it to the right target instead.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251746
Commit: 98618b9390e77d0fa6285b5a915e3c8e45527fcf
https://github.com/llvm/llvm-project/commit/98618b9390e77d0fa6285b5a915e3c8e45527fcf
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Analysis/Lint.cpp
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
R llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
M llvm/test/Verifier/intrinsic-immarg.ll
Log Message:
-----------
Revert "[Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)"
This reverts commit 522fd53838d577add8c19b5eccccae756fd27899 while
unexpected mlir failures are investigated and resolved.
Commit: 3d7d69144787c7c2c254610f65c6ff5a0f340154
https://github.com/llvm/llvm-project/commit/3d7d69144787c7c2c254610f65c6ff5a0f340154
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
A llvm/test/CodeGen/AMDGPU/global-alias.ll
Log Message:
-----------
[AMDGPU] Fix resource analysis crash on alias-to-alias function (#99034)
Summary:
Previously this code only looked through a single level of aliases to
find the underlying function. This patch changes it to continue until it
finds the end. Aliases that form a cycle are illegal IR, so we shouldn't
need to worry about infinite loops.
Fixes https://github.com/llvm/llvm-project/issues/96812
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251684
Commit: 248f3ded0f344b9b10acfb1f1fdf4a229d423e17
https://github.com/llvm/llvm-project/commit/248f3ded0f344b9b10acfb1f1fdf4a229d423e17
Author: Youngsuk Kim <joseph942010 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Serialization/ASTReaderStmt.cpp
Log Message:
-----------
[clang] Prevent dangling StringRefs (#98699)
Summary:
Fix locations where dangling StringRefs are created.
* `ConstraintSatisfaction::SubstitutionDiagnostic`: typedef of
`std::pair<SourceLocation, StringRef>`
* `concepts::Requirement::SubstitutionDiagnostic`: struct whose 1st and
3rd data members are `StringRef`s
Fixes #98667
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251531
Commit: 613544c5f83560328924ac14c5c71e1c441cb00c
https://github.com/llvm/llvm-project/commit/613544c5f83560328924ac14c5c71e1c441cb00c
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Analysis/Lint.cpp
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
M llvm/test/Verifier/intrinsic-immarg.ll
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
Log Message:
-----------
Reapply "[Intrinsics][PreISelInstrinsicLowering] llvm.memcpy.inline length no longer needs to be constant (#98281)"
Summary:
This reverts commit ac4b6b662630cd4d3bf6929f2b39ea203c0054a1.
A test change was missing for
mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir in the initial commit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251743
Commit: 2aa3eec4af00ca741fb21d1c1f06fb54964d22f2
https://github.com/llvm/llvm-project/commit/2aa3eec4af00ca741fb21d1c1f06fb54964d22f2
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Log Message:
-----------
[sanitizer_common] Fix TgKill on Solaris (#98000)
Summary:
While working on safestack on Solaris, I noticed that the `TgKill`
implementation is wrong here: `TgKill` is supposed to return `-1` on
error, while `thr_kill` returns `errno` instead. This patch compensates
for that.
This went unnoticed so far since `TgKill` has been unused.
Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11` together
with a subsequent patch to make safestack actually work on Solaris.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251717
Commit: 899011df7c115c9f637ce109ca61f403e7d1f773
https://github.com/llvm/llvm-project/commit/899011df7c115c9f637ce109ca61f403e7d1f773
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 0eebb48fcfbc
Commit: a352f3d3f26b930b548c0b403d32880ce49e90c2
https://github.com/llvm/llvm-project/commit/a352f3d3f26b930b548c0b403d32880ce49e90c2
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
Log Message:
-----------
[gn build] Port 8a27ef676e3c
Commit: a5fb8d75ccee1c19dd025fd9deffc3215e6dbb48
https://github.com/llvm/llvm-project/commit/a5fb8d75ccee1c19dd025fd9deffc3215e6dbb48
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
Log Message:
-----------
[gn build] Port c05126bdfc3b
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251706
Commit: a39c19b9b20259b264e3585465b9dc4c41af1678
https://github.com/llvm/llvm-project/commit/a39c19b9b20259b264e3585465b9dc4c41af1678
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: use lambda instead of std::bind. NFC.
Commit: 9e95011993fe4e0bcaf3897eddd687e1d79a9158
https://github.com/llvm/llvm-project/commit/9e95011993fe4e0bcaf3897eddd687e1d79a9158
Author: Ayke <aykevanlaethem at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopRotation.cpp
A llvm/test/Transforms/LoopRotate/minsize-disable.ll
Log Message:
-----------
[LoopRotate] Don't rotate loops when the minsize attribute is present
Summary:
The main use for this patch is LTO. It is not (yet?) possible to set the
size level (-Os, -Oz) in the linker, which means loops are still rotated
even if -Oz is specified on the command line. Therefore, look at the
function attribute instead of only at the size level to determine
whether to rotate loops for a given function.
For discussion, see: https://reviews.llvm.org/D119342
An older version of this patch was already approved at
https://reviews.llvm.org/D119342 but I never got around to committing
it. The code changed so I had to make some minor updates to this patch
and in the meantime I also lost commit access because I wasn't really
using it. So here is an updated patch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251749
Commit: a1585dfffd9c1f0138700800bc7af3ae58984bcb
https://github.com/llvm/llvm-project/commit/a1585dfffd9c1f0138700800bc7af3ae58984bcb
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
Log Message:
-----------
[AMDGPU] Use std::is_same_v. NFC.
Commit: 99ab0f69fb5d6ceaf8d3e71915183cbb93d4d3d4
https://github.com/llvm/llvm-project/commit/99ab0f69fb5d6ceaf8d3e71915183cbb93d4d3d4
Author: Fabian Mora <fmora.dev at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Target/LLVM/ROCDL/Target.cpp
Log Message:
-----------
[mlir][ROCDL] Construct AMDGCN ISA control variable explicitly (#98912)
Summary:
This patch constructs the AMDGCN ISA control variable explicitly instead
of linking against the library shipped with ROCm. This change prevents
issues arising from the order in which the AMDGCN libraries are linked.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251532
Commit: 378284746a78cf4bd36e311e62cf634deb22b217
https://github.com/llvm/llvm-project/commit/378284746a78cf4bd36e311e62cf634deb22b217
Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M openmp/libompd/gdb-plugin/ompd/ompd.py
M openmp/tools/archer/tests/lit.cfg
Log Message:
-----------
[OpenMP] Fix comparison to True/False in openmp/**.py (#94041)
Summary:
from PEP8
(https://peps.python.org/pep-0008/#programming-recommendations):
> Comparisons to singletons like None should always be done with is or
is not, never the equality operators.
Co-authored-by: Eisuke Kawashima <e-kwsm at users.noreply.github.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251502
Commit: 53a0ef59f4e53691295af6673010235da7c3b92a
https://github.com/llvm/llvm-project/commit/53a0ef59f4e53691295af6673010235da7c3b92a
Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M openmp/libompd/gdb-plugin/ompd/ompd_callbacks.py
Log Message:
-----------
[OpenMP] Fix comparison to None in openmp/**.py (#94020)
Summary:
from PEP8
(https://peps.python.org/pep-0008/#programming-recommendations):
> Comparisons to singletons like None should always be done with is or
is not, never the equality operators.
Co-authored-by: Eisuke Kawashima <e-kwsm at users.noreply.github.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251609
Commit: f6f03fc102f0b24544e73c585201349b5ed73ac0
https://github.com/llvm/llvm-project/commit/f6f03fc102f0b24544e73c585201349b5ed73ac0
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
Log Message:
-----------
[AMDGPU] Sort #includes. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251656
Commit: d187c23583b97fb967f2679305e87b173aebc7a1
https://github.com/llvm/llvm-project/commit/d187c23583b97fb967f2679305e87b173aebc7a1
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Log Message:
-----------
[AMDGPU] Use std::min with initializer list. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251704
Commit: aa94f12f56a95abd16163045c11122191e8cdec2
https://github.com/llvm/llvm-project/commit/aa94f12f56a95abd16163045c11122191e8cdec2
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
Log Message:
-----------
[AMDGPU] Use member initializers. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251585
Commit: 9d0dc9e3e651cd61b70b8c98a21ed830440da63b
https://github.com/llvm/llvm-project/commit/9d0dc9e3e651cd61b70b8c98a21ed830440da63b
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
Log Message:
-----------
[AMDGPU] Concatenate nested namespaces. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251461
Commit: 5e6c342d8e87c32a7aea10a1ddd14e82aff0945c
https://github.com/llvm/llvm-project/commit/5e6c342d8e87c32a7aea10a1ddd14e82aff0945c
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
M llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: define trivial constructors with = default. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251740
Commit: 0c80c582f1a685cf36823dbc3306518a6b43cde5
https://github.com/llvm/llvm-project/commit/0c80c582f1a685cf36823dbc3306518a6b43cde5
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
Log Message:
-----------
[AMDGPU] Use bool literals for bools. NFC.
Commit: ae2163659e2c36336a5dae8e5b7a1cf9dff5d02b
https://github.com/llvm/llvm-project/commit/ae2163659e2c36336a5dae8e5b7a1cf9dff5d02b
Author: mskamp <msk at posteo.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/VectorUtils.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
A llvm/test/Analysis/ValueTracking/knownbits-x86-hadd-hsub.ll
A llvm/test/CodeGen/X86/knownbits-hadd-hsub.ll
M llvm/test/CodeGen/X86/pr53247.ll
M llvm/unittests/Analysis/VectorUtilsTest.cpp
Log Message:
-----------
[ValueTracking][X86] Compute KnownBits for phadd/phsub (#92429)
Summary:
Add KnownBits computations to ValueTracking and X86 DAG lowering.
These instructions add/subtract adjacent vector elements in their operands. Example: phadd [X1, X2] [Y1, Y2] = [X1 + X2, Y1 + Y2]. This means that, in this example, we can compute the KnownBits of the operation by computing the KnownBits of [X1, X2] + [X1, X2] and [Y1, Y2] + [Y1, Y2] and intersecting the results. This approach also generalizes to all x86 vector types.
There are also the operations phadd.sw and phsub.sw, which perform saturating addition/subtraction. Use sadd_sat and ssub_sat to compute the KnownBits of these operations.
Also adjust the existing test case pr53247.ll because it can be transformed to a constant using the new KnownBits computation.
Fixes #82516.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251514
Commit: b01babd86f55a8ff898e2b1dbf66ff0478ef5317
https://github.com/llvm/llvm-project/commit/b01babd86f55a8ff898e2b1dbf66ff0478ef5317
Author: Hansang Bae <hansang.bae at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M openmp/runtime/src/include/omp-tools.h.var
M openmp/runtime/src/kmp_barrier.cpp
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/kmp_wait_release.h
M openmp/runtime/src/ompt-specific.cpp
M openmp/runtime/test/ompt/callback.h
M openmp/runtime/test/ompt/parallel/nested.c
M openmp/runtime/test/ompt/parallel/nested_lwt.c
M openmp/runtime/test/ompt/parallel/nested_serialized.c
M openmp/runtime/test/ompt/parallel/nested_thread_num.c
M openmp/runtime/test/ompt/parallel/no_thread_num_clause.c
M openmp/runtime/test/ompt/parallel/normal.c
M openmp/runtime/test/ompt/parallel/not_enough_threads.c
M openmp/runtime/test/ompt/synchronization/barrier/explicit.c
M openmp/runtime/test/ompt/synchronization/barrier/for_loop.c
M openmp/runtime/test/ompt/synchronization/barrier/for_simd.c
M openmp/runtime/test/ompt/synchronization/barrier/implicit_task_data.c
M openmp/runtime/test/ompt/synchronization/barrier/parallel_region.c
M openmp/runtime/test/ompt/synchronization/barrier/sections.c
M openmp/runtime/test/ompt/synchronization/barrier/single.c
M openmp/runtime/test/ompt/tasks/explicit_task.c
M openmp/runtime/test/ompt/tasks/serialized.c
M openmp/runtime/test/ompt/tasks/task_in_joinbarrier.c
M openmp/runtime/test/ompt/tasks/untied_task.c
M openmp/tools/multiplex/tests/custom_data_storage/custom_data_storage.c
M openmp/tools/multiplex/tests/print/print.c
Log Message:
-----------
[OpenMP] Use new OMPT state and sync kinds for barrier events (#95602)
Summary:
This change makes the runtime use new OMPT state and sync kinds
introduced in OpenMP 5.1 in place of the deprecated implicit state and
sync kinds. Events from implicit barriers use different enumerators for
workshare, parallel, and teams.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251726
Commit: da72050c804c3cbd0bc7788c514a030a45fdf4e9
https://github.com/llvm/llvm-project/commit/da72050c804c3cbd0bc7788c514a030a45fdf4e9
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
Log Message:
-----------
[AMDGPU] clang-format: pass Triple by value and std::move it. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251616
Commit: 83cb038cd8b78ec5ba125d23d99731a7426a11f5
https://github.com/llvm/llvm-project/commit/83cb038cd8b78ec5ba125d23d99731a7426a11f5
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: use override consistently. NFC.
Commit: 4cd04fe1aba807f941c34f33bcd510ce4a892139
https://github.com/llvm/llvm-project/commit/4cd04fe1aba807f941c34f33bcd510ce4a892139
Author: Mike Rice <michael.p.rice at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
Log Message:
-----------
[NFC][clang] Replace unchecked dyn_cast with cast (#98948)
Summary:
BI__builtin_hlsl_elementwise_rcp is only invoked with a FixedVectorType
so use cast to make this clear and satisfy the static verifier.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251454
Commit: ddaf59d92d58ed301df9c95cce3ac3893de07bb9
https://github.com/llvm/llvm-project/commit/ddaf59d92d58ed301df9c95cce3ac3893de07bb9
Author: Youngsuk Kim <youngsuk.kim at hpe.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Serialization/ASTReaderStmt.cpp
Log Message:
-----------
[clang][ASTReaderStmt] Use helper function 'saveStrToCtx' (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251731
Commit: 9e401ea9dba0fa65c9023f514050583d8cbd3f72
https://github.com/llvm/llvm-project/commit/9e401ea9dba0fa65c9023f514050583d8cbd3f72
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx2cIssues.csv
M libcxx/include/__ranges/single_view.h
A libcxx/test/std/ranges/range.factories/range.single.view/empty.pass.cpp
Log Message:
-----------
[libc++][ranges] LWG4035: `single_view` should provide `empty` (#98371)
Summary:
Implements: https://wg21.link/LWG4035
- https://eel.is/c++draft/range.single.view
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251537
Commit: 638fb19b9498a1312117868c512936067c0671ce
https://github.com/llvm/llvm-project/commit/638fb19b9498a1312117868c512936067c0671ce
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: replace macro with enum. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251474
Commit: 82d8441fa826b97133142e3b7b6cb70a42134a99
https://github.com/llvm/llvm-project/commit/82d8441fa826b97133142e3b7b6cb70a42134a99
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
Log Message:
-----------
[mlir][vector] Update tests for collapse 6/n (nfc) (#98902)
Summary:
The main goal of this PR (and subsequent PRs), is to add more tests with
scalable vectors to:
* vector-transfer-collapse-inner-most-dims.mlir
There's quite a few cases to consider, hence this is split into multiple
PRs.
In this PR, I am making the following changes:
* All input memrefs for `xfer_read` are are renamed as `%src`.
* All input memrefs for `xfer_write` are are renamed as `%dest`.
* All variables representing pad values for `xfer_read` are renamed as
`%pad`.
* All vector variables (for `xfer_read` and `xfer_write`) are renamed as
`%v`.
* Add `@contiguous_inner_most_non_zero_idx_in_bounds_scalable` for
`xfer_read` (similar test already exists for `xfer_write`)
* All index variables are renamed as `%i` (1st index) and `%ii` (2nd
index).
The above were marked as TODOs in the test file - these are not
resolved. In addition (to avoid sending another PR):
* `@drop_inner_most_dim` is deleted - it duplicates
`@contiguous_inner_most` for xfer_write
* For consistency with other negative tests, renamed `@non_unit_strides`
as `@negative_non_unit_strides` and added a similar test for
`xfer_read`
* `@non_unit_strides` is renamed as `@negative_non_unit_strides` and
a similar test is added for `xfer_read`.
This is a follow-up for: #94490, #94604, #94906, #96214, #96227
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251592
Commit: 32f42a68914dce47c7059e8643f6ea5895472352
https://github.com/llvm/llvm-project/commit/32f42a68914dce47c7059e8643f6ea5895472352
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
M llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp
M llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp
M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp
Log Message:
-----------
[AMDGPU] Use using instead of typedef. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251576
Commit: 75697ad2bc642ff7bceafb1948976fdaa3385359
https://github.com/llvm/llvm-project/commit/75697ad2bc642ff7bceafb1948976fdaa3385359
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[codeowners][nfc] Add myself and @dcaballe (#97853)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251711
Commit: 8cfdf3312ebfbcb588607065fb5a187771861062
https://github.com/llvm/llvm-project/commit/8cfdf3312ebfbcb588607065fb5a187771861062
Author: Lei Huang <lei at ca.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
A llvm/test/CodeGen/PowerPC/peephole-combineRLWINM-liveness.mir
Log Message:
-----------
[PowerPC] Ensure MI peephole knows about instr modified by combineRLWINM() (#97134)
Summary:
Ensure registers used in instructions modified by `combineRLWINM()` are
added to list of `RegsToUpdate`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251700
Commit: c11cff5001ce2ccd47f19e07658b11cf25816692
https://github.com/llvm/llvm-project/commit/c11cff5001ce2ccd47f19e07658b11cf25816692
Author: Alexis Perry-Holby <AlexisPerry at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Frontend/TargetOptions.h
M flang/include/flang/Lower/Bridge.h
M flang/include/flang/Optimizer/CodeGen/CGPasses.td
M flang/include/flang/Optimizer/CodeGen/Target.h
M flang/include/flang/Optimizer/Dialect/Support/FIRContext.h
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Lower/Bridge.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/CodeGen/Target.cpp
M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
M flang/lib/Optimizer/CodeGen/TypeConverter.cpp
M flang/lib/Optimizer/Dialect/Support/FIRContext.cpp
A flang/test/Driver/tune-cpu-fir.f90
A flang/test/Lower/tune-cpu-llvm.f90
M flang/tools/bbc/bbc.cpp
M flang/tools/tco/tco.cpp
M flang/unittests/Optimizer/FIRContextTest.cpp
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
A mlir/test/Target/LLVMIR/Import/tune-cpu.ll
A mlir/test/Target/LLVMIR/tune-cpu.mlir
Log Message:
-----------
Add basic -mtune support (#98517)
Initial implementation for the -mtune flag in Flang.
This PR is a clean version of PR #96688, which is a re-land of PR #95043
Commit: a46d78921b6f9165795bc2d6ab71ea31d1b1a474
https://github.com/llvm/llvm-project/commit/a46d78921b6f9165795bc2d6ab71ea31d1b1a474
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/include/mlir/IR/AffineMap.h
M mlir/include/mlir/Interfaces/VectorInterfaces.td
M mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorMask.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp
M mlir/lib/IR/AffineMap.cpp
M mlir/test/Conversion/VectorToSCF/vector-to-scf.mlir
M mlir/test/Dialect/Affine/SuperVectorize/vectorize_1d.mlir
M mlir/test/Dialect/Affine/SuperVectorize/vectorize_2d.mlir
M mlir/test/Dialect/Affine/SuperVectorize/vectorize_affine_apply.mlir
M mlir/test/Dialect/Linalg/hoisting.mlir
M mlir/test/Dialect/Linalg/vectorization.mlir
M mlir/test/Dialect/Vector/invalid.mlir
M mlir/test/Dialect/Vector/ops.mlir
M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
M mlir/test/Dialect/Vector/vector-transfer-permutation-lowering.mlir
M mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
M mlir/test/Dialect/Vector/vector-transfer-unroll.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-1d.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-2d.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-3d.mlir
M mlir/test/python/dialects/vector.py
Log Message:
-----------
[mlir][vector] Make the in_bounds attribute mandatory (#97049)
Summary:
At the moment, the in_bounds attribute has two confusing/contradicting
properties:
1. It is both optional _and_ has an effective default-value.
2. The default value is "out-of-bounds" for non-broadcast dims, and
"in-bounds" for broadcast dims.
(see the `isDimInBounds` vector interface method for an example of this
"default" behaviour [1]).
This PR aims to clarify the logic surrounding the `in_bounds` attribute
by:
* making the attribute mandatory (i.e. it is always present),
* always setting the default value to "out of bounds" (that's
consistent with the current behaviour for the most common cases).
#### Broadcast dimensions in tests
As per [2], the broadcast dimensions requires the corresponding
`in_bounds` attribute to be `true`:
```
vector.transfer_read op requires broadcast dimensions to be in-bounds
```
The changes in this PR mean that we can no longer rely on the
default value in cases like the following (dim 0 is a broadcast dim):
```mlir
%read = vector.transfer_read %A[%base1, %base2], %f, %mask
{permutation_map = affine_map<(d0, d1) -> (0, d1)>} :
memref<?x?xf32>, vector<4x9xf32>
```
Instead, the broadcast dimension has to explicitly be marked as "in
bounds:
```mlir
%read = vector.transfer_read %A[%base1, %base2], %f, %mask
{in_bounds = [true, false], permutation_map = affine_map<(d0, d1) -> (0, d1)>} :
memref<?x?xf32>, vector<4x9xf32>
```
All tests with broadcast dims are updated accordingly.
#### Changes in "SuperVectorize.cpp" and "Vectorization.cpp"
The following patterns in "Vectorization.cpp" are updated to explicitly
set the `in_bounds` attribute to `false`:
* `LinalgCopyVTRForwardingPattern` and `LinalgCopyVTWForwardingPattern`
Also, `vectorizeAffineLoad` (from "SuperVectorize.cpp") and
`vectorizeAsLinalgGeneric` (from "Vectorization.cpp") are updated to
make sure that xfer Ops created by these hooks set the dimension
corresponding to broadcast dims as "in bounds". Otherwise, the Op
verifier would complain
Note that there is no mechanism to verify whether the corresponding
memory access are indeed in bounds. Still, this is consistent with the
current behaviour where the broadcast dim would be implicitly assumed
to be "in bounds".
[1]
https://github.com/llvm/llvm-project/blob/4145ad2bac4bb99d5034d60c74bb2789f6c6e802/mlir/include/mlir/Interfaces/VectorInterfaces.td#L243-L246
[2]
https://mlir.llvm.org/docs/Dialects/Vector/#vectortransfer_read-vectortransferreadop
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251604
Commit: 0df0b322d50fe2687fe2a9269f2d63655e6be7ab
https://github.com/llvm/llvm-project/commit/0df0b322d50fe2687fe2a9269f2d63655e6be7ab
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
M llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
Log Message:
-----------
[AMDGPU] Fix and add namespace closing comments. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251686
Commit: 7dc335e5b655252f6a1f273ca7304372c6199298
https://github.com/llvm/llvm-project/commit/7dc335e5b655252f6a1f273ca7304372c6199298
Author: Chenguang Wang <w3cing at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Fix llvm:Core build (#99054)
Summary: According to @akuegel, this breakage was introduced in c05126bd.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251668
Commit: c036cb8b01441ca520cec6d577e4b57e25fa8c9f
https://github.com/llvm/llvm-project/commit/c036cb8b01441ca520cec6d577e4b57e25fa8c9f
Author: smanna12 <soumi.manna at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Demangle/MicrosoftDemangle.h
Log Message:
-----------
Prevent copying of ArenaAllocator (#97935)
Summary:
This patch removes copy constructor and assignment operator from
ArenaAllocator class to prevent resource duplication and ensure it
remains non-copyable as per design intent.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251510
Commit: ecb1201455afc2341a78b428cb6d08087c80a0a3
https://github.com/llvm/llvm-project/commit/ecb1201455afc2341a78b428cb6d08087c80a0a3
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/BuiltinsX86.def
M clang/include/clang/Driver/Options.td
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Basic/Targets/X86.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/lib/Headers/mm3dnow.h
M clang/lib/Headers/x86intrin.h
R clang/test/CodeGen/X86/3dnow-builtins.c
M clang/test/CodeGen/builtins-x86.c
M clang/test/Driver/x86-target-features.c
M clang/test/Headers/mm3dnow.c
M clang/test/Preprocessor/predefined-arch-macros.c
M clang/test/Preprocessor/x86_target_features.c
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/lib/Target/X86/X86.td
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86Instr3DNow.td
M llvm/lib/Target/X86/X86InstrPredicates.td
M llvm/lib/Target/X86/X86Subtarget.cpp
M llvm/lib/Target/X86/X86Subtarget.h
R llvm/test/CodeGen/X86/3dnow-intrinsics.ll
R llvm/test/CodeGen/X86/commute-3dnow.ll
M llvm/test/CodeGen/X86/expand-vr64-gr64-copy.mir
M llvm/test/CodeGen/X86/pr35982.ll
M llvm/test/CodeGen/X86/prefetch.ll
R llvm/test/CodeGen/X86/stack-folding-3dnow.ll
Log Message:
-----------
Remove support for 3DNow!, both intrinsics and builtins. (#96246)
This set of instructions was only supported by AMD chips starting in
the K6-2 (introduced 1998), and before the "Bulldozer" family
(2011). They were never much used, as they were effectively superseded
by the more-widely-implemented SSE (first implemented on the AMD side
in Athlon XP in 2001).
This is being done as a predecessor towards general removal of MMX
register usage. Since there is almost no usage of the 3DNow!
intrinsics, and no modern hardware even implements them, simple
removal seems like the best option.
(Clang half originally uploaded in https://reviews.llvm.org/D94213)
Works towards issue #41665 and issue #98272.
Commit: 07d331d049c2422d1ceca92dbb424da6c8813745
https://github.com/llvm/llvm-project/commit/07d331d049c2422d1ceca92dbb424da6c8813745
Author: Kamau Bridgeman <kamau.bridgeman.ibm at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/profile/instrprof-gc-sections.c
Log Message:
-----------
XFAIL: lld-available lit.cfg tag does not work as intended. (#99056)
This change XFAILs instrprof-gc-sections.c compiler-rt test case
because it uses the `lld-available` lit.config tag which erroneously
uses the `CMAKE_LINKER` if it is lld instead of checking for the
latest and greatest lld available. A patch is in the works to fix
this.
This change is to bring the `clang-ppc64le-linux-test-suite` and
`clang-ppc64le-linux-multistage` back to green as they were broken
as of PR #98382
Commit: 7bb195051ce6fb77650dd6e8080b694fc6a28809
https://github.com/llvm/llvm-project/commit/7bb195051ce6fb77650dd6e8080b694fc6a28809
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
A llvm/test/Transforms/AggressiveInstCombine/memchr.ll
Log Message:
-----------
[AggressiveInstCombine] Expand memchr with small constant strings (#98501)
Summary:
This patch converts memchr with a small constant string into a switch.
It will reduce overhead of libcall and enable more folds (e.g.,
comparing the result with null).
References: https://en.cppreference.com/w/c/string/byte/memchr
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251695
Commit: 74db2dc51077adb3131966ee1c338094950e0f04
https://github.com/llvm/llvm-project/commit/74db2dc51077adb3131966ee1c338094950e0f04
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Build libc++ on top libc for baremetal (#99009)
Summary:
This is mostly a proof of concept requiring a number of workarounds, but
demonstrates that it is feasible.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251475
Commit: cc440b113b2ca5f13e89a820c5a336981cb61b89
https://github.com/llvm/llvm-project/commit/cc440b113b2ca5f13e89a820c5a336981cb61b89
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Add more Instruction member functions (#98588)
This patch adds new Instruction member functions, including:
- getNextNode()
- getPrevNode()
- getOpcode()
- removeFromParent()
- eraseFromParent()
- getParent()
- insertBefore()
- insertAfter()
- insertInto()
- moveBefore()
- moveAfter()
Commit: 3db1d81d41c4ad163cb0b979634b812dc97e56f6
https://github.com/llvm/llvm-project/commit/3db1d81d41c4ad163cb0b979634b812dc97e56f6
Author: Chris Cotter <ccotter14 at bloomberg.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
A compiler-rt/test/msan/Linux/prctl.cpp
M compiler-rt/test/sanitizer_common/TestCases/Linux/prctl.cpp
Log Message:
-----------
[msan] Support prctl PR_GET_NAME call (#98951)
Summary:
Per the man page, PR_GET_NAME stores a null terminated string into the
input `char name[16]`.
This also adds prctl support in ASAN to detect freed memory being passed
to `prctl(PR_GET_NAME, ...)`:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251534
Commit: fd7bb370309c3c8f7d04e6aa528410da299fb7b9
https://github.com/llvm/llvm-project/commit/fd7bb370309c3c8f7d04e6aa528410da299fb7b9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/remarks_cmp_sel_min_max.ll
M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
Log Message:
-----------
[SLP]Correctly detect minnum/maxnum patterns for select/cmp operations on floats.
Summary:
The patch enables detection of minnum/maxnum patterns for float point
instruction, represented as select/cmp. Also, enables better cost
estimation for integer min/max patterns since the compiler starts
to estimate the scalars separately.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251535
Commit: 58016f087786a286b2feac11b276370e4322d6c5
https://github.com/llvm/llvm-project/commit/58016f087786a286b2feac11b276370e4322d6c5
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll
Log Message:
-----------
[SLP]Do not vectorize small (<=2) buildvector/buildvalue sequences with MaxVF==true.
Summary:
If MaxVFOnly for buildvector/buildvalue vectorization is set to true and the
total number of elements to vectorize is <= 2, better to try to
vectorize reductions at first, which may produce larger tree (reductions
have a limit of at least 4 elements to vectorize). Smaller
buildvector/buildvalue sequence will be attempted to vectorize later,
with MaxVFOnly set to false.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251539
Commit: 33e078ead90754c41b4aff9ad2115a109e0d15f7
https://github.com/llvm/llvm-project/commit/33e078ead90754c41b4aff9ad2115a109e0d15f7
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Revert "[SandboxIR] Add more Instruction member functions (#98588)"
Summary: This reverts commit 618b0b77cd7ecbdf726d393269ce822bf8d3beb9.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251723
Commit: 40e0387f1a5f770dc778fad0439490fc164c272d
https://github.com/llvm/llvm-project/commit/40e0387f1a5f770dc778fad0439490fc164c272d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/wchar/CMakeLists.txt
Log Message:
-----------
[libc] Fix old unittests for wchar tests (#99060)
Summary:
These need to use `add_libc_test`.
Commit: 895c356fe7243b209c1e9730a6600562c842124d
https://github.com/llvm/llvm-project/commit/895c356fe7243b209c1e9730a6600562c842124d
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/PatternMatch.h
M llvm/unittests/IR/PatternMatch.cpp
Log Message:
-----------
Revert "[PatternMatch] Fix issue of stale reference in new `m_{I,F,}Cmp` matchers" (#99062)
Summary:
Reverts llvm/llvm-project#98866
It's still use-after-scope.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251755
Commit: ceae6e19f5fd9f94bfb537377fd378e00de17aac
https://github.com/llvm/llvm-project/commit/ceae6e19f5fd9f94bfb537377fd378e00de17aac
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__chrono/year_month_day.h
M libcxx/modules/std/chrono.inc
M libcxx/test/std/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/comparisons.pass.cpp
Log Message:
-----------
[libc++][chrono] Adds year_month_day_last&::operator<=>. (#98169)
41f7bb9975bcaffae0267fa87b63c90b83ffd551 claimed it implemented this
change but the code was not adjusted. The other spaceship operators in
the calendar code have been validated too.
Implements parts of
- P1614R2 The Mothership has Landed
Commit: ff3c8eb555aa1cfdb3f8c75428682f007191496a
https://github.com/llvm/llvm-project/commit/ff3c8eb555aa1cfdb3f8c75428682f007191496a
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
A llvm/test/Transforms/InstCombine/AMDGPU/select-from-load.ll
Log Message:
-----------
[InstCombine] Fix a crash in `PointerReplacer` (#98987)
Summary:
A crash could happen in `PointerReplacer::replace` when constructing a
new
select instruction and there is no replacement for one of its operand.
This can
happen when the operand is a load instruction that has been replaced
earlier
such that the operand itself is already the new value. In this case, it
is not
in the replacement map and `getReplacement` simply returns nullptr.
Fix SWDEV-472192.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251751
Commit: 15915a2f04dbc807a7b2b3d4111eed9c514e79af
https://github.com/llvm/llvm-project/commit/15915a2f04dbc807a7b2b3d4111eed9c514e79af
Author: smanna12 <soumi.manna at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/TreeTransform.h
Log Message:
-----------
[Clang] Prevent null pointer dereference in TransformUnaryTransformType() (#97912)
Summary:
This patch adds null check after TransformType call to avoid
dereferencing a null pointer when calling getType().
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251429
Commit: 3853a98f2d6236f48508911f6788c0ca8d4f4600
https://github.com/llvm/llvm-project/commit/3853a98f2d6236f48508911f6788c0ca8d4f4600
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptParser.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/ELF/invalid-linkerscript.test
M lld/test/ELF/oformat-binary.s
Log Message:
-----------
[ELF] OUTPUT_FORMAT: support "binary" and ignore extra OUTPUT_FORMAT commands
Summary:
This patch improves GNU ld compatibility.
Close #87891: Support `OUTPUT_FORMAT(binary)`, which is like
--oformat=binary. --oformat=binary takes precedence over an ELF
`OUTPUT_FORMAT`.
In addition, if more than one OUTPUT_FORMAT command is specified, only
check the first one.
Pull Request: https://github.com/llvm/llvm-project/pull/98837
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251671
Commit: c6e8e5574a27f39cc41cbf6d7d8c784258ba6eca
https://github.com/llvm/llvm-project/commit/c6e8e5574a27f39cc41cbf6d7d8c784258ba6eca
Author: Justin Bogner <mail at justinbogner.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Sema/HLSLExternalSemaSource.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/test/AST/HLSL/RWBuffer-AST.hlsl
R clang/test/AST/HLSL/ResourceStruct.hlsl
M clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl
Log Message:
-----------
[HLSL] Remove hlsl::Resource (#98938)
This was added in an effort to support resource types before we created
the HLSLResource builtin type, but it isn't needed.
Commit: 561c137e6ef88035b1999abbf76505ed4b889ea3
https://github.com/llvm/llvm-project/commit/561c137e6ef88035b1999abbf76505ed4b889ea3
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_defs.h
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.h
M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
Log Message:
-----------
[tsan] Replace ALIGNED with alignas
Summary:
Similar to #98958.
Pull Request: https://github.com/llvm/llvm-project/pull/98959
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251655
Commit: 5081cb80fe675ca75b2aabc78622b43252af6816
https://github.com/llvm/llvm-project/commit/5081cb80fe675ca75b2aabc78622b43252af6816
Author: Justin Bogner <mail at justinbogner.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Support/DXILABI.h
A llvm/include/llvm/Transforms/Utils/DXILResource.h
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/DXILResource.cpp
M llvm/unittests/Transforms/Utils/CMakeLists.txt
A llvm/unittests/Transforms/Utils/DXILResourceTest.cpp
Log Message:
-----------
[Transforms][DXIL] Tool to generate resource metadata and annotations (#98939)
Summary:
This introduces dxil::ResourceInfo, which can generate DXIL-style
metadata for resources and the constants for the DXIL 6.6+
annotateResource operation. These are done together so that it's easier
to see all of the information the ResourceInfo class needs to store.
This will be used for lowering resource in the DirectX backend and is
intended to help with the translation in the other direction as well. To
do that, we'll need the inverse functions of `getAsMetadata` and
`getAnnotateProps`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251519
Commit: 789f3e65306a4554596795870eb9e4effb37453b
https://github.com/llvm/llvm-project/commit/789f3e65306a4554596795870eb9e4effb37453b
Author: Justin Bogner <mail at justinbogner.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/unittests/Transforms/Utils/DXILResourceTest.cpp
Log Message:
-----------
Fully qualify `std::nullptr`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251501
Commit: 8a9dc91c8a67c488a7340262438e63fabd25ec88
https://github.com/llvm/llvm-project/commit/8a9dc91c8a67c488a7340262438e63fabd25ec88
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/Transforms/Utils/BUILD.gn
Log Message:
-----------
[gn build] Port 48f55ba9d8e5
Commit: 416a3a97c0230002c51def78f68cacde8c614c1e
https://github.com/llvm/llvm-project/commit/416a3a97c0230002c51def78f68cacde8c614c1e
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
Reapply "[SandboxIR] Add more Instruction member functions (#98588)"
Summary: This reverts commit 1ca07cee7ffaccaa5b07dc0105309b9d43a615d0.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251476
Commit: b95c4c808af1e7557d86e10a08b481d130d53218
https://github.com/llvm/llvm-project/commit/b95c4c808af1e7557d86e10a08b481d130d53218
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/tools/clang-formatted-files.txt
M clang/lib/Basic/CMakeLists.txt
M clang/lib/Basic/Targets.cpp
A clang/lib/Basic/Targets/Le64.cpp
A clang/lib/Basic/Targets/Le64.h
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/CodeGen/bitfield-access-pad.c
M clang/test/CodeGen/bitfield-access-unit.c
M clang/test/CodeGenCXX/bitfield-access-empty.cpp
M clang/test/CodeGenCXX/bitfield-access-tail.cpp
M clang/test/Preprocessor/predefined-macros-no-warnings.c
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/TargetParser/Triple.cpp
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
Revert "Finish deleting the le32/le64 targets" (#99079)
Summary:
Reverts llvm/llvm-project#98497
We're reverting this for approx 30 days so that the Halide project has
time to transition off the target.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251543
Commit: be3e4ec963fbc203d2660568756cbda8ebc210f9
https://github.com/llvm/llvm-project/commit/be3e4ec963fbc203d2660568756cbda8ebc210f9
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Analysis/ValueTracking/known-bits.ll
A llvm/test/Analysis/ValueTracking/known-fpclass.ll
M llvm/test/Analysis/ValueTracking/known-non-zero.ll
Log Message:
-----------
[ValueTracking] Add tests for Known{Bits,NonZero,FPClass} for `llvm.vector.reverse`; NFC
Commit: a8b45e67aaa78d5bd4382962fd41e0665c721b95
https://github.com/llvm/llvm-project/commit/a8b45e67aaa78d5bd4382962fd41e0665c721b95
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
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] Implement Known{Bits,NonZero,FPClass} for `llvm.vector.reverse`
Summary:
`llvm.vector.reverse` preserves each of the elements and thus elements
common to them.
Alive2 doesn't support the intrin yet, but the logic seems pretty
self-evident.
Closes #99013
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251759
Commit: 2285aacaceda726995b261a2aa5be9bd49a276bb
https://github.com/llvm/llvm-project/commit/2285aacaceda726995b261a2aa5be9bd49a276bb
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
R compiler-rt/test/sanitizer_common/TestCases/Linux/preadv2.cpp
Log Message:
-----------
Revert "[compiler-rt] adding preadv2/pwritev2 interceptions." (#99085)
Reverts llvm/llvm-project#97216
Commit: 610445da66799fac7c12ac80369fcf2c3b93cbfc
https://github.com/llvm/llvm-project/commit/610445da66799fac7c12ac80369fcf2c3b93cbfc
Author: Fehr Mathieu <mathieu.fehr at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir-c/Rewrite.h
A mlir/include/mlir/CAPI/Rewrite.h
M mlir/lib/CAPI/Transforms/Rewrite.cpp
M mlir/test/CAPI/CMakeLists.txt
A mlir/test/CAPI/rewrite.c
M mlir/test/CMakeLists.txt
M mlir/test/lit.cfg.py
Log Message:
-----------
[mlir] Add RewriterBase to the C API (#98962)
Summary:
This exposes most of the `RewriterBase` methods to the C API.
This allows to manipulate both the `IRRewriter` and the
`PatternRewriter`. The
`IRRewriter` can be created from the C API, while the `PatternRewriter`
cannot.
The missing operations are the ones taking `Block::iterator` and
`Region::iterator` as
parameters, as they are not exposed by the C API yet AFAIK.
The Python bindings for these methods and classes are not implemented.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250937
Commit: 0adf8a050a9a85e605d775287909b77ac161cd30
https://github.com/llvm/llvm-project/commit/0adf8a050a9a85e605d775287909b77ac161cd30
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/newhdrgen/class_implementation/classes/function.py
A libc/newhdrgen/gpu_headers.py
M libc/newhdrgen/header.py
A libc/newhdrgen/yaml/features.yaml
M libc/newhdrgen/yaml/pthread.yaml
M libc/newhdrgen/yaml/sys/sys_random.yaml
M libc/newhdrgen/yaml/time.yaml
M libc/newhdrgen/yaml_to_classes.py
Log Message:
-----------
[libc] newheadergen: script adjusted for cmake (#98825)
Summary:
- added entrypoints and headerfile parameters depending on target
- fixed nits in yaml files causing errors
- tested with new cmake config
- cmake patch will be seperate
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251601
Commit: fac0d184a32a8d1757169b383952551caf5765d6
https://github.com/llvm/llvm-project/commit/fac0d184a32a8d1757169b383952551caf5765d6
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/MC/AMDGPU/expressions-gfx10.s
M llvm/test/MC/AMDGPU/gfx1013.s
M llvm/test/MC/AMDGPU/gfx1030_unsupported.s
M llvm/test/MC/AMDGPU/gfx10_asm_dpp16.s
M llvm/test/MC/AMDGPU/gfx10_asm_dpp8.s
M llvm/test/MC/AMDGPU/gfx10_asm_ds.s
M llvm/test/MC/AMDGPU/gfx10_asm_err.s
M llvm/test/MC/AMDGPU/gfx10_asm_flat.s
M llvm/test/MC/AMDGPU/gfx10_asm_mubuf.s
M llvm/test/MC/AMDGPU/gfx10_asm_smem.s
M llvm/test/MC/AMDGPU/gfx10_asm_sop.s
M llvm/test/MC/AMDGPU/gfx10_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx10_asm_vop2.s
M llvm/test/MC/AMDGPU/gfx10_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx10_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx10_asm_vopc_e64.s
M llvm/test/MC/AMDGPU/gfx10_asm_vopc_sdwa.s
M llvm/test/MC/AMDGPU/gfx10_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx10_unsupported.s
M llvm/test/MC/AMDGPU/gfx10_unsupported_dpp.s
M llvm/test/MC/AMDGPU/gfx10_unsupported_e32.s
M llvm/test/MC/AMDGPU/gfx10_unsupported_e64.s
M llvm/test/MC/AMDGPU/gfx10_unsupported_e64_dpp.s
M llvm/test/MC/AMDGPU/gfx10_unsupported_sdwa.s
M llvm/test/MC/AMDGPU/gfx11-promotions.s
M llvm/test/MC/AMDGPU/gfx11_asm_flat.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop1_t16_promote.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2_t16_promote.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_alias.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop1.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop1.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3p_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopd.s
M llvm/test/MC/AMDGPU/gfx11_asm_wmma.s
M llvm/test/MC/AMDGPU/gfx11_unsupported.s
M llvm/test/MC/AMDGPU/gfx11_unsupported_dpp.s
M llvm/test/MC/AMDGPU/gfx11_unsupported_e32.s
M llvm/test/MC/AMDGPU/gfx11_unsupported_e64.s
M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa-fake16.s
M llvm/test/MC/AMDGPU/gfx11_unsupported_sdwa.s
M llvm/test/MC/AMDGPU/gfx12_asm_global_load_tr.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop2.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop2_aliases.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_aliases.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_err.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_aliases.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3p_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopd.s
M llvm/test/MC/AMDGPU/gfx12_asm_wmma_w64.s
M llvm/test/MC/AMDGPU/vop3-literal.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10_ds.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_flat.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_mubuf.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_smem.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_sop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopk.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_sopp.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1_sdwa.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_sdwa.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc_sdwa.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx_sdwa.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopd.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_wmma.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_global_load_tr.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3p_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopd.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_wmma_w64.txt
Log Message:
-----------
[AMDGPU] Get rid of the +wavefrontsizeXX,-wavefrontsizeXX in MC tests (#99001)
Summary:
Now turning off/turning on feature is not needed in most cases. This is
NFC, tests only.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251630
Commit: a556297311ecb5915138eedf125ce16e4e2c7ab7
https://github.com/llvm/llvm-project/commit/a556297311ecb5915138eedf125ce16e4e2c7ab7
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/IR/CMakeLists.txt
Log Message:
-----------
[LLVM][LTO] Add missing dependency
Summary:
Fixes 'llvm/CodeGen/GenVT.inc' file not found.
Follow up to #98512
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251678
Commit: f24595f6e880b72e3eda04a413ebdd5338773156
https://github.com/llvm/llvm-project/commit/f24595f6e880b72e3eda04a413ebdd5338773156
Author: Volodymyr Vasylkun <vvmposeydon at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/SystemZ/SystemZISelLowering.h
A llvm/test/CodeGen/ARM/scmp.ll
A llvm/test/CodeGen/ARM/ucmp.ll
A llvm/test/CodeGen/LoongArch/scmp.ll
A llvm/test/CodeGen/LoongArch/ucmp.ll
A llvm/test/CodeGen/PowerPC/scmp.ll
A llvm/test/CodeGen/PowerPC/ucmp.ll
A llvm/test/CodeGen/RISCV/scmp.ll
A llvm/test/CodeGen/RISCV/ucmp.ll
A llvm/test/CodeGen/SystemZ/scmp.ll
A llvm/test/CodeGen/SystemZ/ucmp.ll
A llvm/test/CodeGen/Thumb/scmp.ll
A llvm/test/CodeGen/Thumb/ucmp.ll
A llvm/test/CodeGen/WebAssembly/scmp.ll
A llvm/test/CodeGen/WebAssembly/ucmp.ll
M llvm/test/CodeGen/X86/scmp.ll
M llvm/test/CodeGen/X86/ucmp.ll
Log Message:
-----------
[SelectionDAG] Expand [US]CMP using arithmetic on boolean values instead of selects (#98774)
Summary:
The previous expansion of [US]CMP was done using two selects and two
compares. It produced decent code, but on many platforms it is better to
implement [US]CMP nodes by performing the following operation:
```
[us]cmp(x, y) = (x [us]> y) - (x [us]< y)
```
This patch adds this new expansion, as well as a hook in TargetLowering to allow some targets to still use the select-based approach. AArch64 and SystemZ are currently the only targets to prefer the former approach, but other targets may also start to use it if it provides for better codegen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251481
Commit: da1b9868c8ea1e088fe80d394845baaee52560df
https://github.com/llvm/llvm-project/commit/da1b9868c8ea1e088fe80d394845baaee52560df
Author: Brian Cain <bcain at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/Driver.cpp
M lld/ELF/ScriptParser.cpp
A lld/test/ELF/emulation-hexagon.s
Log Message:
-----------
[lld] Add emulation support for hexagon (#98857)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251650
Commit: db8b9db866fb2ded6b6341e819aab1cbcde1fea6
https://github.com/llvm/llvm-project/commit/db8b9db866fb2ded6b6341e819aab1cbcde1fea6
Author: Kamau Bridgeman <kamau.bridgeman at ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/profile/instrprof-gc-sections.c
Log Message:
-----------
NFC: Mark instrprof-gc-sections.c unsupported on ppc64le
Summary:
PR #99056 marked this test case as an XFAIl for ppc64le but it
is actually being temporary unsupported, this changes it from
an XFAIl to unsupported.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251494
Commit: f4bd6c1180fdaaa91b00cde60140759efbd23419
https://github.com/llvm/llvm-project/commit/f4bd6c1180fdaaa91b00cde60140759efbd23419
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
A llvm/include/llvm/SandboxIR/Use.h
Log Message:
-----------
[SandboxIR][NFC] Move sandboxir::Use into a separate file (#99074)
Summary: This helps avoid circular dependencies in a follow-up patch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251433
Commit: da89acfa938debe20a209095f080668755fa309d
https://github.com/llvm/llvm-project/commit/da89acfa938debe20a209095f080668755fa309d
Author: Martin Storsjö <martin at martin.st>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Object/COFFImportFile.h
M llvm/lib/Object/COFFImportFile.cpp
M llvm/lib/Object/COFFModuleDefinition.cpp
M llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
Log Message:
-----------
[llvm-dlltool] Remove the i386 underscore prefix from COFFImportFile::ImportName. NFC. (#98226)
Summary:
On i386, regular C level symbols are given an underscore prefix
in the symbols on the object file level. However, the exported
names from DLLs usually don't have this leading underscore.
When specified in a def file like "symbol == dllname", the "dllname"
is the name of the exported symbol from the DLL, which will be
linked against from an object file symbol named "_symbol"
(on i386).
The mechanism where one symbol is redirected to another one in
an import library is implemented with weak aliases. In that case,
we need to have the object file symbol level name for the target
of the import, as we make one object file symbol point at another
one. Therefore, we added an underscore to the ImportName field.
(This mechanism, with weak aliases, only works as long as the
target also is exported as is, in that form - this issue is
dealt with in a later commit.)
For clarity, for potentially handling the import renaming in
other ways, store the ImportName field unprefixed, containing
the actual name to import from the DLL.
When creating the aliases, add the prefix as needed. This requires
passing an extra AddUnderscores parameter to the writeImportLibrary
function; this is a temporary measure, until alias creation is
reworked in a later commit.
This doesn't preserve the corner case of checking !isDecorated()
before adding the prefix. This corner case isn't tested by any
of our existing tests, and only would trigger for
fastcall/vectorcall/MS C++ functions - while these kinds of
renames primarily are used in mingw-w64-crt import libraries
(which primarily handle cdecl and stdcall functions).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251649
Commit: d7c5180ff09e0901e8dddae124b901a8e6ea2c97
https://github.com/llvm/llvm-project/commit/d7c5180ff09e0901e8dddae124b901a8e6ea2c97
Author: Sam Clegg <sbc at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/wasm/dylink.s
M lld/wasm/InputFiles.cpp
Log Message:
-----------
[lld][WebAssembly] Work around limited architecture detection for wasm64 shared libraries (#98961)
Summary:
We don't currently have a great way to detect the architecture of shared
object files under wasm. The currently method involves checking if the
imported or exported memory is 64-bit. However some shared libraries
don't use linear memory at all.
See https://github.com/llvm/llvm-project/issues/98778
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251710
Commit: a0bf6058c661b9ae0aa54e005f6930be5b04e85b
https://github.com/llvm/llvm-project/commit/a0bf6058c661b9ae0aa54e005f6930be5b04e85b
Author: Martin Storsjö <martin at martin.st>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Object/COFFImportFile.cpp
M llvm/test/tools/llvm-dlltool/coff-decorated.def
Log Message:
-----------
[llvm-dlltool] Handle import renaming using other name types, when possible (#98228)
This avoids needing to use weak aliases for these cases. (Weak
aliases only work if there's another, regular import entry that
provide the desired symbol from the DLL.)
Commit: 81f607fe0cc35a1c921c5563ab40895d7881a19a
https://github.com/llvm/llvm-project/commit/81f607fe0cc35a1c921c5563ab40895d7881a19a
Author: Martin Storsjö <martin at martin.st>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/COFF/lib.test
M llvm/include/llvm/Object/COFFImportFile.h
M llvm/lib/Object/COFFImportFile.cpp
M llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
M llvm/test/tools/llvm-dlltool/coff-decorated.def
M llvm/test/tools/llvm-dlltool/coff-weak-exports.def
A llvm/test/tools/llvm-dlltool/renaming.def
Log Message:
-----------
[llvm-dlltool] Fix renamed imports without a separate regular import entry (#98229)
Summary:
Normally, when doing renamed imports, we do this by providing a
weak alias, towards another regular import, for the symbol we
want to actually import. In a def file, this looks like this:
regularfunc
renamedfunc == regularfunc
However, if we want to link against a function in a DLL, where we
(intentionally) don't provide a regular import for that symbol
with the name in its DLL, doing the renamed import with a weak
alias doesn't work, as there's no symbol that the weak alias can
point towards.
We can't make up such an import either, as we may intentionally
not want to provide a regular import for that name.
This situation can either be resolved by using the "long" import
library format (as e.g. produced by GNU dlltool), or by using the
new short import library name type "export as".
This patch implements it by using the "export as" name type.
When producing a renamed import, defer emitting it until all regular
imports have been produced. If the renamed import refers to a
symbol that does exist as a regular import entry, produce a
weak alias, just as before. (This implementation also avoids needing
to know whether the symbol that the alias points towards actually
is prefixed or not, too.)
If the renamed import points at a symbol that isn't otherwise
available (or is available as a renamed symbol itself), generate
an "export as" import entry.
This name type is new, and is normally used in ARM64EC import
libraries, but can also be used for other architectures.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251620
Commit: d889a5720ca8db93b7cb4060371948b871b24f82
https://github.com/llvm/llvm-project/commit/d889a5720ca8db93b7cb4060371948b871b24f82
Author: Zequan Wu <zequanwu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h
M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp
M lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h
A lldb/test/Shell/SymbolFile/DWARF/delayed-definition-die-searching.test
R lldb/test/Shell/SymbolFile/DWARF/x86/simple-template-names-context.cpp
A lldb/test/Shell/SymbolFile/DWARF/x86/type-definition-search.cpp
Log Message:
-----------
Reapply [lldb][DWARF] Delay struct/class/union definition DIE searching when parsing declaration DIEs. (#98361)
Summary:
This is a reapply of https://github.com/llvm/llvm-project/pull/92328 and
https://github.com/llvm/llvm-project/pull/93839.
It now passes the
[test](https://github.com/llvm/llvm-project/commit/de3f1b6d68ab8a0e827db84b328803857a4f60df),
which crashes with the original reverted changes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251550
Commit: 7e406ce58ce9d583a826c235e84ea8fe4cbffd38
https://github.com/llvm/llvm-project/commit/7e406ce58ce9d583a826c235e84ea8fe4cbffd38
Author: Justin Bogner <mail at justinbogner.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/HLSL/HLSLIRReference.rst
M clang/docs/HLSL/ResourceTypes.rst
A llvm/docs/DirectX/DXILResources.rst
M llvm/docs/DirectXUsage.rst
Log Message:
-----------
[DirectX] Start documenting DXIL Resource handling (#90553)
Summary:
This adds a new document about DXIL Resource Handling. I've attempted to
describe here how we intend to use TargetExtTypes to represent resources
in LLVM IR and the various intrinsics we'll need to lower these through
LLVM to DXIL.
For now this document is limited to the high level concepts and a few
details on buffer types, and there are a number of TODOs in the document
that we'll iterate on as we progress in the implementation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251613
Commit: 85dbf2f0872f4c8ce42cba2255f7b97c60a5f555
https://github.com/llvm/llvm-project/commit/85dbf2f0872f4c8ce42cba2255f7b97c60a5f555
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Analysis/LoopAccessAnalysis/load-store-index-loaded-in-loop.ll
Log Message:
-----------
[LAA] Adjust test from a4f8705b05 so RT checks aren't always false.
Summary:
Updated @B_indices_loaded_in_loop_A_stored to use a different offset
for one of the accesses we create runtime checks for; the original
version had a runtime check that was always true as the accesses always
overlapped.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251566
Commit: 4a3ea9c750b9ae398b02f92d682faabba6b9b4f7
https://github.com/llvm/llvm-project/commit/4a3ea9c750b9ae398b02f92d682faabba6b9b4f7
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_defs.h
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.h
M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
Log Message:
-----------
Revert "[tsan] Replace ALIGNED with alignas" (#99240)
Summary: Reverts llvm/llvm-project#98959
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251556
Commit: 6efc6570d94ba27c71577a790016a7a6eb0c0140
https://github.com/llvm/llvm-project/commit/6efc6570d94ba27c71577a790016a7a6eb0c0140
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/include/llvm-libc-macros/generic-error-number-macros.h
M libc/src/__support/StringUtil/tables/stdc_errors.h
M libc/test/src/string/strerror_test.cpp
Log Message:
-----------
[libc] Add `strerror` and `strerror_k` to the GPU (#99083)
Summary:
The GPU ignores `errno` primarily, but targets want these functions to
be defined for certain C standard interfaces. This patch enables them
and makes the test function on non-Linux targets.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251599
Commit: 9f930115d3ceb98cb9df7cfdf89e9a51821437ea
https://github.com/llvm/llvm-project/commit/9f930115d3ceb98cb9df7cfdf89e9a51821437ea
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/docs/gpu/support.rst
M libc/include/llvm-libc-macros/gpu/time-macros.h
M libc/include/time.h.def
M libc/src/time/gpu/CMakeLists.txt
A libc/src/time/gpu/clock_gettime.cpp
M libc/test/src/time/CMakeLists.txt
M libc/test/src/time/clock_gettime_test.cpp
Log Message:
-----------
[libc] Implement `clock_gettime` for the monotonic clock on the GPU (#99067)
Summary:
This patch implements `clock_gettime` using the monotonic clock. This
allows users to get time elapsed at nanosecond resolution. This is
primarily to facilitate compiling the `chrono` library from `libc++`.
For this reason we provide both `CLOCK_MONOTONIC`, which we can
implement
with the GPU's global fixed-frequency clock, and `CLOCK_REALTIME` which
we cannot. The latter is provided just to make people who use this
header happy and it will always return failure.
Commit: c574d58366d13dffeafbd264fa00be0b59a714fc
https://github.com/llvm/llvm-project/commit/c574d58366d13dffeafbd264fa00be0b59a714fc
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
Log Message:
-----------
[tsan] Avoid ALIGNED in tsan_platform_mac.cpp. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251673
Commit: de6e141c031dbf325c6c0f2bfe5072bd9f66466f
https://github.com/llvm/llvm-project/commit/de6e141c031dbf325c6c0f2bfe5072bd9f66466f
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
A compiler-rt/test/sanitizer_common/TestCases/Linux/preadv2.cpp
Log Message:
-----------
Preadv2 pwritev2 san reapply (#99089)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250969
Commit: d029d5f363e330631d5950726fd0c596a0555e7b
https://github.com/llvm/llvm-project/commit/d029d5f363e330631d5950726fd0c596a0555e7b
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_defs.h
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
M compiler-rt/lib/tsan/rtl/tsan_mman.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.h
M compiler-rt/lib/tsan/rtl/tsan_suppressions.cpp
M compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
Log Message:
-----------
[tsan] Replace ALIGNED with alignas
Summary:
Similar to #98958.
The relands 656f617ac772c54e0bee9d499e7ca232137ddb35 , which
was reverted due to an issue in tsan_platform_mac.cpp
Pull Request: https://github.com/llvm/llvm-project/pull/98959
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250841
Commit: d206fd24b665be0d396d68c97224c0bf8c610115
https://github.com/llvm/llvm-project/commit/d206fd24b665be0d396d68c97224c0bf8c610115
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/docs/gpu/support.rst
Log Message:
-----------
[libc][docs] Document printf support on the GPU target (#99241)
Summary:
Title
Commit: 26ab6720e6ce55d1976cc12453dbf1236be45dc8
https://github.com/llvm/llvm-project/commit/26ab6720e6ce55d1976cc12453dbf1236be45dc8
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port changes from main (#99247)
This ports 5f8c46b88799a710f98c00d377d7edc34096f85d and
4531f82c1ad905614c1df9359a77d48e6397fd97
Commit: 3caf73ffac54b9f718579dada9307b1245786d0b
https://github.com/llvm/llvm-project/commit/3caf73ffac54b9f718579dada9307b1245786d0b
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Use escaped double quote (#99246)
Summary: Using single quotes made the build to break on Windows.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251722
Commit: e86a9c482db0e2022db6ded04f10ff1077a42041
https://github.com/llvm/llvm-project/commit/e86a9c482db0e2022db6ded04f10ff1077a42041
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A clang-tools-extra/test/clang-doc/namespace.cpp
Log Message:
-----------
[clang-doc] add nested namespace test case (#97681)
Summary:
This patch adds a test to clang-doc which test the nested namespace
generation of clang-doc
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251608
Commit: f6d03ace810e0fe602766fec7b5c54f7b415950b
https://github.com/llvm/llvm-project/commit/f6d03ace810e0fe602766fec7b5c54f7b415950b
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A clang-tools-extra/test/clang-doc/enum.cpp
Log Message:
-----------
[clang-doc] add enum test (#97679)
Summary: This patch adds a test which test the enum generation for clang-doc.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250871
Commit: e0677ed6063bbfecb1410b9cbe0f2a96d613a316
https://github.com/llvm/llvm-project/commit/e0677ed6063bbfecb1410b9cbe0f2a96d613a316
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/test/MC/RISCV/XTHeadVdot-valid.s
Log Message:
-----------
[RISCV] Add capital letters to T-Head extension names in descriptions. (#99070)
Summary:
This matches T-Head documentation and the capitalization we use for the
RISCVSubtarget methods.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251763
Commit: dacc6724a97318628bc7f83f4c52bc046cbbe582
https://github.com/llvm/llvm-project/commit/dacc6724a97318628bc7f83f4c52bc046cbbe582
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
Log Message:
-----------
[RISCV] Remove unnecessary call to MachineFunction::getSubtarget. NFC
Summary:
RISCVInstrInfo already caches a reference to the subtarget object
that owns it. We can use that.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250954
Commit: 9e068da712174a58bbeb316e9f95099294c07b01
https://github.com/llvm/llvm-project/commit/9e068da712174a58bbeb316e9f95099294c07b01
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/MachO/Driver.cpp
M lld/MachO/ObjC.cpp
M lld/test/MachO/dead-strip.s
M lld/test/MachO/icf-safe.ll
Log Message:
-----------
[lld-macho] Omit `__llvm_addrsig` metadata from the output (#98913)
Summary:
This section contains metadata that's only relevant for Identical Code
Folding at link time, we should not include it in the output.
We still treat it like a regular section during input file parsing (e.g.
create a `ConcatInputSection` for it), as we want its relocations to be
parsed. But it should not be passed to `addInputSection`, as that's what
assigns it to an `OutputSection` and adds it to the `inputSections`
vector which specifies the inputs to dead-stripping and relocation
scanning.
This fixes a "__DATA,__llvm_addrsig, offset 0: fixups overlap" error
when using `--icf=safe` alongside `-fixup_chains`. This occurs because
all `__llvm_addrsig` sections are 8 bytes large, and the relocations
which signify functions whose addresses are taken are all at offset 0.
This makes the fix in 5fa24ac2 ("Category Merger: add support for
addrsig references") obsolete, as we no longer try to resolve symbols
referenced in `__llvm_addrsig` when writing the output file. When we do
iterate its relocations in `markAddrSigSymbols`, we do not try to
resolve their addresses.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250821
Commit: 5d936608958af51b671d8d9768ea73755f7233ed
https://github.com/llvm/llvm-project/commit/5d936608958af51b671d8d9768ea73755f7233ed
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/CAPI/Rewrite.h
Log Message:
-----------
[mlir] Fix build error (NFC)
Summary:
/llvm-project/mlir/include/mlir/CAPI/Rewrite.h:21:63:
error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
DEFINE_C_API_PTR_METHODS(MlirRewriterBase, mlir::RewriterBase);
^
1 error generated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250959
Commit: 0dae41603130c7b8bd608e59dee698976d6a6b8e
https://github.com/llvm/llvm-project/commit/0dae41603130c7b8bd608e59dee698976d6a6b8e
Author: Dmitriy Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MCParser/AsmLexer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
A llvm/test/MC/ELF/warn-newline-in-escaped-string.s
Log Message:
-----------
[MC,ELF] Emit warning if a string constant contains newline char (#98060)
Summary:
GAS emits warning about newline in the string constant so make the same
behaviour.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250926
Commit: d71377024eb9e3118f037c40c1acfcea3ae29c12
https://github.com/llvm/llvm-project/commit/d71377024eb9e3118f037c40c1acfcea3ae29c12
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/AMDGPU/select-from-load.ll
Log Message:
-----------
[NFC] Use named variable for test case `select-from-load.ll`
Commit: 3772f14724984cacae89bd28b955961b20d8e99a
https://github.com/llvm/llvm-project/commit/3772f14724984cacae89bd28b955961b20d8e99a
Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/fastcc-int.ll
M llvm/test/CodeGen/RISCV/fastcc-without-f-reg.ll
M llvm/test/CodeGen/RISCV/rvv/calling-conv-fastcc.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv-fastcc.ll
Log Message:
-----------
[RISCV] Remove x7 from fastcc list. (#96729)
Summary:
Like #93321, this patch also tries to solve the conflict usage of x7 for
fastcc and Zicfilp. But this patch removes x7 from fastcc directly. Its
purpose is to reduce the code complexity of #93321, and we also found
that it at most increase 0.02% instruction count for most benchmarks and
it might be benefit for benchmarks.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250997
Commit: 9b149b9e440bc314086e52bfd2207f9e978a7a57
https://github.com/llvm/llvm-project/commit/9b149b9e440bc314086e52bfd2207f9e978a7a57
Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/VPIntrinsics.def
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vp-splat.ll
A llvm/test/CodeGen/RISCV/rvv/vp-splat.ll
M llvm/unittests/IR/VPIntrinsicTest.cpp
Log Message:
-----------
[VP][RISCV] Introduce vp.splat and RISC-V. (#98731)
Summary:
This patch introduces a vp intrinsic for splat. It's helpful for
IR-level passes to create a splat with specific vector length.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250956
Commit: fd206c7ceec968aff76107c725c7841a5f9d4064
https://github.com/llvm/llvm-project/commit/fd206c7ceec968aff76107c725c7841a5f9d4064
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/LTO.cpp
M lld/test/COFF/lto-emit-llvm.ll
Log Message:
-----------
[lld-link] Change /lldemit:llvm to use the pre-codegen module
Summary:
This matches ELF (#97480). clang cc1 -emit-llvm and -emit-llvm-bc for
ThinLTO backend compilation also uses `PreCodeGenModuleHook`.
While here, replace deprecated %T with %t.
Pull Request: https://github.com/llvm/llvm-project/pull/98589
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250940
Commit: ebb302efaa75e264b1ce5016480b6d98dc6d5691
https://github.com/llvm/llvm-project/commit/ebb302efaa75e264b1ce5016480b6d98dc6d5691
Author: Allen <zhongyunde at huawei.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A clang/test/CodeGen/math-libcalls-tbaa.cpp
Log Message:
-----------
[clang codegen] Precommit tests for PR96025, NFC (#98704)
Summary: Add extern "C" for the function because there is difference function naming rules between Linux and Windows
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250932
Commit: 6959adc72fcde7af81a4f27d69b0480cbce007c9
https://github.com/llvm/llvm-project/commit/6959adc72fcde7af81a4f27d69b0480cbce007c9
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/test/CodeGen/AMDGPU/insert-skips-gfx10.mir
M llvm/test/CodeGen/AMDGPU/insert-skips-gfx12.mir
Log Message:
-----------
[AMDGPU] Update hasUnwantedEffectsWhenEXECEmpty (#97982)
Summary:
Add barriers and s_wait_event to hasUnwantedEffectsWhenEXECEmpty.
Add a comment documenting the current expected use of the function.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250953
Commit: ddf6d01b5c19bb5bf062ac7ea3b475e5ed5e0c24
https://github.com/llvm/llvm-project/commit/ddf6d01b5c19bb5bf062ac7ea3b475e5ed5e0c24
Author: paperchalice <liujunchang97 at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/MachineBasicBlock.h
A llvm/include/llvm/CodeGen/PHIElimination.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/PHIElimination.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/AArch64/PHIElimination-crash.mir
M llvm/test/CodeGen/AArch64/PHIElimination-debugloc.mir
M llvm/test/CodeGen/AMDGPU/phi-elimination-assertion.mir
M llvm/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
M llvm/test/CodeGen/AMDGPU/split-mbb-lis-subrange.mir
M llvm/test/CodeGen/AMDGPU/stale-livevar-in-twoaddr-pass.mir
M llvm/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.mir
M llvm/test/CodeGen/PowerPC/livevars-crash1.mir
M llvm/test/CodeGen/PowerPC/livevars-crash2.mir
M llvm/test/CodeGen/PowerPC/phi-eliminate.mir
M llvm/test/CodeGen/PowerPC/two-address-crash.mir
M llvm/test/CodeGen/Thumb2/phi_prevent_copy.mir
M llvm/test/CodeGen/X86/callbr-asm-kill.mir
M llvm/test/CodeGen/X86/phielim-undef.mir
Log Message:
-----------
[CodeGen][NewPM] Port `phi-node-elimination` to new pass manager (#98867)
Summary:
- Add `PHIEliminationPass `.
- Support new pass manager in `MachineBasicBlock:: SplitCriticalEdge `
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251632
Commit: fe3695332e351026df0b990e1c30e347ca797b4f
https://github.com/llvm/llvm-project/commit/fe3695332e351026df0b990e1c30e347ca797b4f
Author: Allen <zhongyunde at huawei.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGen/math-libcalls-tbaa.cpp
Log Message:
-----------
[clang codegen] Fix the ci fail for PR98704 (#99267)
Summary:
Different targets may have different flag on arguments, so restrict the
triple to avoid ci fail.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250813
Commit: 3015d7c8420bdee2a1400798d9e6b9f2ffbae401
https://github.com/llvm/llvm-project/commit/3015d7c8420bdee2a1400798d9e6b9f2ffbae401
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/MachineVerifier/test_g_extract_subvector.mir
M llvm/test/MachineVerifier/test_g_insert_subvector.mir
M llvm/test/MachineVerifier/test_g_vscale.mir
Log Message:
-----------
[GlobalIsel] Fix Machine Verifier errors (#99018)
Summary:
temporary solution.
For discussion see https://github.com/llvm/llvm-project/pull/98894
Permanent solution could be:
REQUIRES: default_triple
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251709
Commit: cf81d318d6a05a734fdf725606e55710b1ac1989
https://github.com/llvm/llvm-project/commit/cf81d318d6a05a734fdf725606e55710b1ac1989
Author: hev <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
M llvm/test/CodeGen/LoongArch/opt-pipeline.ll
M llvm/test/CodeGen/LoongArch/typepromotion-overflow.ll
Log Message:
-----------
[LoongArch] Enable the TypePromotion pass from AArch64 (#98868)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251764
Commit: db6675e6e197f3a63898a64a067045fbd4057ef4
https://github.com/llvm/llvm-project/commit/db6675e6e197f3a63898a64a067045fbd4057ef4
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/test/CodeGen/RISCV/rvv/combine-vmv.ll
M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
Log Message:
-----------
[RISCV] Don't fold vmerge.vvm or vmv.v.v into vredsum.vs if AVL changed (#99006)
Summary:
When folding, we currently check if the pseudo's result is not lanewise
(e.g. vredsum.vs or viota.m) and bail if we're changing the mask.
However we also need to check for the AVL too.
This patch bails if the AVL changed for these pseudos, and also renames
the pseudo table property to be more explicit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250957
Commit: bb57c396413ad605b7b4144e2c42920decedc73a
https://github.com/llvm/llvm-project/commit/bb57c396413ad605b7b4144e2c42920decedc73a
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__mutex/lock_guard.h
M libcxx/include/__mutex/tag_types.h
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/adopt_lock.pass.cpp
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.fail.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/assign.compile.pass.cpp
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.fail.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/copy.compile.pass.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.adopt_lock.pass.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/ctor.mutex.pass.cpp
M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/implicit_ctad.pass.cpp
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.verify.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/std.mutex.pass.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.compile.pass.cpp
A libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.h
R libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/types.pass.cpp
Log Message:
-----------
[libc++] Make `std::lock_guard` available with `_LIBCPP_HAS_NO_THREADS` (#98717)
Summary:
This change makes `std::lock_guard` available when
`_LIBCPP_HAS_NO_THREADS` is set. This class is generic and doesn't
require threading support, and is regularly used even in environments
where threading isn't available like embedded.
fixes #89891
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251575
Commit: 39e9c74401df0ce0a5980c50aa0cf1d03ecac288
https://github.com/llvm/llvm-project/commit/39e9c74401df0ce0a5980c50aa0cf1d03ecac288
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
Log Message:
-----------
[RISCV] Remove accidentally duplicated isel patterns. NFC
Summary:
VPatIntegerSetCCSDNode_XI_Swappable inherited from
VPatIntegerSetCCSDNode_XI and contained the same patterns.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250883
Commit: d37f5f54dfbd08819aa3b38106ace052c3504e9a
https://github.com/llvm/llvm-project/commit/d37f5f54dfbd08819aa3b38106ace052c3504e9a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
Log Message:
-----------
[RISCV] Add more vector setcc VI isel patterns.
Add more patterns isel patterns for vmseq.vi and friends with
the constant splat on the left hand side.
We can't trust the canonicalization in SimplifySetCC to keep constants
to the RHS when the splat is VMV_V_X_VL for i64 on RV32.
Commit: f43ba0ed0759b51e6aac55c1d5218a4d286597c9
https://github.com/llvm/llvm-project/commit/f43ba0ed0759b51e6aac55c1d5218a4d286597c9
Author: Piotr Fusik <p.fusik at samsung.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
Log Message:
-----------
[RISCV][NFC] Fix intrinsic misspelled in a comment (#98998)
Commit: 91854f24dca86d5af38c68e8beaf2e8b34695c0d
https://github.com/llvm/llvm-project/commit/91854f24dca86d5af38c68e8beaf2e8b34695c0d
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/X86/Inputs/ambiguous_fragment.s
A bolt/test/X86/Inputs/ambiguous_fragment.script
A bolt/test/X86/ambiguous_fragment.test
Log Message:
-----------
[BOLT] Store FileSymRefs in a multimap
Summary:
With aggressive ICF, it's possible to have different local symbols
(under different FILE symbols) to be mapped to the same address.
FileSymRefs only keeps a single SymbolRef per address, which prevents
fragment matching from finding the correct symbol to perform parent
function lookup.
Work around this issue by switching FileSymRefs to a multimap. In
future, uses of FileSymRefs can be replaced with SortedSymbols which
keeps essentially the same information.
Test Plan: added ambiguous_fragment.test
Reviewers: ayermolo, rafaelauler
Reviewed By: rafaelauler
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250988
Commit: 77bfd818194d0ee60fad7e90acab63d88814a38a
https://github.com/llvm/llvm-project/commit/77bfd818194d0ee60fad7e90acab63d88814a38a
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/ExecutionEngine/CudaRuntimeWrappers.cpp
A mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir
Log Message:
-----------
[mlir][gpu] Use alloc OP's `host_shared` in cuda runtime (#99035)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250900
Commit: 9c30f9a8903d31f0e2da95f5d23b36e6cbe5b75f
https://github.com/llvm/llvm-project/commit/9c30f9a8903d31f0e2da95f5d23b36e6cbe5b75f
Author: WANG Rui <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
Log Message:
-----------
[LoongArch] Pre-commit tests for spurious mask removal. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250892
Commit: 21344b51658a6b3354380a7fdc6262ac4665981b
https://github.com/llvm/llvm-project/commit/21344b51658a6b3354380a7fdc6262ac4665981b
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaConcept.h
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
A clang/test/SemaCXX/cxx2c-fold-exprs.cpp
M clang/www/cxx_status.html
Log Message:
-----------
Reapply [Clang][C++26] Implement "Ordering of constraints involving fold expressions (#99022)
Implement https://isocpp.org/files/papers/P2963R3.pdf
Commit: dcf264dc15f5df625de55ef55c6a004bd40cf18e
https://github.com/llvm/llvm-project/commit/dcf264dc15f5df625de55ef55c6a004bd40cf18e
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: use std::make_unique. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250939
Commit: a80f1f7727b37087bb8524f17f1c264ccf704d96
https://github.com/llvm/llvm-project/commit/a80f1f7727b37087bb8524f17f1c264ccf704d96
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Dialect/FIROps.td
A flang/include/flang/Optimizer/Transforms/MemoryUtils.h
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Optimizer/Transforms/CMakeLists.txt
M flang/lib/Optimizer/Transforms/MemoryAllocation.cpp
A flang/lib/Optimizer/Transforms/MemoryUtils.cpp
A flang/test/Fir/memory-allocation-opt-2.fir
Log Message:
-----------
[flang] handle alloca outside of entry blocks in MemoryAllocation (#98457)
Summary:
This patch generalizes the MemoryAllocation pass (alloca -> heap) to
handle fir.alloca regardless of their postion in the IR. Currently, it
only dealt with fir.alloca in function entry blocks. The logic is placed
in a utility that can be used to replace alloca in an operation on
demand to whatever kind of allocation the utility user wants via
callbacks (allocmem, or custom runtime calls to instrument the code...).
To do so, a concept of ownership, that was already implied a bit and
used in passes like stack-reclaim, is formalized. Any operation with the
LoopLikeInterface, AutomaticAllocationScope, or IsolatedFromAbove owns
the alloca directly nested inside its regions, and they must not be used
after the operation.
The pass then looks for the exit points of region with such interface,
and use that to insert deallocation. If dominance is not proved, the
pass fallbacks to storing the new address into a C pointer variable
created in the entry of the owning region which allows inserting
deallocation as needed, included near the alloca itself to avoid leaks
when the alloca is executed multiple times due to block CFGs loops.
This should fix https://github.com/llvm/llvm-project/issues/88344.
In a next step, I will try to refactor lowering a bit to introduce
lifetime operation for alloca so that the deallocation points can be
inserted as soon as possible.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251596
Commit: cba856b19589db01b85fe2b78bb6baa2aa0eeb86
https://github.com/llvm/llvm-project/commit/cba856b19589db01b85fe2b78bb6baa2aa0eeb86
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/is_void.h
Log Message:
-----------
[libc++] Simplify std::is_void (#99033)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250963
Commit: b6e87388440af9d2c94e40eb39310b8f1713b506
https://github.com/llvm/llvm-project/commit/b6e87388440af9d2c94e40eb39310b8f1713b506
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir
Log Message:
-----------
[mlir][gpu] Add mlir_c_runner_utils to fix #99035
Summary: This fixes the unit test that is broken in #99035.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251693
Commit: 85a1c58b016e4d4e7349da19a8bea9d37af2446b
https://github.com/llvm/llvm-project/commit/85a1c58b016e4d4e7349da19a8bea9d37af2446b
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/InterpBlock.h
Log Message:
-----------
[clang][Interp][NFC] Remove Block::deref()
Summary: We already have Pointer::deref()
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251633
Commit: e4775e5f37b0140ad05500205d0cd1409fa8ecb5
https://github.com/llvm/llvm-project/commit/e4775e5f37b0140ad05500205d0cd1409fa8ecb5
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/InterpBlock.h
M clang/lib/AST/Interp/InterpFrame.cpp
M clang/lib/AST/Interp/InterpState.cpp
Log Message:
-----------
[clang][Interp][NFC] Assert initialization state in invoke{C,D}tor
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251329
Commit: 97ba18b4399726e0d8b3c0ee5ed74eba42d455d3
https://github.com/llvm/llvm-project/commit/97ba18b4399726e0d8b3c0ee5ed74eba42d455d3
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSplitModule.cpp
M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
M llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUDelayedMCExpr.cpp
Log Message:
-----------
[AMDGPU] clang-tidy: use emplace_back instead of push_back. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250879
Commit: 3acb9fa9f5850fe3d77c2fe2a007c4bf0d41e83a
https://github.com/llvm/llvm-project/commit/3acb9fa9f5850fe3d77c2fe2a007c4bf0d41e83a
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaInit.cpp
M clang/test/Preprocessor/embed_codegen.cpp
M clang/test/Preprocessor/embed_constexpr.cpp
Log Message:
-----------
[clang] Be careful when choosing "fast path" for initialization with #embed (#99023)
Summary:
When #embed appears in an initializer list, we may choose a "fast path"
if the target declaration is a char array. We simply initialize it with
string literal that contains embedded data. However we need to be
careful when checking that we actually can use this "fast path" since
char array may be nested in a struct.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251665
Commit: 88e33c0d2ec96ce88c72eacf95aa6ec07f4424fe
https://github.com/llvm/llvm-project/commit/88e33c0d2ec96ce88c72eacf95aa6ec07f4424fe
Author: Abe <abe149 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/docs/modularize.rst
Log Message:
-----------
[clang-tools-extra] Fix typos in Modularize.rst (#99256)
Summary:
mainly, fixed “the Clang module mechanism doesn’t support headers the
rely on other headers” => “the Clang module mechanism doesn’t support
headers that rely on other headers”. [emphasis on “the” versus “that”]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250885
Commit: b47af0448b995e0238c1f66922e00ff640aefe79
https://github.com/llvm/llvm-project/commit/b47af0448b995e0238c1f66922e00ff640aefe79
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M offload/include/OpenMP/OMPT/Interface.h
M offload/src/OpenMP/API.cpp
M offload/src/OpenMP/OMPT/Callback.cpp
A offload/test/ompt/omp_api.c
Log Message:
-----------
[Offload][OMPT] Add callbacks for (dis)associate_ptr (#99046)
Summary:
This adds the OMPT callbacks for the API functions disassociate_ptr and
associate_ptr.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250852
Commit: 8f8b38768e4dae35bf214e3a03a5a15e015a20ef
https://github.com/llvm/llvm-project/commit/8f8b38768e4dae35bf214e3a03a5a15e015a20ef
Author: Sam Parker <sam.parker at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/CodeGen/ExpandReductions.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
M llvm/lib/Transforms/Utils/LoopUtils.cpp
A llvm/test/CodeGen/WebAssembly/vector-reduce.ll
Log Message:
-----------
[TTI][WebAssembly] Pairwise reduction expansion (#93948)
Summary:
WebAssembly doesn't support horizontal operations nor does it have a way
of expressing fast-math or reassoc flags, so runtimes are currently
unable to use pairwise operations when generating code from the existing
shuffle patterns.
This patch allows the backend to select which, arbitary, shuffle pattern
to be used per reduction intrinsic. The default behaviour is the same as
the existing, which is by splitting the vector into a top and bottom
half. The other pattern introduced is for a pairwise shuffle.
WebAssembly enables pairwise reductions for int/fp add/sub.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250991
Commit: 76226aa9c791a2a87855c41ad8d239eb5d4413e2
https://github.com/llvm/llvm-project/commit/76226aa9c791a2a87855c41ad8d239eb5d4413e2
Author: Amara Emerson <amara at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/Analysis.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/Analysis.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
M llvm/lib/Target/XCore/XCoreISelLowering.cpp
A llvm/test/CodeGen/AArch64/no-tail-call-bzero-from-memset.ll
Log Message:
-----------
[AArch64] Don't tail call memset if it would convert to a bzero. (#98969)
Summary:
Well, not quite that simple. We can tc memset since it returns the first
argument but bzero doesn't do that and therefore we can end up
miscompiling.
This patch also refactors the logic out of isInTailCallPosition() into the callers.
As a result memcpy and memmove are also modified to do the same thing
for consistency.
rdar://131419786
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250902
Commit: 6616fc7de5b738ce688574fc8112a4d5fd02a908
https://github.com/llvm/llvm-project/commit/6616fc7de5b738ce688574fc8112a4d5fd02a908
Author: dlav-sc <daniil.avdeev at syntacore.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
Log Message:
-----------
[lldb][RISCV] function prologue backtrace fix (#99043)
Summary:
CreateFunctionEntryUnwindPlan RISCV ABI function fix needed to receive a
valid backtrace at the start of functions.
Fixed tests for RISCV target:
TestNumThreads.NumberOfThreadsTestCase
TestCPPExceptionBreakpoints.CPPBreakpointTestCase
TestStepThroughTrampoline.StepThroughTrampoline
TestOSPluginStepping.TestOSPluginStepping
TestSteppingOutWithArtificialFrames.TestArtificialFrameThreadStepOut1
TestStepAvoidsRegexp.StepAvoidsRegexTestCase
TestInlineStepping.TestInlineStepping
TestStepOverBreakpoint.StepOverBreakpointsTestCase
TestStepOverBreakpoint.StepOverBreakpointsTestCase
TestSteppingOutWithArtificialFrames.TestArtificialFrameThreadStepOut1
TestTailCallFrameSBAPI.TestTailCallFrameSBAPI
TestThreadPlanUserBreakpoint.ThreadPlanUserBreakpointsTestCase
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250987
Commit: 66c697fc723c69054a7a929d7aba0ccff3f026f5
https://github.com/llvm/llvm-project/commit/66c697fc723c69054a7a929d7aba0ccff3f026f5
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/test/Lower/tune-cpu-llvm.f90
Log Message:
-----------
[flang][test] Fix mtune test on AArch64 bots
Summary:
The native architecture is AArch64 here so the pentium name won't
work even if you've got the x86 backend enabled.
https://lab.llvm.org/buildbot/#/builders/17/builds/898
Pass an explicit target for each run line to fix this.
Test added in f1d3fe7aae7867b5de96b84d6d26b5c9f02f209a / #98517
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251610
Commit: 497108e6a939178016118f06e6ed0500336423f7
https://github.com/llvm/llvm-project/commit/497108e6a939178016118f06e6ed0500336423f7
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Descriptor.cpp
M clang/lib/AST/Interp/Descriptor.h
Log Message:
-----------
[clang][Interp] Makre sure we don't overflow Descriptor::AllocSize
Summary:
We allocate the metadata and the array elements in one allocation,
and we save its size in a field of type 'unsigned'. Makre sure the
full size of the allocation doesn't overflow the field.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251728
Commit: fcb87671419ace1c7271cd7eb72898fea7ca4b20
https://github.com/llvm/llvm-project/commit/fcb87671419ace1c7271cd7eb72898fea7ca4b20
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/vim/syntax/llvm.vim
Log Message:
-----------
[Utils][vim] Match vector 'splat' keyword (#99004)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251752
Commit: 3976943df30606ce1c461bcc829b0431ef0a43ee
https://github.com/llvm/llvm-project/commit/3976943df30606ce1c461bcc829b0431ef0a43ee
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/vim/syntax/llvm.vim
Log Message:
-----------
[Utils][vim] Match more hexadecimal float constants (#99000)
The `0x[KLMHR]` syntax denotes different floating-point types: various
long doubles, half and bfloat.
See https://llvm.org/docs/LangRef.html#simple-constants for reference.
Commit: 1dfea52aa2cfa459d1945830fc2b2a093738cda0
https://github.com/llvm/llvm-project/commit/1dfea52aa2cfa459d1945830fc2b2a093738cda0
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
M llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
Log Message:
-----------
[AMDGPU] Use range-based for loops. NFC. (#99047)
Commit: f410f4799b65e6d25114491c4ec865d6b3253a73
https://github.com/llvm/llvm-project/commit/f410f4799b65e6d25114491c4ec865d6b3253a73
Author: Hugo Trachino <hugo.trachino at huawei.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/test/Dialect/Vector/vector-transfer-flatten.mlir
Log Message:
-----------
[MLIR][Vector] Generalize DropUnitDimFromElementwiseOps to non leading / trailing dimensions. (#98455)
Summary:
Generalizes DropUnitDimFromElementwiseOps to support inner unit
dimensions.
This change stems from improving lowering of contractionOps for Arm SME.
Where we end up with inner unit dimensions on MulOp, BroadcastOp and
TransposeOp, preventing the generation of outerproducts.
discussed
[here](https://discourse.llvm.org/t/on-improving-arm-sme-lowering-resilience-in-mlir/78543/17?u=nujaa).
Fix after : https://github.com/llvm/llvm-project/pull/97652 showed an
unhandled edge case when all dimensions are one. The generated target
VectorType would be `vector<f32>` which is apparently not supported by
the mulf.
In case all dimensions are dropped, the target vectorType is
vector<1xf32>
---------
Co-authored-by: Benjamin Maxwell <macdue at dueutil.tech>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251689
Commit: 95d919c810b48b7c48a934ca60ff06b3f6cef243
https://github.com/llvm/llvm-project/commit/95d919c810b48b7c48a934ca60ff06b3f6cef243
Author: Sylvestre Ledru <sylvestre at debian.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/M68k/M68kISelLowering.cpp
Log Message:
-----------
adjust the m86k backend after change f270a4dd6667759d7305797a077ae09648318ac7
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250897
Commit: b6d6893c8c30d4f1b91e1ed516ccd85d8526ac11
https://github.com/llvm/llvm-project/commit/b6d6893c8c30d4f1b91e1ed516ccd85d8526ac11
Author: Finlay <finlay.marno at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/test/Dialect/LLVMIR/func.mlir
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[MLIR] Add attributes no_unwind and will_return to the LLVMIR dialect (#98921)
And testing.
These are being added to be used in the GPU to LLVM SPV pass.
---------
Co-authored-by: Victor Perez <victor.perez at codeplay.com>
Commit: 2cae03e25b65fc9def598724d5c2e6a9c28ce78d
https://github.com/llvm/llvm-project/commit/2cae03e25b65fc9def598724d5c2e6a9c28ce78d
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.cpp
M clang/test/AST/Interp/functions.cpp
Log Message:
-----------
[clang][Interp] Use an array root's field decl in the LValuePath
Summary: Instead of pushing the index 0.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251017
Commit: 934b9688586594815c07f61852212e59d0bca2fd
https://github.com/llvm/llvm-project/commit/934b9688586594815c07f61852212e59d0bca2fd
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Use VF from selected plan when creating InnerLoopVectorizer.
Summary:
This makes sure the same VF is used when executing the plan and in the
functions in InnerLoopVectorizer when the assertion is disabled (e.g.
release builds).
No tests added as they would trigger an assertion.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251701
Commit: de5cbe5886f864515f70d04cac3540aab03e2db7
https://github.com/llvm/llvm-project/commit/de5cbe5886f864515f70d04cac3540aab03e2db7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/oddshuffles.ll
M llvm/test/CodeGen/X86/shuffle-strided-with-offset-512.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-2.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-4.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll
M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
M llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
Log Message:
-----------
[X86] Fold blend(pshufb(x,m1),pshufb(y,m2)) -> blend(pshufb(x,blend(m1,m2)),pshufb(y,blend(m1,m2))) to reduce constant pool (#98466)
Summary:
Share PSHUFB masks where we have no overlap in used elements.
Fixes #98346
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250984
Commit: e2da04d4637d274395c0f57b75c60756ff69cd49
https://github.com/llvm/llvm-project/commit/e2da04d4637d274395c0f57b75c60756ff69cd49
Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/Value.def
M llvm/lib/IR/Core.cpp
M llvm/test/Bindings/llvm-c/echo.ll
M llvm/tools/llvm-c-test/echo.cpp
Log Message:
-----------
[C API] Support new ptrauth constant type (#93909)
Summary:
This is a new constant type that was added to the C++ API in
0edc97f119f3ac3ff96b11183fe5c001a48a9a8d. This adds the ability to
create instances of this constant and get its values to the C API.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250977
Commit: 05dde07c97817b868b5396c9320e8c3f3196d4f5
https://github.com/llvm/llvm-project/commit/05dde07c97817b868b5396c9320e8c3f3196d4f5
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/nsan/nsan.cpp
Log Message:
-----------
[nsan] Swap alignas and visibility order (NFC) (#98933)
Summary:
Use `alignas(16) SANITIZER_INTERFACE_ATTRIBUTE` instead of
`SANITIZER_INTERFACE_ATTRIBUTE alignas(16)`, as the former is not
supported prior to clang 16. See https://clang.godbolt.org/z/Wj1193xWK.
This was broken by https://github.com/llvm/llvm-project/pull/96142 as
part of other style changes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250864
Commit: 85f51ebb8cb52c6f79f7d5bf6dcb413671619d29
https://github.com/llvm/llvm-project/commit/85f51ebb8cb52c6f79f7d5bf6dcb413671619d29
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Compiler.h
A clang/lib/AST/Interp/DynamicAllocator.cpp
A clang/lib/AST/Interp/DynamicAllocator.h
M clang/lib/AST/Interp/EvalEmitter.cpp
M clang/lib/AST/Interp/EvaluationResult.cpp
M clang/lib/AST/Interp/EvaluationResult.h
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/InterpBlock.h
M clang/lib/AST/Interp/InterpState.cpp
M clang/lib/AST/Interp/InterpState.h
M clang/lib/AST/Interp/Opcodes.td
M clang/lib/AST/Interp/Pointer.h
A clang/test/AST/Interp/new-delete.cpp
M clang/test/Rewriter/rewrite-modern-catch.m
M clang/test/SemaCXX/delete.cpp
M clang/test/SemaCXX/new-delete.cpp
Log Message:
-----------
Reapply "[clang][Interp] Implement dynamic memory allocation handling (#70306)"
Summary: This reverts commit 48d703e7f56282ce5d690e45a129a4a7fd040ee6.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251015
Commit: 1664409fed5d4342384e4975fb32ba87b6cb3a05
https://github.com/llvm/llvm-project/commit/1664409fed5d4342384e4975fb32ba87b6cb3a05
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M flang/test/Integration/debug-fixed-array-type-2.f90
A flang/test/Transforms/debug-local-global-storage-1.fir
Log Message:
-----------
[flang][debug] Fix issues with local variables. (#98661)
Summary:
This PR fixes 2 similar issues.
1. As reported in #97476, flang generated executable has inconsistent
behavior regarding values of the local array variables.
2. Variable with save attribute would not show up in debugger.
The reason behind is same for both cases. If a local variable has
storage which extends beyond function lifetime, the way to represent it
in the debug info is through a global variable whose scope is limited to
the function. This is what is used for static local variable in C.
Previously local array worked in cases they were on stack. But will not
show up if they had a global storage.
To fix this, if we can get a corresponding `GlobalOp` for a variable
while processing `DeclareOp`, we treat it the variable as global with
scope set appropriately. A new FIR test is added. A previous Integration
test has been adjusted as to not expect local variables for local
arrays.
With this fix in place, all the issues described in #97476 go away. It
also fixes a lot of fails in GDB's fortran testsuite.
Fixes #97476.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250985
Commit: 8470c800112c13053f31f17e4b4d63bc9c65b5a7
https://github.com/llvm/llvm-project/commit/8470c800112c13053f31f17e4b4d63bc9c65b5a7
Author: Sjoerd Meijer <smeijer at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/prefer-fixed-if-equal-to-scalable.ll
Log Message:
-----------
[LV][AArch64] Prefer Fixed over Scalable if cost-model is equal (Neoverse V2) (#95819)
Summary:
For the Neoverse V2 we would like to prefer fixed width over scalable
vectorisation if the cost-model assigns an equal cost to both for certain
loops. This improves 7 kernels from TSVC-2 and several production kernels by
about 2x, and does not affect SPEC21017 INT and FP. This also adds a new TTI
hook that can steer the loop vectorizater to preferring fixed width
vectorization, which can be set per CPU. For now, this is only enabled for the
Neoverse V2.
There are 3 reasons why preferring NEON might be better in the case the
cost-model is a tie and the SVE vector size is the same as NEON (128-bit):
architectural reasons, micro-architecture reasons, and SVE codegen reasons. The
latter will be improved over time, so the more important reasons are the former
two. I.e., (micro) architecture reason is the use of LPD/STP instructions which
are not available in SVE2 and it avoids predication.
For what it is worth: this codegen strategy to generate more NEON is inline
with GCC's codegen strategy, which is actually even more aggressive in
generating NEON when no predication is required. We could be smarter about the
decision making, but this seems to be a first good step in the right direction,
and we can always revise this later (for example make the target hook more
general).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250994
Commit: 192de9e9aef76d506e0cab2f161bf086110f19e5
https://github.com/llvm/llvm-project/commit/192de9e9aef76d506e0cab2f161bf086110f19e5
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
Log Message:
-----------
[gn build] Port e94e72a0c229
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251511
Commit: 9a8938283d89d4c62923e053aa7ed0a784c75558
https://github.com/llvm/llvm-project/commit/9a8938283d89d4c62923e053aa7ed0a784c75558
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
Log Message:
-----------
[InstrRef][NFC] Avoid un-necessary DenseMap queries (#99048)
Summary:
This patch adjusts how some data is stored to avoid a number of
un-necessary DenseMap queries. There's no change to the compiler
behaviour, and it's measurably faster on the compile time tracker.
The BlockOrders vector in buildVLocValueMap collects the blocks over
which a variables value have to be determined: however the Cmp ordering
function makes two DenseMap queries to determine the RPO-order of blocks
being compared. And given that sorting is O(N log(N)) comparisons this
isn't fast. So instead, fetch the RPO-numbers of the block collection,
order those, and then map back to the blocks themselves.
The OrderToBB collection mapped an RPO-number to an MBB: it's completely
un-necessary to have DenseMap here, we can just use the RPO number as an
array index. Switch it to a SmallVector and deal with a few consequences
when iterating.
(And for good measure I've jammed in a couple of reserve calls).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251013
Commit: f896073fb48cb164e1f267d736e52bf9b29ad380
https://github.com/llvm/llvm-project/commit/f896073fb48cb164e1f267d736e52bf9b29ad380
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
Log Message:
-----------
[AMDGPU] Remove SIWholeQuadMode pass early exit (#98450)
Summary:
Merge the code bypass elements from the early exit into the main pass
execution flow.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250947
Commit: 7ba932c233134d454b3921f6df5e49017c6245b2
https://github.com/llvm/llvm-project/commit/7ba932c233134d454b3921f6df5e49017c6245b2
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
Log Message:
-----------
[LV] Process dead interleave pointer ops in reverse order.
Summary:
Process dead interleave pointer ops in reverse order. This also catches
cases where the same base pointer is used by multiple different
interleave groups.
This fixes another case where the legacy cost model inaccuarately
estimates cost, surfaced by b841e2eca3b5c8.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251729
Commit: 35d034d24bcf3ebe0f89b277f6ae6bc336ed3ae0
https://github.com/llvm/llvm-project/commit/35d034d24bcf3ebe0f89b277f6ae6bc336ed3ae0
Author: Tianyi Guan <tguan at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
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] Add test cases for folding shifts into load/store addressing modes (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250999
Commit: c66db23ff417f92bcbd28d81c40b6f687ddfb98d
https://github.com/llvm/llvm-project/commit/c66db23ff417f92bcbd28d81c40b6f687ddfb98d
Author: Krasimir Georgiev <krasimir at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
R llvm/lib/Target/AArch64/peephole-sxtw.mir
M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
Log Message:
-----------
Revert "[AArch64] Remove superfluous sxtw in peephole opt (#96293)"
Summary:
This reverts commit 7f2a5dfe35f8bbaca2819644c7aa844f938befd6.
It appears that after this, llc segfaults on the following code:
```
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64--linux-eabi"
define i32 @f(i32 %0) {
entry:
%1 = sext i32 %0 to i64
br label %A
A:
%2 = trunc i64 %1 to i32
%a69.us = sub i32 0, %2
%a69.us.fr = freeze i32 %a69.us
%3 = zext i32 %a69.us.fr to i64
br label %B
B:
%t = icmp eq i64 0, %3
br i1 %t, label %A, label %B
}
```
assert.h assertion failed at .../llvm/lib/CodeGen/LiveVariables.cpp:159 in void llvm::LiveVariables::HandleVirtRegUse(Register, MachineBasicBlock *, MachineInstr &): MRI->getVRegDef(Reg) && "Register use before def!"
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250934
Commit: d4b02fb8cdef338d724d8e163863505f6c9ff22e
https://github.com/llvm/llvm-project/commit/d4b02fb8cdef338d724d8e163863505f6c9ff22e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC]Introduce isScalableVectorizationAllowed() to refactor getMaxLegalScalableVF().
Summary:
Adds isScalableVectorizationAllowed() and the corresponding data member
to query if the scalable vectorization is supported rather than
performing the analysis each time the scalable vector factor is
requested.
Part of https://github.com/llvm/llvm-project/pull/91403
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251745
Commit: 923b8d06af76b6a564964be4c37cb07abc6afcd6
https://github.com/llvm/llvm-project/commit/923b8d06af76b6a564964be4c37cb07abc6afcd6
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaConcept.cpp
M clang/test/SemaTemplate/instantiate-requires-expr.cpp
Log Message:
-----------
[Clang][Concepts] Avoid substituting into constraints for invalid TemplateDecls (#75697)
Summary:
Fixes https://github.com/llvm/llvm-project/issues/73885.
Substituting into constraints for invalid TemplateDecls might still
yield dependent expressions and end up crashing later in evaluation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250965
Commit: 52a8a7e20fdf950a724a4d78fdf10e53b5ec4819
https://github.com/llvm/llvm-project/commit/52a8a7e20fdf950a724a4d78fdf10e53b5ec4819
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
M llvm/test/Transforms/SLPVectorizer/orig-btiwidth-les-projected.ll
Log Message:
-----------
[SLP]Improve minbitwidth analysis for trun'ed gather nodes.
Summary:
If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251753
Commit: c3a73eb0f793dc6219a60d2877d5dd149a56a233
https://github.com/llvm/llvm-project/commit/c3a73eb0f793dc6219a60d2877d5dd149a56a233
Author: Lin Jian <me at linj.tech>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/emacs/llvm-mir-mode.el
Log Message:
-----------
[emacs] Fix autoloading for llvm-mir-mode (#98984)
Summary:
Without this patch, the autoloading of the major mode `llvm-mir-mode` is
not generated, which breaks its autoloading functionality.
To test this patch, use the following command to generate an autoload
file:
```console
cd llvm/utils/emacs
emacs --quick --batch --load=package --eval='(package-generate-autoloads "llvm-mir-mode" ".")'
```
Diff of generated autoload files is as follows:
```diff
> (autoload 'llvm-mir-mode "llvm-mir-mode" "\
> A major mode for editing LLVM MIR files.
>
> (fn)" t)
```
CC @bogner for review
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251703
Commit: e7c0b394c91c91e251c3fa96eb617177468c41c8
https://github.com/llvm/llvm-project/commit/e7c0b394c91c91e251c3fa96eb617177468c41c8
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
[lldb][Bazel]: Adapt BUILD.bazel file for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251587
Commit: 6afcd71626df0d05f138ee007ced91614fd66f34
https://github.com/llvm/llvm-project/commit/6afcd71626df0d05f138ee007ced91614fd66f34
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
Revert "[lldb][Bazel]: Adapt BUILD.bazel file for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d"
This reverts commit 343ed3fd5a5e183f0edf87a89955af772aaadcfb.
Commit: 2b6973970e2c18e3bbf7f7e3d7b38b76c6ba0997
https://github.com/llvm/llvm-project/commit/2b6973970e2c18e3bbf7f7e3d7b38b76c6ba0997
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[lldb][Bazel]: Second attempt to adapt for a751f653b40f2021f091a2f1ebcc2d91bc4cc89d
Commit: 73a59f9affa373484878b67a730ae6ab74d6cda7
https://github.com/llvm/llvm-project/commit/73a59f9affa373484878b67a730ae6ab74d6cda7
Author: Sylvestre Ledru <sylvestre at debian.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/Xtensa/XtensaISelLowering.cpp
Log Message:
-----------
adjust the Xtensa backend after change f270a4dd6667759d7305797a077ae09648318ac7
Similar fix as in 3941f652317d95cac203e64791bfa730de7bbd1e
Commit: 4e18494e1d014185f5988b9f58453b58c76f2bed
https://github.com/llvm/llvm-project/commit/4e18494e1d014185f5988b9f58453b58c76f2bed
Author: MagentaTreehouse <99200384+MagentaTreehouse at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
Log Message:
-----------
[clang][Sema] Improve `Sema::CheckCXXDefaultArguments` (#97338)
Summary:
In the second loop in `Sema::CheckCXXDefaultArguments`, we don't need to
re-examine the first parameter with a default argument. Dropped the
first iteration of that loop.
In addition, use the preferred early `continue` for the if-statement in
the loop.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250866
Commit: a1e09e4d61bfebfa79f52a12f2446fe9b209dc84
https://github.com/llvm/llvm-project/commit/a1e09e4d61bfebfa79f52a12f2446fe9b209dc84
Author: Daniel Chen <cdchen at ca.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/runtime/time-intrinsic.cpp
Log Message:
-----------
[Flang] Exclude the reference to TIME_UTC for AIX. (#99069)
Summary: This PR supersede PR #98915
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251003
Commit: 5bdc50de7bd481d6816690a39e908f120ab8603b
https://github.com/llvm/llvm-project/commit/5bdc50de7bd481d6816690a39e908f120ab8603b
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/revec.ll
Log Message:
-----------
[SLP][REVEC] Make SLP support revectorization (-slp-revec) and add simple test. (#98269)
This PR will make SLP support revectorization. Add an option -slp-revec
to control the functionality.
reference:
https://discourse.llvm.org/t/rfc-make-slp-vectorizer-revectorize-vector-instructions/79436
Commit: 0b4efa4dcc15af5926d5e18a6baceac1c2a0dcd0
https://github.com/llvm/llvm-project/commit/0b4efa4dcc15af5926d5e18a6baceac1c2a0dcd0
Author: Mital Ashok <mital at mitalashok.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Headers/stdatomic.h
M clang/lib/Sema/SemaExpr.cpp
A clang/test/C/C23/n2653.c
M clang/www/c_status.html
Log Message:
-----------
[Clang] [C23] Implement N2653: u8 strings are char8_t[] (#97208)
Summary:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm
Closes #97202
---------
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250894
Commit: 46e0dfeffb4f2fb07cb52cff5d05d71dd360224c
https://github.com/llvm/llvm-project/commit/46e0dfeffb4f2fb07cb52cff5d05d71dd360224c
Author: Lawrence Benson <github at lawben.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-compress.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/AArch64/vector-compress.ll
Log Message:
-----------
[LLVM] Add `llvm.experimental.vector.compress` intrinsic (#92289)
Summary:
This PR adds a new vector intrinsic `@llvm.experimental.vector.compress`
to "compress" data within a vector based on a selection mask, i.e., it
moves all selected values (i.e., where `mask[i] == 1`) to consecutive
lanes in the result vector. A `passthru` vector can be provided, from
which remaining lanes are filled.
The main reason for this is that the existing
`@llvm.masked.compressstore` has very strong constraints in that it can
only write values that were selected, resulting in guard branches for
all targets except AVX-512 (and even there the AMD implementation is
_very_ slow). More instruction sets support "compress" logic, but only
within registers. So to store the values, an additional store is needed.
But this combination is likely significantly faster on many target as it
avoids branches.
In follow up PRs, my plan is to add target-specific lowerings for x86,
SVE, and possibly RISCV. I also want to combine this with a store
instruction, as this is probably a common case and we can avoid some
memory writes in that case.
See [discussion in
forum](https://discourse.llvm.org/t/new-intrinsic-for-masked-vector-compress-without-store/78663)
for initial discussion on the design.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250979
Commit: f9608ed338ca2f9bb28cc81d9f252f8bd0068bfc
https://github.com/llvm/llvm-project/commit/f9608ed338ca2f9bb28cc81d9f252f8bd0068bfc
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
M llvm/test/Transforms/SLPVectorizer/orig-btiwidth-les-projected.ll
Log Message:
-----------
Revert "[SLP]Improve minbitwidth analysis for trun'ed gather nodes."
Summary:
This reverts commit 6425f2d66740b84fc3027b649cd4baf660c384e8 to fix the
buildbost issues reported in https://lab.llvm.org/buildbot/#/builders/95/builds/1404.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251549
Commit: b1f0869334fd23e76b4d3cfdb04958b729434e3f
https://github.com/llvm/llvm-project/commit/b1f0869334fd23e76b4d3cfdb04958b729434e3f
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Log Message:
-----------
[InstrRef][NFC] Avoid another DenseMap, use a sorted vector (#99051)
Summary:
When resolving value-numbers to specific machine locations in the final
stages of LiveDebugValues, we've been producing a DenseMap containing
all the value-numbers we're interested in. However we never modify the
map keys as they're all pre-known. Thus, this is a suitable collection
to switch to a sorted vector that gets searched, rather than a DenseMap
that gets probed. The overall operation of LiveDebugValues isn't
affected at all.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251012
Commit: 03e85e3addb656b39da54d459c1a3b504e31ae25
https://github.com/llvm/llvm-project/commit/03e85e3addb656b39da54d459c1a3b504e31ae25
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] createSetFPEnvNodes - pass SDLoc by reference instead of value.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251006
Commit: 47c93c6e99c8c14a39d8bf7f16c4256ed9e12eae
https://github.com/llvm/llvm-project/commit/47c93c6e99c8c14a39d8bf7f16c4256ed9e12eae
Author: Mital Ashok <mital at mitalashok.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/Builtins.def
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/BuiltinsBase.td
M clang/lib/Basic/Builtins.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
Log Message:
-----------
[Clang] Add attribute for consteval builtin functions (#91894)
Summary:
Builtins with the new `Consteval` attribute will also be marked
`Constexpr` and will only be available in C++20 mode where `consteval`
makes sense.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251624
Commit: 3b17e5977a7aaa05e195a167a1e068de1666e2a7
https://github.com/llvm/llvm-project/commit/3b17e5977a7aaa05e195a167a1e068de1666e2a7
Author: Mital Ashok <mital at mitalashok.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ASTContext.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/SemaCXX/type-traits.cpp
Log Message:
-----------
[Clang] Require base element type of `__has_unique_object_representations` to be complete (#95432)
Summary:
Fixes #95311
Previous behaviour was that `false` was silently returned, templated
classes were not instantiated and incomplete classes did not issue an
error.
---------
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250880
Commit: b12c103b914836b12129deded1afaae35491da84
https://github.com/llvm/llvm-project/commit/b12c103b914836b12129deded1afaae35491da84
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[CodeGen] Fix -Wunused-variable in SelectionDAG.cpp (NFC)
Summary:
/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7560:9:
error: unused variable 'VecVT' [-Werror,-Wunused-variable]
EVT VecVT = N1.getValueType();
^
1 error generated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251014
Commit: 241c24f962e2de9d5913639f63383d87a5d69212
https://github.com/llvm/llvm-project/commit/241c24f962e2de9d5913639f63383d87a5d69212
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Use State.VF in vectorizeInterleaveGroup (NFCI).
Summary:
Update vectorizeInterleaveGroup to use State.VF in preparation to moving
the code directly to the recipe.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251702
Commit: ca920aa733bb1f9a239bc8fa8c62d5df3222ecb2
https://github.com/llvm/llvm-project/commit/ca920aa733bb1f9a239bc8fa8c62d5df3222ecb2
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A mlir/include/mlir/Conversion/MathToROCDL/MathToROCDL.h
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/CMakeLists.txt
M mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
A mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
A mlir/lib/Conversion/MathToROCDL/MathToROCDL.cpp
A mlir/test/Conversion/MathToROCDL/math-to-rocdl.mlir
Log Message:
-----------
[MLIR][ROCDL] Refactor conversion of math operations to ROCDL calls to a separate pass (#98653)
Summary:
This patch refactors the conversion of math operations to ROCDL library
calls. This pass will also be used in flang to lower Fortran
intrinsics/math functions for OpenMP target offloading codgen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250922
Commit: 49996349719dd8adb1f07e8f408f7e2f26262f3f
https://github.com/llvm/llvm-project/commit/49996349719dd8adb1f07e8f408f7e2f26262f3f
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Transforms/ConstantHoisting/RISCV/immediates.ll
Log Message:
-----------
[RISCV] Support constant hoisting of immediate store values (#96073)
Summary:
Previously getIntImmInstCost only calculated the cost of materialising
the argument of a store if it was the address. This means
ConstantHoisting's transformation wouldn't kick in for cases like
storing two values that require multiple instructions to materialise but
where one can be cheaply generated from the other (e.g. by an addition).
Two key changes were needed to avoid regressions when enabling this:
* Allowing constant materialisation cost to be calculated assuming
zeroes are free (as might happen if you had a 2*XLEN constant and one
half is zero).
* Avoiding constant hoisting if we have a misaligned store that's going
to be a legalised to a sequence of narrower stores. I'm seeing cases
where hoisting the constant ends up with worse codegen in that case.
Out of caution and so as not to unexpectedly degrade other existing hoisting logic, FreeZeroes is used only for the new cost calculations for the load instruction. It would likely make sense to revisit this later.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251732
Commit: c3a0770acc8a9af43d237d67f4c564bb9a2ed30a
https://github.com/llvm/llvm-project/commit/c3a0770acc8a9af43d237d67f4c564bb9a2ed30a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
Log Message:
-----------
[SLP]Improve minbitwidth analysis for trun'ed gather nodes.
Summary:
If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250895
Commit: 878f70197736bdbe81521dc5cfe75758113c6346
https://github.com/llvm/llvm-project/commit/878f70197736bdbe81521dc5cfe75758113c6346
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
Log Message:
-----------
Revert "[SLP]Improve minbitwidth analysis for trun'ed gather nodes."
Summary:
This reverts commit d3d2f9a4208eedbd2f372c34725ab61c3f4d3aed to fix
buildbot https://lab.llvm.org/buildbot/#/builders/92/builds/1880.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250981
Commit: e34d5b4d6a2416fe4d77df1d047bb93382aff5d6
https://github.com/llvm/llvm-project/commit/e34d5b4d6a2416fe4d77df1d047bb93382aff5d6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multivector.ll
Log Message:
-----------
[SLP]Improve minbitwidth analysis for trun'ed gather nodes.
If the gather node is trunc'ed, better to trunc scalars and then gather
them rather than gather and then trunc. Trunc for scalars is free in
most cases.
Reviewers: RKSimon
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/99072
Commit: 190cfdcb0871d10af42567dd8f99216653f8ca9f
https://github.com/llvm/llvm-project/commit/190cfdcb0871d10af42567dd8f99216653f8ca9f
Author: Mital Ashok <mital at mitalashok.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/test/SemaCXX/paren-list-agg-init.cpp
Log Message:
-----------
[Clang] Fix some assertions not looking through type sugar (#92299)
Summary:
Fixes #92284
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250912
Commit: 47d15c14861c69d92daf343365b1945fc0b8e994
https://github.com/llvm/llvm-project/commit/47d15c14861c69d92daf343365b1945fc0b8e994
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/test/Shell/Recognizer/verbose_trap.test
Log Message:
-----------
[lldb] Disable verbose_trap.test on Windows (#99323)
Summary:
verbose_trap.test, added in #80368, fails on some Windows bots.
See https://lab.llvm.org/buildbot/#/builders/141/builds/808.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250944
Commit: 0c9d8a9d8129b871b2ed909a6d8a469afe6951f1
https://github.com/llvm/llvm-project/commit/0c9d8a9d8129b871b2ed909a6d8a469afe6951f1
Author: Nathan James <n.james93 at hotmail.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
Log Message:
-----------
[clang-tidy] Add support for std::rotate(_copy) and inplace_merge to modernize-use-ranges (#99057)
Summary:
These algorithms take 3 iterators for the range and we are only
interested in the first and last iterator argument. The ranges versions
of these take a range and an iterator(defined to be inside the range) so
the transformation is pretty similar `algo(I.begin, other, I.end,...)`
-> `ranges::algo(I, other,...)`
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251515
Commit: e6c33c02116933c6d01ac1338fb4303735cdb9e6
https://github.com/llvm/llvm-project/commit/e6c33c02116933c6d01ac1338fb4303735cdb9e6
Author: Tim Gymnich <tgymnich at icloud.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
A llvm/test/Transforms/InstCombine/select-of-symmetric-selects.ll
Log Message:
-----------
[InstCombine] Fold select of symmetric selects (#99245)
Summary:
fixes #98800
Fold patterns like:
select c2 (select c1 a b) (select c1 b a)
into:
select (xor c1 c2) b a
Alive2 proofs:
https://alive2.llvm.org/ce/z/4QAm4K
https://alive2.llvm.org/ce/z/vTVRnC
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250948
Commit: b98c1a90b489d6d939f9f696e6718f6244057a2f
https://github.com/llvm/llvm-project/commit/b98c1a90b489d6d939f9f696e6718f6244057a2f
Author: Mital Ashok <mital at mitalashok.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
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/test/Sema/c2x-typeof.c
Log Message:
-----------
[Clang] [C23] Fix typeof_unqual for qualified array types (#92767)
Summary:
Properly remove qualifiers for both the element type and the array type
Fixes #92667
---------
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251748
Commit: d38bada4907e1897696be0a3cac6017d19538006
https://github.com/llvm/llvm-project/commit/d38bada4907e1897696be0a3cac6017d19538006
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/stdlib/rand.cpp
Log Message:
-----------
[libc] Change rand implementation so all tests pass in both 32- and 64-bit systems (#98692)
This patch makes rand select different algorithms depending on the arch.
This is needed to avoid a test failure in 32-bit systems where the LSB
of rand was not uniform enough when the 64-bit constants are used in
32-bit systems.
Commit: b0d71da986d2177d6cd2452f5c5a51bcd7886dae
https://github.com/llvm/llvm-project/commit/b0d71da986d2177d6cd2452f5c5a51bcd7886dae
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx2cIssues.csv
M libcxx/include/__ranges/iota_view.h
A libcxx/test/std/ranges/range.factories/range.iota.view/empty.pass.cpp
Log Message:
-----------
[libc++][ranges] LWG4001: `iota_view` should provide `empty` (#79687)
Summary:
Implements: https://wg21.link/LWG4001
- https://eel.is/c++draft/range.iota.view
---------
Co-authored-by: Zingam <zingam at outlook.com>
Co-authored-by: Will Hawkins <whh8b at obs.cr>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251523
Commit: 0bee04456c8c145d8ccf3bb2752e5b237c8be08f
https://github.com/llvm/llvm-project/commit/0bee04456c8c145d8ccf3bb2752e5b237c8be08f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
Log Message:
-----------
[AMDGPU] Simplify alias stripping to use utility function
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250982
Commit: c07401995ebdacb6483f351f8b952f571ba72386
https://github.com/llvm/llvm-project/commit/c07401995ebdacb6483f351f8b952f571ba72386
Author: smanna12 <soumi.manna at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
Log Message:
-----------
[Clang][NFC] Remove unnecessary copy (#97902)
Summary:
Reported by Static Analyzer Tool:
In
clang::ASTNodeImporter::VisitCountAttributedType(clang::CountAttributedType
const *): Using the auto keyword without an & causes the copy of an
object of type TypeCoupledDeclRefInfo
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251598
Commit: aa16c14730140b641457b7ded220e91caa24761d
https://github.com/llvm/llvm-project/commit/aa16c14730140b641457b7ded220e91caa24761d
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/UnitTest/HermeticTestUtils.cpp
Log Message:
-----------
[libc] Added missing operator delete generated by gcc/clang (#67457)
Summary: This patch adds two operators delete that are being generated by clang 15 on rv32 (operator delete(void *mem, std::align_val_t)) and by gcc 13 on intel 64 (operator delete(void *mem, unsigned long)).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251538
Commit: 0b655a226c1711eaf5ff0a41191bf60eca7186ef
https://github.com/llvm/llvm-project/commit/0b655a226c1711eaf5ff0a41191bf60eca7186ef
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/DXILResource.cpp
Log Message:
-----------
[Transforms] DXILResource.cpp - fix MSVC "not all control paths return a value" warning. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250950
Commit: c378780c6d37d4f7e9e0a0f615206095408cbf77
https://github.com/llvm/llvm-project/commit/c378780c6d37d4f7e9e0a0f615206095408cbf77
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/Bridge.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Avoid temporary when RHS is a logical constant (#99078)
Summary:
Enhance the detection of constant on the RHS for logical cases so we
don't create a temporary.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251681
Commit: 6064e7e58f488e67cbd2af461314f7941507d650
https://github.com/llvm/llvm-project/commit/6064e7e58f488e67cbd2af461314f7941507d650
Author: Mike Crowe <mac at mcrowe.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-custom.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp
Log Message:
-----------
[clang-tidy] Fix modernize-use-std-print/format for fmt (#99021)
Summary:
When fixing #92896 in 0e62d5cf55479981da5e05e406bbca4afb3cdc4f (#94104)
I failed to spot that I'd broken converting from fmt::printf,
fmt::fprintf and fmt::sprintf in these checks since the format parameter
of those functions is not a simple character pointer.
The first part of the previous fix to avoid the assert and instead
produce an error message was sufficient. It was only the second part
that required the format parameter of the called function to be a simple
character pointer that was problematic. Let's remove that second part
and add the now-expected error messages to the lit tests along with
fixing the prototype for the fmt functions to more accurately reflect
the ones used by the fmt library so they are actually useful.
Fixes #92896
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250858
Commit: f5346742815299c3d634012b589318a10fe5262a
https://github.com/llvm/llvm-project/commit/f5346742815299c3d634012b589318a10fe5262a
Author: Giuseppe Rossini <giuseppe.rossini at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocationSimplification.cpp
M mlir/lib/Transforms/Utils/RegionUtils.cpp
M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/dealloc-branchop-interface.mlir
M mlir/test/Dialect/Linalg/detensorize_entry_block.mlir
M mlir/test/Dialect/Linalg/detensorize_if.mlir
M mlir/test/Dialect/Linalg/detensorize_while.mlir
M mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
M mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
M mlir/test/Transforms/canonicalize-block-merge.mlir
M mlir/test/Transforms/canonicalize-dce.mlir
M mlir/test/Transforms/make-isolated-from-above.mlir
A mlir/test/Transforms/test-canonicalize-merge-large-blocks.mlir
Log Message:
-----------
[mlir] Fix block merging (#97697)
Summary:
With this PR I am trying to address:
https://github.com/llvm/llvm-project/issues/63230.
What changed:
- While merging identical blocks, don't add a block argument if it is
"identical" to another block argument. I.e., if the two block arguments
refer to the same `Value`. The operations operands in the block will
point to the argument we already inserted. This needs to happen to all
the arguments we pass to the different successors of the parent block
- After merged the blocks, get rid of "unnecessary" arguments. I.e., if
all the predecessors pass the same block argument, there is no need to
pass it as an argument.
- This last simplification clashed with
`BufferDeallocationSimplification`. The reason, I think, is that the two
simplifications are clashing. I.e., `BufferDeallocationSimplification`
contains an analysis based on the block structure. If we simplify the
block structure (by merging and/or dropping block arguments) the
analysis is invalid . The solution I found is to do a more prudent
simplification when running that pass.
**Note**: this a rework of #96871 . I ran all the integration tests
(`-DMLIR_INCLUDE_INTEGRATION_TESTS=ON`) and they passed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250916
Commit: 82296bda83607584c0a797db4b8d1ee1f14a0f20
https://github.com/llvm/llvm-project/commit/82296bda83607584c0a797db4b8d1ee1f14a0f20
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
Log Message:
-----------
[flang] Fix compiler warning (#99306)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251725
Commit: 849b964bb18c79d06ee14a17f6c7fdf548b778c6
https://github.com/llvm/llvm-project/commit/849b964bb18c79d06ee14a17f6c7fdf548b778c6
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/include/__utility/rel_ops.h
A libcxx/test/libcxx/depr/depr.rel_ops/rel_ops.depr_in_cxx20.verify.cpp
M libcxx/test/std/containers/iterator.rel_ops.compile.pass.cpp
M libcxx/test/std/utilities/utility/operators/rel_ops.pass.cpp
Log Message:
-----------
[libc++] Deprecates rel_ops. (#91642)
Summary:
These operators were deprecated in
P0768R1 Library Support for the Spaceship (Comparison) Operator
This was discovered while investigating the paper's implementation
status.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250952
Commit: b878d8ae17e1b18ba7e70fa4e84e3f20864a27e0
https://github.com/llvm/llvm-project/commit/b878d8ae17e1b18ba7e70fa4e84e3f20864a27e0
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/darwin/arm/entrypoints.txt
M libc/config/gpu/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/math/index.rst
M libc/spec/stdc.td
M libc/src/math/CMakeLists.txt
A libc/src/math/cbrt.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/cbrt.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/cbrt_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/cbrt_test.cpp
Log Message:
-----------
[libc][math] Implement double precision cbrt correctly rounded to all rounding modes. (#99262)
Division-less Newton iterations algorithm for cube roots.
1. **Range reduction**
For `x = (-1)^s * 2^e * (1.m)`, we get 2 reduced arguments `x_r` and `a`
as:
```
x_r = 1.m
a = (-1)^s * 2^(e % 3) * (1.m)
```
Then `cbrt(x) = x^(1/3)` can be computed as:
```
x^(1/3) = 2^(e / 3) * a^(1/3).
```
In order to avoid division, we compute `a^(-2/3)` using Newton method
and then
multiply the results by a:
```
a^(1/3) = a * a^(-2/3).
```
2. **First approximation to a^(-2/3)**
First, we use a degree-7 minimax polynomial generated by Sollya to
approximate `x_r^(-2/3)` for `1 <= x_r < 2`.
```
p = P(x_r) ~ x_r^(-2/3),
```
with relative errors bounded by:
```
| p / x_r^(-2/3) - 1 | < 1.16 * 2^-21.
```
Then we multiply with `2^(e % 3)` from a small lookup table to get:
```
x_0 = 2^(-2*(e % 3)/3) * p
~ 2^(-2*(e % 3)/3) * x_r^(-2/3)
= a^(-2/3)
```
with relative errors:
```
| x_0 / a^(-2/3) - 1 | < 1.16 * 2^-21.
```
This step is done in double precision.
3. **First Newton iteration**
We follow the method described in:
Sibidanov, A. and Zimmermann, P., "Correctly rounded cubic root
evaluation
in double precision", https://core-math.gitlabpages.inria.fr/cbrt64.pdf
to derive multiplicative Newton iterations as below:
Let `x_n` be the nth approximation to `a^(-2/3)`. Define the n^th error
as:
```
h_n = x_n^3 * a^2 - 1
```
Then:
```
a^(-2/3) = x_n / (1 + h_n)^(1/3)
= x_n * (1 - (1/3) * h_n + (2/9) * h_n^2 - (14/81) * h_n^3 + ...)
```
using the Taylor series expansion of `(1 + h_n)^(-1/3)`.
Apply to `x_0` above:
```
h_0 = x_0^3 * a^2 - 1
= a^2 * (x_0 - a^(-2/3)) * (x_0^2 + x_0 * a^(-2/3) + a^(-4/3)),
```
it's bounded by:
```
|h_0| < 4 * 3 * 1.16 * 2^-21 * 4 < 2^-17.
```
So in the first iteration step, we use:
```
x_1 = x_0 * (1 - (1/3) * h_n + (2/9) * h_n^2 - (14/81) * h_n^3)
```
Its relative error is bounded by:
```
| x_1 / a^(-2/3) - 1 | < 35/242 * |h_0|^4 < 2^-70.
```
Then we perform Ziv's rounding test and check if the answer is exact.
This step is done in double-double precision.
4. **Second Newton iteration**
If the Ziv's rounding test from the previous step fails, we define the
error
term:
```
h_1 = x_1^3 * a^2 - 1,
```
And perform another iteration:
```
x_2 = x_1 * (1 - h_1 / 3)
```
with the relative errors exceed the precision of double-double.
We then check the Ziv's accuracy test with relative errors < 2^-102 to
compensate for rounding errors.
5. **Final iteration**
If the Ziv's accuracy test from the previous step fails, we perform
another
iteration in 128-bit precision and check for exact outputs.
Commit: 5f855e937eb4ba00e3ad155d436d35c92c6d9a93
https://github.com/llvm/llvm-project/commit/5f855e937eb4ba00e3ad155d436d35c92c6d9a93
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/math/generic/cbrt.cpp
Log Message:
-----------
[libc][math] Remove constexpr quantifier from cbrt's utility functions. (#99349)
Summary:
Fix full build failures:
https://lab.llvm.org/buildbot/#/builders/131/builds/2342
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251648
Commit: fa206ba8b94d58d00db4fa6ac603b1979687cd9c
https://github.com/llvm/llvm-project/commit/fa206ba8b94d58d00db4fa6ac603b1979687cd9c
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
M libc/test/src/CMakeLists.txt
Log Message:
-----------
[libc] Add missing -latomic for rv32 (#99337)
Summary: On rv32, libatomic is needed to build libc when mpfr and gmp are enabled.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250843
Commit: 1f652ff829447b80ab3cee9cdb33db7096bfbc11
https://github.com/llvm/llvm-project/commit/1f652ff829447b80ab3cee9cdb33db7096bfbc11
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MachObjectWriter.cpp
A llvm/test/MC/MachO/section-offset-overflow.s
Log Message:
-----------
[MachO] Detect overflow in section offset. (#98685)
Summary:
The section offset field is only 32 bits; if the computed section offset
is larger, make sure we don't emit a corrupt object file.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251010
Commit: c930129fde562b719598e862d0b5da2f1cb24263
https://github.com/llvm/llvm-project/commit/c930129fde562b719598e862d0b5da2f1cb24263
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MCAsmStreamer.cpp
A llvm/test/CodeGen/X86/global-with-max-align.ll
Log Message:
-----------
[MC] Fix emission in asm of alignment 2^32. (#98688)
The alignment amount was getting corrupted due to accidental truncation.
Commit: 9e65b150bc89b8b3d71687ad0dbef1f38f46deab
https://github.com/llvm/llvm-project/commit/9e65b150bc89b8b3d71687ad0dbef1f38f46deab
Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Tensor/Transforms/EmptyOpPatterns.cpp
M mlir/test/Dialect/Tensor/fold-empty-op.mlir
Log Message:
-----------
[mlir][Tensor] Add pattern to fold concats of empty. (#98994)
Summary:
A concatenation of empty tensors can be replaced by a single empty
tensor of the concatenated shape. Add this pattern to
`populateFoldTensorEmptyPatterns`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250835
Commit: 8fa9a5faef54dcc7d3b1469c309dbecc536921a8
https://github.com/llvm/llvm-project/commit/8fa9a5faef54dcc7d3b1469c309dbecc536921a8
Author: matthew-f <551862+matthew-f at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251713
Commit: b7ce17c54b47dc07ed39a228e849e36e70fafcc8
https://github.com/llvm/llvm-project/commit/b7ce17c54b47dc07ed39a228e849e36e70fafcc8
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251595
Commit: ece69c6a4dcfef95b83db684c0992b359bf9d5ad
https://github.com/llvm/llvm-project/commit/ece69c6a4dcfef95b83db684c0992b359bf9d5ad
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 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)
Summary: The use of `ln -s` is not guaranteed to be supported on Windows.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250867
Commit: 97256a4bc97ad37e3db2eb814c330592515d699b
https://github.com/llvm/llvm-project/commit/97256a4bc97ad37e3db2eb814c330592515d699b
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
### 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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250907
Commit: e93e387a63a300ecb32b204539ab67aece319731
https://github.com/llvm/llvm-project/commit/e93e387a63a300ecb32b204539ab67aece319731
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port #98653 (#99356)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251611
Commit: 51955fa8ece85ea8e348e9f30c42f2c7fc55394d
https://github.com/llvm/llvm-project/commit/51955fa8ece85ea8e348e9f30c42f2c7fc55394d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/add_pointer.h
Log Message:
-----------
[libc++][NFC] Remove a few unused includes (#98808)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250928
Commit: d799725629f118be9087ba16f4ac924508cab132
https://github.com/llvm/llvm-project/commit/d799725629f118be9087ba16f4ac924508cab132
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250886
Commit: f66f3859410fd1cd6a46805d928e1a510abd4379
https://github.com/llvm/llvm-project/commit/f66f3859410fd1cd6a46805d928e1a510abd4379
Author: Lei Wang <wlei at fb.com>
Date: 2024-07-25 (Thu, 25 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: 4e321bb77ca6cb716bfdbc4141de73d3ad77443d
https://github.com/llvm/llvm-project/commit/4e321bb77ca6cb716bfdbc4141de73d3ad77443d
Author: Doug Wyatt <doug at sonosphere.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
- Put new FunctionProtoType trailing objects last.
- Inline FunctionEffectsRef::get()
- Manually inline FunctionEffectsRef::Profile().
---------
Co-authored-by: Doug Wyatt <dwyatt at apple.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250936
Commit: 0e3ce9118d16f754f240d9b023140ba5725e26c0
https://github.com/llvm/llvm-project/commit/0e3ce9118d16f754f240d9b023140ba5725e26c0
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 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: d82393c0539104ab705be918bba935809cf853a5
https://github.com/llvm/llvm-project/commit/d82393c0539104ab705be918bba935809cf853a5
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250904
Commit: a275b142e7ee01909b650c4ad4db1ad04a6450ec
https://github.com/llvm/llvm-project/commit/a275b142e7ee01909b650c4ad4db1ad04a6450ec
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Include new/delete in baremetal targets (#99279)
Summary: These don't include libcxxabi yet so we need new/delete in libcxx.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250874
Commit: 3efd1b19a08d458550609786e3205682ed78e7da
https://github.com/llvm/llvm-project/commit/3efd1b19a08d458550609786e3205682ed78e7da
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 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
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250951
Commit: 8b60ceea77588a4921fbc3825284a4e1c2a3555b
https://github.com/llvm/llvm-project/commit/8b60ceea77588a4921fbc3825284a4e1c2a3555b
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2024-07-25 (Thu, 25 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: 882494a9325be2ddb87c0dfed368bbf78da18a03
https://github.com/llvm/llvm-project/commit/882494a9325be2ddb87c0dfed368bbf78da18a03
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251569
Commit: d9ee76314680a5d99c3bbc00614532ed1a17c898
https://github.com/llvm/llvm-project/commit/d9ee76314680a5d99c3bbc00614532ed1a17c898
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
Log Message:
-----------
[instcombine] Improve coverage for reductions of i1 types
Summary:
In advance of an upcoming change to generalize some of this to scalable
vector types.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250918
Commit: fe9eedc01533d7168aa7e09de56c94f60fa6df84
https://github.com/llvm/llvm-project/commit/fe9eedc01533d7168aa7e09de56c94f60fa6df84
Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Log Message:
-----------
[ClangLinkerWrapper] Fix intermediate file naming for multi-arch compilation (#99325)
Summary:
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`
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250993
Commit: 3857f20b781bf402adcc6e48b59f5532884a4821
https://github.com/llvm/llvm-project/commit/3857f20b781bf402adcc6e48b59f5532884a4821
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Install libc++ for baremetal targets (#99372)
Summary: We already build the library and want to install it also.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250960
Commit: 71f05244aab17ce9f7e1cb3f0d001d4152b0fe21
https://github.com/llvm/llvm-project/commit/71f05244aab17ce9f7e1cb3f0d001d4152b0fe21
Author: Xing Xue <xingxue at outlook.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
`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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250925
Commit: 0d967cd7dce406242d249c7af51a5eb456db5ab6
https://github.com/llvm/llvm-project/commit/0d967cd7dce406242d249c7af51a5eb456db5ab6
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/README.md
Log Message:
-----------
[bazel][docs] Update build documentation (#99339)
Summary:
This PR updates the Quick Start section to provide more detailed build
instructions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250931
Commit: ddbd55c5a18f863b242e1878cb716002f7dbe4d5
https://github.com/llvm/llvm-project/commit/ddbd55c5a18f863b242e1878cb716002f7dbe4d5
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-07-25 (Thu, 25 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: eeb76f1db7e99cb1c0cd8ff9c1ce0f688123f017
https://github.com/llvm/llvm-project/commit/eeb76f1db7e99cb1c0cd8ff9c1ce0f688123f017
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
Log Message:
-----------
[msan] Precommit MSan Arm NEON vst tests (#98247)
Summary:
These tests show that MSan currently does not handle vst (or vld)
correctly.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251636
Commit: dbf79101b68c2b36dc0116ec29b324c40b81974c
https://github.com/llvm/llvm-project/commit/dbf79101b68c2b36dc0116ec29b324c40b81974c
Author: Vladislav Khmelevsky <och95 at yandex.ru>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT][NFC] Fix build (#99361)
Summary:
On clang 14 the build is failing with:
reference to local binding 'ParentName' declared in enclosing function
'llvm::bolt::RewriteInstance::registerFragments'
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250860
Commit: d1cca72a32bd10785fc92d34ac2f29f8719a5953
https://github.com/llvm/llvm-project/commit/d1cca72a32bd10785fc92d34ac2f29f8719a5953
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250869
Commit: fcfc8e22fa81fee3e4b762756befb616504bb9e6
https://github.com/llvm/llvm-project/commit/fcfc8e22fa81fee3e4b762756befb616504bb9e6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250893
Commit: 7d2c1812a233009255564230f4edc609b0489d27
https://github.com/llvm/llvm-project/commit/7d2c1812a233009255564230f4edc609b0489d27
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel][mlir] Add MathToROCDL to fix layering check (#99377)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250978
Commit: 5b168af4a0b2432904df42350715a9caabfea621
https://github.com/llvm/llvm-project/commit/5b168af4a0b2432904df42350715a9caabfea621
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/www/index.html
Log Message:
-----------
[compiler-rt][www] Update standalone build instruction (#98707)
Summary: Follow up to #71500
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250884
Commit: 6f3c75c66365e3eaec788322a385c2b1859db32f
https://github.com/llvm/llvm-project/commit/6f3c75c66365e3eaec788322a385c2b1859db32f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251647
Commit: aea06f9b687f795307bfcb3af224c75f29883aa4
https://github.com/llvm/llvm-project/commit/aea06f9b687f795307bfcb3af224c75f29883aa4
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250920
Commit: dcba94816a37ea8abad9d647022e96751b4369f3
https://github.com/llvm/llvm-project/commit/dcba94816a37ea8abad9d647022e96751b4369f3
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251506
Commit: 7a0545ac67aac97a408e2f3a2dcd29cf9aac2405
https://github.com/llvm/llvm-project/commit/7a0545ac67aac97a408e2f3a2dcd29cf9aac2405
Author: Mircea Trofin <mtrofin at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
Log Message:
-----------
[ctx_prof] Add missing test for `PGOContextualProfile::getContainedGuids`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251007
Commit: 5f0cb5ee50a3f3c932c478c9089a79d1217e90d2
https://github.com/llvm/llvm-project/commit/5f0cb5ee50a3f3c932c478c9089a79d1217e90d2
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-07-25 (Thu, 25 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: 134b18048ffba69cc9ccb85eac0be1ab9ebc34fa
https://github.com/llvm/llvm-project/commit/134b18048ffba69cc9ccb85eac0be1ab9ebc34fa
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-25 (Thu, 25 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: 6198cbf7ab9520fb2e72e905ec428dd01bf116ae
https://github.com/llvm/llvm-project/commit/6198cbf7ab9520fb2e72e905ec428dd01bf116ae
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Reverts llvm/llvm-project#98702
This broke some mlir code and needs investigation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250971
Commit: c5755e0a51fc8d49340229abc94f186da0c28c0e
https://github.com/llvm/llvm-project/commit/c5755e0a51fc8d49340229abc94f186da0c28c0e
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251005
Commit: 6bf5b03660507d97e8f423b11b71cbea5d03d9c5
https://github.com/llvm/llvm-project/commit/6bf5b03660507d97e8f423b11b71cbea5d03d9c5
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Limit number of the external uses analysis, NFC.
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251558
Commit: 740cfd1f7b3d7a873b22c2b7bdc0de1ed5619b37
https://github.com/llvm/llvm-project/commit/740cfd1f7b3d7a873b22c2b7bdc0de1ed5619b37
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/utils/gpu/loader/amdgpu/Loader.cpp
Log Message:
-----------
[libc] Fix wrong printf usage in AMDGPU loader
Commit: 9c5060662edc2701e88bf76e143758627e3dc281
https://github.com/llvm/llvm-project/commit/9c5060662edc2701e88bf76e143758627e3dc281
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250914
Commit: c466beac8ba52890730bf3440f629317d3785b3b
https://github.com/llvm/llvm-project/commit/c466beac8ba52890730bf3440f629317d3785b3b
Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250929
Commit: 1880c116e128dfd7d96d61aa939aa4e76bb052a5
https://github.com/llvm/llvm-project/commit/1880c116e128dfd7d96d61aa939aa4e76bb052a5
Author: Oliver Hunt <oliver at apple.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251016
Commit: 3c9f9ee65ae43ba5b4cc645d1926a0884c1bf7a8
https://github.com/llvm/llvm-project/commit/3c9f9ee65ae43ba5b4cc645d1926a0884c1bf7a8
Author: David Truby <david.truby at arm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251676
Commit: 94fc904fa4083fcb5e68362aed6c33158cdbb79f
https://github.com/llvm/llvm-project/commit/94fc904fa4083fcb5e68362aed6c33158cdbb79f
Author: Scallop Ye <yescallop at gmail.com>
Date: 2024-07-25 (Thu, 25 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: 029eae43a94d42dabb0217178a42ac11c964567a
https://github.com/llvm/llvm-project/commit/029eae43a94d42dabb0217178a42ac11c964567a
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 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: 5ddf441b01b01fb5c52725655ba88c8e1c3c025b
https://github.com/llvm/llvm-project/commit/5ddf441b01b01fb5c52725655ba88c8e1c3c025b
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
- all headers in the build system are generated by newheadergen
- tested on gpu-build
---------
Co-authored-by: Rose Zhang <rosezhang at google.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251002
Commit: 09132e36ddd5143f3fc8a6d2e6b94c21bc62e0ea
https://github.com/llvm/llvm-project/commit/09132e36ddd5143f3fc8a6d2e6b94c21bc62e0ea
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
- 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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250848
Commit: c9e572cff7263e47fccccf520c126c2942f72882
https://github.com/llvm/llvm-project/commit/c9e572cff7263e47fccccf520c126c2942f72882
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M .git-blame-ignore-revs
Log Message:
-----------
[lldb][nfc] add an nfc entry to the .git-blame-ignore-revs.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251001
Commit: b221e1965e0135f6229e8de147329736f03af622
https://github.com/llvm/llvm-project/commit/b221e1965e0135f6229e8de147329736f03af622
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/x86_64/headers.txt
Log Message:
-----------
[libc] Temporarily disable statvfs header (#99405)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250898
Commit: 9ed22ac998e190d131ecb288824e143e7137871d
https://github.com/llvm/llvm-project/commit/9ed22ac998e190d131ecb288824e143e7137871d
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] newheadergen: cmakelist file changes (#99404)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251600
Commit: 6ccd59e9f2cae35006b0c02e72f4a2ea6c350a96
https://github.com/llvm/llvm-project/commit/6ccd59e9f2cae35006b0c02e72f4a2ea6c350a96
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251011
Commit: 5579582eba5acece58125d436b6203904f45a6a0
https://github.com/llvm/llvm-project/commit/5579582eba5acece58125d436b6203904f45a6a0
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/newhdrgen/yaml/wchar.yaml
Log Message:
-----------
[libc] newheadergen: removing extra .h (#99408)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251545
Commit: 53725cc8760a746cd92737cd59fbd7a643c711a0
https://github.com/llvm/llvm-project/commit/53725cc8760a746cd92737cd59fbd7a643c711a0
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] newheadergen: quick fix to fuchsia build (#99410)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250961
Commit: 4b57ddae3654650b36a670b21188ccc320d28bad
https://github.com/llvm/llvm-project/commit/4b57ddae3654650b36a670b21188ccc320d28bad
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
Revert "[libc] newheadergen: quick fix to fuchsia build" (#99412)
Summary: Reverts llvm/llvm-project#99410
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250847
Commit: 755a4826415979ba6eb40c7371d2524032df907b
https://github.com/llvm/llvm-project/commit/755a4826415979ba6eb40c7371d2524032df907b
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
Revert "[libc] newheadergen: cmakelist file changes" (#99413)
Reverts llvm/llvm-project#99404
Commit: b97765a35e45df436aa68e6b652c03c104501df1
https://github.com/llvm/llvm-project/commit/b97765a35e45df436aa68e6b652c03c104501df1
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary: Reverts llvm/llvm-project#98828
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251771
Commit: 65701e31a8823cc9911122c578a59e50986783fb
https://github.com/llvm/llvm-project/commit/65701e31a8823cc9911122c578a59e50986783fb
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 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: 7a0a093895f5bb78b1ed3a11b388a166d7037ee2
https://github.com/llvm/llvm-project/commit/7a0a093895f5bb78b1ed3a11b388a166d7037ee2
Author: Sam Clegg <sbc at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/wasm/Options.td
Log Message:
-----------
[lld][WebAssembly] Consolidate --fatal-warnings and --no-fatal-warnings options. NFC (#99374)
Summary:
Also document defaults for boolean options.
See https://reviews.llvm.org/D42859
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251622
Commit: 849709c01a0fc233968423cac1fa8b81f982f162
https://github.com/llvm/llvm-project/commit/849709c01a0fc233968423cac1fa8b81f982f162
Author: hev <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250930
Commit: e7cd2d547ecae477b66340351420908aa4571914
https://github.com/llvm/llvm-project/commit/e7cd2d547ecae477b66340351420908aa4571914
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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)).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250983
Commit: a6ad95d7861d28063d79afd97e75fd6ca33b8c30
https://github.com/llvm/llvm-project/commit/a6ad95d7861d28063d79afd97e75fd6ca33b8c30
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 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)"
Summary: This iteration drops hunks where the loop body adds more elements.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250862
Commit: e4b068423b25e7b49276bb8331c77b0acc2e5cdc
https://github.com/llvm/llvm-project/commit/e4b068423b25e7b49276bb8331c77b0acc2e5cdc
Author: David Tenty <daltenty at ibm.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250935
Commit: 4379e9832ac05e4efe4786f9d2efe55fb18bcbdb
https://github.com/llvm/llvm-project/commit/4379e9832ac05e4efe4786f9d2efe55fb18bcbdb
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[MemProf] Consolidate increments in callee matching code (#99385)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251644
Commit: 53fd6ee99d097eba324b26e3b9218b14514b0710
https://github.com/llvm/llvm-project/commit/53fd6ee99d097eba324b26e3b9218b14514b0710
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250933
Commit: 6ae474ee3f00db4eeb26fa951f57c1d833c7a717
https://github.com/llvm/llvm-project/commit/6ae474ee3f00db4eeb26fa951f57c1d833c7a717
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250941
Commit: 78354a34dcec44f1584ea8ca5fde53fd4cf7c036
https://github.com/llvm/llvm-project/commit/78354a34dcec44f1584ea8ca5fde53fd4cf7c036
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251568
Commit: 16f2761dac098e66664bade05156644dd5e014e0
https://github.com/llvm/llvm-project/commit/16f2761dac098e66664bade05156644dd5e014e0
Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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)
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250998
Commit: 46b5aa44213b6819dbefc53b6b7272c9cc9353f5
https://github.com/llvm/llvm-project/commit/46b5aa44213b6819dbefc53b6b7272c9cc9353f5
Author: Joachim <jenke at itc.rwth-aachen.de>
Date: 2024-07-25 (Thu, 25 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: 19b01cd85fe0ea4a9b8daaf28ff87d44f2051928
https://github.com/llvm/llvm-project/commit/19b01cd85fe0ea4a9b8daaf28ff87d44f2051928
Author: Tristan Ross <rosscomputerguy at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
Log Message:
-----------
[RISCV] Remove unused include in RISCVMCTargetDesc.h (#98790)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251736
Commit: 50bb0fd30b61c9e2382ebf587dc6ca79454e8e79
https://github.com/llvm/llvm-project/commit/50bb0fd30b61c9e2382ebf587dc6ca79454e8e79
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
... when moving a Block to a DeadBlock. Only invoke the MoveFn if the
old block was initialized at all.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250863
Commit: e4247ddbf5a81cf7c79cfd2bf3b906dd56607527
https://github.com/llvm/llvm-project/commit/e4247ddbf5a81cf7c79cfd2bf3b906dd56607527
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/mlgo-utils/pyproject.toml
Log Message:
-----------
[MLGO] Fix MLGO executable scripts
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250814
Commit: db00ecb3027f71c9d7537022a23dbf988e2a2ec9
https://github.com/llvm/llvm-project/commit/db00ecb3027f71c9d7537022a23dbf988e2a2ec9
Author: serge-sans-paille <sguelton at mozilla.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/runtime/command.cpp
Log Message:
-----------
[Flang][Runtime] Simplify StringLength implementation
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250921
Commit: e922680d2d2108b28a909fb5fc858a2ca699b135
https://github.com/llvm/llvm-project/commit/e922680d2d2108b28a909fb5fc858a2ca699b135
Author: Alexander Pivovarov <pivovaa at amazon.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250906
Commit: e827ce3b5376206910497537a0bc466e3ce675ae
https://github.com/llvm/llvm-project/commit/e827ce3b5376206910497537a0bc466e3ce675ae
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
Log Message:
-----------
[mlir][Linalg] Remove unused header include.
Summary: There seems to be no direct usage of any tosa utils.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250896
Commit: 3629ff84927dd39335ba2e60d2784d2f83554d52
https://github.com/llvm/llvm-project/commit/3629ff84927dd39335ba2e60d2784d2f83554d52
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251064
Commit: 092dacaef8520c916c86c809113aa4fc428420bc
https://github.com/llvm/llvm-project/commit/092dacaef8520c916c86c809113aa4fc428420bc
Author: Dominik Adamski <dominik.adamski at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
-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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251022
Commit: 3c9bd3572d94c6bc0223bd08239e63338a29ab45
https://github.com/llvm/llvm-project/commit/3c9bd3572d94c6bc0223bd08239e63338a29ab45
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
Log Message:
-----------
[clang][Interp][NFC] Protect ByteCodeEmitter against unfinished fns
Summary:
This is similar to a check in TextNodeDumper.cpp. Without this, we will
crash later when trying to iterate over FuncDecl->params().
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250908
Commit: 5940c2c8a0c45fce1c7e76fecced32663fb340ae
https://github.com/llvm/llvm-project/commit/5940c2c8a0c45fce1c7e76fecced32663fb340ae
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 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: 3d5d80e75b94ce0602ba2939084afe5af8494f60
https://github.com/llvm/llvm-project/commit/3d5d80e75b94ce0602ba2939084afe5af8494f60
Author: Ilya Leoshkevich <iii at linux.ibm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251653
Commit: befc9585f21afd8f028263a744c0b952b14a5a51
https://github.com/llvm/llvm-project/commit/befc9585f21afd8f028263a744c0b952b14a5a51
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251583
Commit: e3ebac0b5cbcf9bf3d065553b4dac5409389abc0
https://github.com/llvm/llvm-project/commit/e3ebac0b5cbcf9bf3d065553b4dac5409389abc0
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251698
Commit: 075c50c26f8d9807606304f3690e2bbb0d365e71
https://github.com/llvm/llvm-project/commit/075c50c26f8d9807606304f3690e2bbb0d365e71
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 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)
Summary:
The caller (cloneAttribute) already switches on the reference type. By
aligning the cases with the retrieval functions, we can avoid branching
twice.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250831
Commit: ee50cdc817a2e4360c275962e83d081dab0444ac
https://github.com/llvm/llvm-project/commit/ee50cdc817a2e4360c275962e83d081dab0444ac
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251517
Commit: 2f01a13291bf605a946d3aba91b7ffdfa73f43c9
https://github.com/llvm/llvm-project/commit/2f01a13291bf605a946d3aba91b7ffdfa73f43c9
Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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: cfc69087f4544e60d07ce7eba711b42771d4c9c3
https://github.com/llvm/llvm-project/commit/cfc69087f4544e60d07ce7eba711b42771d4c9c3
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
Log Message:
-----------
[CVP] Add test for phi merging of vectors (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250905
Commit: 471155fbf0547b3cdd66b9c25d5364a7657096af
https://github.com/llvm/llvm-project/commit/471155fbf0547b3cdd66b9c25d5364a7657096af
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251757
Commit: af0044c2611b2b7792520dc98b415048578ad907
https://github.com/llvm/llvm-project/commit/af0044c2611b2b7792520dc98b415048578ad907
Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
Date: 2024-07-25 (Thu, 25 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: d9d9014762bb6601398d84ee794c5b3c4b72016c
https://github.com/llvm/llvm-project/commit/d9d9014762bb6601398d84ee794c5b3c4b72016c
Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250875
Commit: 0708c9a77e82417e1f3d5682594ffba6a2837c40
https://github.com/llvm/llvm-project/commit/0708c9a77e82417e1f3d5682594ffba6a2837c40
Author: dlav-sc <daniil.avdeev at syntacore.com>
Date: 2024-07-25 (Thu, 25 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: 19fb3998b14da0288cce31d76feb8d75720a0ecc
https://github.com/llvm/llvm-project/commit/19fb3998b14da0288cce31d76feb8d75720a0ecc
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Reverts llvm/llvm-project#97423 due to a failure in the
cross-project-tests.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250990
Commit: 6011937147c3fd81376a548ff8274f880ae0e631
https://github.com/llvm/llvm-project/commit/6011937147c3fd81376a548ff8274f880ae0e631
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250833
Commit: ea3baa19a6fad1b00cdc6a88190e901da743d08c
https://github.com/llvm/llvm-project/commit/ea3baa19a6fad1b00cdc6a88190e901da743d08c
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250887
Commit: c98d4a22e5296685f0a6544e9130312c37697cd7
https://github.com/llvm/llvm-project/commit/c98d4a22e5296685f0a6544e9130312c37697cd7
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 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`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251009
Commit: 97b91e0531be3d51d6ae02644f194d5363ba2e0c
https://github.com/llvm/llvm-project/commit/97b91e0531be3d51d6ae02644f194d5363ba2e0c
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 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`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250837
Commit: deb64633b67569c0eb4aedec12521789ab984402
https://github.com/llvm/llvm-project/commit/deb64633b67569c0eb4aedec12521789ab984402
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[ValueTracking] Consistently propagate `DemandedElts` is `ComputeNumSignBits`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250924
Commit: 05751982c5e8c8686ab5dc10473a7d27d8be6eb4
https://github.com/llvm/llvm-project/commit/05751982c5e8c8686ab5dc10473a7d27d8be6eb4
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 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`
Summary: Closes #99080
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250820
Commit: 13c60e324ac636dfc8f61a74a572a4195a4944db
https://github.com/llvm/llvm-project/commit/13c60e324ac636dfc8f61a74a572a4195a4944db
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/SCCP/phis.ll
Log Message:
-----------
[SCCP] Add tests for vectors ins phis (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250891
Commit: 2aeb3034a44098bd96e9b5ce944efec667c06a67
https://github.com/llvm/llvm-project/commit/2aeb3034a44098bd96e9b5ce944efec667c06a67
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250973
Commit: d2f3d251ee32d80a9e0b83086e83194f88f25c82
https://github.com/llvm/llvm-project/commit/d2f3d251ee32d80a9e0b83086e83194f88f25c82
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250827
Commit: 1dbee778de2454979f9e0485d9980eac303539a0
https://github.com/llvm/llvm-project/commit/1dbee778de2454979f9e0485d9980eac303539a0
Author: Dmitry Polukhin <34227995+dmpolukhin at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250876
Commit: 8fed520f9f2c6a171e526882a1a6320d7e6acc80
https://github.com/llvm/llvm-project/commit/8fed520f9f2c6a171e526882a1a6320d7e6acc80
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 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)
Summary: This is a follow-up to #83740.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250970
Commit: 9e419a2019f55328c1bc2db0d22e3e3d23b740e3
https://github.com/llvm/llvm-project/commit/9e419a2019f55328c1bc2db0d22e3e3d23b740e3
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[ValueTracking] Remove unnecessary `m_ElementWiseBitCast` from `isKnownNonZeroFromOperator`; NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250849
Commit: 0907b9d5736038b55de1802257d1d947e382f4d9
https://github.com/llvm/llvm-project/commit/0907b9d5736038b55de1802257d1d947e382f4d9
Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250877
Commit: 932bddb09527985dbb140728f57ef27eca427c2a
https://github.com/llvm/llvm-project/commit/932bddb09527985dbb140728f57ef27eca427c2a
Author: Uday Bondhugula <uday at polymagelabs.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250846
Commit: 7490634a85dd74eb02b093ece3a7f883f5615ea0
https://github.com/llvm/llvm-project/commit/7490634a85dd74eb02b093ece3a7f883f5615ea0
Author: Him188 <tguan at nvidia.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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%.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250816
Commit: 0c582785d1c17c36e5c69b8fb5d36fe4b05590ef
https://github.com/llvm/llvm-project/commit/0c582785d1c17c36e5c69b8fb5d36fe4b05590ef
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
Log Message:
-----------
[Clang] Handle OMPReverseDirectiveClass in switch
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250817
Commit: 34ba864d9dee775c6c9bc041aae426a2f9c9c3bb
https://github.com/llvm/llvm-project/commit/34ba864d9dee775c6c9bc041aae426a2f9c9c3bb
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250955
Commit: 9d167e0dd1aef3c4c7df1f1dcac155b2f6de1300
https://github.com/llvm/llvm-project/commit/9d167e0dd1aef3c4c7df1f1dcac155b2f6de1300
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250972
Commit: 07a18d88842a2ee30ca828e1e92b8a3d908b5f2a
https://github.com/llvm/llvm-project/commit/07a18d88842a2ee30ca828e1e92b8a3d908b5f2a
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250854
Commit: 367d14863e6e660290f8dacedc8320ecd8bd25e6
https://github.com/llvm/llvm-project/commit/367d14863e6e660290f8dacedc8320ecd8bd25e6
Author: Hau Hsu <hau.hsu at sifive.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250888
Commit: 620b41e4a042b1ae24af12aceeae197a04d45183
https://github.com/llvm/llvm-project/commit/620b41e4a042b1ae24af12aceeae197a04d45183
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250903
Commit: 9f3fe588e7b48ca242c20e440bd81818fec5ef41
https://github.com/llvm/llvm-project/commit/9f3fe588e7b48ca242c20e440bd81818fec5ef41
Author: Xing Xue <xingxue at outlook.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250910
Commit: 386af2f5833a7a028a4c85e9e76fd7794a694222
https://github.com/llvm/llvm-project/commit/386af2f5833a7a028a4c85e9e76fd7794a694222
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libclc/CMakeLists.txt
M libclc/cmake/modules/AddLibclc.cmake
Log Message:
-----------
[libclc] Revise IDE folder structure (#89746)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250967
Commit: c4704f2f80a3ec93e646ae37649482f2abe3ea9e
https://github.com/llvm/llvm-project/commit/c4704f2f80a3ec93e646ae37649482f2abe3ea9e
Author: Hideto Ueno <uenoku.tokotoko at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
Log Message:
-----------
[mlir][BytecodeReader] Const qualify *SectionReader, NFC (#99376)
Summary:
`StringSectionReader`, `ResourceSectionReader` and
`PropertiesSectionReader` are immutable after `initialize` so this PR
adds const to their parsing functions and references in `AttrTypeReader`
and `DialectReader`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250798
Commit: 0fad9432fa06b1c5772f02d5faa08d9afa7727ed
https://github.com/llvm/llvm-project/commit/0fad9432fa06b1c5772f02d5faa08d9afa7727ed
Author: Romaric Jodin <rjodin at chromium.org>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251019
Commit: 6c73279fe483bf556b8b1b54543cda89deab268e
https://github.com/llvm/llvm-project/commit/6c73279fe483bf556b8b1b54543cda89deab268e
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250823
Commit: ef6a78932f8cc8551958bb3ed65f98d5cc84bb10
https://github.com/llvm/llvm-project/commit/ef6a78932f8cc8551958bb3ed65f98d5cc84bb10
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250859
Commit: 4319635de810979aec1956fdd315c9cd34ac2f13
https://github.com/llvm/llvm-project/commit/4319635de810979aec1956fdd315c9cd34ac2f13
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250974
Commit: 239f94c200c4cc26cfab484c643df2330be9cc85
https://github.com/llvm/llvm-project/commit/239f94c200c4cc26cfab484c643df2330be9cc85
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250909
Commit: 0cc3fab67fd885d5c869ce49ff9df79f2f255f2f
https://github.com/llvm/llvm-project/commit/0cc3fab67fd885d5c869ce49ff9df79f2f255f2f
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250836
Commit: 77eb954bc5c1a2d04f5905ee9d17c44e826ee0ed
https://github.com/llvm/llvm-project/commit/77eb954bc5c1a2d04f5905ee9d17c44e826ee0ed
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 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."
Summary: I've been given reports of this causing infinite loops downstream - I'm going to revert for now while I investigate.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250850
Commit: 365c962995801cf43893f05b8d9950906adf082b
https://github.com/llvm/llvm-project/commit/365c962995801cf43893f05b8d9950906adf082b
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250873
Commit: a4495fd621b995cf736ae923cae4a48137eb7159
https://github.com/llvm/llvm-project/commit/a4495fd621b995cf736ae923cae4a48137eb7159
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
This was a 19.x regression and thus has no release note.
Fixes #95032
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251249
Commit: f9ebdb0a7cb323ae072344e44d546c80eedc5c8b
https://github.com/llvm/llvm-project/commit/f9ebdb0a7cb323ae072344e44d546c80eedc5c8b
Author: Egor Zhdan <e_zhdan at apple.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250968
Commit: 346cdad5608b478d0d69df18264261d7ec7ed7b9
https://github.com/llvm/llvm-project/commit/346cdad5608b478d0d69df18264261d7ec7ed7b9
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 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: 23754b1c6c860a497dd70975bc5dc49061f01f17
https://github.com/llvm/llvm-project/commit/23754b1c6c860a497dd70975bc5dc49061f01f17
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
This produces a "cannot select" error, instead of failing later with an
illegal vgpr to sgpr copy.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250825
Commit: 93dd234e12186d1127832ec2eb08095fc0b78598
https://github.com/llvm/llvm-project/commit/93dd234e12186d1127832ec2eb08095fc0b78598
Author: Robin Caloudis <robin.caloudis at gmx.de>
Date: 2024-07-25 (Thu, 25 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)
Summary: Closes https://github.com/llvm/llvm-project/issues/98816.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250840
Commit: e5d288ff4a9314f3401e798eca9ac9f906c8107b
https://github.com/llvm/llvm-project/commit/e5d288ff4a9314f3401e798eca9ac9f906c8107b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Add getGFNICtrlMask helper for the constant creation and bitcasting. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250839
Commit: dd236dbf2be45a5fea70100ef2501fb1d654ad6b
https://github.com/llvm/llvm-project/commit/dd236dbf2be45a5fea70100ef2501fb1d654ad6b
Author: Janet Cobb <jason.e.cobb at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250870
Commit: addcc222a1b362cd5ead729cb52fecf29de95456
https://github.com/llvm/llvm-project/commit/addcc222a1b362cd5ead729cb52fecf29de95456
Author: Krasimir Georgiev <krasimir at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
Log Message:
-----------
update bazel for a6d2da8b9d7be19816dd4c76b02016c19618c1be
Commit: b5c4d0110be276f5312e042a9af02a740c306209
https://github.com/llvm/llvm-project/commit/b5c4d0110be276f5312e042a9af02a740c306209
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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: c80fd0131d632b5ee7dd35f11590598342109224
https://github.com/llvm/llvm-project/commit/c80fd0131d632b5ee7dd35f11590598342109224
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 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: d20835ed6811400e9561a33fb029adf00bc4db9f
https://github.com/llvm/llvm-project/commit/d20835ed6811400e9561a33fb029adf00bc4db9f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__type_traits/remove_cv.h
Log Message:
-----------
[libc++][NFC] Remove wrong #endif comment
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250815
Commit: 65f233e78df1e1266e587fed5902d8c9c5ad4e1f
https://github.com/llvm/llvm-project/commit/65f233e78df1e1266e587fed5902d8c9c5ad4e1f
Author: Johannes Reifferscheid <jreiffers at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/CAPI/rewrite.c
Log Message:
-----------
[mlir] Fix unused-variable warning w/o assertions. (#99489)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250923
Commit: 8430160c33c0b1db978da831675fd70eabd83e4b
https://github.com/llvm/llvm-project/commit/8430160c33c0b1db978da831675fd70eabd83e4b
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251004
Commit: fa9746eeafa27d684a477586b5ce811bdf12c0a8
https://github.com/llvm/llvm-project/commit/fa9746eeafa27d684a477586b5ce811bdf12c0a8
Author: Romaric Jodin <rjodin at chromium.org>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Fix following update of libclc introducing more fp16 support:
https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250807
Commit: fb27c5d03560e14c7e4c490d4fd147f85cdc70e7
https://github.com/llvm/llvm-project/commit/fb27c5d03560e14c7e4c490d4fd147f85cdc70e7
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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"
Summary:
This reverts commit d00b35534d068510025d22e5bd9c4fdac45757fb.
This breaks the ms-constexpr test:
https://lab.llvm.org/buildbot/#/builders/144/builds/2605
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251076
Commit: b0b99b6fb9525c114f0ccb3465b077e39dc1d18c
https://github.com/llvm/llvm-project/commit/b0b99b6fb9525c114f0ccb3465b077e39dc1d18c
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 4dfa75c663e5
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250777
Commit: 65e7ef2c4692f6e844eac4df7d0e06617369ca23
https://github.com/llvm/llvm-project/commit/65e7ef2c4692f6e844eac4df7d0e06617369ca23
Author: A. Jiang <de34 at live.cn>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250911
Commit: 5241d8865487cac573ed56786cbd0019cac25ac9
https://github.com/llvm/llvm-project/commit/5241d8865487cac573ed56786cbd0019cac25ac9
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250779
Commit: aa80e9c94143965b0e36f449b98dba737c0e85ee
https://github.com/llvm/llvm-project/commit/aa80e9c94143965b0e36f449b98dba737c0e85ee
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 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: 666e230f030c5f469de217ba8c7d9128a9d366ce
https://github.com/llvm/llvm-project/commit/666e230f030c5f469de217ba8c7d9128a9d366ce
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250789
Commit: 34be8afc77683dda475fdd3508b6f2aa30c8c56d
https://github.com/llvm/llvm-project/commit/34be8afc77683dda475fdd3508b6f2aa30c8c56d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 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.
Summary: Helps avoid some missed load-folds by stripping away bitcasts and make it easier to grok the GF2P8AFFINEQB masks.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250855
Commit: dc76cff495e092dc497f8a8c5b0c0b43e2f96ab6
https://github.com/llvm/llvm-project/commit/dc76cff495e092dc497f8a8c5b0c0b43e2f96ab6
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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"
Summary: This reverts commit ad7aeb0ff58ebd29f68adb85c64e8010639e2a76.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250812
Commit: d2814a6c1f73fa4d1b540fe3a54dd81abb5e4df2
https://github.com/llvm/llvm-project/commit/d2814a6c1f73fa4d1b540fe3a54dd81abb5e4df2
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary: This is helpful in identifying file and location which contain the particular template declaration.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250901
Commit: 311d849e51ff0012ca6a392479c976a77caee31c
https://github.com/llvm/llvm-project/commit/311d849e51ff0012ca6a392479c976a77caee31c
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 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: d9b141c05ee4ff8d95fa6a1e49b721ff1a3d1e8d
https://github.com/llvm/llvm-project/commit/d9b141c05ee4ff8d95fa6a1e49b721ff1a3d1e8d
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250793
Commit: f251ffe1bd978d07dbe521596d91d2891b7d9c4b
https://github.com/llvm/llvm-project/commit/f251ffe1bd978d07dbe521596d91d2891b7d9c4b
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 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: 3dcab3229280a4f94880b1bb01d190a200789b73
https://github.com/llvm/llvm-project/commit/3dcab3229280a4f94880b1bb01d190a200789b73
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250819
Commit: eb8c079d0ffa2170ef79bcdb6dd49959023ca019
https://github.com/llvm/llvm-project/commit/eb8c079d0ffa2170ef79bcdb6dd49959023ca019
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250842
Commit: 28ae49d9cf216c6526cf0dbce1f863c65b85979d
https://github.com/llvm/llvm-project/commit/28ae49d9cf216c6526cf0dbce1f863c65b85979d
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/GVN/condprop.ll
Log Message:
-----------
[GVN] Add additional tests for pointer replacement (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250857
Commit: a49a3292cc75d52614744221eb035cc960b8568b
https://github.com/llvm/llvm-project/commit/a49a3292cc75d52614744221eb035cc960b8568b
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250782
Commit: fab3f15ac46c433f84e9fc7fb4b2aaed34c40eaa
https://github.com/llvm/llvm-project/commit/fab3f15ac46c433f84e9fc7fb4b2aaed34c40eaa
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2024-07-25 (Thu, 25 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: 4168185d9c4bafe957fbf57a78fa7b1f4e77caa7
https://github.com/llvm/llvm-project/commit/4168185d9c4bafe957fbf57a78fa7b1f4e77caa7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Log Message:
-----------
[DAG] tryToFoldExtendSelectLoad - reuse existing SDLoc. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250806
Commit: 035daf5aae6b238a42c6d1db85f0aa1a5d6ec44b
https://github.com/llvm/llvm-project/commit/035daf5aae6b238a42c6d1db85f0aa1a5d6ec44b
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
There is a gap between `getAs<AutoType>()` and
`getConstrainedAutoType()` that the original patch #92295 was not aware
of.
Fixes #98164
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250794
Commit: 28b40c4a9f00c4d3c50fad590d1aa8e49bf955db
https://github.com/llvm/llvm-project/commit/28b40c4a9f00c4d3c50fad590d1aa8e49bf955db
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250878
Commit: 2fe8ce968ce0b04043e32008df6aef51c03d1d28
https://github.com/llvm/llvm-project/commit/2fe8ce968ce0b04043e32008df6aef51c03d1d28
Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
Date: 2024-07-25 (Thu, 25 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: b167a72a1bcb77e5ec40168e60bba4217a35d455
https://github.com/llvm/llvm-project/commit/b167a72a1bcb77e5ec40168e60bba4217a35d455
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 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: 8a309ef32e067174a9d39de8bff8e9cac38d6ef2
https://github.com/llvm/llvm-project/commit/8a309ef32e067174a9d39de8bff8e9cac38d6ef2
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2024-07-25 (Thu, 25 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: d9ffd6082b1507dc53cb8e8f3b91cafbbd94186d
https://github.com/llvm/llvm-project/commit/d9ffd6082b1507dc53cb8e8f3b91cafbbd94186d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 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)"
Summary:
This reverts commit 0c4023ae3b64c54ff51947e9776aee0e963c5635.
I messed up re-generating the test after the change.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250829
Commit: 9f34b20495c690f530a7a40db1d24544e6246e5f
https://github.com/llvm/llvm-project/commit/9f34b20495c690f530a7a40db1d24544e6246e5f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 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)
Summary: Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251018
Commit: 199ffa4ca191677e28d08e0ac5dfe080ac8616fe
https://github.com/llvm/llvm-project/commit/199ffa4ca191677e28d08e0ac5dfe080ac8616fe
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/string
Log Message:
-----------
[libc++] Use char_traits::copy while inserting when possible (#97201)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250917
Commit: af315f7b22d3636c5cdd7c04347f3946f78ba9d7
https://github.com/llvm/llvm-project/commit/af315f7b22d3636c5cdd7c04347f3946f78ba9d7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 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)"
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250791
Commit: 381cb0ef5daac4c223df2469d53b6eec9e5d762d
https://github.com/llvm/llvm-project/commit/381cb0ef5daac4c223df2469d53b6eec9e5d762d
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Removes getters and setters for DWO ranges base due to it not being
used.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251643
Commit: 8f906e3309ab438bcd869c91c5ab8cec2faa2475
https://github.com/llvm/llvm-project/commit/8f906e3309ab438bcd869c91c5ab8cec2faa2475
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/AST/Interp/cxx11.cpp
Log Message:
-----------
[clang][Interp][test] Use fixed triple in cxx11 test
Summary:
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
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250962
Commit: df9988fa3f23673b62c207bd400d71e7f7b69a7b
https://github.com/llvm/llvm-project/commit/df9988fa3f23673b62c207bd400d71e7f7b69a7b
Author: Uday Bondhugula <uday at polymagelabs.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250826
Commit: 6bd291b13c3de7f4f3eb8c3b7aa03bdd379844ba
https://github.com/llvm/llvm-project/commit/6bd291b13c3de7f4f3eb8c3b7aa03bdd379844ba
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250856
Commit: 7823ef8346677c16d74ec5f09c4cc467e220ef5b
https://github.com/llvm/llvm-project/commit/7823ef8346677c16d74ec5f09c4cc467e220ef5b
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Assert uniform recipes don't get predicated for when vectorizing.
Summary:
Add assertion ensuring invariant on construction, split off as suggested
from https://github.com/llvm/llvm-project/pull/98892.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250783
Commit: 6e7c6d5d367598779865711202a55112d9d050bd
https://github.com/llvm/llvm-project/commit/6e7c6d5d367598779865711202a55112d9d050bd
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2024-07-25 (Thu, 25 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: e014c0c37aeabca687ef868f59745641319d7ed4
https://github.com/llvm/llvm-project/commit/e014c0c37aeabca687ef868f59745641319d7ed4
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250787
Commit: 10d0bdb2ab8c2edb121e4837a396d9b6bf20773e
https://github.com/llvm/llvm-project/commit/10d0bdb2ab8c2edb121e4837a396d9b6bf20773e
Author: Christopher Di Bella <cjdb at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Log Message:
-----------
suppresses unused variable warning (#99526)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250781
Commit: 6f43bbd887c662557fc6f8d80e83969a0a084e59
https://github.com/llvm/llvm-project/commit/6f43bbd887c662557fc6f8d80e83969a0a084e59
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 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: 79bc1bea5785612cf91e217751999b7aae6bccf3
https://github.com/llvm/llvm-project/commit/79bc1bea5785612cf91e217751999b7aae6bccf3
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Fixes one of the issues in
https://github.com/llvm/llvm-project/issues/99497.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250797
Commit: 94b08e0ca6a8d0647f4a1f9278fe4f619caed51e
https://github.com/llvm/llvm-project/commit/94b08e0ca6a8d0647f4a1f9278fe4f619caed51e
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Lex/Preprocessor.cpp
Log Message:
-----------
[clang] Fix typo in comments
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250786
Commit: 24932860bd3ad3bab9f4a10b7f048f464d56f4b7
https://github.com/llvm/llvm-project/commit/24932860bd3ad3bab9f4a10b7f048f464d56f4b7
Author: Lei Wang <wlei at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfile.cpp
Log Message:
-----------
Fix assertion of null pointer samples in inline replay mode (#99378)
Summary:
Fix https://github.com/llvm/llvm-project/issues/97108. In inline replay
mode, `CalleeSamples` may be null and the order doesn't matter.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250889
Commit: a3e41624aa60b762b065e03468dbbb1c8d81a20e
https://github.com/llvm/llvm-project/commit/a3e41624aa60b762b065e03468dbbb1c8d81a20e
Author: Meredith Julian <35236176+mjulian31 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251000
Commit: e1cce9c100bb0b14c2eaf349696c77fbad286659
https://github.com/llvm/llvm-project/commit/e1cce9c100bb0b14c2eaf349696c77fbad286659
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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)
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250832
Commit: 4b5c7e41c81a8f043376f8abb8864024c7c8950f
https://github.com/llvm/llvm-project/commit/4b5c7e41c81a8f043376f8abb8864024c7c8950f
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
Part of #93566.
Fixes #94833.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250946
Commit: f31846331c15de56f9b79423a33a86aed39414f9
https://github.com/llvm/llvm-project/commit/f31846331c15de56f9b79423a33a86aed39414f9
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 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)
Summary: - spacing with _NOEXCEPT
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250986
Commit: b136c0d139d91eef357f5195c796fff0b93ef7a1
https://github.com/llvm/llvm-project/commit/b136c0d139d91eef357f5195c796fff0b93ef7a1
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250890
Commit: 32ad35dea762877d68a218fc6c07dda1793175e6
https://github.com/llvm/llvm-project/commit/32ad35dea762877d68a218fc6c07dda1793175e6
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250958
Commit: 612c6f7eed800d2e53f8c4b163daf2bc86716b6d
https://github.com/llvm/llvm-project/commit/612c6f7eed800d2e53f8c4b163daf2bc86716b6d
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 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
Summary: Update documentation, and correct configuration
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251646
Commit: a44d752f7511466b2b0c42adfad6b1bb11e61549
https://github.com/llvm/llvm-project/commit/a44d752f7511466b2b0c42adfad6b1bb11e61549
Author: Rafael Stahl <dummdoof-doof at web.de>
Date: 2024-07-25 (Thu, 25 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)
Summary:
`T` is expected to be a pointer type.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-nullptr
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250802
Commit: e9c9bb9f734a39f954f5b7762ba5540d2aba6719
https://github.com/llvm/llvm-project/commit/e9c9bb9f734a39f954f5b7762ba5540d2aba6719
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250845
Commit: 5b830ce344430e9a0a3a324751b522d554eef3e2
https://github.com/llvm/llvm-project/commit/5b830ce344430e9a0a3a324751b522d554eef3e2
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
Log Message:
-----------
[mlir][spirv] Restructure code in `SPIRVConversion.cpp`. NFC. (#99393)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251412
Commit: b85b0b94e00487be2c62b41a2c1943c90fa80f78
https://github.com/llvm/llvm-project/commit/b85b0b94e00487be2c62b41a2c1943c90fa80f78
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250949
Commit: 0204a653c08b7e4c7714b51532dff4bbdb5586c1
https://github.com/llvm/llvm-project/commit/0204a653c08b7e4c7714b51532dff4bbdb5586c1
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 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
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250822
Commit: a0319a32b210fa747591cea7e30382dc38f31b59
https://github.com/llvm/llvm-project/commit/a0319a32b210fa747591cea7e30382dc38f31b59
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-07-25 (Thu, 25 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)
Summary:
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.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251426
Commit: 11cce9f2b5d597f6daf394e004762b4944dbdb27
https://github.com/llvm/llvm-project/commit/11cce9f2b5d597f6daf394e004762b4944dbdb27
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/FLATInstructions.td
Log Message:
-----------
AMDGPU: Loop over the types for global_load_tr16 pats (NFC) (#99551)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250964
Commit: c052db083b841a54bf974bd365a25b2cf7925ebc
https://github.com/llvm/llvm-project/commit/c052db083b841a54bf974bd365a25b2cf7925ebc
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetCallingConv.h
M llvm/lib/IR/Verifier.cpp
A llvm/test/Verifier/byval-size-limit.ll
M llvm/test/Verifier/param-align.ll
M llvm/test/Verifier/param-attr-align.ll
M llvm/test/Verifier/param-ret-align.ll
Log Message:
-----------
[IR] Unify max alignment for arguments with generic max align. (#99257)
Summary:
The 2^14 limit was completely arbitrary; the generic limit is still
arbitrary, but at least it's the same arbitrary limit as everything
else.
While I'm here, also add a verifier check for the ByValOrByRefSize.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251401
Commit: 5a2618730246f0045b93609c4697e908f3fedcd2
https://github.com/llvm/llvm-project/commit/5a2618730246f0045b93609c4697e908f3fedcd2
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/lib/CodeGen/CGBuiltin.cpp
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load.cl
A clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-load-error.cl
Log Message:
-----------
[Clang][AMDGPU] Add builtins for instrinsic `llvm.amdgcn.raw.ptr.buffer.load` (#99258)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250868
Commit: 5761e2c3348889ad8b283ad37e7fc5dd3fd193ff
https://github.com/llvm/llvm-project/commit/5761e2c3348889ad8b283ad37e7fc5dd3fd193ff
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Remove unnecessary variable from InnerLoopVectorizer::createBitOrPointerCast. NFC
Summary:
DstVTy is already a VectorType, we don't need to cast it again. This
used to be a cast to FixedVectorType that was changed to support
scalable vectors.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250980
Commit: ba0ed08f186033ff0e5b7beb2c76f8e4f9ffcbcf
https://github.com/llvm/llvm-project/commit/ba0ed08f186033ff0e5b7beb2c76f8e4f9ffcbcf
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_origins.ll
Log Message:
-----------
[msan] Precommit MSan Arm NEON vst tests with origin-tracking (#99555)
Summary:
This adds an abridged copy of neon_vst.ll (from
https://github.com/llvm/llvm-project/commit/ff0821583eab1651ff126bbf4f881e6163b67435),
but with origin tracking enabled.
The test will be updated when MSan's Arm NEON support is improved (e.g.,
https://github.com/llvm/llvm-project/pull/99360).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251368
Commit: b5dda3ee637fd03a1b5942d52019dfa48099ad20
https://github.com/llvm/llvm-project/commit/b5dda3ee637fd03a1b5942d52019dfa48099ad20
Author: Iuri Chaer <iuri.chaer at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/benchmarks/CMakeLists.txt
A libcxx/benchmarks/algorithms/set_intersection.bench.cpp
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/include/__algorithm/iterator_operations.h
M libcxx/include/__algorithm/lower_bound.h
M libcxx/include/__algorithm/set_intersection.h
M libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/ranges_set_intersection.pass.cpp
A libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_complexity.pass.cpp
M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp
M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.drop/begin.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.drop/types.h
M libcxx/test/std/ranges/range.adaptors/range.transform/types.h
M libcxx/test/support/test_iterators.h
Log Message:
-----------
[libc++] Speed up set_intersection() by fast-forwarding over ranges of non-matching elements with one-sided binary search. (#75230)
One-sided binary search, aka meta binary search, has been in the public
domain for decades, and has the general advantage of being constant time
in the best case, with the downside of executing at most 2*log(N)
comparisons vs classic binary search's exact log(N). There are two
scenarios in which it really shines: the first one is when operating
over non-random-access iterators, because the classic algorithm requires
knowing the container's size upfront, which adds N iterator increments
to the complexity. The second one is when traversing the container in
order, trying to fast-forward to the next value: in that case the
classic algorithm requires at least O(N*log(N)) comparisons and, for
non-random-access iterators, O(N^2) iterator increments, whereas the
one-sided version will yield O(N) operations on both counts, with a
best-case of O(log(N)) comparisons which is very common in practice.
Commit: d7c410899fb20298aa356effca7b4f22dc21075d
https://github.com/llvm/llvm-project/commit/d7c410899fb20298aa356effca7b4f22dc21075d
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
M libc/cmake/modules/LLVMLibCHeaderRules.cmake
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] newheadergen: cmake config newhdrgen (#99543)
Summary:
- revert to revert for patch
https://github.com/llvm/llvm-project/pull/98828
- revert to revert https://github.com/llvm/llvm-project/pull/99410
- revert to revert https://github.com/llvm/llvm-project/pull/99413
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251427
Commit: 5434cc72ed7c7719e824770653cf4bb27f18ec69
https://github.com/llvm/llvm-project/commit/5434cc72ed7c7719e824770653cf4bb27f18ec69
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/aarch64-target-features.c
Log Message:
-----------
fixup! [clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)
Summary:
Looks like sed on the ppc64-aix bot does not support the '\n' literal. Let's
try using `tr` to perform that substitution. Failing that, we can revert.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251369
Commit: 8f4816f9257816d6c3332166396f9971ab488f8a
https://github.com/llvm/llvm-project/commit/8f4816f9257816d6c3332166396f9971ab488f8a
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/config.json
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/configure.rst
M libc/docs/dev/undefined_behavior.rst
M libc/spec/posix.td
M libc/src/__support/OSUtil/CMakeLists.txt
M libc/src/__support/OSUtil/linux/CMakeLists.txt
A libc/src/__support/OSUtil/linux/pid.cpp
A libc/src/__support/OSUtil/pid.h
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/rwlock.h
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/threads/thread.h
A libc/src/__support/threads/tid.h
M libc/src/unistd/CMakeLists.txt
M libc/src/unistd/getpid.h
A libc/src/unistd/gettid.cpp
A libc/src/unistd/gettid.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/fork.cpp
M libc/src/unistd/linux/getpid.cpp
M libc/startup/linux/CMakeLists.txt
M libc/startup/linux/do_start.cpp
M libc/test/integration/src/unistd/CMakeLists.txt
M libc/test/integration/src/unistd/fork_test.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/gettid_test.cpp
Log Message:
-----------
[libc] implement cached process/thread identity (#98989)
Summary:
migrated from https://github.com/llvm/llvm-project/pull/95965 due to
corrupted git history
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251445
Commit: e9935387189b63de89712c125caec0d99ed5d168
https://github.com/llvm/llvm-project/commit/e9935387189b63de89712c125caec0d99ed5d168
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/config.json
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/configure.rst
M libc/docs/dev/undefined_behavior.rst
M libc/spec/posix.td
M libc/src/__support/OSUtil/CMakeLists.txt
M libc/src/__support/OSUtil/linux/CMakeLists.txt
R libc/src/__support/OSUtil/linux/pid.cpp
R libc/src/__support/OSUtil/pid.h
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/rwlock.h
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/threads/thread.h
R libc/src/__support/threads/tid.h
M libc/src/unistd/CMakeLists.txt
M libc/src/unistd/getpid.h
R libc/src/unistd/gettid.cpp
R libc/src/unistd/gettid.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/fork.cpp
M libc/src/unistd/linux/getpid.cpp
M libc/startup/linux/CMakeLists.txt
M libc/startup/linux/do_start.cpp
M libc/test/integration/src/unistd/CMakeLists.txt
M libc/test/integration/src/unistd/fork_test.cpp
M libc/test/src/unistd/CMakeLists.txt
R libc/test/src/unistd/gettid_test.cpp
Log Message:
-----------
Revert "[libc] implement cached process/thread identity" (#99559)
Reverts llvm/llvm-project#98989
Commit: 56dc90582fa39aafae1d87863148a66e3c24e7d3
https://github.com/llvm/llvm-project/commit/56dc90582fa39aafae1d87863148a66e3c24e7d3
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store.cl
M clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-store-error.cl
Log Message:
-----------
[Clang][AMDGPU] Use unsigned data type for `__builtin_amdgcn_raw_buffer_store_*` (#99546)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250976
Commit: e762fd9517af126d0701370c8ec34ce5fe3aa170
https://github.com/llvm/llvm-project/commit/e762fd9517af126d0701370c8ec34ce5fe3aa170
Author: Michael Spencer <bigcheesegs at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp
Log Message:
-----------
[clang][deps] Don't treat ObjC method args as module directives (#97654)
Summary:
`import:(type)name` is a method argument decl in ObjC, but the C++20
preprocessing rules say this is a preprocessing line.
Because the dependency directive scanner is not language dependent, this
patch extends the C++20 rule to exclude `module :` (which is never a
valid module decl anyway), and `import :` that is not followed by an
identifier.
This is ok to do because in C++20 mode the compiler will later error on
lines like this anyway, and the dependencies the scanner returns are
still correct.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250834
Commit: 788ffe38ed8189a2b9409b4eaed1cdfe4e99f7b2
https://github.com/llvm/llvm-project/commit/788ffe38ed8189a2b9409b4eaed1cdfe4e99f7b2
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/aarch64-target-features.c
Log Message:
-----------
Revert "[clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)"
Summary:
This reverts commit c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8.
And the fixup broke another bot. Darn.
https://lab.llvm.org/buildbot/#/builders/46/builds/1896
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251372
Commit: 18a9459bc89831e762402b72a4b8bd6847351ef5
https://github.com/llvm/llvm-project/commit/18a9459bc89831e762402b72a4b8bd6847351ef5
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/cmake/caches/Apple.cmake
A libcxx/test/configs/apple-libc++-shared.cfg.in
M libcxx/utils/ci/apple-install-libcxx.sh
A libcxxabi/src/vendor/apple/shims.cpp
A libcxxabi/test/configs/apple-libc++abi-shared.cfg.in
Log Message:
-----------
[libc++] Allow testing Apple's system library as it is installed (#99086)
Summary:
In order to test libc++ under the "Apple System Library" configuration,
we need to run the tests using DYLD_LIBRARY_PATH. This is required
because libc++ gets an install_name of /usr/lib when built as a system
library, which means that we must override the copy of libc++ used by
the whole process. This effectively reverts 2cf2f1b, which was the wrong
solution for the problem I was having.
Of course, this assumes that the just-built libc++ is sufficient to
replace the system library, which is not actually the case
out-of-the-box. Indeed, the system library contains a few symbols that
are not provided by the upstream library, leading to undefined symbols
when replacing the system library by the just-built one.
To solve this problem, we separately build shims that provide those
missing symbols and we manually link against them when we build
executables in the tests. While this is somewhat brittle, it provides a
localized and unintrusive way to allow testing the Apple system
configuration in an upstream environment, which has been a frequent
request.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251389
Commit: 07090b1f227e043f1c7efd896bdee450dd5f4410
https://github.com/llvm/llvm-project/commit/07090b1f227e043f1c7efd896bdee450dd5f4410
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/utils/ci/apple-install-libcxx.sh
Log Message:
-----------
[libc++] Add comment about matching standard version in apple-install-libcxx
Summary: This was forgotten when I landed #99086
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250992
Commit: b6f35fe78d2ff55cc1d4a63d47ba8000fb45b4bb
https://github.com/llvm/llvm-project/commit/b6f35fe78d2ff55cc1d4a63d47ba8000fb45b4bb
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
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 Instruction::removeFromParent() (#99541)
This patch adds the necessary functionality to the Tracker and to the
Sandbox IR API functions for tracking calls to removeFromParent().
Commit: 24e4aa3fc86c23ab3a6a572d8ade12368c3dc1ff
https://github.com/llvm/llvm-project/commit/24e4aa3fc86c23ab3a6a572d8ade12368c3dc1ff
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll
Log Message:
-----------
[vectorcombine] Pull sext/zext through reduce.or/and/xor (#99548)
Summary:
This extends the existing foldTruncFromReductions transform to handle
sext and zext as well. This is only legal for the bitwise reductions
(and/or/xor) and not the arithmetic ones (add, mul). Use the same
costing decision to drive whether we do the transform.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250996
Commit: 55a4e7e06e3db468a3e3d1e63cdfb84378a6367b
https://github.com/llvm/llvm-project/commit/55a4e7e06e3db468a3e3d1e63cdfb84378a6367b
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
Log Message:
-----------
[LAA] Include IndirectUnsafe in ::isPossiblyBackward.
Summary:
Similarly to Unknown, IndirectUnsafe should also be considered possibly
backward, as it may be a backwards dependency e.g. via loading
different base pointers.
This also brings isPossiblyBackward in line with
Dependence::isSafeForVectorization. At the moment this can't be tested,
as it is not possible to write a test with an AddRec that is based on a
loop varying value. But this may change in the future and may cause
mis-compiles in the future.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251685
Commit: 11450c065f03fcde8fa023807e1fd6ac906e6592
https://github.com/llvm/llvm-project/commit/11450c065f03fcde8fa023807e1fd6ac906e6592
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Parser/prescan.cpp
M flang/test/Preprocessing/directive-contin-with-pp.F90
Log Message:
-----------
[flang][preprocessor] Handle initial "MACRO&" with no space (#98684)
Summary:
The prescanner checks lines that begin with a keyword macro name to see
whether they should be treated as a comment or compiler directive
instead of a source line. This fails when the potential keyword macro
name is extended with identifier characters via Fortran line
continuation. Disable line continuation during this check.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250881
Commit: a890a0a7a75e60513fbeda7b20169d848c3231a8
https://github.com/llvm/llvm-project/commit/a890a0a7a75e60513fbeda7b20169d848c3231a8
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/utils/MPFRWrapper/CMakeLists.txt
Log Message:
-----------
[libc][CMake] Set library type of libcMPFRWrapper to STATIC (#99527)
Summary:
Fixes linker errors due to hidden symbols when running CMake with
-DBUILD_SHARED_LIBS=ON.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251312
Commit: b3070e93de2378fd9bcc0ee93abd1b6d2f968461
https://github.com/llvm/llvm-project/commit/b3070e93de2378fd9bcc0ee93abd1b6d2f968461
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/MC/AArch64/elf-reloc-ptrauth.s
Log Message:
-----------
[AArch64,test] Remove over reliance on section offsets and symbol indexes
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250844
Commit: 3ce24a3a2ec5dce97208ddfb086fe829039d4b08
https://github.com/llvm/llvm-project/commit/3ce24a3a2ec5dce97208ddfb086fe829039d4b08
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
Log Message:
-----------
[mlir] Fix a warning
Summary:
This patch fixes:
mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp:621:16: error:
unused variable 'removed' [-Werror,-Wunused-variable]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251300
Commit: 0937a24d529322cd077afcdcf4017a2316902d5e
https://github.com/llvm/llvm-project/commit/0937a24d529322cd077afcdcf4017a2316902d5e
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/aarch64-target-features.c
Log Message:
-----------
Revert "[clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)"
Summary:
This reverts commit 06518cea3905556d8d1eea4088132ebb234bfdab.
This reverts commit 05275b05ca58e4d015eea1503f120e6967ef1b91.
This reverts commit c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251348
Commit: 97a3452ca7e1e5964d964b8314909a28fad31f84
https://github.com/llvm/llvm-project/commit/97a3452ca7e1e5964d964b8314909a28fad31f84
Author: Chenguang Wang <w3cing at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
Log Message:
-----------
[mlir][ArmSME] Suppress potential unused warning (#99573)
When building in release mode, the assert will be dropped, making
`remove` unused.
Commit: 40e556f32ee55f478454a3293d345bafc597e0e9
https://github.com/llvm/llvm-project/commit/40e556f32ee55f478454a3293d345bafc597e0e9
Author: Chenguang Wang <w3cing at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
Log Message:
-----------
Revert "[mlir][ArmSME] Suppress potential unused warning (#99573)" (#99578)
This reverts commit 05bce3f079b677edd0efd28e3923f4776ffb8b59.
The work was already done in 99faa03.
Commit: e3e62179803808c006cd1b37b549c7fadc86c018
https://github.com/llvm/llvm-project/commit/e3e62179803808c006cd1b37b549c7fadc86c018
Author: Ilya Leoshkevich <iii at linux.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp
Log Message:
-----------
[sanitizer] Fix running sanitizer_set_report_path_test on Android (#99469)
sanitizer_set_report_path_test outputs the following on an Android
builder [1]:
ERROR: Can't create directory:
/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_arm/test/sanitizer_common/asan-arm-Android/Posix/Output/sanitizer_set_report_path_test.cpp.tmp
Path
/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_arm/test/sanitizer_common/asan-arm-Android/Posix/Output/sanitizer_set_report_path_test.cpp.tmp.report_path/report.24954
The order of messages is reversed.
The test can use strcmp+assert instead of CHECK for `__sanitizer_get_report_path` output.
[1]
https://lab.llvm.org/buildbot/#/builders/186/builds/703/steps/26/logs/stdio
---------
Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>
Commit: bded7c11813608a64679c5477af72c3fa031a571
https://github.com/llvm/llvm-project/commit/bded7c11813608a64679c5477af72c3fa031a571
Author: Bill Wendling <5993918+bwendling at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
M clang/test/CodeGen/attr-counted-by.c
Log Message:
-----------
[Clang] Loop over FieldDecls instead of all Decls (#99574)
Summary:
Only FieldDecls are important when determining GEP indices. A struct
defined within another struct has the same semantics as if it were
defined outside of the struct. So there's no need to look into
RecordDecls that aren't a field.
See commit 5bcf31ebfad8 ("[Clang] Loop over FieldDecls instead of all
Decls (#89453)")
Fixes 2039.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250945
Commit: 8571327448650eedb36106f770696b777d1f580e
https://github.com/llvm/llvm-project/commit/8571327448650eedb36106f770696b777d1f580e
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/CMakeLists.txt
R libc/newhdrgen/yaml/arpa/arpa_inet.yaml
A libc/newhdrgen/yaml/arpa/inet.yaml
R libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
A libc/newhdrgen/yaml/gpu/rpc.yaml
A libc/newhdrgen/yaml/sys/auxv.yaml
A libc/newhdrgen/yaml/sys/epoll.yaml
A libc/newhdrgen/yaml/sys/ioctl.yaml
A libc/newhdrgen/yaml/sys/mman.yaml
A libc/newhdrgen/yaml/sys/prctl.yaml
A libc/newhdrgen/yaml/sys/random.yaml
A libc/newhdrgen/yaml/sys/resource.yaml
A libc/newhdrgen/yaml/sys/select.yaml
A libc/newhdrgen/yaml/sys/sendfile.yaml
A libc/newhdrgen/yaml/sys/socket.yaml
A libc/newhdrgen/yaml/sys/stat.yaml
A libc/newhdrgen/yaml/sys/statvfs.yaml
R libc/newhdrgen/yaml/sys/sys_auxv.yaml
R libc/newhdrgen/yaml/sys/sys_epoll.yaml
R libc/newhdrgen/yaml/sys/sys_ioctl.yaml
R libc/newhdrgen/yaml/sys/sys_mman.yaml
R libc/newhdrgen/yaml/sys/sys_prctl.yaml
R libc/newhdrgen/yaml/sys/sys_random.yaml
R libc/newhdrgen/yaml/sys/sys_resource.yaml
R libc/newhdrgen/yaml/sys/sys_select.yaml
R libc/newhdrgen/yaml/sys/sys_sendfile.yaml
R libc/newhdrgen/yaml/sys/sys_socket.yaml
R libc/newhdrgen/yaml/sys/sys_stat.yaml
R libc/newhdrgen/yaml/sys/sys_statvfs.yaml
R libc/newhdrgen/yaml/sys/sys_syscall.yaml
R libc/newhdrgen/yaml/sys/sys_time.yaml
R libc/newhdrgen/yaml/sys/sys_types.yaml
R libc/newhdrgen/yaml/sys/sys_utsname.yaml
R libc/newhdrgen/yaml/sys/sys_wait.yaml
A libc/newhdrgen/yaml/sys/syscall.yaml
A libc/newhdrgen/yaml/sys/time.yaml
A libc/newhdrgen/yaml/sys/types.yaml
A libc/newhdrgen/yaml/sys/utsname.yaml
A libc/newhdrgen/yaml/sys/wait.yaml
Log Message:
-----------
[libc][newhdrgen] Remove redundant yaml prefixes (#99581)
Summary:
Since the yaml files are already organized into folders, the name of the
file doesn't also need to be prefixed by what folder it's in.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250801
Commit: 933ee09a2b6fa2486268b6fa30e834d2adc889e2
https://github.com/llvm/llvm-project/commit/933ee09a2b6fa2486268b6fa30e834d2adc889e2
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/runtime/unit.cpp
Log Message:
-----------
[flang][runtime] Clear leftTabLimit at in FinishReadingRecord (#98822)
Summary:
ExternalFileUnit::FinishReadingRecord() is called at the end of a READ
statement, unless the read is non-advancing and there was no error. In
the event of an erroneous non-advancing read, however,
FinishReadingRecord() leaves ConnectionState::leftTabLimit inhabited by
a value, leaving the impression that the *next* record is undergoing a
non-advancing operation, and this cause the next operation to fail. In
the test case in the reported bug, the next operation is a BACKSPACE,
and it ends up doing nothing. The fix is to always reset leftTabLimit in
FinishReadingRecord.
Fixes https://github.com/llvm/llvm-project/issues/98783.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251364
Commit: f2a39d75d8f8d75ad98a3b2e3c780a7bbfcf92d9
https://github.com/llvm/llvm-project/commit/f2a39d75d8f8d75ad98a3b2e3c780a7bbfcf92d9
Author: Connie <60797237+connieyzhu at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/lit/lit/builtin_commands/cat.py
Log Message:
-----------
[llvm-lit] Resolve TypeError in built-in cat -v implementation (#98363)
Summary:
When using -v in lit's internal implementation of cat, there is a
TypeError when the file data is passed into convertToCaretAndMNotation()
as a str, because bytearray() requires an encoded string. This patch
encodes the str before passing it through bytearray().
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250995
Commit: 163bce8e47502d0976505c609c5e0f646594c086
https://github.com/llvm/llvm-project/commit/163bce8e47502d0976505c609c5e0f646594c086
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Semantics/expression.cpp
M flang/test/Semantics/array-constr-values.f90
M flang/test/Semantics/assign10.f90
Log Message:
-----------
[flang] Check assignment conformance for derived types (#99059)
Summary:
Derived type assignment checking needs to account for the possibility of
derived assignment. The implementation was checking compile-time
conformance errors only on the path for assignments of intrinsic types.
Add a static array conformance check in the derived type flow once it
has been established that no defined assignment exists.
Fixes https://github.com/llvm/llvm-project/issues/98981.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250780
Commit: 3dea4ee53199174aec7052573ae9a6b8e470104e
https://github.com/llvm/llvm-project/commit/3dea4ee53199174aec7052573ae9a6b8e470104e
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/api.td
M libc/config/linux/x86_64/headers.txt
M libc/newhdrgen/yaml/math.yaml
M libc/newhdrgen/yaml/sys/statvfs.yaml
M libc/src/sys/statvfs/linux/CMakeLists.txt
Log Message:
-----------
[libc] Removed __LIBC_CONST_ATTR attribute and updated math.yaml with the new math functions (#99571)
- deleted attribute from fabs function
- added math functions from #98972
- also updated statvfs files so that it can be generated
Commit: 897ec4ae5431888bc39d082897b34c71e208913a
https://github.com/llvm/llvm-project/commit/897ec4ae5431888bc39d082897b34c71e208913a
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/docs/Extensions.md
A flang/test/Semantics/parent-comp-name.f90
Log Message:
-----------
[flang][NFC] Document an intentional violation of the standard (#99073)
The Fortran standard committees passed an "interp" request at their June
2024 meetings that is distinct from nearly every other Fortran compiler
that I tried (6) in an an ambiguous case (parent component naming when
the base type has been renamed via USE association). Document this case
in flang/docs/Extensions.md as an intentional instance of
non-conformance chosen for portability and better usability.
Commit: b9778dadceda81035b69856392fede1f45fc361e
https://github.com/llvm/llvm-project/commit/b9778dadceda81035b69856392fede1f45fc361e
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCHeaderRules.cmake
Log Message:
-----------
[libc] Restore DECLS_FILE_PATH property (#99583)
Summary:
The DECLS_FILE_PATH property is supposed to be set on the targets for
the generated headers for the GPU build installation. It got missed when
creating the cmake rule for new headergen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251008
Commit: 1fd6292995e77414231c475361f4ee5dd8c7e459
https://github.com/llvm/llvm-project/commit/1fd6292995e77414231c475361f4ee5dd8c7e459
Author: pcc <peter at pcc.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Object/ArchiveWriter.h
M llvm/lib/Object/ArchiveWriter.cpp
M llvm/test/Object/archive-malformed-object.test
Log Message:
-----------
Object: Don't error out on malformed bitcode files.
Summary:
An error reading a bitcode file most likely indicates that the file
was created by a compiler from the future. Normally we don't try to
implement forwards compatibility for bitcode files, but when creating
an archive we can implement best-effort forwards compatibility by
treating the file as a blob and not creating symbol index entries for
it. lld and mold ignore the archive symbol index, so provided that
you use one of these linkers, LTO will work as long as lld or the
gold plugin is newer than the compiler. We only ignore errors if the
archive format is one that is supported by a linker that is known to
ignore the index, otherwise there's no chance of this working so we
may as well error out. We print a warning on read failure so that
users of linkers that rely on the symbol index can diagnose the issue.
This is the same behavior as GNU ar when the linker plugin returns
an error when reading the input file. If the bitcode file is actually
malformed, it will be diagnosed at link time.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251354
Commit: c37129fc22364aee25e3ed6c0aa81ac4bdb079ce
https://github.com/llvm/llvm-project/commit/c37129fc22364aee25e3ed6c0aa81ac4bdb079ce
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Add filegroups for MLIR bindings sources (#98396)
Summary:
This can be useful if downstream projects configure their pybind
differently, similar to how local_config_python isn't defined here.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251762
Commit: 8af6b584e1e0c6ea973484e2b3cc9d6a1a00d865
https://github.com/llvm/llvm-project/commit/8af6b584e1e0c6ea973484e2b3cc9d6a1a00d865
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Semantics/definable.cpp
A flang/test/Semantics/associate03.f90
Log Message:
-----------
[flang] ASSOCIATE/SELECT TYPE entities aren't pointer/allocatable (#99364)
Fix what seems to be a regression in semantics in definability checking:
the construct entities of ASSOCIATE and SELECT TYPE constructs are never
pointers or allocatables, even when their selectors are so. SELECT RANK
construct entities, however, can be pointers or allocatables.
Commit: 64000b00cd2be737adc8d0a8f8cf1c6197ded1bd
https://github.com/llvm/llvm-project/commit/64000b00cd2be737adc8d0a8f8cf1c6197ded1bd
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R libc/newhdrgen/class_implementation/classes/include.py
M libc/newhdrgen/gpu_headers.py
M libc/newhdrgen/header.py
M libc/newhdrgen/yaml_to_classes.py
Log Message:
-----------
[libc] newhdrgen: removed Include class (#99584)
Include class is not used (includes are made through Macro class, Type
class, and imports from .h.def files).
Commit: 1fa7841c3b408ee9ce3f77f79909e05e1f71d76f
https://github.com/llvm/llvm-project/commit/1fa7841c3b408ee9ce3f77f79909e05e1f71d76f
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Parser/Fortran-parsers.cpp
A flang/test/Semantics/struct03.f90
Log Message:
-----------
[flang] A nested STRUCTURE must declare entities (#99379)
Summary:
When a DEC legacy STRUCTURE definition appears within another, its
STRUCTURE statement must also declare some components of the enclosing
structure.
Fixes https://github.com/llvm/llvm-project/issues/99288.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251397
Commit: c2a920b386598e8c4c115b5b2cce2e455822822b
https://github.com/llvm/llvm-project/commit/c2a920b386598e8c4c115b5b2cce2e455822822b
Author: Dmitriy Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_i386.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_x86_64.cpp
Log Message:
-----------
[compiler-rt] Add `DumpAllRegisters` impl (#99049)
Summary:
- Add implementation for x86_64 and linux
- Add test
The output is like
==XXYYZZ==Register values:
rax = 0x... rbx = 0x... rcx = 0x... rdx = 0x...
rdi = 0x... rsi = 0x... rbp = 0x... rsp = 0x...
r8 = 0x... r9 = 0x... r10 = 0x... r11 = 0x...
r12 = 0x... r13 = 0x... r14 = 0x... r15 = 0x...
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251400
Commit: 9e3048d82a3fcb3db8897053e7584b0963b08c2f
https://github.com/llvm/llvm-project/commit/9e3048d82a3fcb3db8897053e7584b0963b08c2f
Author: Sam James <sam at gentoo.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Log Message:
-----------
[msan] Fix goo.gl link in comment for Valgrind paper
goo.gl is going away: https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/
Fix goo.gl link from:
- http://goo.gl/QKbem
+ https://static.usenix.org/event/usenix05/tech/general/full_papers/seward/seward_html/usenix2005.html
and reflow the comment a bit to make it look a bit better after the URL change,
although it's not perfect now.
Committed as obvious.
Bug: https://github.com/llvm/llvm-project/issues/99586
Commit: aceba7c1fe613ceeb5b6cde877b581d3191578b8
https://github.com/llvm/llvm-project/commit/aceba7c1fe613ceeb5b6cde877b581d3191578b8
Author: Jacob Lalonde <jalalonde at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/bindings/headers.swig
A lldb/bindings/interface/SBSaveCoreOptionsDocstrings.i
M lldb/bindings/interfaces.swig
M lldb/include/lldb/API/LLDB.h
M lldb/include/lldb/API/SBDefines.h
M lldb/include/lldb/API/SBError.h
M lldb/include/lldb/API/SBFileSpec.h
M lldb/include/lldb/API/SBProcess.h
A lldb/include/lldb/API/SBSaveCoreOptions.h
M lldb/include/lldb/Core/PluginManager.h
A lldb/include/lldb/Symbol/SaveCoreOptions.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/API/CMakeLists.txt
M lldb/source/API/SBProcess.cpp
A lldb/source/API/SBSaveCoreOptions.cpp
M lldb/source/Commands/CommandObjectProcess.cpp
M lldb/source/Core/PluginManager.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.cpp
M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.h
M lldb/source/Symbol/CMakeLists.txt
A lldb/source/Symbol/SaveCoreOptions.cpp
M lldb/test/API/functionalities/process_save_core/TestProcessSaveCore.py
M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
A lldb/test/API/python_api/sbsavecoreoptions/TestSBSaveCoreOptions.py
Log Message:
-----------
[LLDB][SaveCore] Add SBSaveCoreOptions Object, and SBProcess::SaveCore() overload (#98403)
Summary:
This PR adds `SBSaveCoreOptions`, which is a container class for options
when LLDB is taking coredumps. For this first iteration this container
just keeps parity with the extant API of `file, style, plugin`. In the
future this options object can be extended to allow users to take a
subset of their core dumps.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251387
Commit: 8fb6daa9b159b110bed8d21cb3753d1e12f034ad
https://github.com/llvm/llvm-project/commit/8fb6daa9b159b110bed8d21cb3753d1e12f034ad
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn
Log Message:
-----------
[gn build] Port 4120570dc408
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251333
Commit: 97269e1f4dbbd17ed4cb8a101fa103bbd2c3517b
https://github.com/llvm/llvm-project/commit/97269e1f4dbbd17ed4cb8a101fa103bbd2c3517b
Author: Sam James <sam at gentoo.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/CompileCudaWithLLVM.rst
Log Message:
-----------
[docs] Fix goo.gl link in comment for 'Straight-line scalar optimizations' paper
Summary:
goo.gl is going away: https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/
Fix goo.gl link from:
- https://goo.gl/4Rb9As
+ https://docs.google.com/document/d/1momWzKFf4D6h8H3YlfgKQ3qeZy5ayvMRh6yR-Xn2hUE
Committed as obvious.
Bug: https://github.com/llvm/llvm-project/issues/99586
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251718
Commit: 6e5addff70439985b1f7c710e1675fe2e5c8c6b4
https://github.com/llvm/llvm-project/commit/6e5addff70439985b1f7c710e1675fe2e5c8c6b4
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_i386.cpp
M compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_x86_64.cpp
Log Message:
-----------
[sanitizer] Use strict-whitespace in tests
Commit: f2982b8b426e5326309a92f5ff368b9ece250f5c
https://github.com/llvm/llvm-project/commit/f2982b8b426e5326309a92f5ff368b9ece250f5c
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/WORKSPACE
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
A utils/bazel/third_party_build/pybind.BUILD
Log Message:
-----------
[bazel] Add support for pybind (#98398)
Summary:
Previously these targets were disabled, but with a relatively new
rules_python we can build these pointing at a hermetic python, which
allows us to build these safely. Users can still access the files
directly if they need to customize how these are built.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250792
Commit: 7137a0416edcfa29afc39ea99c278bd7c95085e4
https://github.com/llvm/llvm-project/commit/7137a0416edcfa29afc39ea99c278bd7c95085e4
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
[bazel] Port #98403 (#99592)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251432
Commit: 94ef887f009d0493c9dfda5329dcaa7969f5597a
https://github.com/llvm/llvm-project/commit/94ef887f009d0493c9dfda5329dcaa7969f5597a
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/unittests/ADT/SetOperationsTest.cpp
Log Message:
-----------
[ADT] Add unit tests for set_subtract (#99561)
Summary:
This patch adds a couple of unit tests:
- SetSubtractSmallPtrSet exercises the code path involving remove_if,
added in d772cdd6279de1e578dfdfca7432327a1806c659. Note that
SmallPtrSet supports remove_if.
- SetSubtractSmallVector exercises the code path involving
S1.erase(*SI) and ensures that set_subtract continues to accept S2
being a vector, which does not have contains.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250865
Commit: 23182afb4b2d336c1237ebd50cc8b20ff58679c8
https://github.com/llvm/llvm-project/commit/23182afb4b2d336c1237ebd50cc8b20ff58679c8
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
M compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp
M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp
Log Message:
-----------
[sanitizer_common] Use %p to print addresses (#98578)
Summary: Pointers print more leading zeroes for better alignment.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251661
Commit: dd431e766085b2cc752a11035e762a26f61a33ce
https://github.com/llvm/llvm-project/commit/dd431e766085b2cc752a11035e762a26f61a33ce
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp
Log Message:
-----------
[compiler-rt] Fix a warning
Summary:
This patch fixes:
compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp:126:72:
error: format specifies type 'void *' but the argument has type
'uptr *' (aka 'unsigned long *') [-Werror,-Wformat-pedantic]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251405
Commit: bb90a36ecfc072c0fad2905c2991e5f4273b9b18
https://github.com/llvm/llvm-project/commit/bb90a36ecfc072c0fad2905c2991e5f4273b9b18
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/cmake/base-config-ix.cmake
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/asan/CMakeLists.txt
M compiler-rt/test/ctx_profile/CMakeLists.txt
M compiler-rt/test/fuzzer/CMakeLists.txt
M compiler-rt/test/gwp_asan/CMakeLists.txt
M compiler-rt/test/interception/CMakeLists.txt
M compiler-rt/test/memprof/CMakeLists.txt
M compiler-rt/test/msan/CMakeLists.txt
M compiler-rt/test/nsan/CMakeLists.txt
M compiler-rt/test/rtsan/CMakeLists.txt
M compiler-rt/test/sanitizer_common/CMakeLists.txt
M compiler-rt/test/scudo/standalone/CMakeLists.txt
M compiler-rt/test/tsan/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Cleanup use of COMPILER_RT_INCLUDE_TESTS (#98246)
Summary:
1. Move checks into parent test/CMakeLists.txt
2. COMPILER_RT_INCLUDE_TESTS disable both lit and
gtests. Before it was very inconsistent between
sanitizers.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250775
Commit: 7fec967c6a456653ffeeb3f4bb090b20d24e5445
https://github.com/llvm/llvm-project/commit/7fec967c6a456653ffeeb3f4bb090b20d24e5445
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Log Message:
-----------
[NFC][sanitizer] Fix `unused variable 'RegName'` warning
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250803
Commit: abe51cabb06f8990f979ddec4c1e97f9422e3299
https://github.com/llvm/llvm-project/commit/abe51cabb06f8990f979ddec4c1e97f9422e3299
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
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 Instruction::moveBefore() (#99568)
This implements tracking of moving instrs with `moveBefore()`.
Commit: 145ab074975dace16a65c6fee844322dd6bd32b6
https://github.com/llvm/llvm-project/commit/145ab074975dace16a65c6fee844322dd6bd32b6
Author: Brian Cain <bcain at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/test/Driver/hexagon-toolchain-linux.c
Log Message:
-----------
[clang] [hexagon] handle --unwindlib arg (#99552)
Summary: Signed-off-by: Brian Cain <bcain at quicinc.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251395
Commit: ef83e6327783d1b36d6ff2ae258fff4feff278b9
https://github.com/llvm/llvm-project/commit/ef83e6327783d1b36d6ff2ae258fff4feff278b9
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/WORKSPACE
Log Message:
-----------
[bazel] Replace git_repository with http_archive. (#99422)
Summary:
The current git_repository usage points to tags, which leads to warnings
that the build may not be reproducable due to not using a git sha.
The docs for
[git_repository](https://bazel.build/rules/lib/repo/git#git_repository)
recommend using `http_archive`, so switch to that instead. Also bump to
newer versions for these two repos.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251492
Commit: fe8805265e2ec16f1afdf552747e4b12ba0ee415
https://github.com/llvm/llvm-project/commit/fe8805265e2ec16f1afdf552747e4b12ba0ee415
Author: Allen <zhongyunde at huawei.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/math-libcalls-tbaa.cpp
Log Message:
-----------
[clang codegen] Emit int TBAA metadata on FP math libcall expf (#96025)
Summary:
Base on the discussion
https://discourse.llvm.org/t/fp-can-we-add-pure-attribute-for-math-library-functions-default/79459,
math libcalls set errno, so it should emit "int" TBAA metadata on FP
libcalls to solve the alias issue.
Note: Only add support for expf in this PR
Fix https://github.com/llvm/llvm-project/issues/86635
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251692
Commit: 2f3a1fff624cb6c4efdf58744de92c86eb479148
https://github.com/llvm/llvm-project/commit/2f3a1fff624cb6c4efdf58744de92c86eb479148
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/docs/Status/Cxx23Papers.csv
M libcxx/docs/Status/Cxx2cIssues.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__memory/allocator_traits.h
A libcxx/include/__memory/inout_ptr.h
A libcxx/include/__memory/out_ptr.h
M libcxx/include/__memory/pointer_traits.h
M libcxx/include/memory
M libcxx/include/module.modulemap
M libcxx/include/version
M libcxx/modules/std/memory.inc
M libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.verify.cpp
A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.convert.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.ctor.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.verify.cpp
A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.verify.cpp
A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.convert.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.ctor.pass.cpp
A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.verify.cpp
A libcxx/test/std/utilities/smartptr/adapt/types.h
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][memory] P1132R8: `out_ptr` - a scalable output pointer abstraction (#73618)
Differential Revision: https://reviews.llvm.org/D150525
Implements:
- https://wg21.link/P1132R8 - `out_ptr` - a scalable output pointer
abstraction
- https://eel.is/c++draft/smartptr.adapt - 20.3.4 Smart pointer adaptors
- https://wg21.link/LWG3734 - Inconsistency in `inout_ptr` and `out_ptr`
for empty case
- https://wg21.link/LWG3897- `inout_ptr` will not update raw pointer to
0
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: 28a3c9a1f321827dc43250d1bcc38100d808fee6
https://github.com/llvm/llvm-project/commit/28a3c9a1f321827dc43250d1bcc38100d808fee6
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port e475bb7ac33d
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251449
Commit: 6b61e70451de20be3b99271b2b37046cc8020160
https://github.com/llvm/llvm-project/commit/6b61e70451de20be3b99271b2b37046cc8020160
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/IndirectCallPromotion.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
M bolt/test/X86/Inputs/jump-table-fixed-ref-pic.s
M bolt/test/X86/jump-table-fixed-ref-pic.test
Log Message:
-----------
[BOLT] Support POSSIBLE_PIC_FIXED_BRANCH
Summary:
Detect and support fixed PIC indirect jumps of the following form:
```
movslq En(%rip), %r1
leaq PIC_JUMP_TABLE(%rip), %r2
addq %r2, %r1
jmpq *%r1
```
with PIC_JUMP_TABLE that looks like following:
```
JT: ----------
E1:| L1 - JT |
|----------|
E2:| L2 - JT |
|----------|
| |
......
En:| Ln - JT |
----------
```
The code could be produced by compilers, see
https://github.com/llvm/llvm-project/issues/91648.
Test Plan: updated jump-table-fixed-ref-pic.test
Reviewers: ayermolo, rafaelauler
Reviewed By: rafaelauler
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251366
Commit: 48264667fdccd702ce8e742a25db9b684adc7339
https://github.com/llvm/llvm-project/commit/48264667fdccd702ce8e742a25db9b684adc7339
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Profile/ProfileYAMLMapping.h
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/YAMLProfileWriter.cpp
M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/X86/pseudoprobe-decoding-inline.test
Log Message:
-----------
[BOLT] Expose pseudo probe function checksum and GUID (#99389)
Summary:
Add a BinaryFunction field for pseudo probe function GUID.
Populate it during pseudo probe section parsing, and emit it in YAML
profile (both regular and BAT), along with function checksum.
To be used for stale function matching.
Test Plan: update pseudoprobe-decoding-inline.test
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251382
Commit: 3a3807f7ebcf80a3dde05091ca3220fa8537a29f
https://github.com/llvm/llvm-project/commit/3a3807f7ebcf80a3dde05091ca3220fa8537a29f
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCPseudoProbe.h
Log Message:
-----------
[MC][NFC] Use std::map for AddressProbesMap
Summary:
AddressProbesMap is keyed by binary addresses, and it makes sense to
treat them as ordered. This also enables slicing by binary function/
binary basic block, to be used in BOLT
(https://github.com/llvm/llvm-project/pull/99554).
Test Plan: NFC
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251362
Commit: ba3742d3d17563cf6da5c0ff2050cb95e49cd595
https://github.com/llvm/llvm-project/commit/ba3742d3d17563cf6da5c0ff2050cb95e49cd595
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Profile/ProfileYAMLMapping.h
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/YAMLProfileWriter.cpp
M bolt/test/X86/pseudoprobe-decoding-inline.test
Log Message:
-----------
[BOLT] Attach pseudo probes to blocks in YAML profile
Summary:
Read pseudo probes in regular and BAT YAML profile generation, and
attach them to YAML profile basic blocks. This exposes GUID, probe id,
and probe type in profile for future use in stale profile matching.
Test Plan: updated pseudoprobe-decoding-inline.test
Reviewers: rafaelauler, ayermolo
Reviewed By: rafaelauler
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251379
Commit: f672f27eb0c073d121c8bbbf44cc22a8283b008a
https://github.com/llvm/llvm-project/commit/f672f27eb0c073d121c8bbbf44cc22a8283b008a
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/X86/combine-udiv.ll
M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
Log Message:
-----------
[CodeGen] Remove checks for vectors in unsigned division prior to computing leading zeros (#99524)
Summary:
It turns out we can safely use
DAG.computeKnownBits(N0).countMinLeadingZeros() with constant legal
vectors, so remove the check for it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251562
Commit: 7d9bb9de26bc2ddb2cef7474aecb2bdf730b5bf2
https://github.com/llvm/llvm-project/commit/7d9bb9de26bc2ddb2cef7474aecb2bdf730b5bf2
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-sucmp.ll
Log Message:
-----------
[GlobalIsel] import G_SCMP and G_UCMP (#99518)
See https://github.com/llvm/llvm-project/pull/98894
Commit: 28f241c7f0a6ab550abbfc0f350bd571b1e7008f
https://github.com/llvm/llvm-project/commit/28f241c7f0a6ab550abbfc0f350bd571b1e7008f
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/unittests/ADT/SetOperationsTest.cpp
Log Message:
-----------
[ADT] Use UnorderedElementsAre in SetOperationsTest.cpp (NFC) (#99596)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251554
Commit: a9a7fc70166699da990c41ed3ce99166d5342685
https://github.com/llvm/llvm-project/commit/a9a7fc70166699da990c41ed3ce99166d5342685
Author: Shengchen Kan <shengchen.kan at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Basic/Targets/X86.cpp
M clang/test/Driver/x86-target-features.c
M clang/test/Preprocessor/x86_target_features.c
Log Message:
-----------
[X86][Driver] Enable feature zu for -mapxf
Summary:
This is follow-up for #78901 after validation.
Drop the comments for stability since zu is the last feature for cpuid APX_F.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251654
Commit: 23c55fb092efe0e61daea3184dcb44628cd1075f
https://github.com/llvm/llvm-project/commit/23c55fb092efe0e61daea3184dcb44628cd1075f
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/TableGen/Common/DAGISelMatcher.cpp
M llvm/utils/TableGen/Common/DAGISelMatcher.h
M llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
M llvm/utils/TableGen/DAGISelMatcherGen.cpp
Log Message:
-----------
[TableGen][SelectionDAG] Make CheckValueTypeMatcher use MVT::SimpleValueType (#99537)
Summary:
The original `CheckValueTypeMatcher` stores StringRef as the member
variable type, however it's more efficient to use use
MVT::SimpleValueType since it prevents string comparison in isEqualImpl,
it also reduce the memory consumption in each object.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251332
Commit: 1b56e722894da0604084f53558bf433fd3e5fcfc
https://github.com/llvm/llvm-project/commit/1b56e722894da0604084f53558bf433fd3e5fcfc
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Profile/CMakeLists.txt
Log Message:
-----------
[BOLT] Add MC dependency for Profile
Commit: 3040951037fd1f7299dece373564a943a3ce0e7c
https://github.com/llvm/llvm-project/commit/3040951037fd1f7299dece373564a943a3ce0e7c
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/lib/safestack/safestack_util.h
Log Message:
-----------
[safestack] Various 32-bit Linux fixes (#99455)
Summary:
When enabling 32-bit testing on Linux/i386 and Linux/sparc, many tests
`FAIL`:
- All Linux/i386 tests `FAIL` with ``` safestack CHECK failed:
/vol/llvm/src/llvm-project/local/compiler-rt/lib/safestack/safestack.cpp:95
MAP_FAILED != addr ``` because the safestack `mmap` implementation
doesn't work there. This patch adjusts it to match the
`sanitizer_linux.cpp.c` one.
- On 32-bit Linux/sparc, the `pthread*.c` tests `FAIL` because a `tid_t`
(`uint64_t`) `tid` arg was passed to `syscall(SYS_tgkill)` while `tid`
is actually a `pid_t` (`int`). Fixed by adding a cast.
Tested on `x86_64-pc-linux-gnu` (32 and 64-bit) and
`sparc64-unknown-linux-gnu` (32 and 64-bit).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251393
Commit: fe88c50778de9d4b03ff97910b375ca20063be5f
https://github.com/llvm/llvm-project/commit/fe88c50778de9d4b03ff97910b375ca20063be5f
Author: Shan Huang <52285902006 at stu.ecnu.edu.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
A llvm/test/Transforms/SimpleLoopUnswitch/preserving-debugloc-trivial-terminators.ll
Log Message:
-----------
[DebugInfo][SimpleLoopUnswitch] Fix missing debug location updates for new terminators (#98789)
Summary: Fix #98787 .
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251388
Commit: 2be976dfc21571863aba3a8a43d4ce49e38bb139
https://github.com/llvm/llvm-project/commit/2be976dfc21571863aba3a8a43d4ce49e38bb139
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
M libcxx/CMakeLists.txt
A libcxx/cmake/Modules/HandleLibC.cmake
M libcxx/cmake/config-ix.cmake
M libcxx/include/CMakeLists.txt
M libcxx/src/CMakeLists.txt
Log Message:
-----------
[libc][libcxx] Support for building libc++ against LLVM libc (#99287)
Summary:
Provide an option to build libc++ against LLVM libc and set the CMake
compile and link options appropriately when the option is enabled.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251440
Commit: ef2c0d8bd07386ab3af34881c807e4fab6dba24b
https://github.com/llvm/llvm-project/commit/ef2c0d8bd07386ab3af34881c807e4fab6dba24b
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
A clang/test/Modules/pch-in-module-units.cppm
Log Message:
-----------
[C++20] [Modules] Skip ODR checks if either declaration comes from GMF
Summary:
This patch tries to workaround the case that:
- in a module unit that imports another module unit
- both the module units including overlapped headers
- the compiler emits false positive ODR violation diagnostics for the
overlapped headers if ODR check is enabled
- the current module units enables PCH
For the third point, we disabled ODR check if the declarations comes
from GMF. However, due to the forth point, the check whether the
declaration comes from GMF failed. Then we still going to check it and
then the users get false positive checks.
What's worse is that, this always happens in clangd, where will generate
the PCH automatically before parsing the input files.
The root cause of the problem we mixed the modules in the semantical
level and the module in the serialization level.
The problem is pretty fundamental and we need time to fix that. But 19.x
is going to be branched and I hope to give clangd better user
experience. So I decided to land this workaround even if it is pretyy
niche and may only work for the case of clangd's pattern.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251291
Commit: b1c58a4e85e7d7e1ba2dab4c0a3f295cf65faf1f
https://github.com/llvm/llvm-project/commit/b1c58a4e85e7d7e1ba2dab4c0a3f295cf65faf1f
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/asan/TestCases/debug_stacks.cpp
Log Message:
-----------
[asan] Consume leading zeroes in a test
Commit: c815fe2ca9e0dbc7d108c9233cd99280ffd42ac8
https://github.com/llvm/llvm-project/commit/c815fe2ca9e0dbc7d108c9233cd99280ffd42ac8
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
M llvm/test/MC/AArch64/mapping-across-sections.s
Log Message:
-----------
[AArch64,ELF] Use getCurrentSection().first in changeSection
Summary:
Similar to the NVPTX change 4ae23bcca144b542f16d45acc8f270e156e2fa4e.
And improve the tests.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251399
Commit: e1e6e78cf2594b2d5a05347cf79ce6dbd5c7aeca
https://github.com/llvm/llvm-project/commit/e1e6e78cf2594b2d5a05347cf79ce6dbd5c7aeca
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/StandardCPlusPlusModules.rst
Log Message:
-----------
[Doc] Update documentation for no-transitive-change (#96453)
Summary:
(Some backgrounds, not required to read:
https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755)
This is the document part for the no-transitive-change
(https://github.com/llvm/llvm-project/pull/86912,
https://github.com/llvm/llvm-project/pull/92083,
https://github.com/llvm/llvm-project/pull/92085,
https://github.com/llvm/llvm-project/pull/92511) to provide the ability
for build system to skip some unnecessary recompilations.
See the patch for examples.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251509
Commit: e5718cec82707eacc06fc8202280a8e8ce123e1f
https://github.com/llvm/llvm-project/commit/e5718cec82707eacc06fc8202280a8e8ce123e1f
Author: Rajat Bajpai <rbajpai at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
Log Message:
-----------
[CVP][LVI] Add support for InsertElementInst in LVI (#99368)
Summary:
Currently, the LVI analysis pass doesn't support InsertElementInst
vector instruction. Due to this, some optimization opportunities are
missed. For example, in the below example, ICMP instruction can be
folded but it doesn't.
```
...
%ie1 = insertelement <2 x i32> poison, i32 10, i64 0
%ie2 = insertelement <2 x i32> %ie1, i32 20, i64 1
%icmp = icmp <2 x i1> %ie2, <i32 40, i32 40>
...
```
This change adds InsertElementInst support in the LVI analysis pass to
fix the motivating example.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251386
Commit: 2e17b8a1cca44c57722290567db0e4aba98272c0
https://github.com/llvm/llvm-project/commit/2e17b8a1cca44c57722290567db0e4aba98272c0
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
M clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c
M clang/test/CodeGen/ptrauth-function-type-discriminator.c
M clang/test/CodeGen/ptrauth-ubsan-vptr.cpp
M clang/test/CodeGenCXX/ptrauth-explicit-vtable-pointer-control.cpp
M clang/test/CodeGenCXX/ptrauth-rtti-layout.cpp
M clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
M clang/test/CodeGenCXX/ptrauth-throw.cpp
M clang/test/CodeGenCXX/ptrauth-thunks.cpp
M clang/test/CodeGenCXX/ptrauth-virtual-function.cpp
M clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk.cpp
M clang/test/CodeGenCXX/ubsan-vtable-checks.cpp
M clang/test/SemaCXX/ptrauth-incomplete-virtual-member-function-return-arg-type.cpp
M clang/test/SemaCXX/vtable_pointer_authentication_attribute.cpp
Log Message:
-----------
[test][PAC][clang] Add missing tests against linux triples (#99482)
Summary:
Enhance tests introduced in #94056, #96992, #98276 and #98847 by adding
RUN and CHECK lines against linux triples.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251378
Commit: 11f12c41259025f1e37cb2d8b67955b9589d6beb
https://github.com/llvm/llvm-project/commit/11f12c41259025f1e37cb2d8b67955b9589d6beb
Author: Haowei <haowei at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/InstallAPI/diagnostics-dsym.test
Log Message:
-----------
Fix diagnostics-dsym.test on mac-arm64 (#99399)
The check ordering of diagnostics-dsym.test is wrong and it causes
test failure when running on mac-arm64 machine. This patch fixes it.
Commit: 12dfca7d0b3466e8104867afaff4d6f9b76025ce
https://github.com/llvm/llvm-project/commit/12dfca7d0b3466e8104867afaff4d6f9b76025ce
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
Log Message:
-----------
[mlir][linalg] Restrict scalable vectorisation (#98639)
Updates `vectorizeScalableVectorPrecondition` so that scalable
vectorisation is only applied in well understood and tested scenarios.
It's unlikely that we would ever want an arbitrary dimension to be
scalable. While the Linalg vectoriser should be flexible enough to
handle all possibilities:
* in more "exotic" cases, we are likely to struggle with lowerings
further down the compilation stack,
* it would be impractical given the limitations of LLVM (which usually
reflect the limitations of actual hardware) - e.g. no support for
"scalable" arrays of scalable or fixed width vectors (*).
Ultimately, the goal of this patch is to better document what's
currently supported. While this PR adds some new restrictions, no
existing tests are affected.
(*) At MLIR vector level that would correspond to e.g.
`vector<[4]x8xf32>`.
Commit: d394a0c04eda9cf3f55e481af7c003c05f10a6d4
https://github.com/llvm/llvm-project/commit/d394a0c04eda9cf3f55e481af7c003c05f10a6d4
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
Log Message:
-----------
[ADT] Use range-based for loops (NFC) (#99605)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251478
Commit: 8d01cf83a9eb21c943efedcaf137c50d7f74d791
https://github.com/llvm/llvm-project/commit/8d01cf83a9eb21c943efedcaf137c50d7f74d791
Author: Corentin Ferry <corentin.ferry at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/constant-op-fold.mlir
Log Message:
-----------
[mlir][tosa] Use roundeven in TOSA cast splat constant op folding (#99484)
Summary: The behavior of TOSA Cast operation for floating-point to integers is to round to the nearest even. This commit aligns the behavior of folding a TOSA Cast of a float splat to int, so it also uses roundeven.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251521
Commit: 41525d82ae3756a6c4783b70291aaa01e5502203
https://github.com/llvm/llvm-project/commit/41525d82ae3756a6c4783b70291aaa01e5502203
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-07-25 (Thu, 25 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
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/OpenMP/interchange_ast_print.cpp
A clang/test/OpenMP/interchange_codegen.cpp
A clang/test/OpenMP/interchange_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/interchange/foreach.cpp
A openmp/runtime/test/transform/interchange/intfor.c
A openmp/runtime/test/transform/interchange/iterfor.cpp
A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-foreach.cpp
A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-intfor.cpp
Log Message:
-----------
[Clang][OpenMP] Add interchange directive (#93022)
Add the interchange 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).
Commit: ea15d03bbe8db7f6b5475c82a71fe4c8d2cfc87d
https://github.com/llvm/llvm-project/commit/ea15d03bbe8db7f6b5475c82a71fe4c8d2cfc87d
Author: Emanuele Rocca <emanuele.rocca at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/lib/Sema/Sema.cpp
M clang/test/PCH/aarch64-sve-types.c
Log Message:
-----------
[Clang] make SVE types known to device targets too (#99446)
Summary:
For the purpose of preprocessing and declarations in header files,
ensure clang accepts SVE types for both device and host targets.
Co-authored-by: Sander De Smalen <sander.desmalen at arm.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251403
Commit: 6c9a6ab40efd7848334c5ff1a718361a91b83758
https://github.com/llvm/llvm-project/commit/6c9a6ab40efd7848334c5ff1a718361a91b83758
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Lex/PPEmbedParameters.h
M clang/lib/Lex/PPDirectives.cpp
A clang/test/Preprocessor/embed_search_paths.c
Log Message:
-----------
[clang] Fix static analyzer concerns in #embed code (#99331)
Summary:
1. Dead code in `LookupEmbedFile`. The loop always exited on the first
iteration. This was also causing a bug of not checking all directories
provided by `--embed-dir`.
2. Use of uninitialized variable `CurTok` in `LexEmbedParameters`. It
was used to initialize the field which seems to be unused. Removed
unused field, this way `CurTok` should be initialized by Lex method.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251687
Commit: 09feb6cac2d930e9312d3655487f0659f75f347b
https://github.com/llvm/llvm-project/commit/09feb6cac2d930e9312d3655487f0659f75f347b
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
A llvm/test/CodeGen/AMDGPU/fold-zero-high-bits-clear-kill-flags.mir
Log Message:
-----------
AMDGPU: Clear kill flags after FoldZeroHighBits (#99582)
Summary:
After folding, all uses of the result register are going to be replaced
by the operand register. The kill flags on the uses of the result and
operand registers are no longer valid after the replacement, and need to
be cleared.
The only exception is, however, if the kill flag is set for the operand
register, we are sure the last use of the result register is the new
last use of the operand register, and thus we are safe to keep the kill
flags.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251304
Commit: fbe075775ed83f5ab61c8b6932950c247e28dca6
https://github.com/llvm/llvm-project/commit/fbe075775ed83f5ab61c8b6932950c247e28dca6
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/safestack/CMakeLists.txt
M compiler-rt/test/safestack/lit.cfg.py
M compiler-rt/test/safestack/lit.site.cfg.py.in
Log Message:
-----------
[safestack] Support multilib testing (#98002)
While working on my safestack patches, I noticed that only the default
multilib was tested even though all multilib versions of
`libclang_rt.safestack.a` were built.
This patch fixes this, patterned after the ubsan testing support.
Tested on `amd64-pc-solaris2.11` (`amd64` and `i386`),
`sparcv9-sun-solaris2.11` (`sparcv9` and `sparc`), `x86_64-pc-linux-gnu`
(`x86_64` and `i386`), and `sparc64-unknown-linux-gnu` (`sparcv9` and
`sparc`).
Commit: e6342efaa80b8bcbee4c404b2bbf3dbc55059bcf
https://github.com/llvm/llvm-project/commit/e6342efaa80b8bcbee4c404b2bbf3dbc55059bcf
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Log Message:
-----------
[AArch64] Use TargetStackID::ScalableVector instead of hard-coded values. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251473
Commit: 46069df6e4a80e917e00b1b263c4912901c18cbe
https://github.com/llvm/llvm-project/commit/46069df6e4a80e917e00b1b263c4912901c18cbe
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/Arch/AArch64.cpp
M lld/test/ELF/aarch64-reloc-implicit-addend.test
Log Message:
-----------
[lld][AArch64] Fix handling of SHT_REL relocation addends. (#98291)
Summary:
Normally, AArch64 ELF objects use the SHT_RELA type of relocation
section, with addends stored in each relocation. But some legacy AArch64
object producers still use SHT_REL in some situations, storing the
addend in the initial value of the data item or instruction immediate
field that the relocation will modify. LLD was mishandling relocations
of this type in multiple ways.
Firstly, many of the cases in the `getImplicitAddend` switch statement
were apparently based on a misunderstanding. The relocation types that
operate on instructions should be expecting to find an instruction of
the appropriate type, and should extract its immediate field. But many
of them were instead behaving as if they expected to find a raw 64-, 32-
or 16-bit value, and wanted to extract the right range of bits. For
example, the relocation for R_AARCH64_ADD_ABS_LO12_NC read a 16-bit word
and extracted its bottom 12 bits, presumably on the thinking that the
relocation writes the low 12 bits of the value it computes. But the
input addend for SHT_REL purposes occupies the immediate field of an
AArch64 ADD instruction, which meant it should have been reading a
32-bit AArch64 instruction encoding, and extracting bits 10-21 where the
immediate field lives. Worse, the R_AARCH64_MOVW_UABS_G2 relocation was
reading 64 bits from the input section, and since it's only relocating a
32-bit instruction, the second half of those bits would have been
completely unrelated!
Adding to that confusion, most of the values being read were first
sign-extended, and _then_ had a range of bits extracted, which doesn't
make much sense. They should have first extracted some bits from the
instruction encoding, and then sign-extended that 12-, 19-, or 21-bit
result (or whatever else) to a full 64-bit value.
Secondly, after the relocated value was computed, in most cases it was
being written into the target instruction field via a bitwise OR
operation. This meant that if the instruction field didn't initially
contain all zeroes, the wrong result would end up in it. That's not even
a 100% reliable strategy for SHT_RELA, which in some situations is used
for its repeatability (in the sense that applying the relocation twice
should cause the second answer to overwrite the first, so you can
relocate an image in advance to its most likely address, and then do it
again at load time if that turns out not to be available). But for
SHT_REL, when you expect nonzero immediate fields in normal use, it
couldn't possibly work. You could see the effect of this in the existing
test, which had a lot of FFFFFF in the expected output which there
wasn't any plausible justification for.
Finally, one relocation type was actually missing: there was no support
for R_AARCH64_ADR_PREL_LO21 at all.
So I've rewritten most of the cases in `getImplicitAddend`; replaced the
bitwise ORs with overwrites; and replaced the previous test with a much
more thorough one, obtained by writing an input assembly file with
explicitly specified relocations on instructions that also have
carefully selected immediate fields, and then doing some yaml2obj
seddery to turn the RELA relocation section into a REL one.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251351
Commit: f5aa4cb161c281db222f9ed9d1ae22647722db26
https://github.com/llvm/llvm-project/commit/f5aa4cb161c281db222f9ed9d1ae22647722db26
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
Log Message:
-----------
[LV] Add tests where uniform recipe gets predicated for scalable VFs.
Summary:
Currently the tests crash, due to a VPReplicateRecipe getting predicated
for scalable vectors.
Precommits tests for https://github.com/llvm/llvm-project/pull/98892.
Test cases for
* https://github.com/llvm/llvm-project/issues/80416 and
* https://github.com/llvm/llvm-project/issues/94328
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251705
Commit: f09d763cb18e8514f0b7651533bc53dcce0dd60b
https://github.com/llvm/llvm-project/commit/f09d763cb18e8514f0b7651533bc53dcce0dd60b
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetLibraryInfo.def
M llvm/lib/Analysis/TargetLibraryInfo.cpp
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
M llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml
M llvm/unittests/Analysis/TargetLibraryInfoTest.cpp
Log Message:
-----------
[TLI] Add basic support for remquo libcall (#99611)
Summary:
This patch adds basic support for `remquo`. Constant folding support
will be submitted in a subsequent patch.
Related issue: https://github.com/llvm/llvm-project/issues/99497
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251721
Commit: 1fb9c7959adffe69a29ff4329e6486aca8099572
https://github.com/llvm/llvm-project/commit/1fb9c7959adffe69a29ff4329e6486aca8099572
Author: SpencerAbson <Spencer.Abson at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/test/Preprocessor/aarch64-target-features.c
Log Message:
-----------
[Clang][AArch64] Add missing SME/SVE2.1 feature macros (#98285)
Summary:
The 2022 SME2.1and SVE2.1 feature macros are missing from Clang. Passing
'-target-feature +sve2p1' and 'target-feature +sme2p1' should prompt
Clang to define __ARM_FEATURE_SVE2p1 and __ARM_FEATURE_SME2p1
respectively, including their prerequisits..
This patch includes __ARM_FEATURE_SVE2p1 and __ARM_FEATURE_SME2p1, plus
a clang preprocessor test for each. It also ensures that the Clang macro
builder is used in a consistent fashion across Targets/AArch64.cpp.
The specification for SVE2.1 is documented in the latest (2024 Q1) ACLE
release: https://github.com/ARM-software/acle/releases . SME2p1 is not
yet featured in ACLE documentation but its features are described under
https://developer.arm.com/documentation/ddi0487/latest/
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251594
Commit: febb389030a5069ce5db8cdac1eaf297ebf293fe
https://github.com/llvm/llvm-project/commit/febb389030a5069ce5db8cdac1eaf297ebf293fe
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/time/time.clock/time.clock.file/now.pass.cpp
Log Message:
-----------
[libcxx][test] Remove picolib UNSUPPORTED for now.pass.cpp (#99503)
This ARM semihosting call was implemented in QEMU by
https://gitlab.com/qemu-project/qemu/-/commit/4d834039c2107cb86931cb3f22ca3de6e4e42b06
and is present in the qemu-system-arm v8.1.3 used by the builders.
Commit: f3dadd8eedaee51d26424ba4b0ad3a1beb7e201a
https://github.com/llvm/llvm-project/commit/f3dadd8eedaee51d26424ba4b0ad3a1beb7e201a
Author: Alejandro Álvarez Ayllón <alejandro.alvarez at sonarsource.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
A clang/test/SemaCXX/instantiate-template-broken-nontype-default.cpp
Log Message:
-----------
[Sema] Fix assertion error in Sema::FindInstantiatedDecl (#96509)
...when looking for a template instantiation with a non-type parameter of
unknown type and with a default value.
This can happen when a template non-type parameter has a broken
expression that gets replaced by a `RecoveryExpr`.
Commit: ad8190f12136bff0b6a500884e54d108b541cd5d
https://github.com/llvm/llvm-project/commit/ad8190f12136bff0b6a500884e54d108b541cd5d
Author: SpencerAbson <Spencer.Abson at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
M llvm/test/CodeGen/AArch64/fixed-point-conv-vec-pat.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
Log Message:
-----------
[AArch64] Remove redundant instructions in int-to-fp of lowest vector… (#98602)
Summary:
… element.
When converting the lowest element (that in lane 0) of a vector from an
integer to a floating-point value, LLVM should select the SIMD scalar
variant of CVTF
(https://developer.arm.com/documentation/dui0801/g/A64-SIMD-Scalar-Instructions/SCVTF--scalar--integer-)
to avoid the FPR to GPR register transfers that are required to use the
general floating-point variant
(https://developer.arm.com/documentation/dui0801/g/A64-Floating-point-Instructions/SCVTF--scalar--integer-).
This is possible as the lowest element can be referred to by the
corresponding scalar sub-register with the width of the vector's
constituent elements.
This patch adds new TableGen patterns to remove these redundant
instructions for AArch64, as well as back-end tests to ensure the new
preferred instruction selection result is produced. Existing tests that
relied on the previous selection result have also been updated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251345
Commit: ba0896e77c36e4e258e7398d4c813d9104aabcee
https://github.com/llvm/llvm-project/commit/ba0896e77c36e4e258e7398d4c813d9104aabcee
Author: David Sherwood <david.sherwood at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/Loads.h
M llvm/lib/Analysis/Loads.cpp
M llvm/unittests/Analysis/LoadsTest.cpp
Log Message:
-----------
[Analysis] Add new function isDereferenceableReadOnlyLoop (#97292)
Summary:
I created this patch due to a reviewer request on PR #88385 to split off
the analysis changes, however without the other code in that PR I can
only test the new function with unit tests.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251373
Commit: 8769414dfed36715123e120b23fbb2ecc79f1a42
https://github.com/llvm/llvm-project/commit/8769414dfed36715123e120b23fbb2ecc79f1a42
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/ashr.ll
Log Message:
-----------
[CVP] Regenerate test checks (NFC)
Commit: 2cb28909e150165d864f0531714318365bc1eb7e
https://github.com/llvm/llvm-project/commit/2cb28909e150165d864f0531714318365bc1eb7e
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
Log Message:
-----------
[CVP] Add tests for range return attributes (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251637
Commit: 09c2a7010dbcf031686de278d2767e207970d099
https://github.com/llvm/llvm-project/commit/09c2a7010dbcf031686de278d2767e207970d099
Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/double_reduct.ll
M llvm/test/CodeGen/AArch64/sve-doublereduct.ll
M llvm/test/CodeGen/AArch64/sve-fixed-vector-zext.ll
M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reductions.ll
M llvm/test/CodeGen/AArch64/vecreduce-add.ll
Log Message:
-----------
[AArch64][SVE] Improve code quality of vector unsigned/signed add reductions. (#97339)
Summary:
For SVE we don't have to zero extend and sum part of the result before
issuing UADDV instruction. Also this change allows to handle bigger than
a legal vector type more efficiently and lower a fixed-length vector
type to SVE's UADDV where appropriate.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251320
Commit: 6124e240cc088ea06136a01d41dc6b23b6c64613
https://github.com/llvm/llvm-project/commit/6124e240cc088ea06136a01d41dc6b23b6c64613
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll
Log Message:
-----------
[LV] Add test with users both demanding all lanes and first-lane-only.
Summary:
Add a test case where scalar steps are used by both a VPReplicateRecipe
(demands all scalar lanes) and a VPInstruction that only demands the
first lane.
Test case for https://github.com/llvm/llvm-project/issues/88849.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251730
Commit: 0782ffd2e661e70f8498270304f63c619b881fab
https://github.com/llvm/llvm-project/commit/0782ffd2e661e70f8498270304f63c619b881fab
Author: Pavel Labath <pavel at labath.sk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/API/SBSaveCoreOptions.h
M lldb/include/lldb/lldb-forward.h
Log Message:
-----------
[lldb] Forward-declare lldb-private::SaveCoreOptions
to avoid including private headers from the API headers.
This fixes API tests which link against the lldb library.
Commit: 37961e7d6255814525133496187db102a6a76454
https://github.com/llvm/llvm-project/commit/37961e7d6255814525133496187db102a6a76454
Author: Sergio Afonso <safonsof at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
Log Message:
-----------
[MLIR][OpenMP] NFC: Sort clause definitions (#99504)
Summary:
This patch moves the `filter` clause definition to keep alphabetical
sorting of OpenMPClauses.td.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250788
Commit: 5c71e48c03ff803a8d575efb72852f95072220d5
https://github.com/llvm/llvm-project/commit/5c71e48c03ff803a8d575efb72852f95072220d5
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/include/llvm/IR/Attributes.td
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64CallingConvention.td
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
A llvm/test/CodeGen/AArch64/arm64ec-hybrid-patchable.ll
Log Message:
-----------
[CodeGen][ARM64EC] Add support for hybrid_patchable attribute. (#92965)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251384
Commit: c9edf3eb2ffb4198358fe5eec83d93d93f71d458
https://github.com/llvm/llvm-project/commit/c9edf3eb2ffb4198358fe5eec83d93d93f71d458
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Options.td
M clang/test/Driver/Ofast.c
Log Message:
-----------
[clang][NFC] Fix typo in `-Ofast` deprecation warning
Summary: A follow-up for #98736
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251383
Commit: 3931b51f58d550868a525e125040ae8bd4c08f6b
https://github.com/llvm/llvm-project/commit/3931b51f58d550868a525e125040ae8bd4c08f6b
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ADT/SetOperations.h
Log Message:
-----------
[ADT] Teach set_intersect to erase with iterators (#99569)
Summary:
Without this patch, we erase an element in S1 by value even though we
have an interator pointing to it. This patch tries to use erase(iter)
to avoid redundant lookups.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251415
Commit: e9bed7f62b99a458c9919640c242e03d39784c9b
https://github.com/llvm/llvm-project/commit/e9bed7f62b99a458c9919640c242e03d39784c9b
Author: wanglei <wanglei at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h
M llvm/test/MC/LoongArch/Relocations/relocations.s
Log Message:
-----------
[LoongArch] Support parsing the `%le_{hi20,add,lo12}_r` modifiers
Reviewed By: SixWeining
Pull Request: https://github.com/llvm/llvm-project/pull/99485
Commit: 60310d060838120d64a8d7524706f49436c9326d
https://github.com/llvm/llvm-project/commit/60310d060838120d64a8d7524706f49436c9326d
Author: wanglei <wanglei at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
M lld/test/ELF/loongarch-tls-le.s
Log Message:
-----------
[lld][ELF][LoongArch] Add support for R_LARCH_LE_{HI20,ADD,LO12}_R relocations
Summary:
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251385
Commit: dfd2e97816f39ddf842f9b58c4c38514840e8434
https://github.com/llvm/llvm-project/commit/dfd2e97816f39ddf842f9b58c4c38514840e8434
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll
Log Message:
-----------
[VPlan] Relax assertion retrieving a scalar from VPTransformState::get.
The current assertion VPTransformState::get when retrieving a single
scalar only does not account for cases where a def has multiple users,
some demanding all scalar lanes, some demanding only a single scalar.
For an example, see the modified test case. Relax the assertion by also
allowing requesting scalar lanes only when the Def doesn't have only its
first lane used.
Fixes https://github.com/llvm/llvm-project/issues/88849.
Commit: ab493a98417d0badfbcd18a8d9bbb5f6d9774574
https://github.com/llvm/llvm-project/commit/ab493a98417d0badfbcd18a8d9bbb5f6d9774574
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Analysis/ValueTracking/numsignbits-shl.ll
Log Message:
-----------
[ValueTracking] Pre-commit ComputeNumSignBits test for (shl (zext X), C)
Summary:
Adding a test case for potential simplifications of
(shl (zext X), C)
based on number of known sign bits in X.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251285
Commit: 523845fe63399747ba38c880f8f82fb3c197862d
https://github.com/llvm/llvm-project/commit/523845fe63399747ba38c880f8f82fb3c197862d
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/numsignbits-shl.ll
Log Message:
-----------
[ValueTracking] Let ComputeKnownSignBits handle (shl (zext X), C) (#97693)
Summary:
Add simple support for looking through a zext when doing
ComputeKnownSignBits for shl. This is valid for the case when
all extended bits are shifted out, because then the number of sign
bits can be found by analysing the zext operand.
The solution here is simple as it only handle a single zext (not
passing remaining left shift amount during recursion). It could be
possible to generalize this in the future by for example passing an
'OffsetFromMSB' parameter to ComputeNumSignBitsImpl, telling it to
calculate number of sign bits starting at some offset from the most
significant bit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251376
Commit: 75409ccf40d602a845e2e9f47ef30b1521206356
https://github.com/llvm/llvm-project/commit/75409ccf40d602a845e2e9f47ef30b1521206356
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
M llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
Log Message:
-----------
[LV] Check isPredInst instead of isScalarWithPred in uniform analysis. (#98892)
Summary:
Any instruction marked as uniform will result in a uniform
VPReplicateRecipe. If it requires predication, it will be placed in a
replicate region, even if isScalarWithPredication returns false.
Check isPredicatedInst instead of isScalarWithPredication to avoid
generating uniform VPReplicateRecipes placed inside a replicate region.
This fixes an assertion when using scalable VFs.
Fixes https://github.com/llvm/llvm-project/issues/80416.
Fixes https://github.com/llvm/llvm-project/issues/94328.
Fixes https://github.com/llvm/llvm-project/issues/99625.
PR: https://github.com/llvm/llvm-project/pull/98892
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251530
Commit: e150778067e068d4f856e6a7f89ff7330a1d08ff
https://github.com/llvm/llvm-project/commit/e150778067e068d4f856e6a7f89ff7330a1d08ff
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaAttr.cpp
Log Message:
-----------
[clang] Add `std::span` to the default gsl pointer annotation list. (#99622)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251408
Commit: e1abf2c6fcc29cae2c56ff5348e6112102818fd7
https://github.com/llvm/llvm-project/commit/e1abf2c6fcc29cae2c56ff5348e6112102818fd7
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[LLDB][test] Improve SHELL detection on Windows in Makefile.rules (#99532)
Summary:
In MinGW make, the `%windir%` variable has a lowercase name `$(windir)`
when launched from cmd.exe, and `$(WINDIR)` name when launched from
MSYS2, since MSYS2 represents standard Windows environment variables
names in upper case.
This commit makes Makefile.rules consider both run variants.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251450
Commit: d08bc0fd404b2ff932586a58486ca59d61297b41
https://github.com/llvm/llvm-project/commit/d08bc0fd404b2ff932586a58486ca59d61297b41
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaAttr.cpp
Log Message:
-----------
[clang] Add the `const` to all default lists in SemaAttr.cpp, NFC
Summary: Address the comment in https://github.com/llvm/llvm-project/pull/99622#issuecomment-2238800532
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251273
Commit: 8c7e687d37830e35fa1db70687a762f0d0a01cdb
https://github.com/llvm/llvm-project/commit/8c7e687d37830e35fa1db70687a762f0d0a01cdb
Author: dlav-sc <daniil.avdeev at syntacore.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
Log Message:
-----------
[lldb] SHT_NOBITS sections type (#99044)
Summary:
.sbss section was recognized as eSectionTypeOther, but has to be
eSectionTypeZeroFill.
Fixed tests for RISCV target:
TestClassLoadingViaMemberTypedef.TestCase
TestClassTemplateNonTypeParameterPack.TestCaseClassTemplateNonTypeParameterPack
TestThreadSelectionBug.TestThreadSelectionBug
lldbsuite.test.lldbtest.TestOffsetof
lldbsuite.test.lldbtest.TestOffsetofCpp
TestTargetDumpTypeSystem.TestCase
TestCPP11EnumTypes.CPP11EnumTypesTestCase
TestCppIsTypeComplete.TestCase
TestExprCrash.ExprCrashTestCase
TestDebugIndexCache.DebugIndexCacheTestcase
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251404
Commit: 1144dde45cf71b05be47630a645f052c20b95080
https://github.com/llvm/llvm-project/commit/1144dde45cf71b05be47630a645f052c20b95080
Author: Dan Liew <dan at su-root.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/Sema/SemaDeclAttr.cpp
A clang/test/Sema/attr-counted-by-bounds-safety-vlas.c
Log Message:
-----------
[BoundsSafety] Add `-fexperimental-bounds-safety` CC1 and language option and use it to tweak `counted_by`'s semantics (#92623)
Summary:
This adds the `-fexperimental-bounds-safety` cc1 and corresponding
language option. This language option enables "-fbounds-safety" which is
a bounds-safety extension for C that is being incrementally upstreamed.
This cc1 flag is not exposed as a driver flag yet because most of the
implementation isn't upstream yet.
The language option is used to make a small semantic change to how the
`counted_by` attribute is treated. Without
`-fexperimental-bounds-safety` the attribute is allowed (but emits a
warning) on a flexible array member where the element type is a struct
with a flexible array member. With the flag this situation is an error.
E.g.
```
struct has_unannotated_FAM {
int count;
char buffer[];
};
struct buffer_of_structs_with_unnannotated_FAM {
int count;
// Forbidden with `-fexperimental-bounds-safety`
struct has_unannotated_FAM Arr[] __counted_by(count);
};
```
rdar://125400392
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251547
Commit: e7466a9b80318e3e37b5cace9382f8af2799d157
https://github.com/llvm/llvm-project/commit/e7466a9b80318e3e37b5cace9382f8af2799d157
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/timing/CMakeLists.txt
Log Message:
-----------
[libc] Add AMDGPU Timing to CMake (#99603)
Summary:
`libc/benchmarks/gpu/timing/CMakeLists.txt` did not correctly build
`amdgpu` utils. This PR fixes that issue by adding `amdgpu` to the loop
that adds the correct sub directories.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251434
Commit: c3bd7518f69d3e0db143b52e568bd9b89c2058c3
https://github.com/llvm/llvm-project/commit/c3bd7518f69d3e0db143b52e568bd9b89c2058c3
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/tbaa-pointers.c
M clang/test/CodeGenCXX/attr-likelihood-iteration-stmt.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
Log Message:
-----------
Recommit "[TBAA] Emit distinct TBAA tags for pointers with different depths,types. (#76612)"
Summary:
This reverts the revert commit bee240367cc48bbc93fe5eb57d537968dfe4419f.
This version includes updates to the tests to use patterns when matching
the pointer argument.
Original commit message:
This patch extends Clang's TBAA generation code to emit distinct tags
for incompatible pointer types.
Pointers with different element types are incompatible if the pointee
types are also incompatible (modulo sugar/modifiers).
Express this in TBAA by generating different tags for pointers based on
the pointer depth and pointee type. To get the TBAA tag for the pointee
type it uses getTypeInfoHelper on the pointee type.
(Moved from https://reviews.llvm.org/D122573)
PR: https://github.com/llvm/llvm-project/pull/76612
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251466
Commit: ff262f5beaf6207e006835d6160b68413985a07b
https://github.com/llvm/llvm-project/commit/ff262f5beaf6207e006835d6160b68413985a07b
Author: Dan Liew <dan at su-root.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/CMakeLists.txt
A clang/lib/Sema/SemaBoundsSafety.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
Log Message:
-----------
[clang][NFC] Move Bounds Safety Sema code to `SemaBoundsSafety.cpp` (#99330)
Summary:
This patch adds a new `SemaBoundsSafety.cpp` source file and moves the
existing `CheckCountedByAttrOnField` function and related helper
functions and types from `SemaDeclAttr.cpp` into the new source file.
The `CheckCountedByAttrOnField` function is now a method on the Sema
class and now has doxygen comments.
The goal behind this refactor is to clearly separate the
`-fbounds-safety` Sema code from everything else.
Although `counted_by(_or_null)` and `sized_by(_or_null)` attributes have
a meaning outside of `-fbounds-safety` it seems reasonable to also have
the Sema logic live in `SemaBoundsSafety.cpp` since the intention is
that the attributes will have the same semantics (but not necessarily
the same enforcement).
As `-fbounds-safety` is upstreamed additional Sema checks will be added
to `SemaBoundsSafety.cpp`.
rdar://131777237
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251375
Commit: 17043c5013665fa70172fb34051fc203c3303f65
https://github.com/llvm/llvm-project/commit/17043c5013665fa70172fb34051fc203c3303f65
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Sema/BUILD.gn
Log Message:
-----------
[gn build] Port 176bf50cd244
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251714
Commit: 03ae161387c908b5217407976120bc23f2b5ded0
https://github.com/llvm/llvm-project/commit/03ae161387c908b5217407976120bc23f2b5ded0
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Expr.cpp
M clang/lib/Sema/SemaInit.cpp
A clang/test/Preprocessor/Inputs/big_char.txt
M clang/test/Preprocessor/embed_codegen.cpp
M clang/test/Preprocessor/embed_weird.cpp
Log Message:
-----------
[clang] Fix underlying type of EmbedExpr (#99050)
Summary:
This patch makes remaining cases of #embed to emit int type since there
is an agreement to do that for C. C++ is being discussed, but in general
we don't want to produce different types for C and C++.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251342
Commit: 1b46bc0b27e044da066592826dd9a15692cfa31c
https://github.com/llvm/llvm-project/commit/1b46bc0b27e044da066592826dd9a15692cfa31c
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Driver.h
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
A clang/test/Driver/darwin-print-libgcc-file-name.c
Log Message:
-----------
[clang][driver] Fix -print-libgcc-file-name on Darwin platforms (#98325)
On Darwin, -print-libgcc-file-name was returning a nonsensical result.
It would return the name of the library that would be used by the
default toolchain implementation, but that was something that didn't
exist on Darwin.
Fixing this requires initializing the Darwin toolchain before processing
`-print-libgcc-file-name`. Previously, the Darwin toolchain would only
be initialized when building the jobs for this compilation, which is too
late since `-print-libgcc-file-name` requires the toolchain to be
initialized in order to provide the right results.
rdar://90633749
Co-authored-by: Gabor Horvath <gaborh at apple.com>
Commit: fc36a0ed4fa054d6e9ef9da36303b9c5b1a82fc4
https://github.com/llvm/llvm-project/commit/fc36a0ed4fa054d6e9ef9da36303b9c5b1a82fc4
Author: Yangyu Chen <cyy at cyyself.name>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP] Increase UsesLimit to 64 (#99467)
Since commit 82b800ecb35fb46881aa52000fa40b1b99aa654e addressed the
issue #99327 , we see some performance regression (13%) on some
verilator generated C++ code. This is because the UsesLimit is set to 8,
which is too small for the verilator generated code. I have analyzed the
need for the UsesLimit from [1] and found that the UsesLimit should be
at least 64 to cover most of these cases. Thus, This patch increases the
UsesLimit to 64.
Link:
https://github.com/llvm/llvm-project/issues/99327#issuecomment-2236052879
[1]
Signed-off-by: Yangyu Chen <cyy at cyyself.name>
Commit: 1642e4e5d0aa5136c184e789035d6a09af321d76
https://github.com/llvm/llvm-project/commit/1642e4e5d0aa5136c184e789035d6a09af321d76
Author: Egor Zhdan <e_zhdan at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/APINotes/APINotesReader.h
M clang/include/clang/APINotes/APINotesWriter.h
M clang/include/clang/APINotes/Types.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/Sema/SemaAPINotes.cpp
A clang/test/APINotes/Inputs/Headers/Methods.apinotes
A clang/test/APINotes/Inputs/Headers/Methods.h
M clang/test/APINotes/Inputs/Headers/Namespaces.apinotes
M clang/test/APINotes/Inputs/Headers/Namespaces.h
M clang/test/APINotes/Inputs/Headers/module.modulemap
A clang/test/APINotes/methods.cpp
M clang/test/APINotes/namespaces.cpp
Log Message:
-----------
[APINotes] Support annotating C++ methods
Summary:
This adds support for adding Clang attributes to C++ methods declared
within C++ records by using API Notes.
For instance:
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251211
Commit: dc0d8c04a1c1f15df8bdebd9909d829ce07491aa
https://github.com/llvm/llvm-project/commit/dc0d8c04a1c1f15df8bdebd9909d829ce07491aa
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Compiler.h
Log Message:
-----------
[clang][Interp] Control InitStack activity state in visitInitList
Summary:
This doesn't change anything about the current tests, but helps
once those tests change because of #97308
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251512
Commit: 9dc657c15f44c9ee68daa23ad935fa84b92b9d22
https://github.com/llvm/llvm-project/commit/9dc657c15f44c9ee68daa23ad935fa84b92b9d22
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGen/tbaa-pointers.c
Log Message:
-----------
[TBAA] Remove references to entry BB in check lines for tbaa-pointers.c
Follow-up to 123c036bd361d to remove references to entry BB name from
checks, to fix tests for builds that do not generate block names.
Commit: a01788a355f80210761d1bfeaf0fee67680348cd
https://github.com/llvm/llvm-project/commit/a01788a355f80210761d1bfeaf0fee67680348cd
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/test/Sema/switch.c
Log Message:
-----------
[clang][Interp] Only diagnose out of bounds enum values in C++
Commit: c3640b1156942a6f357b4a11255347e99734f033
https://github.com/llvm/llvm-project/commit/c3640b1156942a6f357b4a11255347e99734f033
Author: Rafael Ubal <rubal at mathworks.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/test/Dialect/Shape/canonicalize.mlir
A mlir/test/Dialect/Shape/unranked-tensor-lowering.mlir
M mlir/test/Dialect/Tensor/canonicalize.mlir
Log Message:
-----------
[mlir] New canonicalization patterns for shape.shape_of and tensor.reshape (#98531)
This PR includes 3 new canonicalization patterns:
- Operation `shape.shape_of`: shape of reshape
```
// Before
func.func @f(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>) -> tensor<?xindex> {
%reshape = tensor.reshape %arg0(%arg1) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
%0 = shape.shape_of %reshape : tensor<*xf32> -> tensor<?xindex>
return %0 : tensor<?xindex>
}
// After
func.func @f(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>) -> tensor<?xindex> {
return %arg1 : tensor<?xindex>
}
```
- Operation `tensor.reshape`: reshape of reshape
```
// Before
func.func @fold_tensor_reshape(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>, %arg2: tensor<?xindex>) -> tensor<*xf32> {
%0 = tensor.reshape %arg0(%arg1) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
%1 = tensor.reshape %0(%arg2) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
return %1 : tensor<*xf32>
}
// After
func.func @fold_tensor_reshape(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>, %arg2: tensor<?xindex>) -> tensor<*xf32> {
%reshape = tensor.reshape %arg0(%arg2) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
return %reshape : tensor<*xf32>
}
```
- Operation `tensor.reshape`: reshape 1D to 1D
```
// Before
func.func @fold_reshape_1d(%input: tensor<?xf32>, %shape: tensor<1xindex>) -> tensor<?xf32> {
%0 = tensor.reshape %input(%shape) : (tensor<?xf32>, tensor<1xindex>) -> tensor<?xf32>
return %0 : tensor<?xf32>
}
// After
func.func @fold_reshape_1d(%arg0: tensor<?xf32>, %arg1: tensor<1xindex>) -> tensor<?xf32> {
return %arg0 : tensor<?xf32>
}
```
These three canonicalization patterns cooperate to simplify the IR
structure emerging from the lowering of certain element-wise ops with
unranked tensor inputs. See file `unranked-tensor-lowering.mlir` in the
proposed change list for a detailed example and description.
For context, this PR is meant to enable code optimizations for the code
generated while lowering ops `quant.qcast` and `quant.dcast` with
unranked tensors, as proposed in
https://discourse.llvm.org/t/rfc-improvements-in-the-quant-dialect/79942
(implementation currently in progress).
Commit: 5fe4c4c430ffe1099e3b8327ae9eca9c90e1a41a
https://github.com/llvm/llvm-project/commit/5fe4c4c430ffe1099e3b8327ae9eca9c90e1a41a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/trunc-bv-multi-uses.ll
Log Message:
-----------
[SLP][NFC]Add a test for incorrect minbitwidth analysis for trunc'ed bv, NFC.
Commit: 15b06426423b328234767c97581312a8f7183174
https://github.com/llvm/llvm-project/commit/15b06426423b328234767c97581312a8f7183174
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-version.c
Log Message:
-----------
[FMV][AArch64] Do not optimize away runtime checks for implied features (#99522)
Summary:
When generating the body of the ifunc resolver, clang skips runtime
checks for features that are implied from the command line. We bend this
rule for certain features (memtag, bti, dgh), but this happens quite
arbitrarily in my opinion. The reasoning is that some features are in
the HINT instruction space, meaning they operate as NOPs if the hardware
does not support them. Still the user wants to detect their presence
with runtime checks. See #90928 for details.
I think we should always perform runtime checks regardless of the
feature and then try to statically resolve calls whenever a function is
compiled with a sufficiently high set of architecture features (so
including target/target_version/target_clones attributes, and command
line options). This is what GCC does. We have an open PR in LLVM
GlobalOpt since it was suggested not to perform such codegen
optimizations in clang anyway. See #87939.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251293
Commit: 3b3dcfd7a822a530f4ad1d3935dc518a14fb5fa4
https://github.com/llvm/llvm-project/commit/3b3dcfd7a822a530f4ad1d3935dc518a14fb5fa4
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/VecFuncs.def
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-acos.mir
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-asin.mir
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-atan.mir
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-cosh.mir
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-sinh.mir
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-tanh.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/f16-instructions.ll
M llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll
M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
M llvm/test/CodeGen/AArch64/illegal-float-ops.ll
M llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll
M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll
M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef.ll
M llvm/test/CodeGen/AArch64/vec-libcalls.ll
M llvm/test/Transforms/LoopVectorize/AArch64/veclib-calls-libsystem-darwin.ll
M llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll
Log Message:
-----------
[aarch64] Add hyperbolic and arc trig intrinsic lowering (#98937)
Summary:
## The change(s)
- `VecFuncs.def`: define intrinsic to sleef/armpl mapping
- `LegalizerHelper.cpp`: add missing `fewerElementsVector` handling for
the new trig intrinsics
- `AArch64ISelLowering.cpp`: Add arch64 specializations for lowering
like neon instructions
- `AArch64LegalizerInfo.cpp`: Legalize the new trig intrinsics. aarch64
has specail legalization requirments in `AArch64LegalizerInfo.cpp`. If
we redirect the clang builtin without handling this we will break the
aarch64 compiler
## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.
https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966
## Why is aarch64 needed
The last step is to redirect the `acos`, `asin`, `atan`, `cosh`, `sinh`,
and `tanh` to emit the intrinsic. We can't emit the intrinsic without
the intrinsics becoming legal for aarch64 in `AArch64LegalizerInfo.cpp`
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251359
Commit: e417907ce79e2318f6889e19ef6df54c7f9bf9f8
https://github.com/llvm/llvm-project/commit/e417907ce79e2318f6889e19ef6df54c7f9bf9f8
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
A llvm/test/CodeGen/WebAssembly/libcalls-trig.ll
Log Message:
-----------
[WebAssembly] Add Support for Arc and Hyperbolic trig llvm intrinsics (#98755)
## Change:
- WebAssemblyRuntimeLibcallSignatures.cpp: Expose the RTLIB's for use by
WASM
- Add trig specific test cases
## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.
https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966
## Why Web Assembly?
>From past changes to try and support constraint intrinsics the changes
to the trig builtins to emit intrinsics\constraint intrinsics broke the
WASM build. This is an attempt to preempt any such build break.
- https://github.com/llvm/llvm-project/pull/95082
-
https://github.com/llvm/llvm-project/pull/94559#issuecomment-2159923215
Commit: 786aaad2429ab0d9de230732189dd93624a43f84
https://github.com/llvm/llvm-project/commit/786aaad2429ab0d9de230732189dd93624a43f84
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/X86/math-builtins.c
M clang/test/CodeGen/constrained-math-builtins.c
M clang/test/CodeGen/libcalls.c
M clang/test/CodeGen/math-libcalls.c
M clang/test/CodeGenOpenCL/builtins-f16.cl
Log Message:
-----------
[clang] Emit constraint intrinsics for arc and hyperbolic trig clang builtins (#98949)
Summary:
## Change(s)
- `Builtins.td` - Add f16 support for libm arc and hyperbolic trig
functions
- `CGBuiltin.cpp` - Emit constraint intrinsics for trig clang builtins
## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics. Which was discussed in
this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.
https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966
## Precursor PR(s)
Note this PR needs Merge after:
- #98937
- #98755
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251574
Commit: cd3438d7f4d24e5a78e13ce12615465e04185f87
https://github.com/llvm/llvm-project/commit/cd3438d7f4d24e5a78e13ce12615465e04185f87
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/llvm-libc-types/struct_statvfs.h
M libc/src/sys/statvfs/fstatvfs.h
M libc/src/sys/statvfs/linux/statfs_utils.h
M libc/src/sys/statvfs/statvfs.h
Log Message:
-----------
[libc] Fix headers for statvfs implementation
Summary:
Summry:
@lntue
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251448
Commit: d8cb73560cb33f1834c026cc939e9c790e402b7e
https://github.com/llvm/llvm-project/commit/d8cb73560cb33f1834c026cc939e9c790e402b7e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/trunc-bv-multi-uses.ll
Log Message:
-----------
[SLP]Do not trunc bv nodes, if the user is vectorized an requires wider type.
Summary:
If at least a single user of the gathered trunc'ed instruction is
vectorized and requires wider type, than the trunc node, such
gathers/buildvectors should not be optimized for better bitwidth.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251335
Commit: 33682870386206903529fb435ca8dd4421436372
https://github.com/llvm/llvm-project/commit/33682870386206903529fb435ca8dd4421436372
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 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:
-----------
Reapply "Add source file name for template instantiations in -ftime-trace" (#99545)
Summary: Fix the Windows test.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251438
Commit: 3b9b2356d76531283df3771d5cf1a16adf79275f
https://github.com/llvm/llvm-project/commit/3b9b2356d76531283df3771d5cf1a16adf79275f
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/FPUtil/Hypot.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/hypotf.cpp
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/HypotTest.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math] Fix signaling nan handling of hypot(f) and improve hypotf performance. (#99432)
Summary:
The errors were reported by Paul Zimmermann with the CORE-MATH project's
test suites:
```
zimmerma at tartine:/tmp/core-math$ CORE_MATH_CHECK_STD=true LIBM=$L ./check.sh hypot
Running worst cases check in --rndn mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndz mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndu mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndd mode...
Spurious inexact exception for x=0x1.ffffffffffffep+24 y=0x1p+0 (z=0x1.0000000000001p+25)
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251275
Commit: 5b1afd6b241bbfded229e5df647fc95b25dff0e1
https://github.com/llvm/llvm-project/commit/5b1afd6b241bbfded229e5df647fc95b25dff0e1
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/CheckExprLifetime.cpp
Log Message:
-----------
[clang] NFC, simplify the code in CheckExprLifetime.cpp (#99637)
Summary:
No need to get the Owner/Pointer attr via the type. The Decl has this
attr information.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251260
Commit: 11fca5a7802f87bd5761fe50812e4045ae014a70
https://github.com/llvm/llvm-project/commit/11fca5a7802f87bd5761fe50812e4045ae014a70
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGen/tbaa-pointers.c
Log Message:
-----------
[TBAA] Remove remaining entry BB in check lines for tbaa-pointers.c (2)
Summary: Missed out of 47c08fb8d79ec.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251444
Commit: 8f264db96bbce056c625ea796077123f87b9eea0
https://github.com/llvm/llvm-project/commit/8f264db96bbce056c625ea796077123f87b9eea0
Author: David Truby <david.truby at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
A flang/test/Lower/OpenMP/parallel-wsloop-lastpriv.f90
Log Message:
-----------
[flang][OpenMP] Implement lastprivate with collapse (#99500)
This patch enables the lastprivate clause to be used in the presence of
the collapse clause.
Note: the way we currently implement lastprivate means that this adds a
large number of compare instructions to the end of every iteration of
the loop. This is a clearly non-optimal thing to do, but lastprivate in
general will need re-implementing to prevent this. This is planned as
part of the delayed privatization work. This current implementation is
just a stop-gap measure as generating sub-optimal but working code is
better than crashing out.
Commit: ff6a3f21406cfcfee19b751411964eae3b3969d8
https://github.com/llvm/llvm-project/commit/ff6a3f21406cfcfee19b751411964eae3b3969d8
Author: Dhruv Chauhan <dhruv.chauhan at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Log Message:
-----------
[TOSA] Add lowering for `tosa.sin` and `tosa.cos` (#99651)
Summary:
Lower tosa ops to `mlir::math::SinOp` and `mlir::math::CosOp` as part of
the tosa to linalg conversion.
Added lit tests for conversion.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251318
Commit: a2f2c85d63cd3f27397ff903143699155f7fcfbd
https://github.com/llvm/llvm-project/commit/a2f2c85d63cd3f27397ff903143699155f7fcfbd
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/src/time/linux/nanosleep.cpp
Log Message:
-----------
[libc] Fix missing sysroot path for kernel headers when crosscompiling (#99588)
Summary:
When crosscompiling, we need to search for the linux kernel headers in the sysroot but since #97486 the linux kernel headers were always searched in /usr/include.
This patch fixes this behaviour by prepending a '=' to where we search for the kernel headers. As per the gcc/clang's documentation a '=' before the path is replaced by the sysroot.
This patch also includes a fix for rv32, that fails to compile due to a missing definition of CLOCK_REALTIME after this change.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251638
Commit: ddf8704d9056f8645b2a2d4b027d06af8ad0e46e
https://github.com/llvm/llvm-project/commit/ddf8704d9056f8645b2a2d4b027d06af8ad0e46e
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/Address.h
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/test/CodeGen/ubsan-function.cpp
Log Message:
-----------
[PAC] Authenticate function pointers in UBSan type checks (#99590)
Summary:
The function pointer needs to be authenticated before doing the type
checks.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251193
Commit: 8a34cbef0b17a7af32ef13c5991e6c8d75f3381a
https://github.com/llvm/llvm-project/commit/8a34cbef0b17a7af32ef13c5991e6c8d75f3381a
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/test/CodeGen/ptrauth-function-type-discriminator.c
Log Message:
-----------
[PAC] Fix a crash when signing a pointer to a function with an incomplete enum parameter (#99595)
Summary: Use int as the underlying type when the enum type is incomplete.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251292
Commit: fb641c738552cc8524535d10c37bc2a974d3de91
https://github.com/llvm/llvm-project/commit/fb641c738552cc8524535d10c37bc2a974d3de91
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/tsan/debug_alloc_stack.cpp
Log Message:
-----------
[tsan] Consume leading zeroes in a test
Summary: Follow up to #98578
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251707
Commit: e4e31333606097cf53ed321d70bfeb04fae7e793
https://github.com/llvm/llvm-project/commit/e4e31333606097cf53ed321d70bfeb04fae7e793
Author: Guillermo Callaghan <guillermo.callaghan at huawei.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
M mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
Log Message:
-----------
[mlir] Makes `zip_shortest` an optional keyword in `transform.foreach` (#98492)
Summary:
This PR addresses a [comment] made by @ftynse about the syntax for
`ForeachOp`. The syntax was modified by @muneebkhan85 in #82792, where
the attribute dictionary was moved to the middle.
This patch moves it back to its original place at the end. And
introduces an optional keyword for `zip_shortest`.
[comment]:
https://github.com/llvm/llvm-project/pull/82792#pullrequestreview-2132814144
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251443
Commit: 2c4b443eff4c41fcc79b79504d3091ba062efcbe
https://github.com/llvm/llvm-project/commit/2c4b443eff4c41fcc79b79504d3091ba062efcbe
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/TestingLibcxx.rst
Log Message:
-----------
[libc++][docs] Add tip for developers running the test suite on macOS (#99544)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251314
Commit: fe2a719f9f587fb717b46e65ed7b509c1e8ca333
https://github.com/llvm/llvm-project/commit/fe2a719f9f587fb717b46e65ed7b509c1e8ca333
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/utils/ci/buildkite-pipeline.yml
Log Message:
-----------
[libc++] Refactor buildkite-pipeline.yml (#99483)
Summary: This patch removes unused stuff from the Buildkite pipeline definition.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251288
Commit: eb703f99cda7a681255c666aa5d460d028343df4
https://github.com/llvm/llvm-project/commit/eb703f99cda7a681255c666aa5d460d028343df4
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
A llvm/lib/Target/AArch64/peephole-sxtw.mir
M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
Log Message:
-----------
[AArch64] Remove superfluous sxtw in peephole opt (#96293)
Summary:
Across a basic-block we might have an i32 extract from a value that only
operates on upper bits (for example a sxtw). We can replace the COPY
with a new version skipping the sxtw.
This is a re-commit of 7f2a5dfe35f8bbaca2819644c7aa844f938befd6, with a fix for
removing all the intermediate COPY nodes (and some extra debug logging).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251396
Commit: d5ea3087cdf1ca04884487ed9af0ff1ed9a3c0a0
https://github.com/llvm/llvm-project/commit/d5ea3087cdf1ca04884487ed9af0ff1ed9a3c0a0
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R llvm/test/CodeGen/AArch64/arm64-sqxtn2-combine.ll
M llvm/test/CodeGen/AArch64/qmovn.ll
Log Message:
-----------
[AArch64] Additional sqxtn and uqxtn tests. NFC
Summary:
There are also some sqxtun2 tests if I got them correct. The
arm64-sqxtn2-combine.ll test was moved to qmovn to keep them
in the same place.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251619
Commit: 62a737f2c6d9602fa10ca7e3ea83b86114c9406d
https://github.com/llvm/llvm-project/commit/62a737f2c6d9602fa10ca7e3ea83b86114c9406d
Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
M llvm/test/CodeGen/AMDGPU/vni8-live-reg-opt.ll
Log Message:
-----------
[AMDGPU] Reland: Do not use original PHIs in coercion chains
Summary: Change-Id: I579b5c69a85997f168ed35354b326524b6f84ef7
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251418
Commit: 3ee29263c3a10fd66bd73af9b07aaa41415c8f6a
https://github.com/llvm/llvm-project/commit/3ee29263c3a10fd66bd73af9b07aaa41415c8f6a
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/AMDGPU/lit.local.cfg
R llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1.txt
Log Message:
-----------
[AMDGPU][RFC] Combine asm and disasm tests. (#92895)
Eliminates the need to replicate the same instructions in MC and
MC/Disassembler tests and synchronize changes in them. Also highlights
differences between disassembled, reassembled and original instructions.
Commit: 097d62af7ea2e4f084b731960beb94a6239909d1
https://github.com/llvm/llvm-project/commit/097d62af7ea2e4f084b731960beb94a6239909d1
Author: nicole mazzuca <nicole at strega-nil.co>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx23Papers.csv
M libcxx/docs/Status/RangesAlgorithms.csv
M libcxx/include/CMakeLists.txt
A libcxx/include/__algorithm/ranges_find_last.h
M libcxx/include/algorithm
M libcxx/include/module.modulemap
M libcxx/include/version
M libcxx/modules/std/algorithm.inc
M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
M libcxx/test/libcxx/diagnostics/algorithm.nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if_not.pass.cpp
M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
M libcxx/test/std/algorithms/ranges_robust_against_nonbool.compile.pass.cpp
M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][ranges] P1223R5: `find_last` (#99312)
Implements [P1223R5][] completely.
Includes an implementation of `find_last`, `find_last_if`, and
`find_last_if_not`.
[P1223R5]: https://wg21.link/p1223r5
Commit: a5e4a5960fe2a4fa226cba5dcea1d0570e791bb7
https://github.com/llvm/llvm-project/commit/a5e4a5960fe2a4fa226cba5dcea1d0570e791bb7
Author: Edd Dawson <edd.dawson at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/test/Driver/debug-options.c
M clang/test/Driver/lto-jobs.c
M clang/test/Driver/ps4-linker.c
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
A llvm/test/DebugInfo/X86/debug-aranges-sce-tuning.ll
Log Message:
-----------
[PS4/PS5][Driver][DWARF] Always emit .debug_aranges for SCE tuning (#99629)
Summary:
Some of SIE's post-mortem analysis infrastructure currently makes use of
.debug_aranges, so we'd like to ensure the section's presence in
PlayStation binaries. The simplest way to do this is force emission when
the debugger tuning is set to SCE (which is in turn typically
initialized from the target triple). This also simplifies the driver.
SIE tracker: TOOLCHAIN-16951
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251497
Commit: f3dde3af2dbdd1a78320ca64c1070d9fe2c3e73a
https://github.com/llvm/llvm-project/commit/f3dde3af2dbdd1a78320ca64c1070d9fe2c3e73a
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/CMakeLists.txt
M flang/module/iso_fortran_env.f90
A flang/module/iso_fortran_env_impl.f90
M flang/runtime/CMakeLists.txt
M flang/tools/f18/CMakeLists.txt
M flang/tools/flang-driver/CMakeLists.txt
Log Message:
-----------
[flang][runtime] Build ISO_FORTRAN_ENV to export kind arrays as linkable symbols (#95388)
Summary:
Moves definitions of the kind arrays into a Fortran MODULE to not only
emit the MOD file, but also compile that MODULE file into an object
file. This file is then linked into libFortranRuntime.so.
Eventually this workaround PR shoud be redone and a proper runtime build
should be setup that will then also compile Fortran MODULE files.
Fixes #89403
---------
Co-authored-by: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Co-authored-by: Michael Kruse <github at meinersbur.de>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251666
Commit: 84455d9186cae56aa7c3764131446fc9b2a73dea
https://github.com/llvm/llvm-project/commit/84455d9186cae56aa7c3764131446fc9b2a73dea
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Add option to still enable the legacy cost model. (#99536)
Summary:
This patch adds a new temporary option to still use the legacy cost
model after https://github.com/llvm/llvm-project/pull/92555. It defaults
to false and the only intended use is to adjust the default to true in
the soon-to-be-cut release branch.
PR: https://github.com/llvm/llvm-project/pull/99536
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251192
Commit: 9bc1d5779ce3116274860b055e30c0cae142eeef
https://github.com/llvm/llvm-project/commit/9bc1d5779ce3116274860b055e30c0cae142eeef
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/Allocatable.cpp
A flang/test/Lower/OpenMP/firstprivate-allocatable.f90
M flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90
M flang/test/Lower/OpenMP/wsloop-reduction-allocatable.f90
Log Message:
-----------
[flang][Lower] get ultimate symbol when querying if pointer or allocatable (#99528)
Summary:
This fixes a bug in OpenMP privatisation. The privatised variables are
created as though they are host associated clones of the original
variables. These privatised variables do not contain the allocatable
attribute themselves and so we need to check if the ultimate symbol is
allocatable. Having or not having this flag influences whether lowering
determines that this is a whole allocatable assignment, which then
causes hlfir.assign not to get the realloc flag, which cases the
allocatable not to be allocated when it is assigned to (leading to a
segfault running the newly added test).
I also did the same for pointer variables because I would imagine they
could experience the same issue.
There is no fallout on tests outside of OpenMP, and the gfortran test
suite still passes, so I think this doesn't break host other kinds of
host associated symbols.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251367
Commit: 7c7b7584b4a3b7636d7c959cbb7c59a19001db95
https://github.com/llvm/llvm-project/commit/7c7b7584b4a3b7636d7c959cbb7c59a19001db95
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_origins.ll
Log Message:
-----------
[msan] Implement support for Arm NEON vst{2,3,4} instructions (#99360)
Summary:
This adds support for vst{2,3,4}, which are not correctly handled by
handleUnknownIntrinsic/handleVector{Load,Store}Intrinsic.
This patch also updates the tests introduced in
https://github.com/llvm/llvm-project/pull/98247 and
https://github.com/llvm/llvm-project/pull/99555
---------
Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251436
Commit: a2bd316f60c10a24075dd9e031a8ac752c739c9c
https://github.com/llvm/llvm-project/commit/a2bd316f60c10a24075dd9e031a8ac752c739c9c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TailDuplicator.h
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/RegAllocBase.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/TailDuplicator.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
M llvm/lib/Target/ARC/ARCFrameLowering.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
M llvm/lib/Target/Mips/Mips16FrameLowering.cpp
M llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/Target/X86/X86PreTileConfig.cpp
M llvm/lib/Target/XCore/XCoreFrameLowering.cpp
M llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
Log Message:
-----------
CodeGen: Avoid some references to MachineFunction's getMMI (#99652)
Summary:
MachineFunction's probably should not include a backreference to
the owning MachineModuleInfo. Most of these references were used
just to query the MCContext, which MachineFunction already directly
stores. Other contexts are using it to query the LLVMContext, which
can already be accessed through the IR function reference.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251411
Commit: 4606dcd45410b84f7f4ca0cfbb1ca4a8d3ca70de
https://github.com/llvm/llvm-project/commit/4606dcd45410b84f7f4ca0cfbb1ca4a8d3ca70de
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/newhdrgen/tests/input/test_small.yaml
M libc/newhdrgen/tests/test_integration.py
Log Message:
-----------
[libc][newheadergen]: adding entry_point testing (#99587)
Commit: fa68833d50623600be1ab6038990fc0f41d24027
https://github.com/llvm/llvm-project/commit/fa68833d50623600be1ab6038990fc0f41d24027
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Target/DynamicLoader.h
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
Log Message:
-----------
[lldb/Target] Add GetStartSymbol method to DynamicLoader plugins (#99673)
Summary:
This patch introduces a new method to the dynamic loader plugin, to
fetch its `start` symbol.
This can be useful to resolve the `start` symbol address for instance.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251468
Commit: 8cc22ea34e7f60ab72d1b275dce1b8a5aeee867f
https://github.com/llvm/llvm-project/commit/8cc22ea34e7f60ab72d1b275dce1b8a5aeee867f
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/UnitTest/LibcDeathTestExecutors.cpp
Log Message:
-----------
[libc] Increase test timeout (#99678)
Summary: This patch increases the timeout of the libc test from 1s to 10s, mostly because rv32 runs in a qemu image and sometimes 1s is just not enough for the test to finish when there are other tests running in parallel
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251267
Commit: 85ebd8ae69785862d2e398e80ebdda99841152a0
https://github.com/llvm/llvm-project/commit/85ebd8ae69785862d2e398e80ebdda99841152a0
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
A compiler-rt/test/sanitizer_common/TestCases/FreeBSD/dump_registers_x86_64.cpp
Log Message:
-----------
Dump regs fbsd fix (#99676)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251374
Commit: 486943394896230dccee94f4e3c7f6c663b5b1bd
https://github.com/llvm/llvm-project/commit/486943394896230dccee94f4e3c7f6c663b5b1bd
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
R llvm/test/CodeGen/NVPTX/load-store-sm-70.ll
M llvm/test/CodeGen/NVPTX/load-store.ll
Log Message:
-----------
Revert "[NVPTX] Add Volta Load/Store Atomics (.relaxed, .acquire, .release) and Volatile (.mmio/.volatile) support" (#99695)
Reverts llvm/llvm-project#98022
Commit: 7d1094e9fef03288d89f9ed8decf021c3cf05b36
https://github.com/llvm/llvm-project/commit/7d1094e9fef03288d89f9ed8decf021c3cf05b36
Author: Shaw Young <58664393+shawbyoung at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/docs/CommandLineArgumentReference.md
M bolt/include/bolt/Profile/YAMLProfileReader.h
M bolt/lib/Profile/YAMLProfileReader.cpp
A bolt/test/X86/match-functions-with-call-graph.test
Log Message:
-----------
[BOLT] Match functions with call graph (#98125)
Implemented call graph function matching. First, two call graphs are
constructed for both profiled and binary functions. Then functions are
hashed based on the names of their callee/caller functions. Finally,
functions are matched based on these neighbor hashes and the
longest common prefix of their names. The `match-with-call-graph`
flag turns this matching on.
Test Plan: Added match-with-call-graph.test. Matched 164 functions
in a large binary with 10171 profiled functions.
Commit: e32822c735601ccdae357f290a3f00097b510d77
https://github.com/llvm/llvm-project/commit/e32822c735601ccdae357f290a3f00097b510d77
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/vendor/llvm/default_assertion_handler.in
Log Message:
-----------
[libc++] Make libc++ forward-compatible with AppleClang's definition of __builtin_verbose_trap (#99529)
AppleClang as included in the Xcode 16 beta implements
`__builtin_verbose_trap`, but it implements slightly different semantics
from the ones implemented upstream. This patch makes libc++ compatible
with either definition until we drop support for the version of
AppleClang that differs from upstream.
Commit: 7dc2e88088358c42570eef682e6e604b789651f7
https://github.com/llvm/llvm-project/commit/7dc2e88088358c42570eef682e6e604b789651f7
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/docs/CommandLineArgumentReference.md
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT][DWARF] Remove deprecated opt (#99575)
Summary: Remove deprecated DeterministicDebugInfo option and its uses.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251237
Commit: 64e5b377711021d309d891e086759f951c11a5a5
https://github.com/llvm/llvm-project/commit/64e5b377711021d309d891e086759f951c11a5a5
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Implement LoadInst (#99597)
Summary:
This patch implements a `LoadInst` instruction in SandboxIR. It mirrors
`llvm::LoadInst`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251256
Commit: 88689ad1ad0f1d2f993bfa0d08154cfb17098f53
https://github.com/llvm/llvm-project/commit/88689ad1ad0f1d2f993bfa0d08154cfb17098f53
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
Log Message:
-----------
[mlir][docs] Update documentation for `vector.multi_reduction`. NFC (#99668)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251279
Commit: 78f779b929e9bb4b2bc3c6d0ea436a05957f4d8c
https://github.com/llvm/llvm-project/commit/78f779b929e9bb4b2bc3c6d0ea436a05957f4d8c
Author: Tacet <4922191+AdvenamTacet at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/string
Log Message:
-----------
[ASan][libc++] Turn off SSO annotations for Apple platforms (#96269)
Summary:
This commit disables short string AddressSanitizer annotations on Apple
platforms as a temporary solution to the problem reported in #96099.
For more information on Apple's block implementation, please refer to
clang/docs/Block-ABI-Apple.rst [1]. The core issue lies in the fact
that blocks are unaware of their content, causing AddressSanitizer
errors when blocks are moved using `memmove`.
I believe - and I'm not alone - that the issue should ideally be
addressed within the block moving logic. However, this patch provides
a temporary fix until a proper resolution exists in the Blocks runtime.
[1]: https://github.com/llvm/llvm-project/blob/main/clang/docs/Block-ABI-Apple.rst
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251313
Commit: 6488fdebaa5411440eb5f13eda508d624293f58c
https://github.com/llvm/llvm-project/commit/6488fdebaa5411440eb5f13eda508d624293f58c
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/HypotTest.h
Log Message:
-----------
[libc] Temporarily disable hypotf sNaN tests for NVPTX targets. (#99708)
Summary: https://lab.llvm.org/buildbot/#/builders/101/builds/2269
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251425
Commit: dcdd0515bc60e9afa37e6540f5492d5cb114b904
https://github.com/llvm/llvm-project/commit/dcdd0515bc60e9afa37e6540f5492d5cb114b904
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
A compiler-rt/test/sanitizer_common/TestCases/FreeBSD/dump_registers_i386.cpp
Log Message:
-----------
[compiler-rt] dump registers for FreeBSD/i386 (#99702)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251263
Commit: edda35d6d49bba809f0fa0d4dd145ec6e9e82842
https://github.com/llvm/llvm-project/commit/edda35d6d49bba809f0fa0d4dd145ec6e9e82842
Author: Edd Dawson <edd.dawson at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/test/Driver/debug-options.c
M clang/test/Driver/lto-jobs.c
M clang/test/Driver/ps4-linker.c
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
R llvm/test/DebugInfo/X86/debug-aranges-sce-tuning.ll
Log Message:
-----------
Revert "[PS4/PS5][Driver][DWARF] Always emit .debug_aranges for SCE t… (#99711)
Summary:
…uning (#99629)"
This reverts commit 22eb290a9696e2a3fd042096c61e35eca2fcce0c.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251322
Commit: 57b31d74f131f1c8dbefff9e7a111597cd253813
https://github.com/llvm/llvm-project/commit/57b31d74f131f1c8dbefff9e7a111597cd253813
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/math/index.rst
M libc/spec/stdc.td
M libc/src/math/CMakeLists.txt
A libc/src/math/fadd.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/fadd.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/fadd_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/fadd_test.cpp
Log Message:
-----------
[libc][math]fadd implementation (#99694)
Summary:
- **[libc] math fadd**
- **[libc][math] implemented fadd**
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251269
Commit: 4ad8bc02d28c33c7bbac478f67693ac7a20d8392
https://github.com/llvm/llvm-project/commit/4ad8bc02d28c33c7bbac478f67693ac7a20d8392
Author: Tom Stellard <tstellar at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M .github/workflows/issue-write.yml
A .github/workflows/unprivileged-download-artifact/action.yml
Log Message:
-----------
[workflows] Avoid usage of access token in issue-write.yml (#94011)
Summary:
This adds a new composite workflow that allows you to download artifacts
from other workflows without using an access token.
actions/download-artifact from GitHub requires an access token in order
to download artifacts from a different workflow, which is why we can't
use it here if we want to avoid using a token.
See
https://github.com/actions/download-artifact?tab=readme-ov-file#download-artifacts-from-other-workflow-runs-or-repositories
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251441
Commit: c8a94acb9aadabf791fcc17070a860f63af70286
https://github.com/llvm/llvm-project/commit/c8a94acb9aadabf791fcc17070a860f63af70286
Author: Jacob Lalonde <jalalonde at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/test/API/functionalities/process_save_core/TestProcessSaveCore.py
Log Message:
-----------
[LLDB][SBSaveCoreOptions] Fix TestProcessSaveCore (#99692)
Summary:
In #98403 some of the tests were transitioned to the new
`SBProcess::SaveCore(SBSaveCoreOptions)` API, but were not detected in
testing. This patch addresses that.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251264
Commit: 7214309acaf5eb4b5369dd6846f9688a5bd64412
https://github.com/llvm/llvm-project/commit/7214309acaf5eb4b5369dd6846f9688a5bd64412
Author: Daniel Hill <dhhillaz at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/BinaryPassManager.cpp
Log Message:
-----------
[BOLT] Skip instruction shortening (#93032)
Summary:
Add the ability to disable the instruction shortening pass through
--shorten-instructions=false
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251295
Commit: 8c0ad6a8401078b72bf141e50f0af40132327aa8
https://github.com/llvm/llvm-project/commit/8c0ad6a8401078b72bf141e50f0af40132327aa8
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/SandboxIR/SandboxIR.cpp
Log Message:
-----------
[SandboxIR] Fix -Wunused-variable in SandboxIR.cpp (NFC)
Summary:
/llvm-project/llvm/lib/SandboxIR/SandboxIR.cpp:584:8:
error: unused variable 'Pair' [-Werror,-Wunused-variable]
auto Pair = LLVMValueToValueMap.insert({VPtr->Val, std::move(VPtr)});
^
1 error generated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251507
Commit: 762d93684b70c2baf9cff0f07f7916d55ffca603
https://github.com/llvm/llvm-project/commit/762d93684b70c2baf9cff0f07f7916d55ffca603
Author: Itis-hard2name <chenwei at xfusion.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/docs/OptimizingClang.md
Log Message:
-----------
[bolt][Docs] fix missing option in cmake of stage3 in OptimizingClang.md (#93684)
Summary: Fixes #93681
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251187
Commit: f7f73a14ce2b56d678e4e34cf02481a6443317c3
https://github.com/llvm/llvm-project/commit/f7f73a14ce2b56d678e4e34cf02481a6443317c3
Author: klensy <klensy at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/test/AArch64/update-debug-reloc.test
M bolt/test/AArch64/veneer-gold.s
M bolt/test/X86/dwarf5-df-types-modify-dwo-name-mixed.test
M bolt/test/X86/dwarf5-one-loclists-two-bases.test
M bolt/test/X86/dwarf5-two-loclists.test
M bolt/test/X86/dwarf5-two-rnglists.test
Log Message:
-----------
[BOLT][test] Fix Filecheck typos (#93979)
Summary:
Fixes few FileCheck typos in tests and add missing(?) filecheck call in
test.
Co-authored-by: klensy <nightouser at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251572
Commit: 364ad7747b6037b60c078d519354a5c4c2e19795
https://github.com/llvm/llvm-project/commit/364ad7747b6037b60c078d519354a5c4c2e19795
Author: Eisuke Kawashima <e.kawaschima+github at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/docs/generate_doc.py
M bolt/test/perf2bolt/lit.local.cfg
Log Message:
-----------
fix(bolt/**.py): fix comparison to None (#94012)
Summary:
from PEP8
(https://peps.python.org/pep-0008/#programming-recommendations):
> Comparisons to singletons like None should always be done with is or
is not, never the equality operators.
Co-authored-by: Eisuke Kawashima <e-kwsm at users.noreply.github.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251176
Commit: 6187d78beaa4d4037d1868848955ea4f17d82f15
https://github.com/llvm/llvm-project/commit/6187d78beaa4d4037d1868848955ea4f17d82f15
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Use llvm::all_of in LoopVectorizationCostModel::getMaximizedVFForTarget. NFC (#99585)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251578
Commit: 8f622646fb6bbe171d8a6cfd66a5145b62caea64
https://github.com/llvm/llvm-project/commit/8f622646fb6bbe171d8a6cfd66a5145b62caea64
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Target/Thread.h
M lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/test/API/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py
M lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
Log Message:
-----------
[lldb] Change lldb's breakpoint handling behavior (#96260)
Summary:
lldb today has two rules: When a thread stops at a BreakpointSite, we
set the thread's StopReason to be "breakpoint hit" (regardless if we've
actually hit the breakpoint, or if we've merely stopped *at* the
breakpoint instruction/point and haven't tripped it yet). And second,
when resuming a process, any thread sitting at a BreakpointSite is
silently stepped over the BreakpointSite -- because we've already
flagged the breakpoint hit when we stopped there originally.
In this patch, I change lldb to only set a thread's stop reason to
breakpoint-hit when we've actually executed the instruction/triggered
the breakpoint. When we resume, we only silently step past a
BreakpointSite that we've registered as hit. We preserve this state
across inferior function calls that the user may do while stopped, etc.
Also, when a user adds a new breakpoint at $pc while stopped, or changes
$pc to be the address of a BreakpointSite, we will silently step past
that breakpoint when the process resumes. This is purely a UX call, I
don't think there's any person who wants to set a breakpoint at $pc and
then hit it immediately on resuming.
One non-intuitive UX from this change, but I'm convinced it is
necessary: If you're stopped at a BreakpointSite that has not yet
executed, you `stepi`, you will hit the breakpoint and the pc will not
yet advance. This thread has not completed its stepi, and the thread
plan is still on the stack. If you then `continue` the thread, lldb will
now stop and say, "instruction step completed", one instruction past the
BreakpointSite. You can continue a second time to resume execution. I
discussed this with Jim, and trying to paper over this behavior will
lead to more complicated scenarios behaving non-intuitively. And mostly
it's the testsuite that was trying to instruction step past a breakpoint
and getting thrown off -- and I changed those tests to expect the new
behavior.
The bugs driving this change are all from lldb dropping the real stop
reason for a thread and setting it to breakpoint-hit when that was not
the case. Jim hit one where we have an aarch64 watchpoint that triggers
one instruction before a BreakpointSite. On this arch we are notified of
the watchpoint hit after the instruction has been unrolled -- we disable
the watchpoint, instruction step, re-enable the watchpoint and collect
the new value. But now we're on a BreakpointSite so the watchpoint-hit
stop reason is lost.
Another was reported by ZequanWu in
https://discourse.llvm.org/t/lldb-unable-to-break-at-start/78282 we
attach to/launch a process with the pc at a BreakpointSite and
misbehave. Caroline Tice mentioned it is also a problem they've had with
putting a breakpoint on _dl_debug_state.
The change to each Process plugin that does execution control is that
1. If we've stopped at a BreakpointSite that has not been executed yet,
we will call Thread::SetThreadStoppedAtUnexecutedBP(pc) to record
that. When the thread resumes, if the pc is still at the same site, we
will continue, hit the breakpoint, and stop again.
2. When we've actually hit a breakpoint (enabled for this thread or not),
the Process plugin should call Thread::SetThreadHitBreakpointSite().
When we go to resume the thread, we will push a step-over-breakpoint
ThreadPlan before resuming.
The biggest set of changes is to StopInfoMachException where we
translate a Mach Exception into a stop reason. The Mach exception codes
differ in a few places depending on the target (unambiguously), and I
didn't want to duplicate the new code for each target so I've tested
what mach exceptions we get for each action on each target, and
reorganized StopInfoMachException::CreateStopReasonWithMachException to
document these possible values, and handle them without specializing
based on the target arch.
rdar://123942164
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251238
Commit: 0e3af5416c8545abc65648f5f3eb9de9ab8336ed
https://github.com/llvm/llvm-project/commit/0e3af5416c8545abc65648f5f3eb9de9ab8336ed
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT][DWARF][NFC] Split processUnitDIE into two lambdas (#99225)
Summary:
Split processUnitDIE into two lambdas to separate the processing of DWO
CUs and CUs in the main binary.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251258
Commit: 0440e8b34788dd656d30fd1d1cacdceeb8c09409
https://github.com/llvm/llvm-project/commit/0440e8b34788dd656d30fd1d1cacdceeb8c09409
Author: Max Winkler <max.enrico.winkler at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/MSVCCompatibility.rst
Log Message:
-----------
[Clang] [docs] [MSVC] Add sections on `__forceinline` and intrinsic behaviour differences between Clang and MSVC (#99426)
Summary:
We have had quite a few issues created around how Clang treats
intrinsics vs how MSVC treats intrinsics.
While I was writing this I also added some sections on behaviour changes
that caught me while porting my MSVC codebase to clang-cl.
Hopefully we can point issues around intrinsics to this doc and
hopefully it is useful to others who run into similar behaviour
differences.
The behaviour differences highlighted here are differences, as far as I
am aware, that we do not intend to change or fix for MSVC.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251262
Commit: 302fdbd7157c82248c4810cdd3bde83cbac2590e
https://github.com/llvm/llvm-project/commit/302fdbd7157c82248c4810cdd3bde83cbac2590e
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/math/docs/add_math_function.md
Log Message:
-----------
[libc][math]: updated math docs for newhdrgen (#99715)
Commit: 5d6d4c2bc7ee5e1218fad2ab9950dc0dffcd8c01
https://github.com/llvm/llvm-project/commit/5d6d4c2bc7ee5e1218fad2ab9950dc0dffcd8c01
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Target/Thread.h
M lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/test/API/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py
M lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
Log Message:
-----------
Revert "[lldb] Change lldb's breakpoint handling behavior (#96260)"
This reverts commit 05f0e86cc895181b3d2210458c78938f83353002.
The debuginfo dexter tests are failing, probably because the way
stepping over breakpoints has changed with my patches. And there
are two API tests fails on the ubuntu-arm (32-bit) bot. I'll need
to investigate both of these, neither has an obvious failure reason.
Commit: 64131e4cdffff675fcf5fa92f398e45101280668
https://github.com/llvm/llvm-project/commit/64131e4cdffff675fcf5fa92f398e45101280668
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
Log Message:
-----------
InstrProf: Mark BiasLI as invariant. (#95588)
Summary:
Bias doesn't change after startup.
The test is enhanced for optimized sequences and atomic ops.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251439
Commit: 717373fe1582a6a8522463d7d9891ab67bcec434
https://github.com/llvm/llvm-project/commit/717373fe1582a6a8522463d7d9891ab67bcec434
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2024-07-25 (Thu, 25 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 "Reapply "Add source file name for template instantiations in -ftime-trace"" (#99731)
Summary:
Reverts llvm/llvm-project#99545
There were a couple of issues reported in the PR: a sanitizer warning
(https://lab.llvm.org/buildbot/#/builders/164/builds/1246/steps/14/logs/stdio)
and a tmp file accidentally included in the commit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251183
Commit: d3a4ec87dcaa5633f3a7009fea4a10284bb10887
https://github.com/llvm/llvm-project/commit/d3a4ec87dcaa5633f3a7009fea4a10284bb10887
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
Log Message:
-----------
Fixup for #95588, don't assume `align 8`.
Summary: This shall fix aarch64 builders.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251402
Commit: 29a2c51c1d6cd93b5464acd3d72dfc6a1c4a5f63
https://github.com/llvm/llvm-project/commit/29a2c51c1d6cd93b5464acd3d72dfc6a1c4a5f63
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/MachO/reproduce-thin-archive-objc.s
Log Message:
-----------
[lld-macho,test] Adjust reproduce-thin-archive-objc.s
Summary:
When `cd %t` is used, it's conventional to move it above and omit `-o /dev/null`.
We don't check the string before `warning:` since (a) the string is not
very useful and (b) downstream might customize `ctx->e.logName`
(argv[0]).
count 0 is better than `--allow-empty`. In addition, without `2>&1` the
previous test was effective.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251431
Commit: ae260728432e8df64228f971b5a6c2772bf8458b
https://github.com/llvm/llvm-project/commit/ae260728432e8df64228f971b5a6c2772bf8458b
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/Driver.cpp
M lld/ELF/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
R llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
A llvm/include/llvm/CodeGen/RuntimeLibcalls.h
M llvm/include/llvm/CodeGen/TargetLowering.h
R llvm/include/llvm/IR/RuntimeLibcalls.h
M llvm/include/llvm/LTO/LTO.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/DwarfEHPrepare.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/IR/CMakeLists.txt
R llvm/lib/IR/RuntimeLibcalls.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/Object/IRSymtab.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/ARMFastISel.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMLegalizerInfo.h
M llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
M llvm/tools/lto/lto.cpp
Log Message:
-----------
Revert "[LLVM][LTO] Factor out RTLib calls and allow them to be dropped (#98512)"
This reverts commit c05126bdfc3b02daa37d11056fa43db1a6cdef69.
(llvmorg-19-init-17714-gc05126bdfc3b)
See #99610
Commit: 5eea09e39690ae9dd973e171671868c50295e84b
https://github.com/llvm/llvm-project/commit/5eea09e39690ae9dd973e171671868c50295e84b
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/IR/CMakeLists.txt
Log Message:
-----------
Revert "[LLVM][LTO] Add missing dependency"
This reverts commit bb604ae9b8adbc0a0852eb68545eff685902f41b.
(llvmorg-19-init-17804-gbb604ae9b8ad)
See #99610
Commit: ad9ccaf4109760a986dbbfdddbfc8f3c8e21fd4c
https://github.com/llvm/llvm-project/commit/ad9ccaf4109760a986dbbfdddbfc8f3c8e21fd4c
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
Revert "[bazel] Fix llvm:Core build (#99054)"
This reverts commit 5b54f36fb607d21c18f9eb56dcf481a9841dee8e.
(llvmorg-19-init-17774-g5b54f36fb607)
See #99610
Commit: 1697ef5998a1c178d3069aa4465c3e46c18f3186
https://github.com/llvm/llvm-project/commit/1697ef5998a1c178d3069aa4465c3e46c18f3186
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/RuntimeLibcalls.h
M llvm/include/llvm/LTO/LTO.h
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
Log Message:
-----------
Reformat
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251350
Commit: 6ba36b3e4b3ee49cf71826ede79f967c31e34a19
https://github.com/llvm/llvm-project/commit/6ba36b3e4b3ee49cf71826ede79f967c31e34a19
Author: Haowei <haowei at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia.cmake
Log Message:
-----------
[Fuchsia] Remove linker flags from stage2 pass through (#99722)
Summary:
This patch removes CMAKE_XXX_LINKER_FLAGS from list of flags that passed
through to stage2 build.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251282
Commit: 63f1be222c036d1a3dad46d4e092a340615c8082
https://github.com/llvm/llvm-project/commit/63f1be222c036d1a3dad46d4e092a340615c8082
Author: darkbuck <michael.hliao at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
M llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
Log Message:
-----------
[GlobalISel] Allow customizing instruction-select pass
Summary:
- Allow customizing instruction-select pass to add additional analysis
dependencies.
Test Plan:
Reviewers:
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251634
Commit: 878ef2e70975b1e686c21d0291242e2d586e2545
https://github.com/llvm/llvm-project/commit/878ef2e70975b1e686c21d0291242e2d586e2545
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/asan/asan_interceptors.cpp
Log Message:
-----------
[compiler-rt] remove unneeded comma for pthread_atfork declaration (#99739)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251540
Commit: c6a916daa632327c85a7738cff074dc823164d6e
https://github.com/llvm/llvm-project/commit/c6a916daa632327c85a7738cff074dc823164d6e
Author: alx32 <103613512+alx32 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/MachO/ObjC.cpp
A lld/test/MachO/objc-category-merging-erase-objc-name-test.s
Log Message:
-----------
[lld-macho] Fix erasing category names for ObjC categories (#99400)
Summary:
We were already not deleting category names for Swift classes as those
names can be reused by other parts. However, I have come across a corner
case where this also happens for ObjC categories - so we can't delete
category names for them either. TODO remains to optimize this behavior
for both ObjC and Swift.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251277
Commit: aefc60e24b4bbe6d3ae5e475efa1c1e062ab4141
https://github.com/llvm/llvm-project/commit/aefc60e24b4bbe6d3ae5e475efa1c1e062ab4141
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.cpp
Log Message:
-----------
[clang][Interp][NFC] Move global variable init case to the top
Summary:
of the respective functions. Previously, we did not properly mark
global zero sized arrays as initialized.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251370
Commit: 4582ee260e3974c96df9af6b68726d27262e4a01
https://github.com/llvm/llvm-project/commit/4582ee260e3974c96df9af6b68726d27262e4a01
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
Log Message:
-----------
[MC] Move setIncrementalLinkerCompatible() calls to MCWinCOFFStreamer
Summary: Similar to setRelaxAll (45b59cb1d42b57a40c79a61afc8d1b8892826480).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251356
Commit: ea500683aefb8e7dbd15458f4647b95641dd7ec6
https://github.com/llvm/llvm-project/commit/ea500683aefb8e7dbd15458f4647b95641dd7ec6
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
Log Message:
-----------
[MC] Remove IncrementalLinkerCompatible parameters from create*WinCOFFStreamer
Summary:
Follow-up to b201ab8adc812f025490388ef89d5547e63b9d1e.
Similar to RelaxAll (4e340356163aaaf2de83cd73f74bca8db735471b).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251446
Commit: b97265accb80f7e8a852a01445f98c5e28c10383
https://github.com/llvm/llvm-project/commit/b97265accb80f7e8a852a01445f98c5e28c10383
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGISel.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
M llvm/unittests/CodeGen/SelectionDAGAddressAnalysisTest.cpp
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
SelectionDAG: Avoid using MachineFunction::getMMI (#99696)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251766
Commit: 7a448b8a1cae7b66247ed4da87d242f29e1a862f
https://github.com/llvm/llvm-project/commit/7a448b8a1cae7b66247ed4da87d242f29e1a862f
Author: Vincent Lee <thevinster at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/CommandGuide/lit.rst
M llvm/utils/lit/lit/cl_arguments.py
M llvm/utils/lit/lit/main.py
A llvm/utils/lit/tests/Inputs/time-tests/a.txt
A llvm/utils/lit/tests/Inputs/time-tests/lit.cfg
A llvm/utils/lit/tests/time-tests.py
Log Message:
-----------
[lit] Add a flag to disable lit time tests (#98270)
Summary:
LLVM lit assumes control of the test parallelism when running a test
suite. This style of testing doesn't play nicely with build systems like
Buck or Bazel since it prefers finer grained actions on a per-test
level. In order for external build systems to control the test
parallelism, add an option to disable `.lit_test_times.txt` under the
`--skip-test-time-recording` flag, thus allowing other build systems
to determine the parallelism and avoid race conditions when writing
to that file. I went for `--skip-test-time-recording` instead of `--time-tests` in
order to preserve the original functionality of writing to `.lit_test_times.txt`
as the default behavior and only opt-in for those who do _not_ want
`.lit_test_times.txt` file.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251198
Commit: d8d96bccc868595e9d200756fa95043415b6d02b
https://github.com/llvm/llvm-project/commit/d8d96bccc868595e9d200756fa95043415b6d02b
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/assert.h.def
Log Message:
-----------
[libc] Make static_assert available even if NDEBUG is set (#99742)
Summary:
This addresses an issue introduced in #98826 where static_assert was
made defined only when NDEBUG is not set which is different from all
other C libraries and breaks any code that uses static_assert and
doesn't guard it with NDEBUG.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251185
Commit: 8569e44c6088ca0e9e33517f880cbdc7750760c9
https://github.com/llvm/llvm-project/commit/8569e44c6088ca0e9e33517f880cbdc7750760c9
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/EvalEmitter.cpp
M clang/test/AST/Interp/cxx11.cpp
Log Message:
-----------
[clang][Interp] Emit diagnostics if final ltor conversion fails
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251442
Commit: a7e4e8baf6c1c9e199038e98b179965bdd3741ce
https://github.com/llvm/llvm-project/commit/a7e4e8baf6c1c9e199038e98b179965bdd3741ce
Author: Matthias Springer <me at m-sp.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Transforms/Utils/DialectConversion.cpp
M mlir/test/Transforms/test-legalize-type-conversion.mlir
Log Message:
-----------
[mlir][Transforms] Dialect conversion: Simplify handling of dropped arguments (#97213)
Summary:
This commit simplifies the handling of dropped arguments and updates
some dialect conversion documentation that is outdated.
When converting a block signature, a `BlockTypeConversionRewrite` object
and potentially multiple `ReplaceBlockArgRewrite` are created. During
the "commit" phase, uses of the old block arguments are replaced with
the new block arguments, but the old implementation was written in an
inconsistent way: some block arguments were replaced in
`BlockTypeConversionRewrite::commit` and some were replaced in
`ReplaceBlockArgRewrite::commit`. The new
`BlockTypeConversionRewrite::commit` implementation is much simpler and
no longer modifies any IR; that is done only in `ReplaceBlockArgRewrite`
now. The `ConvertedArgInfo` data structure is no longer needed.
To that end, materializations of dropped arguments are now built in
`applySignatureConversion` instead of `materializeLiveConversions`; the
latter function no longer has to deal with dropped arguments.
Other minor improvements:
- Add more comments to `applySignatureConversion`.
Note: Error messages around failed materializations for dropped basic
block arguments changed slightly. That is because those materializations
are now built in `legalizeUnresolvedMaterialization` instead of
`legalizeConvertedArgumentTypes`.
This commit is in preparation of decoupling argument/source/target
materializations from the dialect conversion.
This is a re-upload of #96207.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251281
Commit: 9e95948e3125c2f8b1ea08c4b503d3163089b4c7
https://github.com/llvm/llvm-project/commit/9e95948e3125c2f8b1ea08c4b503d3163089b4c7
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/MIMGInstructions.td
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.noret.ll
Log Message:
-----------
[AMDGPU] Add no return image_sample intrinsics and instructions (#97542)
Summary:
An appropriately configured image resource descriptor can trigger
image_sample instructions to store outputs directly to a linked memory
location instead of returning to VGPRs.
This is opaque to the backend as instruction encoding is unchanged;
however, a mechanism is require to allow frontends to communicate that
these instructions do not require destination VGPRs and store to memory.
Flagging these as stores means they will not be optimized away.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251482
Commit: 0db5d6b9f2eb2fe6e9e87b5c79412c09b6bb71fe
https://github.com/llvm/llvm-project/commit/0db5d6b9f2eb2fe6e9e87b5c79412c09b6bb71fe
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/test/AST/Interp/new-delete.cpp
Log Message:
-----------
[clang][Interp] Fix reporting invalid new/delete expressions
This should be a CCEDiag call and we do *not* abort because of it.
Commit: e14a40a2b4debd1ceb6d632ef2981619a5061cf9
https://github.com/llvm/llvm-project/commit/e14a40a2b4debd1ceb6d632ef2981619a5061cf9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Log Message:
-----------
AArch64: Avoid using MachineFunction::getMMI
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251194
Commit: e39b7d45542ebf9b2c4ca8103103636dc4997606
https://github.com/llvm/llvm-project/commit/e39b7d45542ebf9b2c4ca8103103636dc4997606
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86MCInstLower.cpp
Log Message:
-----------
X86: Avoid using MachineFunction::getMMI
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251244
Commit: 54e24a1a06e3ce48b16329a9c9f6b3161945a1b2
https://github.com/llvm/llvm-project/commit/54e24a1a06e3ce48b16329a9c9f6b3161945a1b2
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/vector
M libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
Log Message:
-----------
[libc++][vector] Fixes shrink_to_fit. (#97895)
Summary:
This assures shrink_to_fit does not increase the allocated size.
Partly addresses https://github.com/llvm/llvm-project/issues/95161
---------
Co-authored-by: Mital Ashok <mital.vaja at googlemail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251479
Commit: 890a28e3dffb34e047f445277597b26f0f8f94b4
https://github.com/llvm/llvm-project/commit/890a28e3dffb34e047f445277597b26f0f8f94b4
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
Log Message:
-----------
M68k: Remove hasDebugInfo check when deciding to emit CFI (#99750)
Summary:
No other target checks this, and this is untested. I am trying
to remove the MachineModuleInfo reference from MachineFunction,
and this is the stickiest blocker.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251413
Commit: 5671809cb53f4fa94a6278efc1f99048643ed3c5
https://github.com/llvm/llvm-project/commit/5671809cb53f4fa94a6278efc1f99048643ed3c5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
Log Message:
-----------
AsmPrinter: Avoid use of MachineFunction::getMMI (#99751)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251246
Commit: 44ff273bb9b697c060819c2b5eb3885a677a1f29
https://github.com/llvm/llvm-project/commit/44ff273bb9b697c060819c2b5eb3885a677a1f29
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/gpu-libc-headers.c
Log Message:
-----------
[Clang] Fix C library wrappers for offloading (#99716)
Summary:
This block of code wraps around the standard C library includes.
However, the order C library includes are presented is actually
important. If they are visible before the `libc++` headers then it will
cause errors. This patch simply moves the logic to just before it is
normally done. A more optimal solution would be to put this in the
toolchain, however doing it correctly would require knowing the
offloading kind and that would require rewriting the function signature
in all 30 or so ToolChains.
Commit: 31f7ed6738cc311126bf7aae0721db65b26f4df8
https://github.com/llvm/llvm-project/commit/31f7ed6738cc311126bf7aae0721db65b26f4df8
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/pr73894.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
M llvm/test/Transforms/LoopVectorize/X86/divs-with-tail-folding.ll
M llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
M llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-multiuse.ll
M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
Log Message:
-----------
[VPlan] Remove VPPredInstPHIRecipes without users after region merging.
Summary:
After merging replicate regions, VPPredInstPHIRecipes may become unused.
Remove them directly instead of moving them to the merged region.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251219
Commit: a3dfe5fa8845fa1604115738d8dd0554c976f8b7
https://github.com/llvm/llvm-project/commit/a3dfe5fa8845fa1604115738d8dd0554c976f8b7
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Lex/Token.h
M clang/include/clang/Parse/Parser.h
M clang/lib/Basic/IdentifierTable.cpp
M clang/lib/Frontend/PrintPreprocessedOutput.cpp
M clang/lib/Lex/PPLexerChange.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Lex/TokenConcatenation.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/Parser.cpp
A clang/test/CXX/cpp/cpp.module/p2.cppm
M clang/test/CXX/module/basic/basic.link/module-declaration.cpp
M clang/test/CXX/module/dcl.dcl/dcl.module/dcl.module.import/p1.cppm
M clang/test/SemaCXX/modules.cppm
M clang/www/cxx_status.html
Log Message:
-----------
[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros (#90574)
Summary:
This PR implement [P3034R1 Module Declarations Shouldn’t be
Macros](https://wg21.link/P3034R1), and refactor the convoluted state
machines in module name lexical analysis.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251236
Commit: 89408021c6ccf4bc386f8fc5b01f4172ade3ba6d
https://github.com/llvm/llvm-project/commit/89408021c6ccf4bc386f8fc5b01f4172ade3ba6d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/CFGuardLongjmp.cpp
M llvm/lib/CodeGen/EHContGuardCatchret.cpp
M llvm/lib/CodeGen/KCFI.cpp
M llvm/lib/Target/X86/X86AsmPrinter.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86IndirectBranchTracking.cpp
M llvm/lib/Target/X86/X86ReturnThunks.cpp
Log Message:
-----------
CodeGen: Use IR function to query Module instead of MachineModuleInfo (#99755)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251243
Commit: 7466d6249afc0403f4c7b025304d9b325b5c9544
https://github.com/llvm/llvm-project/commit/7466d6249afc0403f4c7b025304d9b325b5c9544
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Boolean.h
M clang/lib/AST/Interp/Disasm.cpp
M clang/lib/AST/Interp/EvalEmitter.cpp
M clang/lib/AST/Interp/EvaluationResult.cpp
M clang/lib/AST/Interp/Floating.h
M clang/lib/AST/Interp/FunctionPointer.h
M clang/lib/AST/Interp/Integral.h
M clang/lib/AST/Interp/IntegralAP.h
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/MemberPointer.cpp
M clang/lib/AST/Interp/MemberPointer.h
M clang/lib/AST/Interp/Pointer.cpp
M clang/lib/AST/Interp/Pointer.h
M clang/unittests/AST/Interp/toAPValue.cpp
Log Message:
-----------
[clang][Interp] Pass ASTContext to toAPValue()
Not yet needed, but we need to ASTContext in a later patch when we start
computing proper values for the APValue offset.
Commit: e616f681dcb8f814a75be2ec77ef08df1cafbcb7
https://github.com/llvm/llvm-project/commit/e616f681dcb8f814a75be2ec77ef08df1cafbcb7
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
M llvm/test/MC/X86/x86-32-coverage.s
Log Message:
-----------
[X86][MC] Check AdSize16 for 16-bit addressing (#99761)
Summary: Fixes: #99735
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251195
Commit: 27c1c4eaafc52547df52818fe71b48c268bd5a78
https://github.com/llvm/llvm-project/commit/27c1c4eaafc52547df52818fe71b48c268bd5a78
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/Driver.cpp
M lld/ELF/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
A llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
R llvm/include/llvm/CodeGen/RuntimeLibcalls.h
M llvm/include/llvm/CodeGen/TargetLowering.h
A llvm/include/llvm/IR/RuntimeLibcalls.h
M llvm/include/llvm/LTO/LTO.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/DwarfEHPrepare.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/IR/CMakeLists.txt
A llvm/lib/IR/RuntimeLibcalls.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/Object/IRSymtab.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/ARMFastISel.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMLegalizerInfo.h
M llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
M llvm/tools/lto/lto.cpp
Log Message:
-----------
Reapply "[LLVM][LTO] Factor out RTLib calls and allow them to be dropped (#98512)"
This reverts commit 740161a9b98c9920dedf1852b5f1c94d0a683af5.
I moved the `ISD` dependencies into the CodeGen portion of the handling,
it's a little awkward but it's the easiest solution I can think of for
now.
Commit: 1eefd130681bfb9a1457adae7c6b19d870a3ffc4
https://github.com/llvm/llvm-project/commit/1eefd130681bfb9a1457adae7c6b19d870a3ffc4
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Headers/prfchwintrin.h
M clang/test/CodeGen/attr-target-x86.c
M compiler-rt/lib/builtins/cpu_model/x86.c
M llvm/include/llvm/TargetParser/X86TargetParser.def
M llvm/lib/TargetParser/X86TargetParser.cpp
Log Message:
-----------
Remove 3DNow! from X86TargetParser. (#99352)
Summary:
This addresses the spurious inclusion of (now unsupported) target
features '-3dnow' and '-3dnowa' when disabling mmx (when then caused log
output from `clang -mno-mmx`).
It should've been part of PR #96246, but was missed.
Also tweaks the warning in prfchwintrin.h to not recommend the
deprecated mm3dnow.h header.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251255
Commit: f2a7fd23877be402b8079017fec9ee910d303c57
https://github.com/llvm/llvm-project/commit/f2a7fd23877be402b8079017fec9ee910d303c57
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.cpp
A clang/test/AST/Interp/codegen.cpp
Log Message:
-----------
[clang][Interp] Start computing APValue offsets
Summary: For array elements, arrays roots and fields.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251235
Commit: 65d79a92d8d2624bbd24ee0ded91340aac01099e
https://github.com/llvm/llvm-project/commit/65d79a92d8d2624bbd24ee0ded91340aac01099e
Author: PaulXiCao <paul.luckner at rwth-aachen.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/ImplementationDefinedBehavior.rst
M libcxx/docs/Status/Cxx17.rst
M libcxx/docs/Status/Cxx17Papers.csv
A libcxx/docs/Status/SpecialMath.rst
A libcxx/docs/Status/SpecialMathProjects.csv
M libcxx/docs/index.rst
M libcxx/include/CMakeLists.txt
A libcxx/include/__math/special_functions.h
M libcxx/include/cmath
M libcxx/include/module.modulemap
M libcxx/modules/std/cmath.inc
A libcxx/test/std/numerics/c.math/hermite.pass.cpp
M libcxx/utils/libcxx/test/modules.py
Log Message:
-----------
[libc++][math] Mathematical Special Functions: Hermite Polynomial (#89982)
Summary:
Implementing the Hermite polynomials which are part of C++17's
mathematical special functions. The goal is to get early feedback which
will make implementing the other functions easier. Integration of
functions in chunks (e.g. `std::hermite` at first, then `std::laguerre`,
etc.) might make sense as well (also see note on boost.math below).
I started out from this abandoned merge request:
https://reviews.llvm.org/D58876 .
The C++23 standard defines them in-terms of `/* floating-point type */`
arguments. I have not looked into that.
Note, there is still an ongoing discussion on discourse whether
importing boost.math is an option.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251212
Commit: 2f3ce349541cabc0e0c42bfee5182e3d419175ef
https://github.com/llvm/llvm-project/commit/2f3ce349541cabc0e0c42bfee5182e3d419175ef
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
A llvm/test/CodeGen/NVPTX/addr-mode.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep.ll
Log Message:
-----------
[NVPTX] enforce signed 32 bit type for immediate offset (#99682)
Summary:
The NVPTX ISA states that an immOff must fit in a signed 32-bit integer
(https://docs.nvidia.com/cuda/parallel-thread-execution/#addresses-as-operands):
> `[reg+immOff]`
>
> a sum of register `reg` containing a byte address plus a constant
> integer byte offset (signed, 32-bit).
>
> `[var+immOff]`
>
> a sum of address of addressable variable `var` containing a byte
> address plus a constant integer byte offset (signed, 32-bit).
Currently we do not consider this constraint, meaning that in some edge
cases we generate invalid PTX when a value is offset by a very large
immediate.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251391
Commit: e91b901fec5cb4ca68bf7f8b58b5ac612b9d6a70
https://github.com/llvm/llvm-project/commit/e91b901fec5cb4ca68bf7f8b58b5ac612b9d6a70
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/FormatPaper.csv
M libcxx/include/__chrono/convert_to_tm.h
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/ostream.h
M libcxx/include/chrono
A libcxx/test/std/time/time.syn/formatter.zoned_time.pass.cpp
M libcxx/test/std/time/time.zone/time.zone.zonedtime/test_offset_time_zone.h
A libcxx/test/std/time/time.zone/time.zone.zonedtime/time.zone.zonedtime.nonmembers/ostream.pass.cpp
Log Message:
-----------
[libc++][TZDB] Implements zoned_time formatters. (#98347)
Summary:
Implements parts of:
- P0355 Extending to chrono Calendars and Time Zones
- P1361 Integration of chrono with text formatting
- P2372 Fixing locale handling in chrono formatters
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251167
Commit: 4b80e1f500e7e825f628530f40573c08676e832c
https://github.com/llvm/llvm-project/commit/4b80e1f500e7e825f628530f40573c08676e832c
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/config.json
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/configure.rst
M libc/docs/dev/undefined_behavior.rst
M libc/spec/posix.td
M libc/src/__support/OSUtil/CMakeLists.txt
M libc/src/__support/OSUtil/linux/CMakeLists.txt
A libc/src/__support/OSUtil/linux/pid.cpp
A libc/src/__support/OSUtil/pid.h
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/rwlock.h
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/threads/thread.h
A libc/src/__support/threads/tid.h
M libc/src/unistd/CMakeLists.txt
M libc/src/unistd/getpid.h
A libc/src/unistd/gettid.cpp
A libc/src/unistd/gettid.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/fork.cpp
M libc/src/unistd/linux/getpid.cpp
M libc/startup/linux/CMakeLists.txt
M libc/startup/linux/do_start.cpp
M libc/test/integration/src/unistd/CMakeLists.txt
M libc/test/integration/src/unistd/fork_test.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/gettid_test.cpp
Log Message:
-----------
reland "[libc] implement cached process/thread identity (#98989)" (#99765)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251563
Commit: b721412251227d51dc9e7f9f394fdf9034e96b78
https://github.com/llvm/llvm-project/commit/b721412251227d51dc9e7f9f394fdf9034e96b78
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/CodeGen/LLVMTargetMachine.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
Log Message:
-----------
[MC] Remove unnecessary DWARFMustBeAtTheEnd check
Summary:
36a15cb975334403216e6145d4abece3026af17a introduced the
DWARFMustBeAtTheEnd check to ensure DWARF sections were placed after all
text sections to help avoid out-of-range branches for Darwin ARM. The
commit removed a Darwin ARM hack from
20e5f5ed7930efdf2bd34bf099f24ac88798c5ea (2009), likely due to a
no-longer-relevant assembler limitation.
However, this check is no longer relevant due to the following:
* Our CodeGen approach reliably places DWARF sections at the end.
* Darwin AArch32 is less relevant today.
Removing this check also addresses a minor clang cc1as crash that could
occur when text sections were placed after DWARF sections
(e9ad54b3ee905ea3a77c35ca7d6e843b2c552e0b (2015)).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251234
Commit: a809f00de11217a73cb88546338cbb1f9ff0f405
https://github.com/llvm/llvm-project/commit/a809f00de11217a73cb88546338cbb1f9ff0f405
Author: Kevin Gleason <gleasonk at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
Log Message:
-----------
Add logging for emit functions in BytecodeWriter.cpp (#99558)
Recently there was a change to materializing unrealized conversion
casts, which inserted conversion that previously did not exist during
legalization (https://github.com/llvm/llvm-project/pull/97903), after
these cases are inserted and then washed away after transformation
completes, it caused the use-list ordering of an op to change in some
cases: `my.add %arg0(use1), %arg0(use2) --> my.add %arg0(use2),
%arg0(use1)`, which subtly changes the bytecode emitted since this is
considered a custom use-list.
When investigating why the bytecode had changed I added the following
logging which helped track down the difference, in my case it showed
extra bytes with "use-list section". With
`-debug-only=mlir-bytecode-writer` emits logs like the following,
detailing the source of written bytes:
```
emitBytes(4b) bytecode header
emitVarInt(6) bytecode version
emitByte(13) bytecode version
emitBytes(17b) bytecode producer
emitByte(0) null terminator
emitVarInt(2) dialects count
...
emitByte(5) dialect version
emitVarInt(4) op names count
emitByte(9) op names count
emitVarInt(0) dialect number
...
emitVarInt(2) dialect writer
emitByte(5) dialect writer
emitVarInt(9259963783827161088) dialect APInt
...
emitVarInt(3) attr/type offset
emitByte(7) attr/type offset
emitByte(3) section code
emitVarInt(18) section size
...
```
Note: this uses string constants and `StringLiteral`, I'm not sure if
these are washed away during compilation / OK to have these around for
debuggin, or if there's a better way to do this? Alternative was adding
many braces and `LLVM_DEBUG` calls at each callsite, but this felt more
error prone / likely to miss some callsites.
Commit: 2c6b6cc34c702b15e30fc597f8589fb1b49f580d
https://github.com/llvm/llvm-project/commit/2c6b6cc34c702b15e30fc597f8589fb1b49f580d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__configuration/abi.h
M libcxx/include/__type_traits/datasizeof.h
M libcxx/include/__utility/pair.h
M libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
M libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivially_copyable.compile.pass.cpp
Log Message:
-----------
[libc++] Make std::pair trivially copyable if its members are (#89652)
This makes `std::pair` trivially copyable if its members are and we have
a way to do so. We need either C++20 with requires clauses or support
for `__attribute__((enable_if))`. Only Clang has support for this
attribute, so it's effectively clang or C++20.
Co-authored-by: Christopher Di Bella <cjdb at google.com>
Commit: 1a756322beaa2728cc6f81131bb79b43cbd7a34b
https://github.com/llvm/llvm-project/commit/1a756322beaa2728cc6f81131bb79b43cbd7a34b
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/HashTable/randomness.h
M libc/src/__support/threads/thread.h
M libc/src/stdio/fopencookie.cpp
M libc/src/sys/auxv/linux/getauxval.cpp
M libc/src/sys/stat/linux/kernel_statx.h
Log Message:
-----------
[libc] Added static casts to fix implicit conversion warnings in 32-bit systems
This patch fixes:
randomness.h and getauxval.cpp were passing ssize_t as size_t
kernel_statx.h was assigning an uint64_t to uintptr_t
fopencookie.cpp was trying to create a FileIOResult using ssize_t but the constructor expected a size_t
thread.h was trying to call free_stack (which takes a size_t) with an unsigned long long. free_stack does the calculations using uintptr_t, so I changed the passing values to size_t
Commit: 7350b532c1fd6c5dc5450c44718a46afbb8419bc
https://github.com/llvm/llvm-project/commit/7350b532c1fd6c5dc5450c44718a46afbb8419bc
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/MCXCOFFStreamer.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCTargetDesc.cpp
Log Message:
-----------
[MC] Remove unused Register*Streamer
Summary:
Object streamers that do not need lib/Target customization do not need
Register*Streamer.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251251
Commit: 4f41d43bea609ee894e0aec62febe0b5a8329705
https://github.com/llvm/llvm-project/commit/4f41d43bea609ee894e0aec62febe0b5a8329705
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/src/__support/File/file.cpp
M libc/src/__support/File/file.h
M libc/test/src/__support/File/platform_file_test.cpp
Log Message:
-----------
[libc] Enable most of the libc entrypoitns for riscv (#99771)
Summary:
This patch enables most of the libc entrypoints for riscv, except for fstatvfs, statvfs, dmull and fmull which are currently failing compilation. float16 is also not added, as rv32 doesn't seem to support it yet.
This patch also fixes the call to seek, which should take an off_t, and was missed in PR #68269.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251337
Commit: e378b597d8eb87b70a698d2a4cbafbd9fb1129fa
https://github.com/llvm/llvm-project/commit/e378b597d8eb87b70a698d2a4cbafbd9fb1129fa
Author: AdityaK <hiraditya at msn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
A llvm/test/Transforms/HotColdSplit/pr40056.ll
Log Message:
-----------
Fix 40056: Prevent outlining of blocks with token type instructions (#99759)
Hot cold splitting should not outline:
1. Basic blocks with token type instructions
1. Functions with scoped EH personality (As suggested by Vedant in
https://github.com/llvm/llvm-project/issues/40056#issuecomment-981009129)
Fixes: #40056
Commit: 71a0c6292d9b6f3d05b4d5d407f3cc1c69391b5a
https://github.com/llvm/llvm-project/commit/71a0c6292d9b6f3d05b4d5d407f3cc1c69391b5a
Author: dyung <douglas.yung at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M cross-project-tests/lit.cfg.py
Log Message:
-----------
Replace distutils.version with looseversion since the former was deprecated in python 3.10 and removed in 3.12. (#99549)
Summary:
Python deprecated the distutils package in 3.10, and removed it in 3.12
causing problems when trying to run the lit tests with 3.12.
https://docs.python.org/3.10/library/distutils.html
Replace usage with the looseversion package which should be a drop-in
replacement for the original usage.
If your testing fails after this commit, you need to install the looseversion package.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251589
Commit: ce3ca5b3ca65833da81952e8e10adb03f97b8870
https://github.com/llvm/llvm-project/commit/ce3ca5b3ca65833da81952e8e10adb03f97b8870
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGISel.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
M llvm/unittests/CodeGen/SelectionDAGAddressAnalysisTest.cpp
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
Revert "SelectionDAG: Avoid using MachineFunction::getMMI" (#99777)
Reverts llvm/llvm-project#99696
https://lab.llvm.org/buildbot/#/builders/164/builds/1262
Commit: cad56aa8a775f477ed405020a1172b3fe5856d36
https://github.com/llvm/llvm-project/commit/cad56aa8a775f477ed405020a1172b3fe5856d36
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in annotating `*` in `#define`s (#99433)
Fixes #99271.
Commit: 616b0a2c9306dbb6d68d278949ec15680fcc5f1a
https://github.com/llvm/llvm-project/commit/616b0a2c9306dbb6d68d278949ec15680fcc5f1a
Author: Dmitriy Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/test/MC/AsmParser/directive_abort.s
Log Message:
-----------
[MC,ELF] Use loc from the directive for `.abort` (#99648)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251324
Commit: 4c6cb4e772ee0fb06b9def0bcdcb8f9994741fa0
https://github.com/llvm/llvm-project/commit/4c6cb4e772ee0fb06b9def0bcdcb8f9994741fa0
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/sys/epoll/linux/epoll_pwait2.cpp
Log Message:
-----------
[libc] Implement pwait2 using pwait (#99781)
Summary:
This patch implements pwait2 using pwait. The implementation is an
approximation of pwait2, since pwait only only supports timeouts in
milliseconds, not nanoseconds, as required by pwait2.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251459
Commit: 2308f5098f12d3f22d97a64ffd3b299f8648f7e6
https://github.com/llvm/llvm-project/commit/2308f5098f12d3f22d97a64ffd3b299f8648f7e6
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Assert masked interleave accesses are allowed if needed (NFC)
Summary: Add assertion at interleave group construction.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251175
Commit: 1109d9250dcd743ae888151a7f115862c61cfc77
https://github.com/llvm/llvm-project/commit/1109d9250dcd743ae888151a7f115862c61cfc77
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptParser.cpp
M lld/test/ELF/linkerscript/custom-section-type.s
Log Message:
-----------
[ELF] Support (TYPE=<value>) beside output section address
Summary:
Support `preinit_array . (TYPE=SHT_PREINIT_ARRAY) : { QUAD(16) }`
Follow-up to https://reviews.llvm.org/D118840
peek2() could be eliminated by a future change.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251208
Commit: 82ee18d35f52d4c0305d089c3c47b5a52d5938fe
https://github.com/llvm/llvm-project/commit/82ee18d35f52d4c0305d089c3c47b5a52d5938fe
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Implement StoreInst (#99707)
Summary:
This patch adds the SandboxIR StoreInst instruction which mirrors
llvm::StoreInst.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251584
Commit: e29e08c0d2a581d7ac6b23fbd34c0190d8ac880d
https://github.com/llvm/llvm-project/commit/e29e08c0d2a581d7ac6b23fbd34c0190d8ac880d
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Move VPInterleaveRecipe::execute to VPlanRecipes.cpp (NFC).
Summary:
Move ::exeute and ::print to VPlanRecipes.cpp in line with other recipe
definitions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251248
Commit: 6aa8b7a8a334ad17edcbb16a5e532ce6edeb01d8
https://github.com/llvm/llvm-project/commit/6aa8b7a8a334ad17edcbb16a5e532ce6edeb01d8
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptLexer.cpp
Log Message:
-----------
[ELF] Simplify ScriptLexer::consume. NFC
Commit: 1250fa37152d2b0ecf4edbd0cc40ec46798b07f4
https://github.com/llvm/llvm-project/commit/1250fa37152d2b0ecf4edbd0cc40ec46798b07f4
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptParser.cpp
Log Message:
-----------
[ELF] Simplify readExpr. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251464
Commit: c426808bfc3e86ce89ed43e729f4b7b1d55c88e1
https://github.com/llvm/llvm-project/commit/c426808bfc3e86ce89ed43e729f4b7b1d55c88e1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M cross-project-tests/lit.cfg.py
Log Message:
-----------
Revert "Replace distutils.version with looseversion since the former was deprecated in python 3.10 and removed in 3.12." (#99786)
Summary: Reverts llvm/llvm-project#99549 because it breaks a bunch of build bots.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251297
Commit: 71614be3d3c54d1b84489d9e51a1d43d26b68149
https://github.com/llvm/llvm-project/commit/71614be3d3c54d1b84489d9e51a1d43d26b68149
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
Log Message:
-----------
[libc] Disable bind test for riscv
Summary: Currently it's returning ENXIO on bind and the build bots are failing
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251174
Commit: fda79b4ec8d08faefe278a182ee1d8b2dd86ccd0
https://github.com/llvm/llvm-project/commit/fda79b4ec8d08faefe278a182ee1d8b2dd86ccd0
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/sys/epoll/linux/epoll_create_test.cpp
Log Message:
-----------
[libc] Disable epoll_create fail test when SYS_epoll_create1 is used internally (#99785)
The fail test case only makes sense if SYS_epoll_create is used internally to implement epoll_create, since the only argument to epoll_create (size) is dropped if SYS_epoll_create1 is used.
Commit: 1ee4ffe93e5fe3217d952b4906fa3d809500399a
https://github.com/llvm/llvm-project/commit/1ee4ffe93e5fe3217d952b4906fa3d809500399a
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/lsan/lsan_interceptors.cpp
Log Message:
-----------
[compiler-rt] lsan remove unneeded comma for pthread_atfork declaration. (#99788)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251254
Commit: a78e26c81d89ef158b214f6168d617e0ea70ffbd
https://github.com/llvm/llvm-project/commit/a78e26c81d89ef158b214f6168d617e0ea70ffbd
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/ELF/defsym.s
Log Message:
-----------
[ELF,test] Fix RUN line issue in defsym.s
Commit: e75d91a94e2d6d490665e85f7455d62ae501d6c8
https://github.com/llvm/llvm-project/commit/e75d91a94e2d6d490665e85f7455d62ae501d6c8
Author: Hongyu Chen <hongyc4 at uci.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptLexer.cpp
M lld/ELF/ScriptLexer.h
M lld/ELF/ScriptParser.cpp
Log Message:
-----------
[ELF] Delete peek2 in Lexer (#99790)
Summary:
Thanks to Fangrui's change
https://github.com/llvm/llvm-project/commit/28045ceab08d41a8a42d93ebc445e8fe906f884c
so peek2 can be removed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251424
Commit: 00458decb1c0b2075abbcb9c08933f467bb88259
https://github.com/llvm/llvm-project/commit/00458decb1c0b2075abbcb9c08933f467bb88259
Author: hev <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
Log Message:
-----------
Revert "[LoongArch] Remove spurious mask operations from andn->icmp on 16 and 8 bit values" (#99792)
Summary: Reverts llvm/llvm-project#99272
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251169
Commit: 29549c304787c71bcc179dcc9144792bb8e16019
https://github.com/llvm/llvm-project/commit/29549c304787c71bcc179dcc9144792bb8e16019
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/utils/gpu/server/rpc_server.cpp
Log Message:
-----------
[libc] Fix GPU 'printf' on strings with padding
Summary:
We get the `strlen` to know how much memory to allocate here, but it
wasn't taking into account if the padding was larger than the string
itself. This patch sets it to an empty string so we always add the
minimum size. This implementation is slightly wasteful with memory, but
I am not concerned with a few extra bytes here and there for some memory
that gets immediately free'd.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251420
Commit: 3582f68d67b9c36bcad82e6f87bd391c67c2baf5
https://github.com/llvm/llvm-project/commit/3582f68d67b9c36bcad82e6f87bd391c67c2baf5
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/TargetRegistry.cpp
Log Message:
-----------
[MC] Move createMC{Object,Asm}Streamer to .cpp
Summary:
Currently, the template arguments are incomplete types and unique_ptr&&
has to be used. Moving the implementation to .cpp allows us to
use complete types and unique_ptr.
In addition, add a createMCObjectStreamer overload without unused bool
parameters. The existing createMCObjectStreamer overload, with unused
and confusing bool parameters, will be deprecated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251190
Commit: 1ae61fb165985cc9a3fa8a6518f2b62bae372d6e
https://github.com/llvm/llvm-project/commit/1ae61fb165985cc9a3fa8a6518f2b62bae372d6e
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/driver/cc1as_main.cpp
M llvm/lib/CodeGen/LLVMTargetMachine.cpp
M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.cpp
M llvm/tools/llvm-dwp/llvm-dwp.cpp
M llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
M llvm/tools/llvm-mc/llvm-mc.cpp
M llvm/tools/llvm-ml/llvm-ml.cpp
M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
M llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
M llvm/unittests/MC/DwarfLineTableHeaders.cpp
M mlir/lib/Target/LLVM/ROCDL/Target.cpp
Log Message:
-----------
[MC] Remove unused bool arguments from createMCObjectStreamer callers
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251330
Commit: 9acf0067db51db65281ef71f9e2330267afa2175
https://github.com/llvm/llvm-project/commit/9acf0067db51db65281ef71f9e2330267afa2175
Author: antangelo <contact at antangelo.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64CallingConvention.td
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_aapcs.ll
A llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_darwin.ll
A llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll
Log Message:
-----------
[AArch64] Support varargs for preserve_nonecc (#99434)
Adds varargs support for preserve_none by falling back to C argument
passing for the target platform for varargs functions.
Fixes #95093
Commit: 9745fa2676efb9431957bfb7104687efd4e23c59
https://github.com/llvm/llvm-project/commit/9745fa2676efb9431957bfb7104687efd4e23c59
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/lib/Core/BinaryContext.cpp
Log Message:
-----------
[BOLT] Remove unused bool arguments from createMCObjectStreamer callers
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251257
Commit: 66e7651d2f2d680c9348652d173d8c4e0579e163
https://github.com/llvm/llvm-project/commit/66e7651d2f2d680c9348652d173d8c4e0579e163
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
Log Message:
-----------
[MC] Deprecate createMCObjectStreamer with 3 unused trailing bool
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251750
Commit: 87ce81208bb3ad17379413b7e1f30ed558d3d64e
https://github.com/llvm/llvm-project/commit/87ce81208bb3ad17379413b7e1f30ed558d3d64e
Author: WANG Rui <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
Log Message:
-----------
[LoongArch] Add a test for spurious mask removal. NFC
Link: https://github.com/llvm/llvm-project/pull/99272#issuecomment-2241348794
Commit: e73d4c8255670ba9e8752aff06b9c1e885d56041
https://github.com/llvm/llvm-project/commit/e73d4c8255670ba9e8752aff06b9c1e885d56041
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/driver/cc1as_main.cpp
M llvm/lib/CodeGen/LLVMTargetMachine.cpp
M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/tools/llvm-mc/llvm-mc.cpp
M llvm/tools/llvm-ml/llvm-ml.cpp
Log Message:
-----------
[MC] MCAsmStreamer: use MCTargetOptions
Some bool parameters duplicate MCTargetOptions and might cause
inconsistency/confusion.
Commit: a50f1e4eef315cf1447803ae9a018b074ca06144
https://github.com/llvm/llvm-project/commit/a50f1e4eef315cf1447803ae9a018b074ca06144
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/TargetRegistry.cpp
Log Message:
-----------
[MC] createAsmStreamer: add overload without unused bool parameters
Summary:
The bool parameters have been made ineffective in favor of
MCTargetOptions options to resolve inconsistency issues. New clients
should not pass the unused bool arguments. The existing overload will be
removed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251261
Commit: eda9653352e2920f3f0676c71adab62c3c23db60
https://github.com/llvm/llvm-project/commit/eda9653352e2920f3f0676c71adab62c3c23db60
Author: Tim Creech <timothy.m.creech at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/tools/llvm-profgen/Inputs/cmov_3.perfbin
A llvm/test/tools/llvm-profgen/Inputs/cmov_3.perfscript
A llvm/test/tools/llvm-profgen/Inputs/ip-duplication.perfscript
A llvm/test/tools/llvm-profgen/Inputs/noprobe-skid.perfscript
A llvm/test/tools/llvm-profgen/event-filtering.test
A llvm/test/tools/llvm-profgen/iponly-nodupfactor.test
A llvm/test/tools/llvm-profgen/iponly.test
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
Log Message:
-----------
[llvm-profgen] Support creating profiles of arbitrary events (#99026)
Summary:
This change introduces two options which may be used to create profiles
of arbitrary PMU events.
1. `--leading-ip-only` provides a simple sample-IP-based profile mode.
This is not useful for building a profile of execution frequency, but it
is useful for building new types of profiles.
For example, to build a profile of unpredictable branches:
perf record -b -e branch-misses:upp -o perf.data ... llvm-profgen
--perfdata perf.data --leading-ip-only ...
2. `--perf-event=event` enables the creation of a profile concerned with
a specific event or set of events. The names given should match the
"event" field as emitted by perf-script(1).
This option has two spellings: `--perf-event` and `--perf-events`. The
plural spelling accepts a comma-separated list. The singular spelling
appends a single event name to the set of events which will be used.
This is meant to accommodate event names containing commas.
Combined, these options allow generating multiple kinds of profiles from
a single `perf record` collection. For example, to generate both
execution frequency and branch mispredict profiles:
perf record -c 1000003 -b -e
br_inst_retired.near_taken:upp,br_misp_retired.all_branches:upp ...
llvm-profgen --output execution.prof
--perf-event=br_inst_retired.near_taken:upp ...
llvm-profgen --leading-ip-only --output unpredictable.prof
--perf-event=br_misp_retired.all_branches:upp ...
These additions are in support of more general HWPGO[^1], allowing
feedback from a wider range of hardware events.
[^1]:
https://llvm.org/devmtg/2024-04/slides/TechnicalTalks/Xiao-EnablingHW-BasedPGO.pdf
---------
Co-authored-by: Tim Creech <tcreech at tcreech.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251204
Commit: 5029e2aca1ca6ee0671a8cc68a262febbe21aab2
https://github.com/llvm/llvm-project/commit/5029e2aca1ca6ee0671a8cc68a262febbe21aab2
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/LoopVectorize/X86/predicate-switch.ll
A llvm/test/Transforms/LoopVectorize/predicate-switch.ll
Log Message:
-----------
[LV] Add tests for loops with switches.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251207
Commit: 37f4ea24bc598f256bd268fc972fb515df3f1ba8
https://github.com/llvm/llvm-project/commit/37f4ea24bc598f256bd268fc972fb515df3f1ba8
Author: Piyou Chen <piyou.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/riscv/feature_bits.c
Log Message:
-----------
[compiler-rt][RISCV] Implement __init_riscv_feature_bits (#85790)
Base on https://github.com/riscv-non-isa/riscv-c-api-doc/pull/74, this
patch defines the `__riscv_feature_bits` and
`__riscv_vendor_feature_bits` structures to store the enabled feature
bits at runtime.
It also introduces the `__init_riscv_feature_bits` function to update
these structures based on the platform query mechanism.
Additionally, the groupid/bitmask definitions from
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/74 are declared
and used to update the `__riscv_feature_bits` and
`__riscv_vendor_feature_bits` structures.
---------
Co-authored-by: Kito Cheng <kito.cheng at gmail.com>
Commit: 0a0afd89a2f6c94b884b2402a7576c57fb93f26b
https://github.com/llvm/llvm-project/commit/0a0afd89a2f6c94b884b2402a7576c57fb93f26b
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/include/__memory/unique_ptr.h
M libcxx/include/memory
M libcxx/include/optional
A libcxx/test/std/utilities/memory/unique.ptr/noexcept_operator_star.compile.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference_const_rvalue.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference_rvalue.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
M libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/dereference.single.pass.cpp
Log Message:
-----------
[libc++] Makes `unique_ptr operator*() noexcept. (#98047)
This implements
- LWG2762 unique_ptr operator*() should be noexcept.
Differential Revision: https://reviews.llvm.org/D128214
Commit: b20749b9c0f922f906253b8a6fa03ba01fa44a0c
https://github.com/llvm/llvm-project/commit/b20749b9c0f922f906253b8a6fa03ba01fa44a0c
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
M llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
M llvm/test/CodeGen/AArch64/qmovn.ll
Log Message:
-----------
[AArch64] Add UQXTN2 patterns
Summary:
Similar to the existing UQXTN and SQXTN2 patterns, we can generate a UQXTN2
from concat(Vd, trunc(min(X, 255)))
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251232
Commit: a3dec354b4f1d8a33d06c62bff91d7854ee1feca
https://github.com/llvm/llvm-project/commit/a3dec354b4f1d8a33d06c62bff91d7854ee1feca
Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Host/windows/Host.cpp
M lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
Log Message:
-----------
[lldb][Windows] Fixed Host::Kill() (#99721)
Summary:
HostProcessWindows::Terminate() correctly uses m_process which type is
process_t (HANDLE) to call ::TerminateProcess(). But Host::Kill() uses a
cast from pid, which is wrong.
This patch fixes #51793
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251618
Commit: a8acd9e02af232f77ae31c052760bf8d1202fdf9
https://github.com/llvm/llvm-project/commit/a8acd9e02af232f77ae31c052760bf8d1202fdf9
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/load-scalarization-cost-0.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-scalable-vf1.ll
Log Message:
-----------
[LV] Update tests to not have dead interleave groups.
Summary:
Update existing tests with dead interleave groups by adding users. This
ensures the tests keep testing what they were intended to test with a
planned change to skip unused instructions in cost computations.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251453
Commit: 582821d2851b75a8e0e7a264c788058590f7ea3d
https://github.com/llvm/llvm-project/commit/582821d2851b75a8e0e7a264c788058590f7ea3d
Author: Job Henandez Lara <hj93 at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
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/math/CMakeLists.txt
A libc/src/math/fsqrt.h
A libc/src/math/fsqrtf128.h
A libc/src/math/fsqrtl.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/fsqrt.cpp
A libc/src/math/generic/fsqrtf128.cpp
A libc/src/math/generic/fsqrtl.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/fsqrt_test.cpp
A libc/test/src/math/fsqrtl_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/fsqrt_test.cpp
A libc/test/src/math/smoke/fsqrtf128_test.cpp
A libc/test/src/math/smoke/fsqrtl_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
Log Message:
-----------
[libc][math][c23] Add entrypoints and tests for fsqrt{,l,f128} (#99669)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251564
Commit: cefa5227340a351b4ea782589e84ffcc5135fc35
https://github.com/llvm/llvm-project/commit/cefa5227340a351b4ea782589e84ffcc5135fc35
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/driver/cc1as_main.cpp
M llvm/lib/CodeGen/LLVMTargetMachine.cpp
M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.cpp
M llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
M llvm/tools/llvm-mc/llvm-mc.cpp
M llvm/tools/llvm-ml/llvm-ml.cpp
Log Message:
-----------
[MC] Migrate to new createAsmStreamer that avoids unused bool parameters
Commit: a574fc50c04bbc49c3059b6c01021f8b79d0e273
https://github.com/llvm/llvm-project/commit/a574fc50c04bbc49c3059b6c01021f8b79d0e273
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
Log Message:
-----------
[mlir][test] Add comments in a test (nfc) (#99810)
Summary:
Documents which patterns are tested in:
* vector-transfer-collapse-inner-most-dims.mlir.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251339
Commit: d2cac58d500fa3dfcd852f1407431e6b05347cf3
https://github.com/llvm/llvm-project/commit/d2cac58d500fa3dfcd852f1407431e6b05347cf3
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Passes/AsmDump.cpp
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/TargetRegistry.cpp
Log Message:
-----------
[MC] Migrate to createAsmStreamer without unused bool parameters
Summary:
In bolt/lib/Passes/AsmDump.cpp, the MCInstPrinter is created with false
AsmVerbose. The AsmVerbose argument to createAsmStreamer is unused.
Deprecate the legacy Target::createAsmStreamer overload, which might be
used by downstream.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251216
Commit: 2175172045fa699b51b0aab6142af5fe105f0718
https://github.com/llvm/llvm-project/commit/2175172045fa699b51b0aab6142af5fe105f0718
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
Log Message:
-----------
[ARM,Hexagon] Ignore IsVerboseAsm parameter in favor of MCStreamer::isVerboseAsm()
Summary:
... to improve consistency. Most targets don't use VerboseAsm. When they
do (X86, SystemZ), they use MCStreamer::isVerboseAsm().
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251739
Commit: f582a075bf564c9c31f00d1b5d50e458a6249e01
https://github.com/llvm/llvm-project/commit/f582a075bf564c9c31f00d1b5d50e458a6249e01
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/TargetRegistry.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
M llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
M llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCTargetDesc.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCTargetDesc.cpp
M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
M llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
Log Message:
-----------
[MC] Remove unnecessary isVerboseAsm from Target::AsmTargetStreamerCtorTy
Summary:
The parameter is confusing as it duplicates MCStreamer::isVeboseAsm
(initialized from MCTargetOptions::AsmVerbose). After
233cca169237b91d16092c82bd55ee6a283afe98, no in-tree target uses the
parameter.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251588
Commit: 97c438af5cdb6594a886d0986c09583ea58beaab
https://github.com/llvm/llvm-project/commit/97c438af5cdb6594a886d0986c09583ea58beaab
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/TargetRegistry.cpp
M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
M llvm/tools/llvm-mca/CodeRegionGenerator.cpp
Log Message:
-----------
[MC] Remove unnecessary isVerboseAsm from createAsmTargetStreamer
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251160
Commit: b71bcce404f30c374b8bf8f7c34d9c7018691078
https://github.com/llvm/llvm-project/commit/b71bcce404f30c374b8bf8f7c34d9c7018691078
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCSymbol.h
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
Log Message:
-----------
[MC] Drop unnecessary MCSymbol::setExternal calls for ELF
Similar to e4c360a897fe062914519d331e8f1e28b2b1fbfd (2020).
Commit: 5bc226228ab6444449b03b9a74f0972198b89410
https://github.com/llvm/llvm-project/commit/5bc226228ab6444449b03b9a74f0972198b89410
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCSymbol.h
M llvm/include/llvm/MC/MCSymbolMachO.h
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
[MC] Move isPrivateExtern to MCSymbolMachO
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251414
Commit: 933c35d84975d7bf02b35acc507efd4abc57c8bb
https://github.com/llvm/llvm-project/commit/933c35d84975d7bf02b35acc507efd4abc57c8bb
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
M llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
Log Message:
-----------
*AsmBackend.cpp: Include StringSwitch.h
Summary:
They currently get the header from MCLinkerOptimizationHint.h, which
will be removed from MCAssembler.h.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251209
Commit: e91e508c977dd0b86f0ff6cb4a57f07cbea2b03f
https://github.com/llvm/llvm-project/commit/e91e508c977dd0b86f0ff6cb4a57f07cbea2b03f
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
[MC] Move LOHContainer to MachObjectwriter
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251228
Commit: cff648181658e68ab64c3c5d72632e73fc3e7745
https://github.com/llvm/llvm-project/commit/cff648181658e68ab64c3c5d72632e73fc3e7745
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
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:
-----------
Reapply "Add source file name for template instantiations in -ftime-trace" (#99757)
Summary:
Reverts https://github.com/llvm/llvm-project/pull/99731
Remove accidentally added temporary file.
Also, fix the uninitialized read of line number.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251529
Commit: 7e5106c1f970c45653efa10ba46631e38461bd47
https://github.com/llvm/llvm-project/commit/7e5106c1f970c45653efa10ba46631e38461bd47
Author: serge-sans-paille <serge.guelton at telecom-bretagne.eu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/runtime/derived.cpp
Log Message:
-----------
[Flang][Runtime] Fix implicit conversion warning when targeting 32bit… (#99465)
Summary:
… architecture
On 32 bit systems, TypeParameterValue is 64bit wide while CFI_index_t is
32bit wide.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251184
Commit: d0858e2e679a334a5f6f43959d92056cca4f839b
https://github.com/llvm/llvm-project/commit/d0858e2e679a334a5f6f43959d92056cca4f839b
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
M llvm/include/llvm/MC/MCWinCOFFStreamer.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/MC/WinCOFFObjectWriter.cpp
M llvm/lib/MC/XCOFFObjectWriter.cpp
Log Message:
-----------
[MC] Export llvm::WinCOFFObjectWriter and access it from MCWinCOFFStreamer
Similar to commit 28fcafb50274be2520117eacb0a886adafefe59d (2011) for
MachObjectWriter. MCWinCOFFStreamer can now access WinCOFFObjectWriter
directly without holding object file format specific inforamtion in
MCAssembler (e.g. IncrementalLinkerCompatible).
Commit: d4d80ce7937d3b686d8f0fe0987496724bda606d
https://github.com/llvm/llvm-project/commit/d4d80ce7937d3b686d8f0fe0987496724bda606d
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCSPIRVObjectWriter.h
M llvm/lib/MC/SPIRVObjectWriter.cpp
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
Log Message:
-----------
[MC] Export llvm::SPIRVObjectTargetWriter and drop reliance on Mach-o specific VersionInfo
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251639
Commit: 3756673f778c12a301111f0df8661621eac5e7f7
https://github.com/llvm/llvm-project/commit/3756673f778c12a301111f0df8661621eac5e7f7
Author: Job Henandez Lara <hj93 at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/darwin/arm/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/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/math/CMakeLists.txt
A libc/src/math/dsqrtf128.h
A libc/src/math/dsqrtl.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/dsqrtf128.cpp
A libc/src/math/generic/dsqrtl.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/dsqrtl_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/dsqrtf128_test.cpp
A libc/test/src/math/smoke/dsqrtl_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
Log Message:
-----------
[libc][math][c23] Add entrypoints and tests for dsqrt{l,f128} (#99815)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251416
Commit: a3ed16c0396ff6ca78c3de556489affc3b61dae6
https://github.com/llvm/llvm-project/commit/a3ed16c0396ff6ca78c3de556489affc3b61dae6
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
[MC] Move VersionInfo to MachObjectWriter
Commit: 488abd33161d4ccaf1b1b5e4fe3aefac14bb9384
https://github.com/llvm/llvm-project/commit/488abd33161d4ccaf1b1b5e4fe3aefac14bb9384
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Log Message:
-----------
[Transforms] Use range-based for loops (NFC) (#99607)
Commit: 5231663f3a8c82de3a5d4a87abf2b035da351b2c
https://github.com/llvm/llvm-project/commit/5231663f3a8c82de3a5d4a87abf2b035da351b2c
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in annotating StartOfName (#99791)
Fixes #99758.
Commit: 361e0592f7a80477aced28d04bd1719ca3044c28
https://github.com/llvm/llvm-project/commit/361e0592f7a80477aced28d04bd1719ca3044c28
Author: Alexander Belyaev <32522095+pifon2a at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/IR/BuiltinTypes.h
M mlir/include/mlir/IR/BuiltinTypes.td
M mlir/include/mlir/IR/CommonTypeConstraints.td
Log Message:
-----------
[mlir] Add a ValueSemantics trait. (#99493)
Summary:
We need to distinguish ShapedTypes with and without value semantics.
This is needed for downstream users to define their custom vector and
tensor
types that can work with the arith/math dialect.
RFC https://discourse.llvm.org/t/rfc-mlir-types-with-encoding/80189
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251327
Commit: 329e9dd5fe579d516c5cecd3e18b7383c4d66dcc
https://github.com/llvm/llvm-project/commit/329e9dd5fe579d516c5cecd3e18b7383c4d66dcc
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/CMakeLists.txt
M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
M libc/benchmarks/gpu/LibcGpuBenchmark.h
Log Message:
-----------
[libc] Improve Benchmark UI (#99796)
Summary:
This PR changes the output to resemble Google Benchmark. e.g.
```
Running Suite: LlvmLibcIsAlNumGpuBenchmark
Benchmark | Cycles | Min | Max | Iterations | Time (ns) | Stddev | Threads |
-----------------------------------------------------------------------------------------------------
IsAlnum | 92 | 76 | 482 | 23 | 86500 | 76 | 64 |
IsAlnumSingleThread | 87 | 76 | 302 | 20 | 72000 | 49 | 1 |
IsAlnumSingleWave | 87 | 76 | 302 | 20 | 72000 | 49 | 32 |
IsAlnumCapital | 89 | 76 | 299 | 17 | 78500 | 52 | 64 |
IsAlnumNotAlnum | 87 | 76 | 303 | 20 | 76000 | 49 | 64 |
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251239
Commit: a42487f96fcb1d25a9149cffe0eaed7bb20ea6cd
https://github.com/llvm/llvm-project/commit/a42487f96fcb1d25a9149cffe0eaed7bb20ea6cd
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in annotating FunctionAnnotationRParen (#99802)
Summary: Fixes #37906.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251166
Commit: f3c7149326a5b5dc2e28cd6e597332746fa1d97d
https://github.com/llvm/llvm-project/commit/f3c7149326a5b5dc2e28cd6e597332746fa1d97d
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAsmBackend.h
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCSection.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCSection.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Log Message:
-----------
[MC] Compute fragment offsets eagerly
Summary:
This builds on top of commit 9d0754ada5dbbc0c009bcc2f7824488419cc5530
("[MC] Relax fragments eagerly") and relaxes fragments eagerly to
eliminate MCSection::HasLayout and `getFragmentOffset` overhead.
Note: The removed `#ifndef NDEBUG` code (disabled by default) in
X86AsmBackend::finishLayout was problematic, as (a) !NDEBUG and NDEBUG
builds evaluated fragment offsets at different times before this patch
(b) one iteration might not be sufficient to converge. There might be
some edge cases that it did not handle. Anyhow, this patch probably
makes it work for more cases.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251177
Commit: 1d493ef7d8830de036d8e79b4b9ff79078881cb0
https://github.com/llvm/llvm-project/commit/1d493ef7d8830de036d8e79b4b9ff79078881cb0
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
M libc/src/__support/FPUtil/BasicOperations.h
M libc/src/__support/FPUtil/CMakeLists.txt
M libc/src/__support/FPUtil/generic/FMA.h
M libc/src/__support/FPUtil/generic/add_sub.h
M libc/src/__support/FPUtil/generic/div.h
M libc/src/__support/FPUtil/generic/mul.h
M libc/test/src/math/smoke/AddTest.h
M libc/test/src/math/smoke/DivTest.h
M libc/test/src/math/smoke/MulTest.h
M libc/test/src/math/smoke/SubTest.h
Log Message:
-----------
[libc][math] Update getpayload and fmul/fadd/fsub/ffma with NaN inputs. (#99812)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251352
Commit: 54829eb7913733a95bc03682eb96ae0b04e3cb1c
https://github.com/llvm/llvm-project/commit/54829eb7913733a95bc03682eb96ae0b04e3cb1c
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/riscv/headers.txt
M libc/test/src/sys/statvfs/linux/fstatvfs_test.cpp
M libc/test/src/sys/statvfs/linux/statvfs_test.cpp
Log Message:
-----------
[libc] Fix statvfs test case when SYS_statfs64 is used (#99827)
Summary:
When SYS_statfs64 is used, struct statfs64 is used instead of struct statfs. This patch adds a define to select the appropriate struct, similar to how it's done internally.
This patch also enables fstatvfs and statvfs on riscv, which would not be compiled without this change.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251215
Commit: 1532e07ad38f44e85c989fa6f62dcb0fa05f3e82
https://github.com/llvm/llvm-project/commit/1532e07ad38f44e85c989fa6f62dcb0fa05f3e82
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/test/Driver/fpatchable-function-entry.c
M clang/test/Sema/patchable-function-entry-attr.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
A llvm/test/CodeGen/PowerPC/patchable-function-entry.ll
Log Message:
-----------
[PowerPC] Support -fpatchable-function-entry (#92997)
For now only PPC big endian Linux 32 and 64 bit are supported.
PPC little endian Linux has XRAY support for 64-bit.
PPC AIX has different patchable function entry implementations.
Fixes #63220
Fixes #57031
Commit: 1aab1f67e737bfbe76be6a378627d0c82b522d49
https://github.com/llvm/llvm-project/commit/1aab1f67e737bfbe76be6a378627d0c82b522d49
Author: Oliver Hunt <oliver at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGExprConstant.cpp
A clang/test/CodeGenCXX/ptrauth-global-constant-initializers.cpp
Log Message:
-----------
[PAC] Incorrect codegen for constant global init with polymorphic MI (#99741)
Summary:
Fixes an error where we use the wrong authentication schema for
secondary vtable pointers in constant initialized globals of types with
multiple polymorphic base classes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251664
Commit: aa3b45dae2c607f347a333c3c5001dd39052ab0f
https://github.com/llvm/llvm-project/commit/aa3b45dae2c607f347a333c3c5001dd39052ab0f
Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
M libc/benchmarks/gpu/LibcGpuBenchmark.h
Log Message:
-----------
[libc] Add N Threads Benchmark Helper (#99834)
Summary:
This PR adds a `BENCHMARK_N_THREADS()` helper to register benchmarks
with a specific number of threads. This PR replaces the flags used
originally to allow any amount of threads.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251455
Commit: dc61cb83c39bde2a31523f8ce8bcf34ba24366ce
https://github.com/llvm/llvm-project/commit/dc61cb83c39bde2a31523f8ce8bcf34ba24366ce
Author: donald chen <chenxunyu1993 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/docs/Canonicalization.md
Log Message:
-----------
[mlir][docs] Update documentation for canonicalize. (#99753)
Update canonicalize docs.
Commit: 3696fc7f2854967d6cf4704bbdf0720340e99087
https://github.com/llvm/llvm-project/commit/3696fc7f2854967d6cf4704bbdf0720340e99087
Author: Connor Sughrue <55301806+cpsughrue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Support/raw_socket_stream.h
M llvm/lib/Support/raw_socket_stream.cpp
M llvm/unittests/Support/raw_socket_stream_test.cpp
Log Message:
-----------
[llvm][Support] Implement raw_socket_stream::read with optional timeout (#92308)
Summary:
This PR implements `raw_socket_stream::read`, which overloads the base
class `raw_fd_stream::read`. `raw_socket_stream::read` provides a way to
timeout the underlying `::read`. The timeout functionality was not added
to `raw_fd_stream::read` to avoid needlessly increasing compile times
and allow for convenient code reuse with `raw_socket_stream::accept`,
which also requires timeout functionality. This PR supports the module
build daemon and will help guarantee it never becomes a zombie process.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251217
Commit: 00d0af2f8041d239a67d68a2c5f686f8b1d311a9
https://github.com/llvm/llvm-project/commit/00d0af2f8041d239a67d68a2c5f686f8b1d311a9
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-binop-cmp.ll
M llvm/test/Transforms/InstCombine/select.ll
Log Message:
-----------
[InstCombine] Do not use operand info in `replaceInInstruction` (#99492)
Summary:
Consider the following case:
```
%cmp = icmp eq ptr %p, null
%load = load i32, ptr %p, align 4
%sel = select i1 %cmp, i32 %load, i32 0
```
`foldSelectValueEquivalence` converts `load i32, ptr %p, align 4` into
`load i32, ptr null, align 4`, which causes immediate UB. `%load` is
speculatable, but it doesn't hold after operand substitution.
This patch introduces a new helper
`isSafeToSpeculativelyExecuteWithVariableReplaced`. It ignores operand
info in these instructions since their operands will be replaced later.
Fixes #99436.
---------
Co-authored-by: Nikita Popov <github at npopov.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251182
Commit: f9af8a82ba76d89108548ad322d3acbda33f9820
https://github.com/llvm/llvm-project/commit/f9af8a82ba76d89108548ad322d3acbda33f9820
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Log Message:
-----------
[PowerPC]fix XRAY failures in https://lab.llvm.org/buildbot/#/builders/145/builds/726
Summary: Regression caused by 43213002b99e32d618f2afbbaaeb2ff8dfc84e33.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251489
Commit: c0251d3d2aff4588bfe272458a4c3ce064ad2554
https://github.com/llvm/llvm-project/commit/c0251d3d2aff4588bfe272458a4c3ce064ad2554
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Log Message:
-----------
AMDGPU: Query MachineModuleInfo from PM instead of MachineFunction (#99679)
Commit: b21c0baa3a4e7d7b8932f5423bd672dcf763cf2a
https://github.com/llvm/llvm-project/commit/b21c0baa3a4e7d7b8932f5423bd672dcf763cf2a
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Lex/Token.h
M clang/include/clang/Parse/Parser.h
M clang/lib/Basic/IdentifierTable.cpp
M clang/lib/Frontend/PrintPreprocessedOutput.cpp
M clang/lib/Lex/PPLexerChange.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Lex/TokenConcatenation.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/Parser.cpp
R clang/test/CXX/cpp/cpp.module/p2.cppm
M clang/test/CXX/module/basic/basic.link/module-declaration.cpp
M clang/test/CXX/module/dcl.dcl/dcl.module/dcl.module.import/p1.cppm
M clang/test/SemaCXX/modules.cppm
M clang/www/cxx_status.html
Log Message:
-----------
Revert "[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros" (#99838)
Summary: Reverts llvm/llvm-project#90574
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251154
Commit: 348a15d1b1e8d7a286be57b701f4fc8380685ce1
https://github.com/llvm/llvm-project/commit/348a15d1b1e8d7a286be57b701f4fc8380685ce1
Author: David CARLIER <devnexen at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp
Log Message:
-----------
[compiler-rt] fix couple of netbsd build warnings. (#99745)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251221
Commit: d099d24fe4cc9596be2cfd59d14a4d4797652bae
https://github.com/llvm/llvm-project/commit/d099d24fe4cc9596be2cfd59d14a4d4797652bae
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/arith-fp.ll
M llvm/test/Analysis/CostModel/RISCV/rvv-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/VectorCombine/RISCV/vpintrin-scalarization.ll
Log Message:
-----------
[RISCV] Don't cost vector arithmetic fp ops as cheaper than scalar (#99594)
I was comparing some SPEC CPU 2017 benchmarks across rva22u64 and
rva22u64_v, and noticed that in a few cases that rva22u64_v was
considerably slower.
One of them was 519.lbm_r, which has a large loop that was being
unprofitably vectorized. It has an if/else in the loop which requires
large amounts of predication when vectorized, but despite the loop
vectorizer taking this into account the vector cost came out as cheaper
than the scalar.
It looks like the reason for this is because we cost scalar floating
point ops as 2, but their vector equivalents as 1 (for LMUL 1). This
comes from how we use BasicTTIImpl for scalars which treats floats as
twice as expensive as integers.
This patch doubles the cost of vector floating point arithmetic ops so
that they're at least as expensive as their scalar counterparts, which
gives a 13% speedup on 519.lbm_r at -O3 on the spacemit-x60.
Fixes #62576 (the last point there about scalar fsub/fmul)
Commit: 487d4489ac05941fcd2b89ea6e72ae259f880ca5
https://github.com/llvm/llvm-project/commit/487d4489ac05941fcd2b89ea6e72ae259f880ca5
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/MachO/Writer.cpp
Log Message:
-----------
[lld-macho] Use parallel algorithms in favor of `ThreadPool` (#99471)
Summary:
In https://reviews.llvm.org/D115416, it was decided that an explicit
thread pool should be used instead of the simpler fork-join model of the
`parallelFor*` family of functions. Since then, more parallelism has
been added to LLD, but these changes always used the latter strategy,
similarly to other ports of LLD.
This meant that we ended up spawning twice the requested amount of
threads; one set for the `llvm/Support/Parallel.h` executor, and one for
the thread pool.
Since that decision, 3b4d800911 has landed, which allows us to
explicitly enqueue jobs on the executor pool of the parallel algorithms,
which should be enough to achieve sharded output writing and
parallelized input file parsing. Now only the construction of the map
file is left that should be done *concurrently* with different linking
steps, this commit proposes explicitly spawning a dedicated worker
thread for it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251328
Commit: 79eaad555abe9cd119bdba8d9fdf7e1f6e64f902
https://github.com/llvm/llvm-project/commit/79eaad555abe9cd119bdba8d9fdf7e1f6e64f902
Author: Piyou Chen <piyou.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/TargetParser/RISCVTargetParser.h
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/TargetParser/RISCVTargetParser.cpp
M llvm/test/TableGen/riscv-target-def.td
M llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
Log Message:
-----------
[RISCV] Add groupid/bitmask for RISC-V extension (#94440)
Summary:
Base on https://github.com/riscv-non-isa/riscv-c-api-doc/pull/74.
This patch defines the groupid/bitmask in RISCVFeatures.td and generates
the corresponding table in RISCVTargetParserDef.inc.
The groupid/bitmask of extensions provides an abstraction layer between
the compiler and runtime functions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251500
Commit: 044f89c1d77197fd4a2a3e0c4fac10501efe1a66
https://github.com/llvm/llvm-project/commit/044f89c1d77197fd4a2a3e0c4fac10501efe1a66
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/Arch/RISCV.cpp
Log Message:
-----------
[lld][RISCV] Add break to nested switch in `mergeAtomic` (#99762)
Summary: This prevent the warnings from compiler.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251271
Commit: e8715fbfdeb2789e9a28bcf164dce4fac04ba9b0
https://github.com/llvm/llvm-project/commit/e8715fbfdeb2789e9a28bcf164dce4fac04ba9b0
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/TargetParser/RISCVTargetParser.cpp
Log Message:
-----------
[RISCV] Remove unused function (NFC)
Summary:
/llvm-project/llvm/lib/TargetParser/RISCVTargetParser.cpp:148:1:
error: unused function 'getExtensionBitmask' [-Werror,-Wunused-function]
getExtensionBitmask(StringRef ExtName) {
^
1 error generated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251250
Commit: 8a15a19184ec1dbd2dc7fce0f5f29a0690613077
https://github.com/llvm/llvm-project/commit/8a15a19184ec1dbd2dc7fce0f5f29a0690613077
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/BranchFolding.cpp
Log Message:
-----------
[BranchFolding] Add a hook to override tail merge size (#99025)
Summary:
A new hook `TargetInstrInfo::getTailMergeSize()` is added so that
targets can override it.
This removes an existing TODO.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251498
Commit: 44a36b615d6d061fbe297005593ab83d01ca8298
https://github.com/llvm/llvm-project/commit/44a36b615d6d061fbe297005593ab83d01ca8298
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/DeadStoreElimination/memoryssa-scan-limit.ll
Log Message:
-----------
[DeadStoreElimination] Add test for recent worklist revision (NFC)
Summary:
As d5c89cc proved not to be NFC, prior to this change, duplicate
`MemoryAccess` entries were being added to the worklist in
`isWriteAtEndOfFunction`, prematurely reaching the exploration
limit. When `MemorySSAScanLimit` cutoff is set to 4, the store
was previously not eliminated. Introduce a regression test for
additional validation. The test is a simplified variant of function
`ntlmssp_create_session_key`, coming from @dtcxzyw/llvm-opt-benchmark,
bench/wireshark/original/packet-ntlmssp.c.ll.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251398
Commit: 35dda530f1eda25e1bc49f787cfdb9cd054d47a4
https://github.com/llvm/llvm-project/commit/35dda530f1eda25e1bc49f787cfdb9cd054d47a4
Author: Matthias Springer <me at m-sp.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Transforms/Utils/DialectConversion.cpp
Log Message:
-----------
[mlir][Transforms][NFC] Dialect conversion: Simplify `EraseBlockRewrite` constructor (#99805)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251419
Commit: 3762a1b274c1bc50d1620ec171e4097a86a9cf6b
https://github.com/llvm/llvm-project/commit/3762a1b274c1bc50d1620ec171e4097a86a9cf6b
Author: hev <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/test/CodeGen/LoongArch/andn-icmp.ll
Log Message:
-----------
[LoongArch] Recommit "Remove spurious mask operations from andn->icmp on 16 and 8 bit values" (#99798)
Summary: recommit of #99272
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251358
Commit: f6de161c16f65285693d333dd8e939d927ffb861
https://github.com/llvm/llvm-project/commit/f6de161c16f65285693d333dd8e939d927ffb861
Author: Lang Hames <lhames at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h
M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
A llvm/unittests/ExecutionEngine/Orc/MemoryFlagsTest.cpp
Log Message:
-----------
[ORC] Add unit test for MemoryFlags APIs, don't dereference end() iterator.
In AllocGroupSmallMap::find(AllocGroup) we were calling lower_bound(...) and
then unconditionally dereferencing the resulting iterator, however
lower_bound(...) may return end() if the value being searched for is higher
than any value present in the map. This patch adds a check for end() before
the dereference to guard against dereference of end().
This commit also adds some basic unit tests for MemProt and AllocGroupSmallMap.
rdar://129662981
Commit: 276ec11d4e5f4f0a03acad20aed62e441204e29f
https://github.com/llvm/llvm-project/commit/276ec11d4e5f4f0a03acad20aed62e441204e29f
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/Opcodes.td
M clang/test/SemaCXX/builtin_vectorelements.cpp
Log Message:
-----------
[Clang][Interp] Diagnose use sizeless vector type as the argument of `__builtin_vectorelements` (#99794)
Summary:
This PR implement an opcode to diagnose use sizeless vector type as the
argument of `__builtin_vectorelements`.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251513
Commit: 693e157fba07ebf7c577c79824ab92a1c3d343e1
https://github.com/llvm/llvm-project/commit/693e157fba07ebf7c577c79824ab92a1c3d343e1
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
Log Message:
-----------
[IR] Remove non-canonical matchings (#96763)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251156
Commit: d6fec003d22ef1b9d6adc4254bb809e0d6c371c6
https://github.com/llvm/llvm-project/commit/d6fec003d22ef1b9d6adc4254bb809e0d6c371c6
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/test/AST/ast-dump-ctad-alias.cpp
M clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3-0x.cpp
M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
Log Message:
-----------
[Clang][NFCI] Prefer non-canonical template arguments for synthesized CTAD guides (#99840)
This seems to be low-hanging fruit: We could remove all calls to
`Context.getCanonicalTemplateArgument()` and gain a better
diagnostic/AST.
The non-canonical template arguments shouldn't make a difference when
synthesizing a CTAD guide, so this is intended to be an NFC.
Closes https://github.com/llvm/llvm-project/issues/79798
Commit: e2d2ae0449e6473434b612407aa1d0bb03c502ea
https://github.com/llvm/llvm-project/commit/e2d2ae0449e6473434b612407aa1d0bb03c502ea
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Parse/ParseExpr.cpp
M clang/test/Preprocessor/embed_weird.cpp
Log Message:
-----------
[clang] Fix assertion failure in `injectEmbedTokens` (#99624)
Summary:
It seems for C++ lexer has some caching ability which doesn't expect
injecting "new" tokens in the middle of the cache. Technically #embed
tokens are not completely new since they have already been read from the
file and there was #embed annotation token in this place, so set
`reinject` flag for them to silence assertion.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251200
Commit: 2682ebde07d298f0aeadf86d77aa3cf0f4e0660c
https://github.com/llvm/llvm-project/commit/2682ebde07d298f0aeadf86d77aa3cf0f4e0660c
Author: Dmitry Chernenkov <dmitryc at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fix libc Bazel build for 29be889c2c9c9a92e7ed89bd71d141961517d7e5
Commit: 18c8afc9091621da37bf2f2eddfd7715aa8090a1
https://github.com/llvm/llvm-project/commit/18c8afc9091621da37bf2f2eddfd7715aa8090a1
Author: Max Beck-Jones <max.beck-jones at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/sve-i1-add-reduce.ll
Log Message:
-----------
[AArch64] Lower scalable i1 vector add reduction to cntp (#99031)
Doing an add reduction on a vector of i1 elements is the same as
counting the number of set elements so such a reduction can be lowered
to a cntp instruction. This saves a number of instructions over
performing a UADDV. This patch only handles straightforward cases (i.e.
when vectors are not split).
Commit: c021892632336069be0ffad72a2bab9a76aad93a
https://github.com/llvm/llvm-project/commit/c021892632336069be0ffad72a2bab9a76aad93a
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCContext.h
M llvm/lib/MC/MCContext.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/MC/MCSectionXCOFF.cpp
M llvm/lib/MC/XCOFFObjectWriter.cpp
M llvm/test/DebugInfo/XCOFF/empty.ll
M llvm/test/DebugInfo/XCOFF/explicit-section.ll
M llvm/test/DebugInfo/XCOFF/function-sections.ll
Log Message:
-----------
[XCOFF] refactor the XCOFF BeginSymName handling
Summary: Fixes #96810
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251231
Commit: 1cbe49f6888fa37aa32527a3fe0ff7473c4bc2bd
https://github.com/llvm/llvm-project/commit/1cbe49f6888fa37aa32527a3fe0ff7473c4bc2bd
Author: Tim Creech <timothy.m.creech at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/tools/llvm-profgen/period-scaling.test
M llvm/tools/llvm-profgen/PerfReader.cpp
Log Message:
-----------
[llvm-profgen] Add --sample-period to estimate absolute counts (#99826)
Summary:
Without `--sample-period`, no assumptions are made about perf profile
sample frequencies. This is useful for comparing relative hotness of
different program locations within the same profile.
With `--sample-period`, LBR- and IP-based profile hit counts are
adjusted to estimate the absolute total event count for each program
location. This makes it reasonable to compare hit counts between
different profiles, e.g., between two LBR-based execution frequency
profiles with different sampling periods or between LBR-based execution
frequency profiles and IP-based branch mispredict profiles.
This functionality is in support of HWPGO[^1], which aims to enable
feedback from a wider range of hardware events.
[^1]:
https://llvm.org/devmtg/2024-04/slides/TechnicalTalks/Xiao-EnablingHW-BasedPGO.pdf
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251524
Commit: 6637a7046ade6e484c1b82893c9c9244ef637fed
https://github.com/llvm/llvm-project/commit/6637a7046ade6e484c1b82893c9c9244ef637fed
Author: Max Beck-Jones <max.beck-jones at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
R llvm/test/CodeGen/AArch64/sve-i1-add-reduce.ll
Log Message:
-----------
Revert "[AArch64] Lower scalable i1 vector add reduction to cntp" (#99853)
Summary: Reverts llvm/llvm-project#99031
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251290
Commit: ee68c3ef36f0fa1127d9ca439ce84a0012bc9617
https://github.com/llvm/llvm-project/commit/ee68c3ef36f0fa1127d9ca439ce84a0012bc9617
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/test/Analysis/out-of-bounds-diagnostics.c
Log Message:
-----------
[analyzer] Improve bug report hashing, merge similar reports (#98621)
Summary:
Previously there were certain situations where
alpha.security.ArrayBoundV2 produced lots of very similar and redundant
reports that only differed in their full `Description` that contained
the (negative) byte offset value. (See
https://github.com/llvm/llvm-project/issues/86969 for details.)
This change updates the `Profile()` method of `PathSensitiveBugReport`
to ensure that it uses `getShortDescription()` instead of the full
`Description` so the standard report deduplication eliminates most of
these redundant reports.
Note that the effects of this change are very limited because there are
very few checkers that specify a separate short description, and so
`getShortDescription()` practically always defaults to returning the
full `Description`.
For the sake of consistency `BasicBugReport::Profile()` is also updated
to use the short description. (Right now there are no checkers that use
`BasicBugReport` with separate long and short descriptions.)
This commit also includes some small code quality improvements in
`ArrayBoundV2` that are IMO too trivial to be moved into a separate
commit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251171
Commit: 27ec0f187fe3770c032d68297e65e86533d16c7b
https://github.com/llvm/llvm-project/commit/27ec0f187fe3770c032d68297e65e86533d16c7b
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/cmp-chains.ll
M llvm/test/CodeGen/AArch64/cmp-select-sign.ll
Log Message:
-----------
[AArch64] Use isKnownNonZero to optimize eligible compares to cmn and ccmn (#96349)
Summary:
The problematic case for unsigned comparisons occurs only when the
second argument is zero.
The problematic case for signed comparisons occurs only when the second
argument is the signed minimum value.
We can use KnownBits to know when we don't have to worry about this.
Source: https://devblogs.microsoft.com/oldnewthing/20210607-00/?p=105288
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251645
Commit: c6c08b22a847d9cda178afb2eb84a5bda0776608
https://github.com/llvm/llvm-project/commit/c6c08b22a847d9cda178afb2eb84a5bda0776608
Author: Romaric Jodin <rjodin at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libclc/generic/lib/common/sign.cl
Log Message:
-----------
libclc: add half version of 'sign' (#99841)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251456
Commit: e27b52a8647af7fdbe165f2c6c4a10fe1fd8a735
https://github.com/llvm/llvm-project/commit/e27b52a8647af7fdbe165f2c6c4a10fe1fd8a735
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/test/Dialect/Vector/vector-transfer-flatten.mlir
Log Message:
-----------
[mlir][vector] Refactor vector-transfer-flatten.mlir (nfc) (3/n) (#95745)
The main goal of this and subsequent PRs is to unify and categorize
tests in:
* vector-transfer-flatten.mlir
This should make it easier to identify the edge cases being tested (and
how they differ), remove duplicates and to add tests for scalable
vectors.
The main contributions of this PR:
1. For consistency with other tests,
`@transfer_read_flattenable_with_dynamic_dims_and_indices` is renamed
as `@transfer_read_leading_dynamic_dims`. It is also moved near other
tests for `xfer_read`, variable names are updated to match other
`xfer_read` tests
2. `@transfer_write_dims_mismatch_non_zero_indices_trailing_dynamic_dim`
is renamed as `@negative_transfer_read_dynamic_dim_to_flatten` to
better highlight that it's a negative test and to contrast it with
`@transfer_read_leading_dynamic_dims` (and to emphasise the
difference between the two).
3. Similar changes for tests for `xfer_write`.
4. Make sure that we consistently use `%idx_N` (as opposed to `%idxN`).
Follow-up for #95743 and #95744
Commit: 2104cb0005d69bd05b368b40e8088de2d98665e2
https://github.com/llvm/llvm-project/commit/2104cb0005d69bd05b368b40e8088de2d98665e2
Author: Vikash Gupta <Vikash.Gupta at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/Symbols.h
Log Message:
-----------
[LLD] [COFF] Zero-intialization & proper constructor invocation in COFF's Symbol (#98447)
It happened due to lld's COFF linker multiple regression tests failure.
It got reliably reproduced after the needed intialization of
isUsedinRegularObject bit in the Symbol's ctor, but not handled at
replaceSymbol API properly while creating a specific symbol to insert in
symbol table.
So, now while creating the specific symbol using replaceSymbol, by
explicitly setting the value of isUsedinRegularObject to newly created
symbol around the ctor call of symbol would solve the regression failure
Commit: 614150772b43c5cc68335d40528fc34bb4b6a488
https://github.com/llvm/llvm-project/commit/614150772b43c5cc68335d40528fc34bb4b6a488
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/aarch64/sme-libc-mem-routines.S
M compiler-rt/lib/builtins/aarch64/sme-libc-routines.c
Log Message:
-----------
[AArch64][SME] Make use of Arm Optimised Routines in compiler-rt (#99326)
Summary:
A number of streaming-compatible versions of standard C functions
were added to compiler-rt, however there are already optimised
versions of most of these in libc which are valid in streaming-SVE
mode. This patch replaces the implementations of __arm_sc_mem* with
these versions where possible.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251199
Commit: 086583077b64533377376a1dcfbdc6b075ffef40
https://github.com/llvm/llvm-project/commit/086583077b64533377376a1dcfbdc6b075ffef40
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Log Message:
-----------
[DAG] widenCtPop - reuse existing SDLoc. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251338
Commit: 89beb8b6e8e9da87885005a31a2ff79d16d97014
https://github.com/llvm/llvm-project/commit/89beb8b6e8e9da87885005a31a2ff79d16d97014
Author: David Sherwood <david.sherwood at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/Loads.cpp
M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
Log Message:
-----------
[Analysis] Bail out for negative offsets in isDereferenceableAndAlignedInLoop (#99490)
Summary:
This patch now bails out explicitly for negative offsets so that it's
more consistent with the unsigned remainder and add calculations,
and it fixes a genuine bug as shown with the new test.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251357
Commit: c7cb23cdeaa7271f6d27d3e5640f3884a04457a8
https://github.com/llvm/llvm-project/commit/c7cb23cdeaa7271f6d27d3e5640f3884a04457a8
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
M flang/test/Fir/declare-codegen.fir
Log Message:
-----------
[flang] fix cg-rewrite DCE (#99653)
Summary:
cg-rewrite runs regionDCE to get rid of the unused fir.shape/shift/slice
before codegen since those operations have no codegen.
I came across an issue where unreachable code would cause the pass to
fail with `error: loc(...): null operand found`.
It turns out `mlir::RegionDCE` does not work properly in presence of
unreachable code because it delete operations in reachable code that are
unused in reachable code, but still used in unreachable code (like the
constant in the added test case). It seems `mlir::RegionDCE` is always
run after `mlir::eraseUnreachableBlock` outside of this pass.
A solution could be to run `mlir::eraseUnreachableBlock` here or to try
modifying `mlir::RegionDCE`. But the current behavior may be
intentional, and both of these calls are actually quite expensive. For
instance, RegionDCE will does liveness analysis, and removes unused
block arguments, which is way more than what is needed here. I am not
very found of having this rather heavy transformation inside this pass
(they should be run after or before if they matter in the overall
pipeline).
Do a naïve backward deletion of the trivially dead operations instead.
It is cheaper, and works with unreachable code.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251140
Commit: 5cb0c83f4533c520d0338058d3311b47aeb40ed6
https://github.com/llvm/llvm-project/commit/5cb0c83f4533c520d0338058d3311b47aeb40ed6
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/ConvertCall.cpp
A flang/test/Lower/HLFIR/calls-poly-to-nonpoly.f90
Log Message:
-----------
[flang] fix sequence association of polymorphic actual arguments (#99294)
Summary:
When passing a polymorphic actual array argument to an non polymorphic
explicit or assumed shape argument, copy-in/copy-out may be required and
should be made according to the dummy dynamic type.
The code that was creating the descriptor to drive this copy-in/out was
not handling properly the case where the dummy and actual rank do not
match (possible according to sequence association rules), it tried to
make the copy-in/out according to the dummy argument shape (which we may
not even know if the dummy is assumed-size). Fix this by using the
actual shape when creating this new descriptor with the dummy argument
dynamic type.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251179
Commit: 63753f4c62dfcf59bb76de7a3d2287517271788d
https://github.com/llvm/llvm-project/commit/63753f4c62dfcf59bb76de7a3d2287517271788d
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
A clang/test/Sema/aarch64-neon-without-target-feature.cpp
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[Clang][NEON] Add neon target guard to intrinsics (#98624)
Summary:
This patch improves reported error when NEON intrinsics are used without
neon target feature.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251214
Commit: c527be7c1bab0caed0e9ef8fc92ab51cd63385cb
https://github.com/llvm/llvm-project/commit/c527be7c1bab0caed0e9ef8fc92ab51cd63385cb
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/CodeGen/RegAllocCommon.h
M llvm/include/llvm/CodeGen/RegAllocFast.h
M llvm/include/llvm/Passes/PassBuilder.h
M llvm/lib/CodeGen/RegAllocBase.h
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocFast.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/CodeGen/RegAllocGreedy.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Target/X86/X86TargetMachine.cpp
Log Message:
-----------
[CodeGen] change prototype of regalloc filter function (#93525)
Summary:
[CodeGen] Change the prototype of regalloc filter function
Change the prototype of the filter function so that we can
filter not just by RegClass. We need to implement more
complicated filter based upon some other info associated
with each register.
Patch provided by: Gang Chen (gangc at amd.com)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251136
Commit: c51e2d113a9189c72145c5ba2a5a6f189cee80dc
https://github.com/llvm/llvm-project/commit/c51e2d113a9189c72145c5ba2a5a6f189cee80dc
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
R clang/test/Sema/aarch64-neon-without-target-feature.cpp
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
Revert "[Clang][NEON] Add neon target guard to intrinsics" (#99864)
Summary: Reverts llvm/llvm-project#98624
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251206
Commit: 788350ff220205a3bd6fa2b0916de474a5be51cb
https://github.com/llvm/llvm-project/commit/788350ff220205a3bd6fa2b0916de474a5be51cb
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
Log Message:
-----------
[AMDGPU] Do not print `kernel-resource-usage` information on non-kernels (#99720)
Summary:
This pass is used to get helpful information about the kernel resources
without needing to insepct the binary. However, it currently prints on
every function. These values will always be zero, so it's just spam on
the terminal, at best an indication that a function wasn't internalized
/ optimized out. This patch makes it only print for kernels to make it
more useful in practice.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251371
Commit: a41667df49fbe098d7dc0622ef7b56af0a40617f
https://github.com/llvm/llvm-project/commit/a41667df49fbe098d7dc0622ef7b56af0a40617f
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Object/COFFImportFile.cpp
M llvm/test/tools/llvm-dlltool/arm64ec.test
Log Message:
-----------
[llvm-dlltool] Use EXPORTAS name type for renamed imports on ARM64EC. (#99346)
Summary:
Renamed entries are more tricky on ARM64EC than on other targets due
to additional symbols (we need `__imp_aux_*` in addition to `__imp_*`
and both mangled and unmangled symbol thunks). While we could extend
weak aliases to add them, it seems cleaner to just always use EXPORTAS
name type on ARM64EC targets. Unlike other targets, linkers supporting
ARM64EC need to support EXPORTAS, so there is no compatibility problem
with that.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251341
Commit: 6f2e6a8d00e24fbf1ba3dedf405ed8b843038fd2
https://github.com/llvm/llvm-project/commit/6f2e6a8d00e24fbf1ba3dedf405ed8b843038fd2
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/math/performance_testing/CMakeLists.txt
Log Message:
-----------
[libc][CMake] Set library type of libc_diff_test_utils to STATIC (#99869)
Summary:
Fixes linker errors due to hidden symbols when running CMake with
-DBUILD_SHARED_LIBS=ON.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251210
Commit: 63b035a41abdaab0d97cc2e84d58826c63f955d5
https://github.com/llvm/llvm-project/commit/63b035a41abdaab0d97cc2e84d58826c63f955d5
Author: kadir çetinkaya <kadircet at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clangd/IncludeCleaner.cpp
M clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp
M clang-tools-extra/include-cleaner/lib/Analysis.cpp
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
Log Message:
-----------
[IncludeCleaner] Also check for spellings of physical headers (#99843)
Summary:
Some physical headers can have "conflicting" spellings, when same
filename exists under two different include search paths. e.g.
<stdlib.h>
can be provided by both standard library and underlying libc headers. In
such scenarios if the usage is from the latter include-search path,
users can't spell it directly.
This patch ensures we also consider spellings of such includes, in
addition to their physical files to prevent conflicting suggestions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251132
Commit: 3ed3e88796b8211cd049c9a407bb7d4bcf8d0271
https://github.com/llvm/llvm-project/commit/3ed3e88796b8211cd049c9a407bb7d4bcf8d0271
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/AArch64/fast-isel-select.ll
Log Message:
-----------
[AArch64] Fix broken check lines (NFC)
Commit: 8ca9d27c579cc2123a59ead030e956506004f31f
https://github.com/llvm/llvm-project/commit/8ca9d27c579cc2123a59ead030e956506004f31f
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
A clang/test/Sema/aarch64-neon-without-target-feature.cpp
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[Clang][NEON] Add neon target guard to intrinsics (#99870)
This patch improves reported error when NEON intrinsics are used without
neon target feature.
Commit: 6779703a0b89db9b8b838c19693398da858d9a90
https://github.com/llvm/llvm-project/commit/6779703a0b89db9b8b838c19693398da858d9a90
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/pmul.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll
M llvm/test/CodeGen/X86/widen_bitcnt.ll
Log Message:
-----------
[X86] combineConcatVectorOps - concat(bitcast(),bitcast()) -> bitcast(concat())
Summary: When concatenating subvector ops together, try to use the pre-bitcasted subop to help expose further combines.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251274
Commit: 93ce49c64e7c491611bf245bb68816a2a0a40000
https://github.com/llvm/llvm-project/commit/93ce49c64e7c491611bf245bb68816a2a0a40000
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/X86/combine-pmadd.ll
Log Message:
-----------
[X86] Add tests showing failure to push freeze through SSE PMADD nodes
Summary:
PMADD guarantee inbounds/saturated ext-multiply-add results
Test to help with regression identified on #84924
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251129
Commit: ccea0ec6dcdaeb4ec559c679fd6884ff826d9b81
https://github.com/llvm/llvm-project/commit/ccea0ec6dcdaeb4ec559c679fd6884ff826d9b81
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/combine-pmadd.ll
Log Message:
-----------
[X86] canCreateUndefOrPoisonForTargetNode - PMADDWD/PMADDUBSW nodes don't create poison
Summary: Help with regression identified on #84924
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251120
Commit: 33baf8b23682fcdee4614dcf21e57429b9a6a56d
https://github.com/llvm/llvm-project/commit/33baf8b23682fcdee4614dcf21e57429b9a6a56d
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
Log Message:
-----------
[gn] port a41a4ac78294
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251326
Commit: eebaf4bd8d4b73162185d2c2e83392ac6b5eb1ce
https://github.com/llvm/llvm-project/commit/eebaf4bd8d4b73162185d2c2e83392ac6b5eb1ce
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/DirectivesCommon.h
A flang/test/Lower/OpenMP/Todo/atomic-character.f90
A flang/test/Lower/OpenMP/Todo/atomic-complex.f90
M flang/test/Lower/OpenMP/atomic-read.f90
Log Message:
-----------
[flang][OpenMP] Add TODO messages for partially implemented atomic types (#99817)
Summary:
There is ongoing work for fir.complex but this looks unlikely to land
before the LLVM branch. Adding a TODO message gives cleaner output to
users. Currently fir.complex leads to a compiler assertion failure.
Some uses of character types lead to invalid fir.convert type
conversions, others make it far enough to hit the same assertion failure
as for fir.complex.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251301
Commit: 1b086a942718c0f94ff1bb0fd3ba66d022bc70ad
https://github.com/llvm/llvm-project/commit/1b086a942718c0f94ff1bb0fd3ba66d022bc70ad
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/__support/blockstore_test.cpp
Log Message:
-----------
[libc] Remove special case handing around test case that was fixed
Summary:
I needed to hack something around this for a previous backend bug, it's
since been fixed as far as I'm aware.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251346
Commit: ba85fc7276547afa9707438ec0e7eac2ff5c2e85
https://github.com/llvm/llvm-project/commit/ba85fc7276547afa9707438ec0e7eac2ff5c2e85
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
Log Message:
-----------
[Clang] Fix handling of qualified id-expressions in unevaluated contexts (#99807)
Summary:
In #89713, we made qualified, parenthesized id-expression ill-formed in
and address of expressions.
The expected behavior should instead be to form a pointer (rather than a
pointer to member)
The fix has been suggested by @zwuis and the tests by
@hubert-reinterpretcast.
It is worth pointing out that some of these tests seem rejected by all
compilers, however the tests do seem correct.
Fixes #89713
Fixes #40906
---------
Co-authored-by: YanzuoLiu <zwuis at outlook.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251286
Commit: 995dd985b22952bd27cea92d9f1e9000533edb16
https://github.com/llvm/llvm-project/commit/995dd985b22952bd27cea92d9f1e9000533edb16
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
Log Message:
-----------
[AArch64] Add a test for stack-frame-layout analysis of Scalable objects. NFC
Commit: 667022653dca4cb53b3741f4c0f87a2f7f8b3f3c
https://github.com/llvm/llvm-project/commit/667022653dca4cb53b3741f4c0f87a2f7f8b3f3c
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/RISCV/double-convert.ll
M llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
Log Message:
-----------
[DAGCombiner] Push freeze through SETCC and SELECT_CC (#64718)
Summary:
Allow pushing freeze through SETCC and SELECT_CC even if there are
multiple "maybe poison" operands. In the past we have limited it to
a single "maybe poison" operand, but it seems profitable to also
allow the multiple operand scenario.
One goal here is to avoid some regressions seen in review of
https://github.com/llvm/llvm-project/pull/84924
when solving the select->and miscompiles described in
https://github.com/llvm/llvm-project/issues/84653
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251168
Commit: beaf18d6d206b6cabd75410f4dd58a14324fedde
https://github.com/llvm/llvm-project/commit/beaf18d6d206b6cabd75410f4dd58a14324fedde
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 04760bfadb39
Commit: ce0f77b692e2648728aff8c52d2209effeef1687
https://github.com/llvm/llvm-project/commit/ce0f77b692e2648728aff8c52d2209effeef1687
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port af0d731b1298
Commit: 872636fa0f881dc9b24b5aa2e8ce909d46964cc7
https://github.com/llvm/llvm-project/commit/872636fa0f881dc9b24b5aa2e8ce909d46964cc7
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
Log Message:
-----------
[gn build] Port b15aa7f88c21
Commit: 34addcfacf9062406a8d10541d5db27a65ea92d4
https://github.com/llvm/llvm-project/commit/34addcfacf9062406a8d10541d5db27a65ea92d4
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/GVN/condprop.ll
Log Message:
-----------
[GVN] Look through select/phi when determining underlying object (#99509)
Summary:
This addresses an optimization regression in Rust we have observed after
https://github.com/llvm/llvm-project/pull/82458. We now only perform
pointer replacement if they have the same underlying object. However,
getUnderlyingObject() by default only looks through linear chains, not
selects/phis. In particular, this means that we miss cases involving
involving pointer induction variables.
This patch fixes this by introducing a new helper
getUnderlyingObjectAggressive() which basically does what
getUnderlyingObjects() does, just specialized to the case where we must
arrive at a single underlying object in the end, and with a limit on the
number of inspected values.
Doing this more expensive underlying object check has no measurable
compile-time impact on CTMark.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251674
Commit: 4606fa1f06493d8ffd1bdb9b095c9cca8986fb58
https://github.com/llvm/llvm-project/commit/4606fa1f06493d8ffd1bdb9b095c9cca8986fb58
Author: Samira Bazuzi <bazuzi at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp
Log Message:
-----------
[clang][dataflow] Handle this-capturing lambdas in field initializers. (#99519)
Summary:
We previously would assume these lambdas appeared inside a method
definition and end up crashing.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251116
Commit: 22aa28c7c3551d165d4c3c38445b69fbc726325e
https://github.com/llvm/llvm-project/commit/22aa28c7c3551d165d4c3c38445b69fbc726325e
Author: premanandrao <premanand.m.rao at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaTemplate.cpp
A clang/test/SemaTemplate/alias-template-deprecated.cpp
Log Message:
-----------
[clang] Diagnose use of deprecated template alias (#97619)
Issue a warning diagnostic when a template alias with a deprecated
attribute is used.
Commit: e24c7f7d28409d2e68b46c8ea673026c183132fb
https://github.com/llvm/llvm-project/commit/e24c7f7d28409d2e68b46c8ea673026c183132fb
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.cpp
Log Message:
-----------
[clang][Interp][NFC] Avoid hitting an assertion in invalid code
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251203
Commit: 5f46fddc4695c6b0cd1223dd2152216fb0f9453f
https://github.com/llvm/llvm-project/commit/5f46fddc4695c6b0cd1223dd2152216fb0f9453f
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/IR/Metadata.cpp
Log Message:
-----------
[Metadata] Make range boundary variables unsigned (NFC) (#99338)
They should be unsigned because the source and target value are too.
Commit: 14fe8de92bc6933822f3efa03fdc2608e0bb09d4
https://github.com/llvm/llvm-project/commit/14fe8de92bc6933822f3efa03fdc2608e0bb09d4
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
A flang/test/Lower/OpenMP/lastprivate-allocatable.f90
Log Message:
-----------
[flang][OpenMP] fix lastprivate for allocatables (#99686)
Summary:
Don't use `copyHostAssociateVar` for allocatable variables. It isn't
clear to me whether or not this should be addressed in
`copyHostAssociateVar` instead of inside OpenMP. I opted for OpenMP
to minimise how many things I effected. `copyHostAssociateVar` will
not update the destination variable if the destination variable
was unallocated. This is incorrect because assignment inside of the
openmp block can cause the allocation status of the variable to
change. Furthermore, `copyHostAssociateVar` seems to only copy the
variable address not other metadata like the size of the allocation.
Reallocation by assignment could cause this to change.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251074
Commit: 90aea7a5231410da2e1ccc70171584a68703fbe4
https://github.com/llvm/llvm-project/commit/90aea7a5231410da2e1ccc70171584a68703fbe4
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/include/llvm-libc-types/fsblkcnt_t.h
M libc/include/llvm-libc-types/fsfilcnt_t.h
Log Message:
-----------
[libc] Change fsfilcnt_t and fsblkcnt_t to be 64-bits long (#99876)
In 32-bit systems with 64-bit offsets, both fsfilcnt_t and fsblkcnt_t are 64-bit long, just like 64-bit systems. This patch changes both types to be 64-bit long for all platforms and follows the reasoning used to change off_t: the standard only requires it to be an unsigned int, so making it 64-bit long doesn't violate this property.
It should be NFC for 64-bit systems.
Commit: 3fd380f65e7b94e3246e64d1066bae86e3cdb61c
https://github.com/llvm/llvm-project/commit/3fd380f65e7b94e3246e64d1066bae86e3cdb61c
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/riscv/headers.txt
Log Message:
-----------
[libc] Add working entrypoints to riscv (#99885)
Summary: Added new fsqrt entrypoints and updated headers.txt, which I missed in PR #99771
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251457
Commit: a490f85f536ebbc6dd22f8a84e87a6be9d2f938a
https://github.com/llvm/llvm-project/commit/a490f85f536ebbc6dd22f8a84e87a6be9d2f938a
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Parse/ParseAST.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
Log Message:
-----------
Record mainfile name in the Frontend time trace (#99866)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251280
Commit: 5ad45d8fce0754cc04f7370b20f458d6a6d3f739
https://github.com/llvm/llvm-project/commit/5ad45d8fce0754cc04f7370b20f458d6a6d3f739
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/libc_assert.h
M libc/src/__support/threads/linux/raw_mutex.h
Log Message:
-----------
[libc] Use `<assert.h>` in overlay mode for LIBC_ASSERT (#99875)
Summary:
This uses `internal::exit` which is not built in overlay mode, leading
to linker errors. Fix this to just use `assert.h`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251138
Commit: 0906b7fdc8a3aa569609da6382cd4bd6872ed5f2
https://github.com/llvm/llvm-project/commit/0906b7fdc8a3aa569609da6382cd4bd6872ed5f2
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/OSUtil/linux/fcntl.cpp
Log Message:
-----------
[libc] Change fcntl cmd when only fcntl64 is available (#99675)
Summary:
In some systems like rv32, only fcntl64 is available and it employs a different structure for file locking and the correspoding F_GETLK64, F_SETLK64, and F_SETLKW64 commands.
So if we use fcntl64, the F_GETLK, F_SETLK, and F_SETLKW commands need to be changed to their 64 versions. This patch adds new cases to the swich(cmd) in our implementation of fcntl to do that.
The default case was moved to outside the switch, so we don't need to change anything, the F_GETLK, F_SETLK, and F_SETLKW commands will just go through the old implementation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251108
Commit: 0523eff9cfb68d14aef1b10911e8e251dbd20ab1
https://github.com/llvm/llvm-project/commit/0523eff9cfb68d14aef1b10911e8e251dbd20ab1
Author: Björn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll
M llvm/test/CodeGen/AArch64/fast-isel-select.ll
M llvm/test/CodeGen/AArch64/intrinsic-cttz-elts-sve.ll
M llvm/test/CodeGen/AArch64/sve-fp-int-min-max.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/divergence-driven-trunc-to-i1.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/NVPTX/i128.ll
M llvm/test/CodeGen/RISCV/pr84653_pr85190.ll
M llvm/test/CodeGen/SystemZ/pr60413.ll
M llvm/test/CodeGen/VE/Scalar/max.ll
M llvm/test/CodeGen/VE/Scalar/min.ll
M llvm/test/CodeGen/X86/combine-pmadd.ll
M llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
M llvm/test/CodeGen/X86/pr64589.ll
M llvm/test/CodeGen/X86/vector-compare-all_of.ll
M llvm/test/CodeGen/X86/vector-compare-any_of.ll
Log Message:
-----------
[DAGCombiner] Freeze maybe poison operands when folding select to logic (#84924)
Just like for regular IR we need to treat SELECT as conditionally
blocking poison in SelectionDAG. So (unless the condition itself is
poison) the result is only poison if the selected true/false value is
poison.
Thus, when doing DAG combines that turn SELECT into arithmetic/logical
operations (e.g. AND/OR) we need to make sure that the new operations
aren't more poisonous. One way to do that is to use FREEZE to make
sure the operands aren't posion.
This patch aims at fixing the kind of miscompiles reported in
https://github.com/llvm/llvm-project/issues/84653
and
https://github.com/llvm/llvm-project/issues/85190
Solution is to make sure that we insert FREEZE, if needed to make
the fold sound, when using the foldBoolSelectToLogic and
foldVSelectToSignBitSplatMask DAG combines.
Commit: a3ee57ad7f4073366d45b83d0bb74b024625f27a
https://github.com/llvm/llvm-project/commit/a3ee57ad7f4073366d45b83d0bb74b024625f27a
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/lit/tests/Inputs/shtest-env/env-calls-env.txt
Log Message:
-----------
[lit][NFC] Avoid unintended -EMPTY suffix in check prefix (#99690)
FileCheck has special handline for the `-EMPTY` suffix, that should
match empty lines. Overloading the suffix can be a source of confusion
when reading tests. Additionally, the current implementation seems to
match the following expressions, which appears to be a bug in FileCheck.
Commit: f8cb58dee602cafc2150091be310efc7af1f59a7
https://github.com/llvm/llvm-project/commit/f8cb58dee602cafc2150091be310efc7af1f59a7
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaOpenMP.cpp
Log Message:
-----------
[clang][OpenMP] Avoid names that hide existing variables, NFC
Commit: 62530b44f45476bc6ff1806e5bf307f1f9725482
https://github.com/llvm/llvm-project/commit/62530b44f45476bc6ff1806e5bf307f1f9725482
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/runtime/CMakeLists.txt
Log Message:
-----------
[Flang][runtime] Add dependency to build FortranRuntime after flang-new (#99737)
Makefile-based builds did not have proper dependencies to built the
FortranRuntime target after Flang new is available. This PR introduces a
dependency to ensure that this is the case. Relates to PR #95388.
---------
Co-authored-by: Michael Kruse <github at meinersbur.de>
Commit: 2b51141b5f05edc1a56fb3d6d431db3c1ec0bc88
https://github.com/llvm/llvm-project/commit/2b51141b5f05edc1a56fb3d6d431db3c1ec0bc88
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/gather-extractelements-different-bbs.ll
Log Message:
-----------
[SLP][NFC]Remove incorrect attribure from the test, NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251125
Commit: fdb720c0e13b05f658c81291469fb153f756eb2f
https://github.com/llvm/llvm-project/commit/fdb720c0e13b05f658c81291469fb153f756eb2f
Author: Pranav Bhandarkar <pranav.bhandarkar at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/omptarget-depend.mlir
A offload/test/offloading/fortran/target-depend.f90
Log Message:
-----------
[OMPIRBuilder] - Handle dependencies in `createTarget` (#93977)
Summary:
This patch handles dependencies specified by the `depend` clause on an
OpenMP target construct. It does this much the same way clang does it by
materializing an OpenMP `task` that is tagged with the dependencies.
The following functions are relevant to this patch -
1) `createTarget` - This function itself is largely unchanged except
that it now accepts a vector of `DependData` objects that it simply
forwards to `emitTargetCall`
2) `emitTargetCall` - This function has changed now to check if an outer
target-task needs to be materialized (i.e if `target` construct has
`nowait` or has `depend` clause). If yes, it calls `emitTargetTask` to
do all the heavy lifting for creating and dispatching the task.
3) `emitTargetTask` - Bulk of the change is here. See the large comment
explaining what it does at the beginning of this function
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251117
Commit: 9fd997cebd86681fa1d07980219d063cb2c11a48
https://github.com/llvm/llvm-project/commit/9fd997cebd86681fa1d07980219d063cb2c11a48
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/ELF/aarch64-cortex-a53-843419-abs-mapsyms.s
M lld/test/ELF/aarch64-gnu-ifunc.s
M lld/test/ELF/aarch64-reloc-pauth.s
M lld/test/ELF/aarch64-thunk-script.s
M lld/test/ELF/basic-aarch64.s
M lld/test/ELF/pack-dyn-relocs.s
M llvm/include/llvm/MC/MCContext.h
M llvm/lib/MC/MCContext.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
M llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll
M llvm/test/CodeGen/AArch64/inlineasm-ldr-pseudo.ll
M llvm/test/DebugInfo/Symbolize/ELF/aarch64-mapping-symbol.s
M llvm/test/MC/AArch64/CheckDataSymbol.s
M llvm/test/MC/AArch64/mapping-across-sections.s
M llvm/test/MC/AArch64/mapping-within-section.s
M llvm/test/MC/AArch64/size-directive.s
M llvm/test/MC/ELF/AArch64/cfi.s
M llvm/test/tools/llvm-objdump/ELF/AArch64/elf-aarch64-mapping-symbols.test
Log Message:
-----------
[MC,AArch64] Create mapping symbols with non-unique names
Summary:
Add `createLocalSymbol` to create a local, non-temporary symbol.
Different from `createRenamableSymbol`, the `Used` bit is ignored,
therefore multiple local symbols might share the same name.
Utilizing `createLocalSymbol` in AArch64 allows for efficient mapping
symbol creation with non-unique names, saving .strtab space.
The behavior matches GNU assembler.
Pull Request: https://github.com/llvm/llvm-project/pull/99836
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251331
Commit: 9f80ccec9e074d406af6d3a4355c3371221080b0
https://github.com/llvm/llvm-project/commit/9f80ccec9e074d406af6d3a4355c3371221080b0
Author: Jessica Del <50999226+OutOfCache at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.atomic.buffer.load.ll
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-memops.ll
Log Message:
-----------
[AMDGPU] Add intrinsic for raw atomic buffer loads (#97707)
Upstream the intrinsics `llvm.amdgcn.raw.atomic.buffer.load`
and `llvm.amdgcn.raw.atomic.ptr.buffer.load`.
These additional intrinsics mark atomic buffer loads
as atomic to LLVM by removing the `IntrReadMem`
attribute. Otherwise, it could hoist these
intrinsics out of loops in cases where LLVM marks
them as invariant. That can cause issues such as
infinite loops.
Continuation of https://reviews.llvm.org/D138786
with the additional use in the fat buffer lowering,
more test cases and the additional ptr versions
of these intrinsics.
---------
Co-authored-by: rtayl <>
Co-authored-by: Jay Foad <jay.foad at amd.com>
Co-authored-by: Mariusz Sikora <mariusz.sikora at amd.com>
Commit: d2192a89465fcf67ed245009df37dee9581d69e4
https://github.com/llvm/llvm-project/commit/d2192a89465fcf67ed245009df37dee9581d69e4
Author: xur-llvm <59886942+xur-llvm at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ProfileData/InstrProfData.inc
M llvm/include/llvm/Transforms/Instrumentation.h
M llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
A llvm/test/Transforms/PGOProfile/Inputs/cspgo_bar_sample.ll
A llvm/test/Transforms/PGOProfile/counter_promo_sampling.ll
A llvm/test/Transforms/PGOProfile/cspgo_sample.ll
A llvm/test/Transforms/PGOProfile/instrprof_burst_sampling_fast.ll
A llvm/test/Transforms/PGOProfile/instrprof_burst_sampling_full.ll
A llvm/test/Transforms/PGOProfile/instrprof_burst_sampling_full_intsize.ll
A llvm/test/Transforms/PGOProfile/instrprof_simple_sampling.ll
Log Message:
-----------
[PGO] Sampled instrumentation in PGO to speed up instrumentation binary (#69535)
Summary:
In comparison to non-instrumented binaries, PGO instrumentation binaries
can be significantly slower. For highly threaded programs, this slowdown
can
reach 10x due to data races or false sharing within counters.
This patch incorporates sampling into the PGO instrumentation process to
enhance the speed of instrumentation binaries. The fundamental concept
is similar to the one proposed in https://reviews.llvm.org/D63949.
Three sampling modes are introduced:
1. Simple Sampling: When '-sampled-instr-bust-duration' is set to 1.
2. Fast Burst Sampling: When not using simple sampling, and
'-sampled-instr-period' is set to 65535. This is the default mode of
sampling.
3. Full Burst Sampling: When neither simple nor fast burst sampling is
used.
Utilizing this sampled instrumentation significantly improves the
binary's
execution speed. Measurements show up to 5x speedup with default
settings. Fast burst sampling now results in only around 20% to 30%
slowdown (compared to 8 to 10x slowdown without sampling).
Out tests show that profile quality remains good with sampling,
with edge counts typically showing more than 90% overlap.
For applications whose behavior changes due to binary speed,
sampling instrumentation can enhance performance.
Observations have shown some apps experiencing up to
a ~2% improvement in PGO.
A potential drawback of this patch is the increased binary size
and compilation time. The Sampling method in this patch does
not improve single threaded program instrumentation binary
speed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251137
Commit: dd536ceb8fe97817c566aa16e6d44a862b3dec83
https://github.com/llvm/llvm-project/commit/dd536ceb8fe97817c566aa16e6d44a862b3dec83
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/pr97304.ll
Log Message:
-----------
[RISCV] Copy call frame size when splitting basic block in emitSelectPseudo. (#99823)
Summary: Fixes #97304.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251289
Commit: eea34ed9ad5a10ee1eba0524f81c2dfdfd0fd1a0
https://github.com/llvm/llvm-project/commit/eea34ed9ad5a10ee1eba0524f81c2dfdfd0fd1a0
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
Log Message:
-----------
[libc] Fix invalid format specifier in benchmark
Summary:
This value is a uint32_t but is printed as a uint64_t, leading to
invalid offsets when done on AMDGPU due to its packed format extending
past the buffer.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251349
Commit: 414f999a36fc3afbc4d02a91f6ff63e1111ef0df
https://github.com/llvm/llvm-project/commit/414f999a36fc3afbc4d02a91f6ff63e1111ef0df
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/clang-fuzzer/dictionary/CMakeLists.txt
Log Message:
-----------
[clang-fuzzer-dictionary] Fix build failure with libfuzzer (#99871)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251308
Commit: e61945cbe99cb1175716586125c138d12d699b17
https://github.com/llvm/llvm-project/commit/e61945cbe99cb1175716586125c138d12d699b17
Author: Martin Storsjö <martin at martin.st>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
Log Message:
-----------
[libcxx] [test] Make indentation more consistent in thousands_sep. NFC. (#99844)
Summary:
This was made inconsistent recently in
f114eddb1923289b696f1b0980cc22c4dbaafa22.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251124
Commit: e1348bab879829f6662c22f5cbb257be877b37c9
https://github.com/llvm/llvm-project/commit/e1348bab879829f6662c22f5cbb257be877b37c9
Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/include/__ranges/transform_view.h
M libcxx/test/std/ranges/range.adaptors/range.transform/iterator/deref.pass.cpp
R libcxx/test/std/ranges/range.adaptors/range.transform/iterator/iter_move.pass.cpp
Log Message:
-----------
[libc++][ranges] LWG3618: Unnecessary `iter_move` for `transform_view::iterator` (#91809)
Summary:
## Introduction
This patch implements LWG3618: Unnecessary `iter_move` for
`transform_view::iterator`.
`transform_view`'s iterator currently specifies a customization point
for `iter_move`. This customization point does the same thing that the
default implementation would do, but its sole purpose is to ensure the
appropriate conditional `noexcept` specification.
## Reference
-
[[range.transform.iterator]](https://eel.is/c++draft/range.transform.iterator)
- [LWG3618](https://cplusplus.github.io/LWG/issue3618)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251361
Commit: 3cf28ad3a46308baa45b6de57ae363b44f626b21
https://github.com/llvm/llvm-project/commit/3cf28ad3a46308baa45b6de57ae363b44f626b21
Author: nicole mazzuca <nicole at strega-nil.co>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Papers.csv
Log Message:
-----------
[libc++] Update some C++23 statuses to "Nothing to do" or "Complete" (#99621)
Summary:
- [P2160R1][] "Locks lock lockables"
- [P2212R2][] "Relax Requirements for `time_point::clock`"
- [P1675R2][] "`rethrow_exception` must be allowed to copy"
- [P2340R1][] "Clarifying the status of the 'C headers'"
- [P2460R2][] "Relax requirements on `wchar_t` to match existing
practices"
Are all papers that change wording without changing implementation
behaviour.
Additionally, [P2736R2][] "Referencing The Unicode Standard", is an
already complete paper in 19.0 (as of [LLVM-86543][])
[P2160R1]: https://wg21.link/p2160r1
[P2212R2]: https://wg21.link/p2212r2
[P1675R2]: https://wg21.link/p1675r2
[P2340R1]: https://wg21.link/p2340r1
[P2460R2]: https://wg21.link/p2460r2
[P2736R2]: https://wg21.link/p2736r2
[LLVM-86543]: https://github.com/llvm/llvm-project/pull/86543
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251122
Commit: 301eb2041d5d8707b25098c288f8ac811e863a4d
https://github.com/llvm/llvm-project/commit/301eb2041d5d8707b25098c288f8ac811e863a4d
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCFlagRules.cmake
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/copysign.cpp
M libc/src/math/generic/copysignf.cpp
M libc/src/math/generic/copysignf16.cpp
M libc/src/math/generic/fabs.cpp
M libc/src/math/generic/fabsf.cpp
M libc/src/math/generic/fabsf16.cpp
M libc/test/src/math/performance_testing/BinaryOpSingleOutputPerf.h
M libc/test/src/math/performance_testing/CMakeLists.txt
M libc/test/src/math/performance_testing/SingleInputSingleOutputPerf.h
A libc/test/src/math/performance_testing/misc_basic_ops_perf.cpp
Log Message:
-----------
[libc][math] Optimize copysign{,f,f16} and fabs{,f,f16} with builtins when available (#99037)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251098
Commit: 37564f47945f706a1e8e8d6ff0a40f14f7c51bc5
https://github.com/llvm/llvm-project/commit/37564f47945f706a1e8e8d6ff0a40f14f7c51bc5
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/OSUtil/linux/fcntl.cpp
Log Message:
-----------
[libc] No need to use recursion in fcntl (#99893)
This patch removes the recursion in fcntl introduced by PR #99675 as it is not required and may be dangerous in some cases: some toolchains define F_GETLK == F_GETLK64 causing infinite recursion.
Commit: e818bad066b5a484e49f6ccbd7b80eec7e11a554
https://github.com/llvm/llvm-project/commit/e818bad066b5a484e49f6ccbd7b80eec7e11a554
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
A llvm/test/CodeGen/RISCV/rvv/pr99782.ll
Log Message:
-----------
[SelectionDAGBuilder][RISCV] Fix crash when using a memory constraint with scalable vector type. (#99821)
Summary:
We need to use the minimum size of the scalable type and the correct
stack ID.
The code in the PR is still invalid because the instruction used doesn't
have a pointer operand. This is diagnosed later when the assembler
parses it.
Fixes #99782
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251084
Commit: 03e02d57e50dafdb671f55a14c4c21cd8a3c4e18
https://github.com/llvm/llvm-project/commit/03e02d57e50dafdb671f55a14c4c21cd8a3c4e18
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/benchmarks/CMakeLists.txt
A llvm/benchmarks/xxhash.cpp
M llvm/lib/Support/xxhash.cpp
Log Message:
-----------
[Support] Add Arm NEON implementation for `llvm::xxh3_64bits` (#99634)
Compared to the generic scalar code, using Arm NEON instructions yields
a ~11x speedup: 31 vs 339.5 ms to hash 1 GiB of random data on the Apple
M1.
This follows the upstream implementation closely, with some
simplifications made:
- Removed workarounds for suboptimal codegen on older GCC
- Removed instruction reordering barriers which seem to have a
negligible impact according to my measurements
- We do not support WebAssembly's mostly NEON-compatible API
- There is no configurable mixing of SIMD and scalar code; according to
the upstream comments, this is only relevant for smaller Cortex cores
which can dispatch relatively few NEON micro-ops per cycle.
This commit intends to use only standard ACLE intrinsics and datatypes,
so it should build with all supported versions of GCC, Clang and MSVC.
This feature is enabled by default when targeting AArch64, but the
`LLVM_XXH_USE_NEON=0` macro can be set to explicitly disable it.
XXH3 is used for ICF, string deduplication and computing the UUID in
ld64.lld; this commit results in a -1.77% +/- 0.59% speed improvement
for a `--threads=8` link of Chromium.framework.
Commit: ce870f00e6af2ac26b6edd90f4e3494d9f8c4976
https://github.com/llvm/llvm-project/commit/ce870f00e6af2ac26b6edd90f4e3494d9f8c4976
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R llvm/test/Object/ARM/nm-mapping-symbol.s
Log Message:
-----------
[test] Delete a redundant mapping symbol test
Summary: Covered by llvm/test/tools/llvm-nm/special-syms-arm.test
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251085
Commit: c8854c15ad33b3ed9b2f18fe1ee1c49b292b8abc
https://github.com/llvm/llvm-project/commit/c8854c15ad33b3ed9b2f18fe1ee1c49b292b8abc
Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/double_reduct.ll
M llvm/test/CodeGen/AArch64/sve-doublereduct.ll
M llvm/test/CodeGen/AArch64/sve-fixed-vector-zext.ll
M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
R llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reductions.ll
M llvm/test/CodeGen/AArch64/vecreduce-add.ll
Log Message:
-----------
Revert "[AArch64][SVE] Improve code quality of vector unsigned/signed add reductions. (#97339)"
Summary:
This reverts commit b7b0071680e60c60da9d4d858f944fd95d76fd42.
The change caused regression in a performance testing.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251123
Commit: a18765166ebf908893579a88927975be6313a6b6
https://github.com/llvm/llvm-project/commit/a18765166ebf908893579a88927975be6313a6b6
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
A flang/test/Transforms/debug-92391.fir
Log Message:
-----------
[flang][debug] Generate correct name for external function. (#99510)
Summary:
The `ExternalNameConversion` will add an _ at the end of the external
functions. We extract the real function name to use in the debug info.
The convention is to use the real name of function in the `name` field
and mangled name with extra _ at the end in the `linkageName` field.
Fixes #92391.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251127
Commit: 7999f53f495d87e725f0d32e6d9c7e6d5a10a188
https://github.com/llvm/llvm-project/commit/7999f53f495d87e725f0d32e6d9c7e6d5a10a188
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] In emitSelectPseudo, copy call frame size from LastSelectPseudo instead of MI.
Summary:
The split point is LastSelectPseudo. If MI is earlier, we might
sink it to LastSelectPseudo.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251541
Commit: 6106ce47ad89bbc30af01e5ac93b2dff16229cb8
https://github.com/llvm/llvm-project/commit/6106ce47ad89bbc30af01e5ac93b2dff16229cb8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Move call to EmitLoweredCascadedSelect above some variable declarations. NFC
These variables aren't used if we call EmitLoweredCascadedSelect
so move the call above them.
Commit: 525991793eae1ab335e6caf79583103fc6ceb417
https://github.com/llvm/llvm-project/commit/525991793eae1ab335e6caf79583103fc6ceb417
Author: Wei Wang <apollo.mobility at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroEarly.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
A llvm/test/Instrumentation/AddressSanitizer/skip-coro.ll
Log Message:
-----------
[Asan] Skip pre-split coroutine and noop coroutine frame (#99415)
Summary:
CoroSplit expects the second parameter of `llvm.coro.id` to be the
promise alloca. Applying Asan on a pre-split coroutine breaks this
assumption and causes split to fail. This should be NFC because asan
pass happens late in the pipeline where all coroutines are split. This
is to prevent crash in case the order of passes are switched.
Also `NoopCoro.Frame.Const` is a special coroutine frame that does
nothing when resumed or destroyed. There is no point to do
instrumentation on it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251181
Commit: 5fa5a8436f7c69d4e60fdc14d8098f60d760a12a
https://github.com/llvm/llvm-project/commit/5fa5a8436f7c69d4e60fdc14d8098f60d760a12a
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/TargetInfo.h
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
M clang/lib/Driver/ToolChains/Arch/AArch64.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
A clang/test/Driver/Inputs/multilib_aarch64_linux_tree/usr/include/aarch64-linux-gnu/.keep
A clang/test/Driver/Inputs/multilib_aarch64_linux_tree/usr/include/aarch64-linux-pauthtest/.keep
A clang/test/Driver/aarch64-multilib-pauthabi.c
M clang/test/Driver/aarch64-ptrauth.c
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/TargetParser/Triple.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
[PAC][Driver] Support `pauthtest` ABI for AArch64 Linux triples (#97237)
Summary:
When `pauthtest` is either passed as environment part of AArch64 Linux
triple
or passed via `-mabi=`, enable the following ptrauth flags:
- `intrinsics`;
- `calls`;
- `returns`;
- `auth-traps`;
- `vtable-pointer-address-discrimination`;
- `vtable-pointer-type-discrimination`;
- `init-fini`.
Some related stuff is still subject to change, and the ABI itself might
be changed, so end users are not expected to use this and the ABI name
has 'test' suffix.
If `-mabi=pauthtest` option is used, it's normalized to effective
triple.
When the environment part of the effective triple is `pauthtest`, try
to use `aarch64-linux-pauthtest` as multilib directory.
The following is not supported:
- combination of `pauthtest` ABI with any branch protection scheme
except BTI;
- explicit set of environment part of the triple to a value different
from `pauthtest` in combination with `-mabi=pauthtest`;
- usage on non-Linux OS.
---------
Co-authored-by: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251253
Commit: d6c34a5a95444ece29a65aeaa7bf40e32503c2dc
https://github.com/llvm/llvm-project/commit/d6c34a5a95444ece29a65aeaa7bf40e32503c2dc
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ExprConstant.cpp
M clang/test/Sema/atomic-ops.c
Log Message:
-----------
Handle constant "pointers" for `__atomic_always_lock_free`/`__atomic_is_lock_free`. (#99340)
The second argument passed to these builtins is used to validate whether
the object's alignment is sufficient for atomic operations of the given
size.
Currently, the builtins can be folded at compile time only when the
argument is 0/nullptr, or if the _type_ of the pointer guarantees
appropriate alignment.
This change allows the compiler to also evaluate non-null constant
pointers, which enables callers to check a specified alignment, instead
of only the type or an exact object. E.g.:
`__atomic_is_lock_free(sizeof(T), (void*)4)`
can be potentially evaluated to true at compile time, instead of
generating a libcall. This is also supported by GCC, and used by
libstdc++, and is also useful for libc++'s atomic_ref.
Also helps with (but doesn't fix) issue #75081.
This also fixes a crash bug, when the second argument was a non-pointer
implicitly convertible to a pointer (such as an array, or a function).
Commit: 1c57a0f08f46028ddaf376a009b91c3921da08f8
https://github.com/llvm/llvm-project/commit/1c57a0f08f46028ddaf376a009b91c3921da08f8
Author: Nicolas van Kempen <nvankemp at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
M clang-tools-extra/docs/ReleaseNotes.rst
Log Message:
-----------
[run-clang-tidy.py] Refactor, add progress indicator, add type hints (#89490)
Summary:
[There is
work](https://discourse.llvm.org/t/rfc-upgrading-llvms-minimum-required-python-version/67571)
to make Python 3.8 the minimum Python version for LLVM.
I edited this script because I wanted some indicator of progress while
going through files.
It now outputs `[XX/YYY]` with the number of processed and total files
after each completion.
The current version of this script is compatible downto Python 3.6 (this
is PyYAML's minimum version).
It would probably work with older Python 3 versions with an older PyYAML
or when YAML is disabled.
With the updates here, it is compatible downto Python 3.7. Python 3.7
was released June 2018.
https://github.com/llvm/llvm-project/pull/89302 is also touching this
file, I don't mind rebasing on top of that work if needed.
### Summary
- Add type annotations.
- Replace `threading` + `queue` with `asyncio`.
- **Add indicator of processed files over total files**. This is what I
set out to do initially.
- Only print the filename after completion, not the entire Clang-Tidy
invocation command. I find this neater but the behavior can easily be
restored.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251392
Commit: 23edb3f724e3e8fca3a3aaa0146549a29d242395
https://github.com/llvm/llvm-project/commit/23edb3f724e3e8fca3a3aaa0146549a29d242395
Author: matthew-f <matthewf at cat.co.za>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
Log Message:
-----------
[clang-tidy] Ensure functions are anchored in the global namespace (for cert-err-33) (#99380)
Summary:
The regular expressions match functions that aren't anchored in the
global namespace. For example `::remove` matches any object with a
`removeXyz` method. This change is to remove these false positives
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251178
Commit: 3a06a8beb7459a2b79877b9232b7a3ceb807cdfe
https://github.com/llvm/llvm-project/commit/3a06a8beb7459a2b79877b9232b7a3ceb807cdfe
Author: dyung <douglas.yung at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M cross-project-tests/lit.cfg.py
Log Message:
-----------
Replace distutils.version with packaging.version since the former was deprecated in python 3.10 and removed in 3.12. (#99852)
Attempt to reland #99549, but using packaging.version instead of
looseversion, based on the usage used for LLDB in #93712.
Commit: 35cd9b1ba5f7e1583d3fdf17c9a7f11dfd5d6202
https://github.com/llvm/llvm-project/commit/35cd9b1ba5f7e1583d3fdf17c9a7f11dfd5d6202
Author: Jessica Del <50999226+OutOfCache at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.atomic.buffer.load.ll
Log Message:
-----------
[AMDGPU] Fix build failure in raw.atomic.buffer.load tests (#99912)
This fixes the failing tests after rebasing
over the attributor move.
Commit: fdd6f48bd4ed9542c53aa8f64c4e2cb09791a2f6
https://github.com/llvm/llvm-project/commit/fdd6f48bd4ed9542c53aa8f64c4e2cb09791a2f6
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/fp_extend.h
M compiler-rt/lib/builtins/fp_lib.h
Log Message:
-----------
[builtins] Use __builtin_clzll for 64-bit types (#99874)
Summary:
This addresses the issue with `__LP64__` not being defined for targets
with 32-bit pointers but 64-bit longs, resulting in worse codegen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251560
Commit: 91a555851ecbcbd7b4e68d0fca7eb2a3be8a23a0
https://github.com/llvm/llvm-project/commit/91a555851ecbcbd7b4e68d0fca7eb2a3be8a23a0
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp
Log Message:
-----------
[clang] Fix the broken DeductionGuide ToolingTests after c7bfc41860a6abe5c92dc5afb47348b0c9e69963
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251115
Commit: a81d9de5a000d9b1417dad535f71bc5e23060aed
https://github.com/llvm/llvm-project/commit/a81d9de5a000d9b1417dad535f71bc5e23060aed
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Target/DynamicLoader.h
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
Log Message:
-----------
[lldb] Change GetStartSymbol to GetStartAddress in DynamicLoader (#99909)
Summary:
On linux, the start address doesn't necessarily have a symbol attached
to it.
This is why this patch replaces `DynamicLoader::GetStartSymbol` with
`DynamicLoader::GetStartAddress` instead to make it more generic.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251309
Commit: 4e24765b585130a360a54340564263a9e40a3b53
https://github.com/llvm/llvm-project/commit/4e24765b585130a360a54340564263a9e40a3b53
Author: Hana Dusíková <hanicka at hanicka.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp
Log Message:
-----------
[clang-tidy] `bugprone-exception-escape` didn't detech catching of an exception with pointer type by `void *` exception handler (#99773)
Summary:
As in title, code which checks eligibility of exceptions with pointer
types to be handled by exception handler of type `void *` disallowed
this case. It was working like this:
```c++
if (isStandardPointerConvertible(ExceptionCanTy, HandlerCanTy) &&
isUnambiguousPublicBaseClass(
ExceptionCanTy->getTypePtr()->getPointeeType().getTypePtr(),
HandlerCanTy->getTypePtr()->getPointeeType().getTypePtr())) {
```
but in `isUnambiguousPublicBaseClass` there was code which looked for
definitions:
```c++
bool isUnambiguousPublicBaseClass(const Type *DerivedType,
const Type *BaseType) {
const auto *DerivedClass =
DerivedType->getCanonicalTypeUnqualified()->getAsCXXRecordDecl();
const auto *BaseClass =
BaseType->getCanonicalTypeUnqualified()->getAsCXXRecordDecl();
if (!DerivedClass || !BaseClass)
return false;
```
This code disallowed usage of `void *` type which was already correctly
detected in `isStandardPointerConvertible`.
AFAIK this seems like misinterpretation of specification:
> 14.4 Handling an exception
> a standard [pointer conversion](https://eel.is/c++draft/conv.ptr) not
involving conversions to pointers to private or protected or ambiguous
classes
(https://eel.is/c++draft/except.handle#3.3.1)
and
> 7.3.12 Pointer conversions
> ... If B is an inaccessible
([[class.access]](https://eel.is/c++draft/class.access)) or ambiguous
([[class.member.lookup]](https://eel.is/c++draft/class.member.lookup))
base class of D, a program that necessitates this conversion is
ill-formed[.](https://eel.is/c++draft/conv.ptr#3.sentence-2) ...
(https://eel.is/c++draft/conv.ptr#3)
14.4 is carving out private, protected, and ambiguous base classes, but
they are already carved out in 7.3.12 and implemented in
`isStandardPointerConvertible`
---------
Co-authored-by: Piotr Zegar <me at piotrzegar.pl>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251102
Commit: 19b3c9dd472fa429779bb3d9fffc8cdaccfdfb2d
https://github.com/llvm/llvm-project/commit/19b3c9dd472fa429779bb3d9fffc8cdaccfdfb2d
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/unittests/Tooling/CMakeLists.txt
Log Message:
-----------
[clang][test] Add missing test file to cmake (#99907)
Summary:
Seems like this test was never running with cmake, but is running with
bazel and broke at head.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251437
Commit: 8f30c925f1d2959546a18eb17131f5db8456ac08
https://github.com/llvm/llvm-project/commit/8f30c925f1d2959546a18eb17131f5db8456ac08
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/clang/unittests/Tooling/BUILD.gn
Log Message:
-----------
[gn build] Port 50c4e0392a42
Commit: c393da3cbae386ab221475d2496c24e4d309062f
https://github.com/llvm/llvm-project/commit/c393da3cbae386ab221475d2496c24e4d309062f
Author: Edd Dawson <edd.dawson at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/test/DebugInfo/omit-empty.ll
Log Message:
-----------
Omit .debug_aranges if it is empty (#99897)
Summary: SIE tracker: https://jira.sie.sony.com/browse/TOOLCHAIN-16575
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251220
Commit: 04ef2976ebc9e0936acff4f88581aed8ae94a2bd
https://github.com/llvm/llvm-project/commit/04ef2976ebc9e0936acff4f88581aed8ae94a2bd
Author: Mingming Liu <mingmingl at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/profile/Linux/instrprof-vtable-value-prof.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
Log Message:
-----------
[InstrPGO][TypeProf]Annotate vtable types when they are present in the profile (#99402)
Summary:
Before this change, when `file.profdata` have vtable profiles but `--enable-vtable-value-profiling` is not on for optimized build, warnings from this line [1] will show up. They are benign for performance but confusing.
It's better to automatically annotate vtable profiles if `file.profdata` has them. This PR implements it in profile use pass.
* If `-icp-max-num-vtables` is zero (default value is 6), vtable profiles won't be annotated.
[1] https://github.com/llvm/llvm-project/blob/464d321ee8dde1eaf14b5537eaf030e6df513849/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp#L1762-L1768
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251294
Commit: b280d716297325ba57b946dc1e35c25da121ade8
https://github.com/llvm/llvm-project/commit/b280d716297325ba57b946dc1e35c25da121ade8
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
Log Message:
-----------
[libc] Include cbrt in baremetal targets (#99916)
This is a follow up to #99262.
Commit: c076bce58ce4208c2ef3b55077d2c4d443efe23f
https://github.com/llvm/llvm-project/commit/c076bce58ce4208c2ef3b55077d2c4d443efe23f
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/add_new_check.py
M clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.Move.rst
A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedAlloc.rst
A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.rst
A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.BlockInCriticalSection.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
Log Message:
-----------
[clang-tidy][DOC] Update check documentation
Summary:
Fix issues in list.rst, addapt add_new_check.py to new
format of that file, and run gen-static-analyzer-docs.py
to generate missing documentation for clang-analyzer.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251068
Commit: 4b661dfa99f8c363246a8c4a3e79f33f37b29e6e
https://github.com/llvm/llvm-project/commit/4b661dfa99f8c363246a8c4a3e79f33f37b29e6e
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
Revert "[BOLT][DWARF][NFC] Split processUnitDIE into two lambdas" (#99904)
Summary: Reverts llvm/llvm-project#99225
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251150
Commit: 3ee3724bb66e0936c4268475fa63daa697fb72f5
https://github.com/llvm/llvm-project/commit/3ee3724bb66e0936c4268475fa63daa697fb72f5
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
Log Message:
-----------
[VPlan] Drop references to Ingredient from VPWidenRecipe comments (NFC)
Summary:
VPWidenRecipe has been updated to use Opcode + operands instead of an
Instruction 'ingredient'. Reword the comments.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251139
Commit: c38d5a268b619e2a790b507ce27df31c3052d0b1
https://github.com/llvm/llvm-project/commit/c38d5a268b619e2a790b507ce27df31c3052d0b1
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp
M llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
Log Message:
-----------
[StackFrameLayoutAnalysis] Add basic Scalable stack slot output (#99883)
Summary:
The existing StackFrameLayoutAnalysis details do not do well with
Scalable vector stack slots, which are not marked as scalable and
intertwined with the other fixed-size slots. This patch adds some very
basic support, marking them as scalable and sorting them to the end of
the list. The slot addresses are not really correct (for fixed as well
as scalable), but this prints something a little better with the limited
information curently available.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251075
Commit: eb376d6baacb9dd450f6c913e9e796e686d0488b
https://github.com/llvm/llvm-project/commit/eb376d6baacb9dd450f6c913e9e796e686d0488b
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/MachO/Driver.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/MachO/arm64-32-stubs.s
M lld/test/MachO/arm64-stubs.s
M lld/test/MachO/dyld-stub-binder.s
M lld/test/MachO/invalid/chained-fixups-incompatible.s
M lld/test/MachO/objc-selrefs.s
Log Message:
-----------
Reapply "[lld] enable fixup chains by default (#79894)" (#99255)
Summary:
This reverts commit f55b79f59a77b4be586d649e9ced9f8667265011.
The known issues with chained fixups have been addressed by #98913,
#98305, #97156 and #95171.
Compared to the original commit, support for xrOS (which postdates
chained fixups' introduction) was added and an unnecessary test change
was removed.
----------
Original commit message:
Enable chained fixups in lld when all platform and version criteria are
met. This is an attempt at simplifying the logic used in ld 907:
https://github.com/apple-oss-distributions/ld64/blob/93d74eafc37c0558b4ffb88a8bc15c17bed44a20/src/ld/Options.cpp#L5458-L5549
Some changes were made to simplify the logic:
- only enable chained fixups for macOS from 13.0 to avoid the arch check
- only enable chained fixups for iphonesimulator from 16.0 to avoid the
arch check
- don't enable chained fixups for not specifically listed platforms
- don't enable chained fixups for arm64_32
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251071
Commit: cd6c2c250b780491ada21441864d2db2829fc0fa
https://github.com/llvm/llvm-project/commit/cd6c2c250b780491ada21441864d2db2829fc0fa
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/SystemZ/cmp-ptr-minmax.ll
Log Message:
-----------
[SLP]Fix PR99899: Use canonical type instead of original vector of ptr.
Use adjusted canonical integer type instead of the original ptr type to
fix the crash in the TTI.
Fixes https://github.com/llvm/llvm-project/issues/99899
Commit: 7f5424cee24dc2b960350faacecd20207cd6e890
https://github.com/llvm/llvm-project/commit/7f5424cee24dc2b960350faacecd20207cd6e890
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/docs/dev/header_generation.rst
Log Message:
-----------
[libc] Updated header_generation.rst (#99712)
Added new headergen documentation.
Commit: 5d942129d1f3e11b382d5bd398ad3e4e452a248c
https://github.com/llvm/llvm-project/commit/5d942129d1f3e11b382d5bd398ad3e4e452a248c
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/unittests/IR/ShapedTypeTest.cpp
Log Message:
-----------
[mlir] Add unit test for RankedTensorType wrapper example. (#99789)
Summary:
Add example as unit test for creating a wrapper type/view for
RankedTensorType with encoding. This view provides a more restricted &
typed API while it allows one to avoid repeated casting queries and
accessing the encoding directly.
For users with more advance encodings, the expectation would be a
separate attribute type, but here just StringAttr is used.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251186
Commit: 380d981a8a9fc1dbe096fe18e2b06e101e2c6cf1
https://github.com/llvm/llvm-project/commit/380d981a8a9fc1dbe096fe18e2b06e101e2c6cf1
Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/DirectX/DXILOpTableGenDesign.rst
Log Message:
-----------
[DXIL][Doc] Update specification of TableGen DXIL properties (#99055)
Summary:
Update the specification of various DXIL Operation properties that
are predicated by DXIL version.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251086
Commit: 8dbae8214acc991b79e52a6e7c495c2a5407d490
https://github.com/llvm/llvm-project/commit/8dbae8214acc991b79e52a6e7c495c2a5407d490
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/stdlib/CMakeLists.txt
M libc/src/stdlib/at_quick_exit.cpp
M libc/src/stdlib/atexit.cpp
R libc/src/stdlib/exit_handler.cpp
M libc/src/stdlib/exit_handler.h
Log Message:
-----------
[libc] Fix callback type in `exit_handlers.cpp` not matching (#97642)
Summary:
This file is an object library, but uses the `LIBC_COPT_PUBLIC_PACKAING`
option. This will always be undefined which leads to a type mismatch
when uses actually try to link against it. This patch simply removes
this and turns it into a header only library. This means that the
implementations of the callback lists and the mutexes need to live in
their respective files. The result is that `atexit` needs to be defined
for `at_quick_exit` to be valid.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251082
Commit: 931abd43bcaff17fa539d4004f8c1a92d6109e88
https://github.com/llvm/llvm-project/commit/931abd43bcaff17fa539d4004f8c1a92d6109e88
Author: davidtrevelyan <davidtrevelyan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/rtsan/rtsan.cpp
M compiler-rt/lib/rtsan/rtsan.h
M compiler-rt/lib/rtsan/rtsan_interceptors.cpp
Log Message:
-----------
[compiler-rt][rtsan] Use sanitizer internal allocator during rtsan init to avoid segfault in dlsym (#98679)
Summary:
Follows https://github.com/llvm/llvm-project/pull/98268 with a fix for a
segfault during preinit on `ubuntu:20.04` environments. Previously,
`rtsan` was not handling the situation where `dlsym` calls `calloc`
during the interceptors initialization, resulting in a call to a
function at a null address.
@cjappl and I took inspiration from the solution in `nsan`, but we
re-used the sanitizer internal allocator instead of our own static
buffer. This PR also re-enables the existing non-instrumented `rtsan`
tests for `x86_64` and `arm64` architectures.
---------
Co-authored-by: Chris Apple <cja-private at pm.me>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251347
Commit: ae59d2344f4eaae6f36b956497a11b8073d94ede
https://github.com/llvm/llvm-project/commit/ae59d2344f4eaae6f36b956497a11b8073d94ede
Author: Chris Apple <cja-private at pm.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/cmake/config-ix.cmake
M compiler-rt/lib/rtsan/tests/CMakeLists.txt
M compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Moved cmake libatomic check to top level config-ix (#99437)
Also add atomic check to rtsan for when the tests are merged (related
review #98679)
Commit: fdb1a49f650b924bd8cd0323f534564d0aaa0abf
https://github.com/llvm/llvm-project/commit/fdb1a49f650b924bd8cd0323f534564d0aaa0abf
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
Log Message:
-----------
[clang-tidy][NFC] Fix tiny bug in areStatementsIdentical
Summary:
Function areStatementsIdentical had an early exit
when classes of stmt does not match. That if were
added to speed up checking and do not calculate
hash id of both objects if they are not the same
type. Due to some bug, wrong pointer were used
and this resulted with comparing self to self.
This patch fixes this issue.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251054
Commit: 72b6237311779bcda021d731a8d73cb9b1760d5b
https://github.com/llvm/llvm-project/commit/72b6237311779bcda021d731a8d73cb9b1760d5b
Author: xur-llvm <59886942+xur-llvm at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/include/profile/InstrProfData.inc
Log Message:
-----------
[PGO] Sync InstrProfData.inc from llvm to compiler-rt (#99930)
Summary:
Sync InstrProfData.inc from llvm to compiler-rt. The difference was
introduced from https://github.com/llvm/llvm-project/pull/69535.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250796
Commit: d59fb83fedb6cd2cc01ef218119c3652947a8f4c
https://github.com/llvm/llvm-project/commit/d59fb83fedb6cd2cc01ef218119c3652947a8f4c
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[github][mlir] Add kuhar to code owners for vector IR (#99955)
Summary:
This is so that I can track vector dialect changes and pay attention to
the maintenance required on the SPIR-V lowering side.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251242
Commit: b4f060160b0af776d37fcbed13629302966f9d51
https://github.com/llvm/llvm-project/commit/b4f060160b0af776d37fcbed13629302966f9d51
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
Log Message:
-----------
[libc] New HeaderGen Switch Flip (#99929)
Flipped option from OFF to ON for automatically building libc with New
HeaderGen.
Commit: 5e3e0a5dfe6b66cf281c1c55494adfc67064deb5
https://github.com/llvm/llvm-project/commit/5e3e0a5dfe6b66cf281c1c55494adfc67064deb5
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/threads/thread.h
M libc/src/math/generic/expm1.cpp
Log Message:
-----------
[libc][NFC] clean up some includes (#99719)
Summary:
While looking through the list of includes for #99693 I found these
includes that also need to be cleaned up. I removed the extra includes
in expm1.cpp, but the include in thread.h needs more attention so I just
marked it with a todo.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251307
Commit: 0ec94b89373b7ee0f978a6395ed40a481bdd0126
https://github.com/llvm/llvm-project/commit/0ec94b89373b7ee0f978a6395ed40a481bdd0126
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/warn-fsyntax-only.c
Log Message:
-----------
[Clang][Driver] Warn about `-c/-S` with `-fsyntax-only` (#98607)
Summary:
Emit warning that `-S` and/or `-c` arguments are not used if
`-fsyntax-only` is also passed to clang
`addPGOAndCoverageFlags` is not the right place
to produce this warning
Now `-fsyntax-only -c/-S` combination handles like `-fsyntax-only -E` in
`BuildJobs()` driver function
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251113
Commit: 5fda8d03f8f9c5e8c05ee4592e13596ba46d2452
https://github.com/llvm/llvm-project/commit/5fda8d03f8f9c5e8c05ee4592e13596ba46d2452
Author: Chris Apple <cja-private at pm.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/cmake/config-ix.cmake
Log Message:
-----------
[rtsan] Remove android support (#99964)
Summary:
Based on failing build:
https://lab.llvm.org/buildbot/#/builders/186/builds/829
Follow up to #98679
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251097
Commit: 3012fb6f8955b7fabfbaf5d8b94904880ce597cc
https://github.com/llvm/llvm-project/commit/3012fb6f8955b7fabfbaf5d8b94904880ce597cc
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Log Message:
-----------
[GlobalISel] Reorder code in CombinerHelper::buildUDivUsingMul. NFC (#99565)
Summary:
Group the code for handling Exact udiv together above the code for
non-Exact. Move the computeKnownBits call to after the Exact udiv
handling.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251104
Commit: 2df1552fcdcf373d30b97aee9c1007e87fbe58bc
https://github.com/llvm/llvm-project/commit/2df1552fcdcf373d30b97aee9c1007e87fbe58bc
Author: Ryan Prichard <rprichard at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/utils/ci/vendor/android/Dockerfile.emulator
M libcxx/utils/ci/vendor/android/emulator-entrypoint.sh
Log Message:
-----------
[libc++][Android] Pass -no-metrics to emulator (#99627)
Summary:
The Android Emulator has started printing this message, so pass the
`-no-metrics` option:
```
##############################################################################
## WARNING - ACTION REQUIRED ##
## Consider using the '-metrics-collection' flag to help improve the ##
## emulator by sending anonymized usage data. Or use the '-no-metrics' ##
## flag to bypass this warning and turn off the metrics collection. ##
## In a future release this warning will turn into a one-time blocking ##
## prompt to ask for explicit user input regarding metrics collection. ##
## ##
## Please see '-help-metrics-collection' for more details. You can use ##
## '-metrics-to-file' or '-metrics-to-console' flags to see what type of ##
## data is being collected by emulator as part of usage statistics. ##
##############################################################################
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251061
Commit: 4a28d6bbc17f465398f1290c3ef2f8ba488bd3b6
https://github.com/llvm/llvm-project/commit/4a28d6bbc17f465398f1290c3ef2f8ba488bd3b6
Author: Michael Jones <michaelrj at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/src/sys/epoll/linux/epoll_pwait2.cpp
Log Message:
-----------
[libc] Disable epoll_pwait2 for now. (#99967)
This patch reverts #99781 and part of #99771 since `epoll_pwait2` is not
in fact available on all supported systems. It is my opinion that we
shouldn't provide a version of a function that doesn't perform as
expected, which is why this revert needs to happen.
The `epoll_pwait2` function can be reenabled when we have a way to check
if it is available on the target system, tracking bug for that is #80060
Commit: 3ef81e252ca2dfb90f57893030f6eda977407d0e
https://github.com/llvm/llvm-project/commit/3ef81e252ca2dfb90f57893030f6eda977407d0e
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Implement ReturnInst (#99784)
Summary:
This patch adds the implementation of the SandboxIR ReturnInst which
mirrors llvm::ReturnInst.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251325
Commit: d9463ecbd30f9227f2038f1961a054187b985ee9
https://github.com/llvm/llvm-project/commit/d9463ecbd30f9227f2038f1961a054187b985ee9
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir
Log Message:
-----------
[mlir][spirv] Fix bug for `vector.broadcast` op in `convert-vector-to-spirv` pass (#99928)
This PR addresses
[!17976](https://github.com/iree-org/iree/issues/17976) by using
converted `resultType` instead of the original result type obtained from
`castOp.getResultVectorType`. A new LIT test is also included.
Commit: e9b6438fcc241e71d428c269a33b584a3588bbc3
https://github.com/llvm/llvm-project/commit/e9b6438fcc241e71d428c269a33b584a3588bbc3
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCELFObjectWriter.h
M llvm/include/llvm/MC/MCELFStreamer.h
M llvm/include/llvm/MC/MCObjectWriter.h
M llvm/lib/MC/ELFObjectWriter.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
Log Message:
-----------
[MC] Export llvm::ELFObjectWriter
Summary:
Similar to commit 28fcafb50274be2520117eacb0a886adafefe59d (2011) for
MachObjectWriter and commit 9539a7796094ff5fb59d9c685140ea2e214b945c for
WinCOFFObjectWriter.
MCELFStreamer can now access ELFObjectWriter directly without adding
ELF-specific markGnuAbi (https://reviews.llvm.org/D97976) and
setOverrideABIVersion to MCObjectWriter.
A few member variables have to be made public since we cannot use a
friend declaration for ELFWriter.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251522
Commit: 2ab800de47f3aad05c3fc0b6bc8101388cd68c58
https://github.com/llvm/llvm-project/commit/2ab800de47f3aad05c3fc0b6bc8101388cd68c58
Author: Haowei <haowei at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[Fuchsia] Disable new hdrgen in Fuchsia toolchain build (#100001)
Summary:
We are seeing a PyYaml issue after the new libc_hdrgen was enabled by
default. This patch disables it in Fuchsia toolchain build so we restore
the builder while we are investigating.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250776
Commit: 3f82335cff28b7a9f928f30e17832268a069d4cb
https://github.com/llvm/llvm-project/commit/3f82335cff28b7a9f928f30e17832268a069d4cb
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A clang/docs/ClangNVLinkWrapper.rst
M clang/docs/index.rst
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cuda.h
M clang/test/Driver/cuda-cross-compiling.c
A clang/test/Driver/nvlink-wrapper.c
M clang/test/lit.cfg.py
M clang/tools/CMakeLists.txt
A clang/tools/clang-nvlink-wrapper/CMakeLists.txt
A clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
A clang/tools/clang-nvlink-wrapper/NVLinkOpts.td
Log Message:
-----------
[Clang] Introduce 'clang-nvlink-wrapper' to work around 'nvlink' (#96561)
Summary:
The `clang-nvlink-wrapper` is a utility that I removed awhile back
during the transition to the new driver. This patch adds back in a new,
upgraded version that does LTO + archive linking. It's not an easy
choice to reintroduce something I happily deleted, but this is the only
way to move forward with improving GPU support in LLVM.
While NVIDIA provides a linker called 'nvlink', its main interface is
very difficult to work with. It does not provide LTO, or static linking,
requires all files to be named a non-standard `.cubin`, and rejects link
jobs that other linkers would be fine with (i.e empty). I have spent a
great deal of time hacking around this in the GPU `libc` implementation,
where I deliberately avoid LTO and static linking and have about 100
lines of hacky CMake dedicated to storing these files in a format that
the clang-linker-wrapper accepts to avoid this limitation.
The main reason I want to re-intorudce this tool is because I am
planning on creating a more standard C/C++ toolchain for GPUs to use.
This will install files like the following.
```
<install>/lib/nvptx64-nvidia-cuda/libc.a
<install>/lib/nvptx64-nvidia-cuda/libc++.a
<install>/lib/nvptx64-nvidia-cuda/libomp.a
<install>/lib/clang/19/lib/nvptx64-nvidia-cuda/libclang_rt.builtins.a
```
Linking in these libraries will then simply require passing `-lc` like
is already done for non-GPU toolchains. However, this doesn't work with
the currently deficient `nvlink` linker, so I consider this a blocking
issue to massively improving the state of building GPU libraries.
In the future we may be able to convince NVIDIA to port their linker to
`ld.lld`, but for now this is the only workable solution that allows us
to hack around the weird behavior of their closed-source software.
This also copies some amount of logic from the clang-linker-wrapper,
but not enough for it to be worthwhile to merge them I feel. In the
future it may be possible to delete that handling from there entirely.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251377
Commit: 3f91f2dfe5b2edf74f9c29fac124cfc4405c411e
https://github.com/llvm/llvm-project/commit/3f91f2dfe5b2edf74f9c29fac124cfc4405c411e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
Log Message:
-----------
[Clang] Fix incorrect value assignment in nvlink wrapper
Summary: Gah, forgot to push this before I merged.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251363
Commit: 00683e8fb7cca15ceb2325a49f2120928543e104
https://github.com/llvm/llvm-project/commit/00683e8fb7cca15ceb2325a49f2120928543e104
Author: Brad Smith <brad at comstyle.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Basic/Targets/X86.h
Log Message:
-----------
[Clang] Remove NetBSD/i386 workaround for FP eval method with older versions (#74025)
Summary: NetBSD 6.x is long EoL. Make 7.x the minimum and even that is EoL.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251247
Commit: 371fad2b55eb7c6e38bef253ce019215cff126a7
https://github.com/llvm/llvm-project/commit/371fad2b55eb7c6e38bef253ce019215cff126a7
Author: RoseZhang03 <rosezhang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
Log Message:
-----------
Revert "[libc] New HeaderGen Switch Flip" (#100003)
Reverts llvm/llvm-project#99929
Commit: 71af326e902b079443f95bbcd1e34018357fbb9e
https://github.com/llvm/llvm-project/commit/71af326e902b079443f95bbcd1e34018357fbb9e
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/Features.def
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/PointerAuthOptions.h
M clang/include/clang/Driver/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
A clang/test/CodeGenCXX/ptrauth-type-info-vtable.cpp
Log Message:
-----------
[clang] Implement type/address discrimination of type_info vtable. (#99726)
Summary:
We want to be able to support full type and address discrimination of
type_info on targets that don't have existing ABI compatibility
constraints.
This patch does not enable such behavior on any platform, it just adds
the necessary machinery.
In clang we add a new commandline argument to control the type_info
vtable ABI:
-fptrauth-type-info-vtable-pointer-discrimination
and a feature flag to allow source level detection of the ABI:
__has_feature(ptrauth_type_info_vtable_pointer_discrimination)
Co-authored-by: Oliver Hunt <oliver at apple.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251050
Commit: 8d04324b3081f06e797f5f67c9ef6e67d75a4a03
https://github.com/llvm/llvm-project/commit/8d04324b3081f06e797f5f67c9ef6e67d75a4a03
Author: Tianqing Wang <tianqing.wang at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Other/new-pm-print-pipeline.ll
A llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-unpredictable.ll
Log Message:
-----------
[SimplifyCFG] Increase budget for FoldTwoEntryPHINode() if the branch is unpredictable. (#98495)
The `!unpredictable` metadata has been present for a long time, but
it's usage in optimizations is still limited. This patch teaches
`FoldTwoEntryPHINode()` to be more aggressive with an unpredictable
branch to reduce mispredictions.
A TTI interface `getBranchMispredictPenalty()` is added to distinguish
between different hardwares to ensure we don't go too far for simpler
cores. For simplicity, only a naive x86 implementation is included for
the time being.
Commit: 59acbab621b8b00a401a3b34b9041c83bb932159
https://github.com/llvm/llvm-project/commit/59acbab621b8b00a401a3b34b9041c83bb932159
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCObjectWriter.h
M llvm/include/llvm/MC/MCXCOFFObjectWriter.h
M llvm/lib/MC/MCXCOFFStreamer.cpp
M llvm/lib/MC/XCOFFObjectWriter.cpp
Log Message:
-----------
MCObjectWriter: Remove XCOFF specific virtual functions
Summary:
Add forwarders for now. XCOFFObjectWriter should eventually be exported
like Mach-O/COFF/ELF (commit 70c52b62c5669993e341664a63bfbe5245e32884).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251143
Commit: 92a8010063758ddcf472a39ba772477dd850f944
https://github.com/llvm/llvm-project/commit/92a8010063758ddcf472a39ba772477dd850f944
Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
Log Message:
-----------
[AMDGPU] Protect against null entries in ValMap
Change-Id: Icbda7c3fecf38679d06006986e5e17cb1f1b8749
Commit: 0b59a62671882f6d0e9701e438e81bd8e3b95680
https://github.com/llvm/llvm-project/commit/0b59a62671882f6d0e9701e438e81bd8e3b95680
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M offload/DeviceRTL/src/Parallelism.cpp
Log Message:
-----------
[NFC][Offload] Move variables to where they are used (#99956)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251034
Commit: 38dd4a8c899e3525fb52b8938a38d7d78e3c4bf9
https://github.com/llvm/llvm-project/commit/38dd4a8c899e3525fb52b8938a38d7d78e3c4bf9
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CMakeLists.txt
M clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
Log Message:
-----------
[Clang] Fix 'clang-nvlink-wrapper' not working w/o CUDA
Summary:
This would try to find `nvlink` and then fail even in `dry-run` mode.
We now just let it continue and pretend like we found it. Also add it to
the depends.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251119
Commit: 641a7dec3df00aa59a3af04f854c9edb79eec6ed
https://github.com/llvm/llvm-project/commit/641a7dec3df00aa59a3af04f854c9edb79eec6ed
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/newhdrgen/yaml_to_classes.py
Log Message:
-----------
[libc][newheadergen]: yaml.load instead of safe_load (#100024)
Summary: Co-authored-by: Rose Zhang <rosezhang at google.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251226
Commit: b70a41c9bbf009e3aa6e6ecdf20067cfdbc1d66b
https://github.com/llvm/llvm-project/commit/b70a41c9bbf009e3aa6e6ecdf20067cfdbc1d66b
Author: Qiongsi Wu <274595+qiongsiwu at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Driver/Options.td
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/include/clang/Parse/Parser.h
M clang/lib/Driver/ToolChains/AIX.cpp
M clang/lib/Parse/ParsePragma.cpp
A clang/test/Preprocessor/pragma_mc_func.c
Log Message:
-----------
[AIX] Detect `#pragma mc_func` (#99888)
`#pragma mc_func` is an IBM XL feature that should be replaced by inline
assembly. This PR adds an option `-ferr-pragma-mc-func-aix` to detect
uses of `#pragma mc_func` and reports an error if the option is in
effect. If `-fno-err-pragma-mc-func-aix` is in effect, `#pragma mc_func`
is ignored even if `-Werror=unknown-pragmas` is in effect.
Commit: c13e109390da78544be54490e75f4468183e19c8
https://github.com/llvm/llvm-project/commit/c13e109390da78544be54490e75f4468183e19c8
Author: Greg Roth <grroth at microsoft.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/HLSL/AvailabilityDiagnostics.rst
M clang/docs/HLSL/ExpectedDifferences.rst
Log Message:
-----------
Correct confusing headers in HLSLDocs (#100017)
AvailabilityDiagnostics.rst and ExpectedDifferences.rst both had
multiple headers that were perceived to be the "top-level".
In AvailabilityDiagnostics.rst two headers had both over and underlines.
The second was the "Examples" section so it showed up in the top level
HLSL docs. The overline is removed here so it's clear it's a subheader.
In ExpectedDifferences.rst, the first header had no overline, so a few
headers that looked the same were included. The overline is added to the
top header to make clear that it's the main header.
Commit: 735b6a30f55fa2059dd06f357175e73f579c6d08
https://github.com/llvm/llvm-project/commit/735b6a30f55fa2059dd06f357175e73f579c6d08
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/clang-nvlink-wrapper/CMakeLists.txt
Log Message:
-----------
[libc] Remove leftover debugging in `clang-nvlink-wrapper`
Summary: This was accidentally left in.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251112
Commit: 05778e86ca99ffdb513e60b78dfaf286dfcaf3d3
https://github.com/llvm/llvm-project/commit/05778e86ca99ffdb513e60b78dfaf286dfcaf3d3
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCELFObjectWriter.h
M llvm/lib/MC/ELFObjectWriter.cpp
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
M llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFStreamer.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp
M llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
Log Message:
-----------
MCAssmembler: Move ELFHeaderEFlags to ELFObjectWriter
Now that MCELFStreamer can access ELFObjectWriter (commit
70c52b62c5669993e341664a63bfbe5245e32884), we can move ELFHeaderEFlags
there.
Commit: 3e37a51ec85096bb329cad3a0ceedc3c9b2e05f2
https://github.com/llvm/llvm-project/commit/3e37a51ec85096bb329cad3a0ceedc3c9b2e05f2
Author: Kyungwoo Lee <kyulee at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/include/llvm/CodeGenData/CodeGenData.h
A llvm/include/llvm/CodeGenData/CodeGenData.inc
A llvm/include/llvm/CodeGenData/CodeGenDataReader.h
A llvm/include/llvm/CodeGenData/CodeGenDataWriter.h
M llvm/lib/CodeGenData/CMakeLists.txt
A llvm/lib/CodeGenData/CodeGenData.cpp
A llvm/lib/CodeGenData/CodeGenDataReader.cpp
A llvm/lib/CodeGenData/CodeGenDataWriter.cpp
M llvm/test/CMakeLists.txt
M llvm/test/lit.cfg.py
A llvm/test/tools/llvm-cgdata/dump.test
A llvm/test/tools/llvm-cgdata/empty.test
A llvm/test/tools/llvm-cgdata/error.test
A llvm/test/tools/llvm-cgdata/merge-archive.test
A llvm/test/tools/llvm-cgdata/merge-concat.test
A llvm/test/tools/llvm-cgdata/merge-double.test
A llvm/test/tools/llvm-cgdata/merge-single.test
A llvm/test/tools/llvm-cgdata/show.test
A llvm/tools/llvm-cgdata/CMakeLists.txt
A llvm/tools/llvm-cgdata/llvm-cgdata.cpp
Log Message:
-----------
[CGData] llvm-cgdata (#89884)
Summary:
The llvm-cgdata tool has been introduced to handle reading and writing
of codegen data. This data includes an optimistic codegen summary that
can be utilized to enhance subsequent codegen. Currently, the tool
supports saving and restoring the outlined hash tree, facilitating
machine function outlining across modules. Additional codegen summaries
can be incorporated into separate sections as required. This patch
primarily establishes basic support for the reader and writer, similar
to llvm-profdata.
The high-level operations of llvm-cgdata are as follows:
1. It reads local raw codegen data from a custom section (for example,
__llvm_outline) embedded in native binary files
2. It merges local raw codegen data into an indexed codegen data,
complete with a suitable header.
3. It handles reading and writing of the indexed codegen data into a
standalone file.
This depends on https://github.com/llvm/llvm-project/pull/89792.
This is a patch for
https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753.
---------
Co-authored-by: Kyungwoo Lee <kyulee at fb.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251410
Commit: a1857f21e23a38e2b396f36472dbe047ef2f7844
https://github.com/llvm/llvm-project/commit/a1857f21e23a38e2b396f36472dbe047ef2f7844
Author: Oliver Hunt <oliver at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/Basic/PointerAuthOptions.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
A clang/test/CodeGenCXX/ptrauth-member-function-pointer.cpp
Log Message:
-----------
[PAC] Implement authentication for C++ member function pointers (#99576)
Summary:
Introduces type based signing of member function pointers. To support
this discrimination schema we no longer emit member function pointer to
virtual methods and indices into a vtable but migrate to using thunks.
This does mean member function pointers are no longer necessarily
directly comparable, however as such comparisons are UB this is
acceptable.
We derive the discriminator from the C++ mangling of the type of the
pointer being authenticated.
Co-Authored-By: Akira Hatanaka ahatanaka at apple.com
Co-Authored-By: John McCall rjmccall at apple.com
Co-authored-by: Ahmed Bougacha <ahmed at bougacha.org>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251159
Commit: 091c56155598608fca3d1b6b8c03574a38f975ba
https://github.com/llvm/llvm-project/commit/091c56155598608fca3d1b6b8c03574a38f975ba
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGenData/CodeGenDataReader.cpp
Log Message:
-----------
[CGData] Fix -Wpessimizing-move in CodeGenDataReader.cpp (NFC)
Summary:
/llvm-project/llvm/lib/CodeGenData/CodeGenDataReader.cpp:78:12:
error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
return std::move(E);
^
/llvm-project/llvm/lib/CodeGenData/CodeGenDataReader.cpp:78:12: note: remove std::move call here
return std::move(E);
^~~~~~~~~~ ~
1 error generated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251095
Commit: d687dec0b4720fd80d2d2d357bb6ffd2fa4dfcda
https://github.com/llvm/llvm-project/commit/d687dec0b4720fd80d2d2d357bb6ffd2fa4dfcda
Author: Jordan Brantner <81778785+brantnej at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/docs/CommandLineArgumentReference.md
M bolt/lib/Core/BinaryContext.cpp
Log Message:
-----------
[BOLT] Fix typo from alterantive to alternative (#99704)
Fix typo from `alterantive` -> `alternative`
Signed-off-by: Jordan Brantner <brantnej at oregonstate.edu>
Commit: 54317b5fd9f71ff782d6f9eae595778b5e260599
https://github.com/llvm/llvm-project/commit/54317b5fd9f71ff782d6f9eae595778b5e260599
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
M clang/test/CodeGen/builtins.c
Log Message:
-----------
[Clang][Interp] `__builtin_os_log_format_buffer_size` should be an unevaluated builtin (#99895)
Summary:
Follow the current behavior of constant evaluator,
`__builtin_os_log_format_buffer_size` should be an unevaluated builtin.
The following code is well-formed:
```
void test_builtin_os_log(void *buf, int i, const char *data) {
constexpr int len = __builtin_os_log_format_buffer_size("%d %{public}s %{private}.16P", i, data, data);
}
```
Signed-off-by: yronglin <yronglin777 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251336
Commit: 2af16ab59445e7435500f6690a746bf2ac454902
https://github.com/llvm/llvm-project/commit/2af16ab59445e7435500f6690a746bf2ac454902
Author: Tianqing Wang <tianqing.wang at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/SimplifyCFG/X86/two-entry-phi-fold-unpredictable.ll
R llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-unpredictable.ll
Log Message:
-----------
[SimplifyCFG] Fix LIT failure introduced in 3d494bfc7. (#100049)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251056
Commit: 8f619cf8c558b5ce28620627ea9623b58e111c48
https://github.com/llvm/llvm-project/commit/8f619cf8c558b5ce28620627ea9623b58e111c48
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/hardened-br-jump-table.ll
Log Message:
-----------
[AArch64][PAC] Lower jump-tables using hardened pseudo. (#97666)
Summary:
This introduces an alternative hardened lowering for jump-table
dispatch, controlled by the function attribute
`"aarch64-jump-table-hardening"`.
The implementation is centered around a pseudo, BR_JumpTable:
> A hardened but more expensive version of jump-table dispatch.
> This combines the target address computation (otherwise done using
> the JumpTableDest pseudos above) with the branch itself (otherwise
> done using a plain BR) in a single non-attackable sequence.
>
> We take the final entry index as an operand to allow isel freedom.
> This does mean that the index can be attacker-controlled. To
> address that, we also do limited checking of the offset, mainly
> ensuring it still points within the jump-table array. When it
> doesn't, this branches to the first entry. We might want it to
> trap instead.
>
> This is intended for use in conjunction with ptrauth for other
> code pointers, to avoid signing jump-table entries and turning
> them into pointers.
>
> Entry index is passed in x16. Clobbers x16/x17/nzcv.
Jump-table compression isn't supported yet.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251096
Commit: 594df9ddb012f0028bf3421152436ff14e4629c2
https://github.com/llvm/llvm-project/commit/594df9ddb012f0028bf3421152436ff14e4629c2
Author: Kyungwoo Lee <kyulee at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGenData/CodeGenDataReader.cpp
Log Message:
-----------
Fix build break for https://github.com/llvm/llvm-project/pull/89884 (#100050)
Summary: - A missing header
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251146
Commit: 65a89789e32b98279d6a3e1256e9a64b9dbc2e03
https://github.com/llvm/llvm-project/commit/65a89789e32b98279d6a3e1256e9a64b9dbc2e03
Author: dyung <douglas.yung at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
R clang/test/Driver/warn-fsyntax-only.c
Log Message:
-----------
Revert "[Clang][Driver] Warn about `-c/-S` with `-fsyntax-only`" (#100052)
Reverts llvm/llvm-project#98607
The test added was failing on some build bots:
- https://lab.llvm.org/buildbot/#/builders/144/builds/2918
- https://lab.llvm.org/buildbot/#/builders/46/builds/2069
Commit: 3651d1ac4d87b54e6d76fa33b8f651fb90114f62
https://github.com/llvm/llvm-project/commit/3651d1ac4d87b54e6d76fa33b8f651fb90114f62
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/utils/gn/secondary/clang/tools/clang-nvlink-wrapper/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
Log Message:
-----------
[gn] port 37d0568a6593a (clang-nvlink-wrapper)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251165
Commit: 69a9a3bb66466ce53185e76399de7fe22eafcd92
https://github.com/llvm/llvm-project/commit/69a9a3bb66466ce53185e76399de7fe22eafcd92
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/CodeGenData/BUILD.gn
M llvm/utils/gn/secondary/llvm/test/BUILD.gn
A llvm/utils/gn/secondary/llvm/tools/llvm-cgdata/BUILD.gn
Log Message:
-----------
[gn build] Port d3fb41dddc11 (llvm-cgdata)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251109
Commit: 06a895f571a10e17cd4713e6abfeaadb404abb4f
https://github.com/llvm/llvm-project/commit/06a895f571a10e17cd4713e6abfeaadb404abb4f
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCELFObjectWriter.h
M llvm/lib/MC/ELFObjectWriter.cpp
M llvm/lib/MC/MCELFStreamer.cpp
Log Message:
-----------
MCAssembler: Move Symvers to ELFObjectWriter
Summary: Similar to c473e75adeaf2998e4fb444b0bdbf2dd19312e50
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251465
Commit: 5db6aa63baf796eba9b6ea90dc9fae4ade280a7a
https://github.com/llvm/llvm-project/commit/5db6aa63baf796eba9b6ea90dc9fae4ade280a7a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCObjectRules.cmake
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/config/gpu/entrypoints.txt
M libc/test/UnitTest/CMakeLists.txt
Log Message:
-----------
[libc] Remove workarounds for lack of functional NVPTX linker (#96972)
Summary:
Currently we have several hacks to work around the fact that the NVPTX
linker, 'nvlink', does not support static libraries or LTO linking.
The patch in https://github.com/llvm/llvm-project/pull/96561 introduces
a wrapper in the toolchain that allows us to use a standard `ld.lld`
like interface. This means all the divergence with this target can be
removed.
Depends on https://github.com/llvm/llvm-project/pull/96561
Commit: fb5d6c3eff93bda5f7cb08aa735fc50481aba8fe
https://github.com/llvm/llvm-project/commit/fb5d6c3eff93bda5f7cb08aa735fc50481aba8fe
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCObjectWriter.h
M llvm/lib/MC/ELFObjectWriter.cpp
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCObjectStreamer.cpp
M llvm/lib/MC/MCObjectWriter.cpp
M llvm/lib/MC/WinCOFFObjectWriter.cpp
M llvm/lib/MC/XCOFFObjectWriter.cpp
Log Message:
-----------
MCAssembler: Move FileNames and CompilerVersion to MCObjectWriter
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251319
Commit: cca6e2f173cb3e29dff709295eaea82a70dd518c
https://github.com/llvm/llvm-project/commit/cca6e2f173cb3e29dff709295eaea82a70dd518c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
Log Message:
-----------
[Clang] Fix r-value binding that Windows doesn't like
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251049
Commit: e28dc7cffe55fad042e4c7bca7c320868029fc3e
https://github.com/llvm/llvm-project/commit/e28dc7cffe55fad042e4c7bca7c320868029fc3e
Author: WANG Rui <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
Log Message:
-----------
[LoongArch][test] Add --relocation-model=pic option to psabi-restricted-scheduling. NFC
Add --relocation-model=pic option for generating %gd_pc_hi20 and %ld_pc_hi20.
Commit: 7e68fbf2f53e3a24035de1a64d6dd1867f069b3a
https://github.com/llvm/llvm-project/commit/7e68fbf2f53e3a24035de1a64d6dd1867f069b3a
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGenData/CMakeLists.txt
Log Message:
-----------
[CGData] Fix link error introduced in #89884
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251106
Commit: e1de02b542a000f97621ed4b5fea1ac20c4a997c
https://github.com/llvm/llvm-project/commit/e1de02b542a000f97621ed4b5fea1ac20c4a997c
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Implement SelectInst (#99996)
Summary:
This patch implements sandboxir::SelectInst which mirrors
llvm::SelectInst.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250785
Commit: aac9b7ec564ed42f157d10349de118574d2b86c3
https://github.com/llvm/llvm-project/commit/aac9b7ec564ed42f157d10349de118574d2b86c3
Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvilv.ll
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvpack.ll
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvpick.ll
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvrepl128vei.ll
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvshuf.ll
A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvshuf4i.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vilv.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vpack.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vpick.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vreplvei.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vshuf.ll
A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/shuffle-as-vshuf4i.ll
Log Message:
-----------
[LoongArch][CodeGen] Implement 128-bit and 256-bit vector shuffle. (#100054)
[LoongArch][CodeGen] Implement 128-bit and 256-bit vector shuffle
operations.
In LoongArch, shuffle operations can be divided into two types:
- Single-vector shuffle: Shuffle using only one vector, with the other
vector being `undef` or not selected by mask. This can be expanded to
instructions such as `vreplvei` and `vshuf4i`.
- Two-vector shuffle: Shuflle using two vectors. This can be expanded to
instructions like `vilv[l/h]`, `vpack[ev/od]`, `vpick[ev/od]` and the
basic `vshuf`.
In the future, more optimizations may be added, such as handling 1-bit
vectors and processing single element patterns, etc.
Commit: 0a7aeb1bc6d1e1491d74237afc3d73ff841180d6
https://github.com/llvm/llvm-project/commit/0a7aeb1bc6d1e1491d74237afc3d73ff841180d6
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp
Log Message:
-----------
[clang][deps] Ignore import/include directives with missing filenames (#99520)
Previously source input like `#import ` resulted in infinite calls
append the same token into `CurDirTokens`. This patch now ignores those
directive lines if they won't actually end up being compiled. (e.g.
macro guarded)
resolves: rdar://121247565
Commit: c2c6b06a270da6ccf715eefbca62f7e164e59ec9
https://github.com/llvm/llvm-project/commit/c2c6b06a270da6ccf715eefbca62f7e164e59ec9
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/Features.def
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/PointerAuthOptions.h
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CodeGen/ptrauth-function-attributes.c
A clang/test/Sema/ptrauth-indirect-goto.c
M llvm/docs/PointerAuth.md
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/ptrauth-indirectbr.ll
Log Message:
-----------
[AArch64][PAC] Sign block addresses used in indirectbr. (#97647)
Summary:
Enabled in clang using:
-fptrauth-indirect-gotos
and at the IR level using function attribute:
"ptrauth-indirect-gotos"
Signing uses IA and a per-function integer discriminator. The
discriminator isn't ABI-visible, and is currently:
ptrauth_string_discriminator("<function_name> blockaddress")
A sufficiently sophisticated frontend could benefit from per-indirectbr
discrimination, which would need additional machinery, such as allowing
"ptrauth" bundles on indirectbr. For our purposes, the simple scheme
above is sufficient.
This approach doesn't support subtracting label addresses and using
the result as offsets, because each label address is signed.
Pointer arithmetic on signed pointers corrupts the signature bits,
and because label address expressions aren't typed beyond void*,
we can't do anything reliably intelligent on the arithmetic exprs.
Not signing addresses when used to form offsets would allow
easily hijacking control flow by overwriting the offset.
This diagnoses the basic cases (`&&lbl2 - &&lbl1`) in the frontend,
while we evaluate either alternative implementations (e.g., lowering
blockaddress to a bb number, and indirectbr to a checked jump-table),
or better diagnostics (both at the frontend level and on unencodable
IR constants).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251245
Commit: 9e0ed0d53ab9f0746295c40ea22daf7a92054ae6
https://github.com/llvm/llvm-project/commit/9e0ed0d53ab9f0746295c40ea22daf7a92054ae6
Author: Kyungwoo Lee <kyulee at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/tools/llvm-cgdata/merge-archive.test
M llvm/test/tools/llvm-cgdata/merge-concat.test
M llvm/test/tools/llvm-cgdata/merge-double.test
M llvm/test/tools/llvm-cgdata/merge-single.test
Log Message:
-----------
Fix tests for https://github.com/llvm/llvm-project/pull/89884 (#100061)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251302
Commit: 85086fa4b651d4126a7a0e0eb6f7f15cc951931b
https://github.com/llvm/llvm-project/commit/85086fa4b651d4126a7a0e0eb6f7f15cc951931b
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/ptrauth-fpac.ll
A llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign-with-blend.ll
A llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign.ll
Log Message:
-----------
[AArch64][PAC] Lower auth/resign into checked sequence. (#79024)
Summary:
This introduces 3 hardening modes in the authentication step of
auth/resign lowering:
- unchecked, which uses the AUT instructions as-is
- poison, which detects authentication failure (using an XPAC+CMP
sequence), explicitly yielding the XPAC result rather than the
AUT result, to avoid leaking
- trap, which additionally traps on authentication failure,
using BRK #0xC470 + key (IA C470, IB C471, DA C472, DB C473.)
Not all modes are necessarily useful in all contexts, and there
are more performant alternative lowerings in specific contexts
(e.g., when I/D TBI enablement is a target ABI guarantee.)
These will be implemented separately.
This is controlled by the `ptrauth-auth-traps` function attributes,
and can be overridden using `-aarch64-ptrauth-auth-checks=`.
This also adds the FPAC extension, which we haven't needed
before, to improve isel when we can rely on HW checking.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251202
Commit: 44fda9963b6ec104352a99bd5da772d9e964904c
https://github.com/llvm/llvm-project/commit/44fda9963b6ec104352a99bd5da772d9e964904c
Author: donald chen <chenxunyu1993 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/Utils/IndexingUtils.h
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/lib/Dialect/Utils/IndexingUtils.cpp
M mlir/test/Dialect/Linalg/canonicalize.mlir
Log Message:
-----------
[mlir] [linalg] Add pattern to swap transpose with broadcast (#97063)
Add a pattern that implement:
transpose(broadcast(input)) -> broadcast(transpose(input))
Commit: e826b2efd7b001997b1bd600265b37fb7cf8f60a
https://github.com/llvm/llvm-project/commit/e826b2efd7b001997b1bd600265b37fb7cf8f60a
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCObjectWriter.h
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MCObjectWriter.cpp
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/MC/MachObjectWriter.cpp
M llvm/lib/MC/WinCOFFObjectWriter.cpp
Log Message:
-----------
MCAssembler: Move CGProfile to MCObjectWriter
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251155
Commit: 6946ef5a2795b6d0db91d9434fe7a51822c2911f
https://github.com/llvm/llvm-project/commit/6946ef5a2795b6d0db91d9434fe7a51822c2911f
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
MCAssembler: Move LinkerOptions to MachObjectWriter
Commit: 70d6a0aab9087424b3ce2aec1ab9156549aa165c
https://github.com/llvm/llvm-project/commit/70d6a0aab9087424b3ce2aec1ab9156549aa165c
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.h
Log Message:
-----------
[clang][Interp][NFC] Diagnose div by 0 more like the current interpreter
Summary: CCEDiag when it's a floating point operation, FFDiag otherwise.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251091
Commit: f5f2c58e93099ab4735f1390d1384e7f010b791e
https://github.com/llvm/llvm-project/commit/f5f2c58e93099ab4735f1390d1384e7f010b791e
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
Log Message:
-----------
MCAssembler: Remove getWriterPtr
Commit 8728e097dfbec3630a1dd907431c0f14274a1ae8 (2018) introduced
getWriterPtr, which might be nullptr for MCAsmStreamer. This lured call
sites to use getWriterPtr when it's guaranteed to be non-null for
MCObjectstreamer. Remove this misleading API.
Commit: da5e4a3a05f9f6c5ad98d1656b4cfb2e56cf202b
https://github.com/llvm/llvm-project/commit/da5e4a3a05f9f6c5ad98d1656b4cfb2e56cf202b
Author: David Benjamin <davidben at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/cmake/caches/Generic-hardening-mode-fast-with-abi-breaks.cmake
M libcxx/docs/Hardening.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/include/__configuration/abi.h
M libcxx/include/__iterator/bounded_iter.h
M libcxx/include/string
M libcxx/include/vector
M libcxx/test/libcxx/containers/sequences/vector/abi.compile.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/assert.iterator.add.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/assert.iterator.decrement.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/assert.iterator.dereference.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/assert.iterator.increment.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/assert.iterator.index.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/debug.iterator.add.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/debug.iterator.decrement.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/debug.iterator.dereference.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/debug.iterator.increment.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/debug.iterator.index.pass.cpp
A libcxx/test/libcxx/containers/sequences/vector/fill_to_capacity.h
M libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp
M libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp
A libcxx/test/libcxx/strings/basic.string/string.iterators/assert.iterator.add.pass.cpp
A libcxx/test/libcxx/strings/basic.string/string.iterators/assert.iterator.decrement.pass.cpp
A libcxx/test/libcxx/strings/basic.string/string.iterators/assert.iterator.dereference.pass.cpp
A libcxx/test/libcxx/strings/basic.string/string.iterators/assert.iterator.increment.pass.cpp
A libcxx/test/libcxx/strings/basic.string/string.iterators/assert.iterator.index.pass.cpp
R libcxx/test/libcxx/strings/basic.string/string.iterators/debug.iterator.add.pass.cpp
R libcxx/test/libcxx/strings/basic.string/string.iterators/debug.iterator.decrement.pass.cpp
R libcxx/test/libcxx/strings/basic.string/string.iterators/debug.iterator.dereference.pass.cpp
R libcxx/test/libcxx/strings/basic.string/string.iterators/debug.iterator.increment.pass.cpp
R libcxx/test/libcxx/strings/basic.string/string.iterators/debug.iterator.index.pass.cpp
A libcxx/test/std/containers/sequences/vector/vector.modifiers/assert.push_back.invalidation.pass.cpp
M libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
M libcxx/utils/libcxx/test/features.py
Log Message:
-----------
[libc++][hardening] Use bounded iterators in std::vector and std::string (#78929)
~~NB: This PR depends on #78876. Ignore the first commit when reviewing,
and don't merge it until #78876 is resolved. When/if #78876 lands, I'll
clean this up.~~
This partially restores parity with the old, since removed debug build.
We now can re-enable a bunch of the disabled tests. Some things of note:
- `bounded_iter`'s converting constructor has never worked. It needs a
friend declaration to access the other `bound_iter` instantiation's
private fields.
- The old debug iterators also checked that callers did not try to
compare iterators from different objects. `bounded_iter` does not
currently do this, so I've left those disabled. However, I think we
probably should add those. See
https://github.com/llvm/llvm-project/issues/78771#issuecomment-1902999181
- The `std::vector` iterators are bounded up to capacity, not size. This
makes for a weaker safety check. This is because the STL promises not to
invalidate iterators when appending up to the capacity. Since we cannot
retroactively update all the iterators on `push_back()`, I've instead
sized it to the capacity. This is not as good, but at least will stop
the iterator from going off the end of the buffer.
There was also no test for this, so I've added one in the `std`
directory.
- `std::string` has two ambiguities to deal with. First, I opted not to
size it against the capacity. https://eel.is/c++draft/string.require#4
says iterators are invalidated on an non-const operation. Second,
whether the iterator can reach the NUL terminator. The previous debug
tests and the special-case in https://eel.is/c++draft/string.access#2
suggest no. If either of these causes widespread problems, I figure we
can revisit.
- `resize_and_overwrite.pass.cpp` assumed `std::string`'s iterator
supported `s.begin().base()`, but I see no promise of this in the
standard. GCC also doesn't support this. I fixed the test to use
`std::to_address`.
- `alignof.compile.pass.cpp`'s pointer isn't enough of a real pointer.
(It needs to satisfy `NullablePointer`, `LegacyRandomAccessIterator`,
and `LegacyContiguousIterator`.) `__bounded_iter` seems to instantiate
enough to notice. I've added a few more bits to satisfy it.
Fixes #78805
Commit: 42ab9d822f620346601e4ec64515af02a0bab4b4
https://github.com/llvm/llvm-project/commit/42ab9d822f620346601e4ec64515af02a0bab4b4
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/pragma_mc_func.c
Log Message:
-----------
[NFC] make the case only require frontend
Summary:
Fixes buildbot failure like: https://lab.llvm.org/buildbot/#/builders/144/builds/2931
caused by https://github.com/llvm/llvm-project/pull/99888
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251170
Commit: cd89da53018b43a74332a0c52b2b6b3e32e71ff2
https://github.com/llvm/llvm-project/commit/cd89da53018b43a74332a0c52b2b6b3e32e71ff2
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/DXILResource.cpp
Log Message:
-----------
[Utils] Fix clang-tidy warning: Use boolean false, not 0 (NFC) (#99828)
Commit: 8d1771d6e4ac9ec27ffe4b7dc6d4da1911ea030f
https://github.com/llvm/llvm-project/commit/8d1771d6e4ac9ec27ffe4b7dc6d4da1911ea030f
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/pragma_mc_func.c
Log Message:
-----------
[NFC] changes all run lines
Summary: Fix https://github.com/llvm/llvm-project/pull/99888
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251044
Commit: df03a8a63c1240cd165aab0eb1ad9fd97da0521f
https://github.com/llvm/llvm-project/commit/df03a8a63c1240cd165aab0eb1ad9fd97da0521f
Author: Ami-zhang <zhanglimin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
M clang/test/Driver/loongarch-features.c
M clang/test/Driver/loongarch-mlasx.c
M clang/test/Driver/loongarch-msimd.c
M clang/test/Driver/loongarch-msingle-float.c
M clang/test/Driver/loongarch-msoft-float.c
M clang/test/Preprocessor/init-loongarch.c
Log Message:
-----------
[LoongArch] Enable 128-bits vector by default (#100056)
Summary:
This commit is to enable 128 vector feature by default, in order to be
consistent with gcc.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251089
Commit: c034865007bb5cadaa0d62925cdf0cf0d0d27ca5
https://github.com/llvm/llvm-project/commit/c034865007bb5cadaa0d62925cdf0cf0d0d27ca5
Author: Ami-zhang <zhanglimin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/LoongArch.cpp
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
M clang/test/Driver/loongarch-march.c
M clang/test/Preprocessor/init-loongarch.c
M llvm/lib/TargetParser/LoongArchTargetParser.cpp
Log Message:
-----------
[LoongArch] Support -march=la64v1.0 and -march=la64v1.1 (#100057)
Summary:
The newly added strings `la64v1.0` and `la64v1.1` in `-march` are as
described in LoongArch toolchains conventions (see [1]).
The target-cpu/feature attributes are forwarded to compiler when
specifying particular `-march` parameter. The default cpu `loongarch64`
is returned when archname is `la64v1.0` or `la64v1.1`.
In addition, this commit adds `la64v1.0`/`la64v1.1` to
"__loongarch_arch" and adds definition for macro "__loongarch_frecipe".
[1]: https://github.com/loongson/la-toolchain-conventions
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251223
Commit: 9e60447309e143c5df7796a5a9e8dfdd3cbef64d
https://github.com/llvm/llvm-project/commit/9e60447309e143c5df7796a5a9e8dfdd3cbef64d
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/MC/MCObjectStreamer.cpp
Log Message:
-----------
MCObjectStreamer: Remove an unneeded getBackendPtr test
Summary:
All of `MCAsmBackend`, `MCCodeEmitter`, and `MCObjectWriter` must be
non-null.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251105
Commit: 36dc399d15f3ab557ea9af80fd0e5526076427cf
https://github.com/llvm/llvm-project/commit/36dc399d15f3ab557ea9af80fd0e5526076427cf
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
M llvm/test/MC/RISCV/mapping-across-sections.s
Log Message:
-----------
[RISCV] Create mapping symbols with non-unique names
Summary:
Similar to #99836 for AArch64.
Non-unique names save .strtab space and match GNU assembler.
Pull Request: https://github.com/llvm/llvm-project/pull/99903
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251462
Commit: 091de2f6764abf4b778ed198c0b745ed4008885c
https://github.com/llvm/llvm-project/commit/091de2f6764abf4b778ed198c0b745ed4008885c
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFStreamer.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFStreamer.h
M llvm/test/DebugInfo/Symbolize/ELF/csky-mapping-symbol.s
Log Message:
-----------
[CSKY] Create mapping symbols with non-unique names
Similar to #99836 for AArch64.
Non-unique names save .strtab space and match GNU assembler.
Commit: b1d7985482dd698110ae409a2151e37cc9eeaa70
https://github.com/llvm/llvm-project/commit/b1d7985482dd698110ae409a2151e37cc9eeaa70
Author: Thomas Schenker <thomas.schenker at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-values.cpp
Log Message:
-----------
[clang-tidy] fix misc-const-correctness to work with function-try-blocks (#99925)
Make the clang-tidy check misc-const-correctness work with
function-try-blocks.
Fixes #99860.
Commit: 8207ae2f484423317019f0a55c0808ae45692200
https://github.com/llvm/llvm-project/commit/8207ae2f484423317019f0a55c0808ae45692200
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Descriptor.cpp
M clang/lib/AST/Interp/Descriptor.h
M clang/lib/AST/Interp/Pointer.cpp
M clang/lib/AST/Interp/Pointer.h
M clang/test/AST/Interp/codegen.cpp
Log Message:
-----------
[clang][Interp] Calculate APValue offsets for base classes
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251144
Commit: 73e9e3a220c97832edc4b7b07b1aa11a1e34b129
https://github.com/llvm/llvm-project/commit/73e9e3a220c97832edc4b7b07b1aa11a1e34b129
Author: Alexander Pivovarov <pivovaa at amazon.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir-c/BuiltinTypes.h
M mlir/include/mlir/IR/Builders.h
M mlir/include/mlir/IR/BuiltinTypes.h
M mlir/include/mlir/IR/BuiltinTypes.td
M mlir/include/mlir/IR/CommonTypeConstraints.td
M mlir/include/mlir/IR/Types.h
M mlir/lib/AsmParser/TokenKinds.def
M mlir/lib/AsmParser/TypeParser.cpp
M mlir/lib/Bindings/Python/IRTypes.cpp
M mlir/lib/CAPI/IR/BuiltinTypes.cpp
M mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp
M mlir/lib/Dialect/Arith/Transforms/EmulateUnsupportedFloats.cpp
M mlir/lib/IR/AsmPrinter.cpp
M mlir/lib/IR/Builders.cpp
M mlir/lib/IR/BuiltinTypes.cpp
M mlir/lib/IR/MLIRContext.cpp
M mlir/lib/IR/Types.cpp
M mlir/python/mlir/_mlir_libs/_mlir/ir.pyi
M mlir/python/mlir/extras/types.py
M mlir/test/IR/attribute.mlir
M mlir/test/Target/LLVMIR/llvmir.mlir
M mlir/test/python/ir/builtin_types.py
M mlir/utils/lldb-scripts/mlirDataFormatters.py
M mlir/utils/tree-sitter-mlir/grammar.js
Log Message:
-----------
[MLIR] Add f8E4M3 IEEE 754 type (#97118)
Summary:
This PR adds `f8E4M3` type to mlir.
`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-97179](https://github.com/llvm/llvm-project/pull/97179) [APFloat]
Add support for f8E4M3 IEEE 754 type
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251173
Commit: df21b1946bcf82a89948c3fc9c8ef106e90e2566
https://github.com/llvm/llvm-project/commit/df21b1946bcf82a89948c3fc9c8ef106e90e2566
Author: Tobias Gysi <tobias.gysi at nextsilicon.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/test/Dialect/LLVMIR/invalid.mlir
Log Message:
-----------
[MLIR][LLVM] Always print variadic callee type (#99293)
Summary:
This commit updates the LLVM dialect CallOp and InvokeOp to always print
the variadic callee type (previously callee type) if present. An
additional verifier checks that only variadic calls have a non-null
variadic callee type, and the builders are adapted accordingly to set
the variadic callee type for variadic calls only. Finally, the CallOp
and InvokeOp verifiers are strengthened to check that the variadic
callee type matches the call argument and result types.
The motivation of this change is that CallOp and InvokeOp don't have
hidden state that is not pretty printed, but used during the export to
LLVM IR. Previously, it could happen that a call looked correct in MLIR,
but the return type changed after exporting to LLVM IR (since it has
been taken from the hidden callee type attribute). After landing this
change, this is not possible anymore since the variadic callee type is
always printed if present.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251037
Commit: 32e4807df36b105b00abfdd43ab974f6f72409be
https://github.com/llvm/llvm-project/commit/32e4807df36b105b00abfdd43ab974f6f72409be
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/MC/MCObjectWriter.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MCObjectWriter.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
MCAssembler: Move SubsectionsViaSymbols; to MCObjectWriter
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251471
Commit: 82fdd55985193e35257893860ebf501bf6c180f3
https://github.com/llvm/llvm-project/commit/82fdd55985193e35257893860ebf501bf6c180f3
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/lib/MC/MCAssembler.cpp
Log Message:
-----------
MCAssembler: Remove unused functions
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251421
Commit: ce356c4fd96a66d3848cc5b5073c4380e1c5bfd2
https://github.com/llvm/llvm-project/commit/ce356c4fd96a66d3848cc5b5073c4380e1c5bfd2
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/test/Analysis/Inputs/system-header-simulator-cxx.h
M clang/test/Analysis/builtin-functions.cpp
M clang/test/Analysis/diagnostics/explicit-suppression.cpp
A clang/test/Analysis/issue-94193.cpp
M clang/test/Analysis/use-after-move.cpp
Log Message:
-----------
[analyzer] Model builtin-like functions as builtin functions (#99886)
Summary:
Some template function instantiations don't have a body, even though
their templates did have a body.
Examples are: `std::move`, `std::forward`, `std::addressof` etc.
They had bodies before
https://github.com/llvm/llvm-project/commit/72315d02c432a0fe0acae9c96c69eac8d8e1a9f6
After that change, the sentiment was that these special functions should
be considered and treated as builtin functions.
Fixes #94193
CPP-5358
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251093
Commit: e3a2b26e17baf49804417c9f80bde13cc98170a2
https://github.com/llvm/llvm-project/commit/e3a2b26e17baf49804417c9f80bde13cc98170a2
Author: Balázs Kéri <balazs.keri at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang][ASTImporter] Fix import of anonymous enums if multiple are present (#99281)
After changes in PR #87144 and #93923 regressions appeared in some
cases. The problem was that if multiple anonymous enums are present in a
class and are imported as new the import of the second enum can fail
because it is detected as different from the first and causes ODR error.
Now in case of enums without name an existing similar enum is searched,
if not found the enum is imported. ODR error is not detected. This may
be incorrect if non-matching structures are imported, but this is the
less important case (import of matching classes is more important to
work).
Commit: 1c2abc4ff2b0377ae5934d9cc4e009464cd58aa4
https://github.com/llvm/llvm-project/commit/1c2abc4ff2b0377ae5934d9cc4e009464cd58aa4
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-values.cpp
Log Message:
-----------
Revert "[clang-tidy] fix misc-const-correctness to work with function-try-blocks" (#100069)
Summary: Reverts llvm/llvm-project#99925
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251283
Commit: c406a6c04de2b9e72ab54c80a4f2c0f3ff4ac328
https://github.com/llvm/llvm-project/commit/c406a6c04de2b9e72ab54c80a4f2c0f3ff4ac328
Author: Amy Huang <akhuang at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/asan/TestCases/Posix/ignore_free_hook.cpp
M compiler-rt/test/hwasan/TestCases/Posix/ignore_free_hook.cpp
Log Message:
-----------
Replace |& with 2>&1 in ignore_free_hooks test. (#100004)
Summary:
The test file ignore_free_hooks.cpp (added in
https://github.com/llvm/llvm-project/pull/96749/files) fails on mac
because `|&` doesn't work on mac. Replace with `2>&1`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250805
Commit: 1c9def73dda524bbaa4befecaa854616f4b8b0fb
https://github.com/llvm/llvm-project/commit/1c9def73dda524bbaa4befecaa854616f4b8b0fb
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/riscv-target-features.c
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.rst
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/TargetParser/Host.cpp
M llvm/test/CodeGen/RISCV/atomic-cmpxchg-branch-on-result.ll
M llvm/test/CodeGen/RISCV/atomic-cmpxchg.ll
M llvm/test/CodeGen/RISCV/atomic-rmw.ll
M llvm/test/CodeGen/RISCV/atomic-signext.ll
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/MC/RISCV/rv32zacas-invalid.s
M llvm/test/MC/RISCV/rv32zacas-valid.s
M llvm/test/MC/RISCV/rv64zacas-invalid.s
M llvm/test/MC/RISCV/rv64zacas-valid.s
M llvm/test/MC/RISCV/rvzabha-zacas-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Mark zacas as experimental again due to unresolved ABI issue (#99898)
Summary:
As discussed at the last sync-up call, mark Zacas as experimental until
this ABI issue is resolved
<https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/444>.
Don't return Zacas in getHostCPUFeatures (leaving a TODO there) as even if requesting detection of "native" features, the user likely doesn't want to automatically opt in to experimental codegen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251180
Commit: 243311571cd8365047e715dc5bd90f23afe69806
https://github.com/llvm/llvm-project/commit/243311571cd8365047e715dc5bd90f23afe69806
Author: Ami-zhang <zhanglimin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/loongarch-march.c
M clang/test/Driver/loongarch-mtune.c
M clang/test/Preprocessor/init-loongarch.c
M llvm/include/llvm/TargetParser/LoongArchTargetParser.def
M llvm/include/llvm/TargetParser/LoongArchTargetParser.h
M llvm/lib/Target/LoongArch/LoongArch.td
M llvm/lib/TargetParser/Host.cpp
M llvm/test/CodeGen/LoongArch/cpus.ll
Log Message:
-----------
[LoongArch] Support la664 (#100068)
Summary:
A new ProcessorModel called `la664` is defined in LoongArch.td to
support `-march/-mtune=la664`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251040
Commit: de283257f67fe7523f0e5546e9118c4deb016250
https://github.com/llvm/llvm-project/commit/de283257f67fe7523f0e5546e9118c4deb016250
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCELFObjectWriter.h
M llvm/lib/MC/ELFObjectWriter.cpp
M llvm/lib/MC/MCAsmBackend.cpp
Log Message:
-----------
ELFObjectWriter: Remove unneeded subclasses
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251038
Commit: dfdce9b68d8d390f0a717f114ee4ca03c483bb85
https://github.com/llvm/llvm-project/commit/dfdce9b68d8d390f0a717f114ee4ca03c483bb85
Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArch.td
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/LoongArch/defaults.ll
Log Message:
-----------
[LoongArch] Remove experimental `auto-vec` feature. (#100070)
Summary:
Currently, automatic vectorization will be enabled with `-mlsx/-mlasx`
enabled.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251073
Commit: 3262fd332968a08726c5c73f26e0b6bad98d4ddb
https://github.com/llvm/llvm-project/commit/3262fd332968a08726c5c73f26e0b6bad98d4ddb
Author: Weining Lu <luweining at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M llvm/docs/ReleaseNotes.rst
Log Message:
-----------
[LoongArch] Summary the release notes for LLVM 19
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251118
Commit: 1f26c74d7bf08e6b6b34499d706a7adfaa3b52b6
https://github.com/llvm/llvm-project/commit/1f26c74d7bf08e6b6b34499d706a7adfaa3b52b6
Author: Ami-zhang <zhanglimin at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Preprocessor/init-loongarch.c
Log Message:
-----------
[LoongArch] Fix test issue of init-loongarch.c
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251197
Commit: be46792d39d5a9740fc62a4d92103324730c4ef1
https://github.com/llvm/llvm-project/commit/be46792d39d5a9740fc62a4d92103324730c4ef1
Author: Alex Bradbury <asb at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
Log Message:
-----------
[clang][test][RISCV] Add missing test change from #99898
Commit: f86b5bcbfc68cf3c60477497b17fdad604f1e399
https://github.com/llvm/llvm-project/commit/f86b5bcbfc68cf3c60477497b17fdad604f1e399
Author: Thomas Schenker <thomas.schenker at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-values.cpp
Log Message:
-----------
[clang-tidy] fix misc-const-correctness to work with function-try-blocks (#99925)
Summary:
Make the clang-tidy check misc-const-correctness work with
function-try-blocks.
Fixes #99860.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251131
Commit: f2a841df0f010d242c50020108ade2e6d617af7d
https://github.com/llvm/llvm-project/commit/f2a841df0f010d242c50020108ade2e6d617af7d
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-values.cpp
Log Message:
-----------
[clang-tidy][NFC] Added -fexceptions to const-correctness-values.cp
Summary: Related to #99925.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251161
Commit: 08a6ad03ac63b80351c8361236e4b58252f82dc5
https://github.com/llvm/llvm-project/commit/08a6ad03ac63b80351c8361236e4b58252f82dc5
Author: Bill Wendling <5993918+bwendling at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGRecordLayout.h
M clang/test/CodeGen/attr-counted-by.c
Log Message:
-----------
[Clang] Ignore empty FieldDecls when asking for the field number (#100040)
A FieldDecl that's an empty struct may not show up in CGRecordLayout. Go
ahead and ignore such a field as it shouldn't make a difference to these
calculations.
Fixes: 1f6f97e2b64a ("[Clang] Loop over FieldDecls instead of all Decls (#99574)")
Co-authored-by: Eli Friedman <efriedma at quicinc.com>
Commit: 57b8e34aa830e6448848082489e180353d8450ca
https://github.com/llvm/llvm-project/commit/57b8e34aa830e6448848082489e180353d8450ca
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
A llvm/test/CodeGen/AMDGPU/required-export-priority.ll
A llvm/test/CodeGen/AMDGPU/required-export-priority.mir
Log Message:
-----------
[AMDGPU] Implement workaround for GFX11.5 export priority (#99273)
Summary:
On GFX11.5 shaders having completed exports need to execute/wait at a
lower priority than shaders still executing exports.
Add code to maintain normal priority of 2 for shaders that export and
drop to priority 0 after exports.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251077
Commit: 6b5a96d289b50f8a20e9740d9dfb4c35020f2270
https://github.com/llvm/llvm-project/commit/6b5a96d289b50f8a20e9740d9dfb4c35020f2270
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SMInstructions.td
Log Message:
-----------
[AMDGPU] Define constrained multi-dword scalar load instructions. (#96161)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251227
Commit: 543f28c3aa26496de92e36e289e5dd4b19d744c5
https://github.com/llvm/llvm-project/commit/543f28c3aa26496de92e36e289e5dd4b19d744c5
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/tools/llvm-cgdata/CMakeLists.txt
Log Message:
-----------
[llvm-cgdata] Remove `GENERATE_DRIVER` option (#100066)
Summary:
This tool shouldn't be used in the driver build until it is converted to
use `OptTable` for option parsing, otherwise the `cl::opt` options might
conflict with options in other tools resulting in link failures.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251222
Commit: 8e1ddd4e536bd8a37edf74eb173fbf46db8b383e
https://github.com/llvm/llvm-project/commit/8e1ddd4e536bd8a37edf74eb173fbf46db8b383e
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/legalize-threeway-cmp.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/scmp.ll
M llvm/test/CodeGen/AArch64/ucmp.ll
Log Message:
-----------
[GlobalIsel][AArch64] Legalize G_SCMP and G_UCMP (#99820)
Summary:
https://github.com/llvm/llvm-project/pull/91871
https://github.com/llvm/llvm-project/pull/98774
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251536
Commit: 112aae5b7c935c315a17558ff6f48de3a876ee70
https://github.com/llvm/llvm-project/commit/112aae5b7c935c315a17558ff6f48de3a876ee70
Author: Youngsuk Kim <joseph942010 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/AST/ASTContext.h
M clang/lib/AST/ASTConcept.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
Log Message:
-----------
[clang] Add method 'backupStr' to ASTContext (#99417)
Summary:
Method 'backupStr' extracts common code of dynamically allocating memory
with ASTContext to hold a copy of a string's contents.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251287
Commit: dfcb0d6040252b1bfede41b2c3515705f77b9db2
https://github.com/llvm/llvm-project/commit/dfcb0d6040252b1bfede41b2c3515705f77b9db2
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udivrem.ll
M llvm/test/CodeGen/AMDGPU/add.v2i16.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/build_vector.ll
M llvm/test/CodeGen/AMDGPU/cluster_stores.ll
M llvm/test/CodeGen/AMDGPU/combine-cond-add-sub.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
M llvm/test/CodeGen/AMDGPU/cttz.ll
M llvm/test/CodeGen/AMDGPU/cttz_zero_undef.ll
M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
M llvm/test/CodeGen/AMDGPU/fdiv.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i32_system.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fshl.ll
M llvm/test/CodeGen/AMDGPU/fshr.ll
M llvm/test/CodeGen/AMDGPU/global_atomics.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.ll
M llvm/test/CodeGen/AMDGPU/llvm.log2.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/lshr.v2i16.ll
M llvm/test/CodeGen/AMDGPU/madak.ll
M llvm/test/CodeGen/AMDGPU/memory_clause.ll
M llvm/test/CodeGen/AMDGPU/merge-s-load.mir
M llvm/test/CodeGen/AMDGPU/move-to-valu-ctlz-cttz.ll
M llvm/test/CodeGen/AMDGPU/mul_int24.ll
M llvm/test/CodeGen/AMDGPU/mul_uint24-amdgcn.ll
M llvm/test/CodeGen/AMDGPU/packed-op-sel.ll
M llvm/test/CodeGen/AMDGPU/ptr-buffer-alias-scheduling.ll
M llvm/test/CodeGen/AMDGPU/rotl.ll
M llvm/test/CodeGen/AMDGPU/rotr.ll
M llvm/test/CodeGen/AMDGPU/shl.v2i16.ll
M llvm/test/CodeGen/AMDGPU/sub.ll
M llvm/test/CodeGen/AMDGPU/sub.v2i16.ll
M llvm/test/CodeGen/AMDGPU/v_cndmask.ll
M llvm/test/CodeGen/AMDGPU/v_sat_pk_u8_i16.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
Log Message:
-----------
[AMDGPU][SILoadStoreOptimizer] Merge constrained sloads (#96162)
Summary:
Consider the constrained multi-dword loads while merging
individual loads to a single multi-dword load.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251148
Commit: 9c698e2738fdaabc5b9f904ab679ed6e949412c2
https://github.com/llvm/llvm-project/commit/9c698e2738fdaabc5b9f904ab679ed6e949412c2
Author: Petr Hosek <phosek at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/tools/llvm-cgdata/CMakeLists.txt
Log Message:
-----------
Revert "[llvm-cgdata] Remove `GENERATE_DRIVER` option" (#100078)
Summary: Reverts llvm/llvm-project#100066
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251060
Commit: 89ab5fa2102af6badbe4dc9e8c611643ba6b871a
https://github.com/llvm/llvm-project/commit/89ab5fa2102af6badbe4dc9e8c611643ba6b871a
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/SMInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-constant.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mov.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smrd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/vni8-across-blocks.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/widen-i8-i16-scalar-loads.ll
M llvm/test/CodeGen/AMDGPU/add.ll
M llvm/test/CodeGen/AMDGPU/add.v2i16.ll
M llvm/test/CodeGen/AMDGPU/amd.endpgm.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-load-offset-from-reg.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/and.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_raw_buffer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_struct_buffer.ll
M llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/clamp-modifier.ll
M llvm/test/CodeGen/AMDGPU/clamp.ll
M llvm/test/CodeGen/AMDGPU/combine-vload-extract.ll
M llvm/test/CodeGen/AMDGPU/copy_to_scc.ll
M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/dag-divergence-atomic.ll
M llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll
M llvm/test/CodeGen/AMDGPU/ds_write2.ll
M llvm/test/CodeGen/AMDGPU/fdiv.f16.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system.ll
M llvm/test/CodeGen/AMDGPU/fmax3.ll
M llvm/test/CodeGen/AMDGPU/fmed3.ll
M llvm/test/CodeGen/AMDGPU/fmin3.ll
M llvm/test/CodeGen/AMDGPU/fmul.f16.ll
M llvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/fpext.f16.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/fsub.f16.ll
M llvm/test/CodeGen/AMDGPU/global-i16-load-store.ll
M llvm/test/CodeGen/AMDGPU/global_atomics.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64_system.ll
M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
M llvm/test/CodeGen/AMDGPU/idiv-licm.ll
M llvm/test/CodeGen/AMDGPU/idot4s.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.bf16.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
M llvm/test/CodeGen/AMDGPU/llvm.cos.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.ll
M llvm/test/CodeGen/AMDGPU/llvm.fmuladd.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.ll
M llvm/test/CodeGen/AMDGPU/llvm.log2.ll
M llvm/test/CodeGen/AMDGPU/llvm.maxnum.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.minnum.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
M llvm/test/CodeGen/AMDGPU/llvm.rint.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.sin.f16.ll
M llvm/test/CodeGen/AMDGPU/lshl-add-u64.ll
M llvm/test/CodeGen/AMDGPU/lshr.v2i16.ll
M llvm/test/CodeGen/AMDGPU/mad.u16.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/mul_uint24-amdgcn.ll
M llvm/test/CodeGen/AMDGPU/optimize-compare.ll
M llvm/test/CodeGen/AMDGPU/packed-op-sel.ll
M llvm/test/CodeGen/AMDGPU/post-ra-soft-clause-dbg-info.ll
M llvm/test/CodeGen/AMDGPU/promote-vect3-load.ll
M llvm/test/CodeGen/AMDGPU/ptr-buffer-alias-scheduling.ll
M llvm/test/CodeGen/AMDGPU/saddo.ll
M llvm/test/CodeGen/AMDGPU/sdiv.ll
M llvm/test/CodeGen/AMDGPU/sdwa-peephole.ll
M llvm/test/CodeGen/AMDGPU/shl.v2i16.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/smrd.ll
M llvm/test/CodeGen/AMDGPU/srem.ll
M llvm/test/CodeGen/AMDGPU/sub.ll
M llvm/test/CodeGen/AMDGPU/sub.v2i16.ll
M llvm/test/CodeGen/AMDGPU/twoaddr-constrain.ll
M llvm/test/CodeGen/AMDGPU/uaddo.ll
M llvm/test/CodeGen/AMDGPU/usubo.ll
M llvm/test/CodeGen/AMDGPU/v_add_u64_pseudo_sdwa.ll
M llvm/test/CodeGen/AMDGPU/v_pack.ll
M llvm/test/CodeGen/AMDGPU/v_sub_u64_pseudo_sdwa.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll
M llvm/test/CodeGen/AMDGPU/vni8-across-blocks.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/zero_extend.ll
Log Message:
-----------
[AMDGPU] Codegen support for constrained multi-dword sloads (#96163)
Summary:
For targets that support xnack replay feature (gfx8+), the
multi-dword scalar loads shouldn't clobber any register that
holds the src address. The constrained version of the scalar
loads have the early clobber flag attached to the dst operand
to restrict RA from re-allocating any of the src regs for its
dst operand.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251360
Commit: 9bb4086fed46e7673508eebd00be8838e4f53686
https://github.com/llvm/llvm-project/commit/9bb4086fed46e7673508eebd00be8838e4f53686
Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/DeclCXX.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-0x.cpp
Log Message:
-----------
[Clang] Do not attempt to access the `DefinitionData` of an incomplete type (#99998)
Summary:
We were asserting here because we were trying to access the
`DefinitionData` of an incomplete type in the `Visit` lambda in
`CXXRecordDecl::hasSubobjectAtOffsetZeroOfEmptyBaseType`.
The code that creates `FieldDecl`s always marks them as invalid
if their type is incomplete, so checking whether the field decl
whose type we’re about to look at is invalid fixes this issue.
Fixes #99868.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251469
Commit: f613a5b10dcc26e5c09d81ebb8c25331ed3ed0ea
https://github.com/llvm/llvm-project/commit/f613a5b10dcc26e5c09d81ebb8c25331ed3ed0ea
Author: Johannes Reifferscheid <jreiffers at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/IR/AffineExpr.cpp
M mlir/unittests/IR/AffineExprTest.cpp
Log Message:
-----------
Fix sign of largest known divisor of div. (#100081)
Summary:
There's a missing abs, so it returns a negative value if the divisor is
negative. Later this is then cast to uint.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251090
Commit: b55acec467de6bf4cb2aa9f8097431ca274d1d6f
https://github.com/llvm/llvm-project/commit/b55acec467de6bf4cb2aa9f8097431ca274d1d6f
Author: Ricardo Jesus <rjj at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/test/CodeGen/PowerPC/common-chain.ll
M llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll
A llvm/test/Transforms/LICM/hoist-binop.ll
M llvm/test/Transforms/LICM/sink-foldable.ll
M llvm/test/Transforms/LICM/update-scev-after-hoist.ll
Log Message:
-----------
[LICM] Fold associative binary ops to promote code hoisting (#81608)
Perform the transformation
"(LV op C1) op C2" ==> "LV op (C1 op C2)"
where op is an associative binary op, LV is a loop variant, and C1 and
C2 are loop invariants to hoist.
Similar patterns could be folded (left in comment) but this one seems to
be the most impactful.
Commit: ba9614d945f95b80b0e122e50a74940085501df5
https://github.com/llvm/llvm-project/commit/ba9614d945f95b80b0e122e50a74940085501df5
Author: Tobias Hieta <tobias at hieta.se>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M cmake/Modules/LLVMVersion.cmake
M libcxx/include/__config
M llvm/utils/gn/secondary/llvm/version.gni
M llvm/utils/lit/lit/__init__.py
Log Message:
-----------
Set version to 20.0.0git
Summary: LLVM 19 release is starting.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251205
Commit: 8fa839a26df67aae1443997606afe25aabded033
https://github.com/llvm/llvm-project/commit/8fa839a26df67aae1443997606afe25aabded033
Author: Tobias Hieta <tobias at hieta.se>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang/docs/ReleaseNotes.rst
M libcxx/docs/ReleaseNotes.rst
M lld/docs/ReleaseNotes.rst
M llvm/docs/ReleaseNotes.rst
M openmp/docs/ReleaseNotes.rst
M pstl/docs/ReleaseNotes.rst
Log Message:
-----------
Clear release notes for upcoming LLVM 20 dev cycle
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251047
Commit: ebe1c092439afd715a68a2601050294b829a1e28
https://github.com/llvm/llvm-project/commit/ebe1c092439afd715a68a2601050294b829a1e28
Author: goussepi <pierre.gousseau at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/PS4CPU.h
M clang/test/Driver/ps4-ps5-runtime-flags.c
Log Message:
-----------
[PS5] Adopt new compiler-rt naming scheme for the profile library. (#99862)
Summary:
Changes the driver to look for libclang_rt.profile_nosubmission.a
instead of libclang_rt.profile-x86_64_nosubmission.a
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251053
Commit: 13100d323fb532d4b49856f1575a5c493d5b6ca2
https://github.com/llvm/llvm-project/commit/13100d323fb532d4b49856f1575a5c493d5b6ca2
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
M clang/test/CodeGen/builtins.c
Log Message:
-----------
Revert "[Clang][Interp] `__builtin_os_log_format_buffer_size` should be an unevaluated builtin (#99895)"
Summary:
This reverts commit 4572efea90f2ddf51c618790a119ad9b6fc2c7ed.
Reason: Introduced a memory leak that broke the sanitizer buildbots.
More information available in the original pull request
(https://github.com/llvm/llvm-project/pull/99895).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251078
Commit: 6b2b04cc974dc9517b0f685441d0b6fed86cb25e
https://github.com/llvm/llvm-project/commit/6b2b04cc974dc9517b0f685441d0b6fed86cb25e
Author: Clement Courbet <courbet at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.h
Log Message:
-----------
[clang-tidy][performance-unnecessary-value-param] Make `handleMoveFix` virtual (#99867)
Summary:
... so that downstream checks can override behaviour to do additional
processing.
Refactor the rest of the logic to `handleConstRefFix` (which is also
`virtual`).
This is otherwise and NFC.
This is similar to https://github.com/llvm/llvm-project/pull/73921 but
for `performance-unnecessary-value-param`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251087
Commit: 7d4fe8ccc86685dcef4a590c5e7bf01d2fcc604d
https://github.com/llvm/llvm-project/commit/7d4fe8ccc86685dcef4a590c5e7bf01d2fcc604d
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
Log Message:
-----------
Reapply "[Clang][Interp] `__builtin_os_log_format_buffer_size` should be an unevaluated builtin (#99895)"
This reverts commit 5f05d5ec8f9bb15c0ac29fce843a2c73165ac414.
Reapply the original commit without the test. The memory leak is caused
by a well known problem in the new constant interpreter.
Commit: 730cf360f5546b7135a43c9d1c6680a27e19d2f3
https://github.com/llvm/llvm-project/commit/730cf360f5546b7135a43c9d1c6680a27e19d2f3
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/test/CodeGen/PowerPC/common-chain.ll
M llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll
R llvm/test/Transforms/LICM/hoist-binop.ll
M llvm/test/Transforms/LICM/sink-foldable.ll
M llvm/test/Transforms/LICM/update-scev-after-hoist.ll
Log Message:
-----------
Revert " [LICM] Fold associative binary ops to promote code hoisting (#81608)"
Summary:
This reverts commit f2ccf80136a01ca69f766becafb329db6c54c0c8.
The flag propagation code is incorrect.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251147
Commit: de357ca46a9e42059266a66dbd3de18b18dcabab
https://github.com/llvm/llvm-project/commit/de357ca46a9e42059266a66dbd3de18b18dcabab
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
Log Message:
-----------
Precommit vscale-fixups.ll test (NFC)
Summary: Precommit test for #100080.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251062
Commit: 0629e90f474bae6d36945a78a9e469c9eb5cf686
https://github.com/llvm/llvm-project/commit/0629e90f474bae6d36945a78a9e469c9eb5cf686
Author: Ilya Biryukov <ibiryukov at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/AST/ExprCXX.h
M clang/lib/AST/ExprCXX.cpp
Log Message:
-----------
[AST] NFC: add an assertion for invariant of CXXFoldExpr
CXXFoldExpr relies on exactly one of the two operands to have unexpanded
parameter packs. If this invariant does not holds, results of
`getPattern()`, `isLeftFold()` and other related members are incorrect.
Asserting this on construction makes debugging the problems easier as
the failure is happening closer to the code that contains the error.
Also move the constructor to the `.cpp` file to avoid potential ODR
violations from having an `assert` in the header in combination with
precompiled libraries.
Commit: 51169b0a2e4540a1dec93d39b4712f0a295aa0bb
https://github.com/llvm/llvm-project/commit/51169b0a2e4540a1dec93d39b4712f0a295aa0bb
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Remove dead HeaderVPBB argument from addUsersInExitBlock (NFC).
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251045
Commit: 6667bc90167a575cc514b06d2125b0aedbaf25af
https://github.com/llvm/llvm-project/commit/6667bc90167a575cc514b06d2125b0aedbaf25af
Author: Finlay <finlay.marno at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Dialect/LLVMIR/roundtrip.mlir
M mlir/test/Target/LLVMIR/Import/instructions.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[mlir] Added new attributes to the llvm.call op in llvmir target (#99663)
Summary:
The new attributes are:
* convergent
* no_unwind
* will_return
* memory effects
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251463
Commit: f21da38dfc9638f5f38bc53e1602a26548d517f8
https://github.com/llvm/llvm-project/commit/f21da38dfc9638f5f38bc53e1602a26548d517f8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AArch64/neon-abd.ll
M llvm/test/CodeGen/ARM/neon_vabd.ll
M llvm/test/CodeGen/X86/abdu.ll
Log Message:
-----------
[DAG] ComputeNumSignBits - subo_carry(x,x,c) -> bitwidth 'allsignbits' (#99935)
Summary:
Handle cases where the subo_carry is subtracting the same operand (=zero) - so only the subtraction of the 0/1 carry bit is affecting the result, giving a 0/-1 allsignbits value.
Noticed while improving ABDS/ABDU expansion.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251058
Commit: 2c75f2bea0669a6661b049b36370cb06d0e76edd
https://github.com/llvm/llvm-project/commit/2c75f2bea0669a6661b049b36370cb06d0e76edd
Author: Tobias Hieta <tobias at hieta.se>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M .github/workflows/version-check.yml
Log Message:
-----------
[Infra] Fix version-check workflow (#100090)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251225
Commit: b0bcc8ec08b84ea1238ff5c251c4332f69f2b854
https://github.com/llvm/llvm-project/commit/b0bcc8ec08b84ea1238ff5c251c4332f69f2b854
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/InterpBuiltin.cpp
M clang/test/AST/Interp/atomic.c
Log Message:
-----------
[clang][Interp] Fix atomic builtins with integral pointers
Summary: Check the integral pointer value.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251311
Commit: ce880c709b00bf86bd2994e3374cbdd81bb8f7c0
https://github.com/llvm/llvm-project/commit/ce880c709b00bf86bd2994e3374cbdd81bb8f7c0
Author: Piotr Fusik <p.fusik at samsung.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/ISDOpcodes.h
Log Message:
-----------
[CodeGen][NFC] Fix documentation comments (#100092)
Commit: e8eeb84b463c09fd33230bd5135d4a7bfedbaaff
https://github.com/llvm/llvm-project/commit/e8eeb84b463c09fd33230bd5135d4a7bfedbaaff
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
M clang/test/Analysis/stream.c
Log Message:
-----------
[analyzer] Assume the result of 'fopen' can't alias with 'std{in,out,err}' (#100085)
'fopen' should return a new FILE handle, thus we should assume it can't
alias with commonly used FILE handles, such as with 'stdin', 'stdout' or
'stderr'.
This problem appears in code that handles either some input/output file
with stdin or stdout, as the business logic is basically the same no
matter the stream being used.
However, one would should only close the stream if it was opened via
'fopen'. Consequently, such code usually has a condition like `if (f &&
f != stdout)` to guard the `fclose()` call.
This patch brings this assumption, thus eliminates FPs for not taking
the guarded branch.
CPP-5306
Commit: 9b0be1697664b598f97d9a727c3734ec5d05477e
https://github.com/llvm/llvm-project/commit/9b0be1697664b598f97d9a727c3734ec5d05477e
Author: Egor Zhdan <e_zhdan at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/test/APINotes/Inputs/Headers/Methods.apinotes
M clang/test/APINotes/Inputs/Headers/Methods.h
M clang/test/APINotes/Inputs/Headers/Namespaces.apinotes
M clang/test/APINotes/Inputs/Headers/Namespaces.h
M clang/test/APINotes/methods.cpp
M clang/test/APINotes/namespaces.cpp
Log Message:
-----------
[APINotes] Support nested tags
Summary:
This allows annotating C/C++ structs declared within other structs using
API Notes.
rdar://132083354
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251025
Commit: 3babe1785332ea98cdd18cb7212e096e74bba928
https://github.com/llvm/llvm-project/commit/3babe1785332ea98cdd18cb7212e096e74bba928
Author: Braden Helmer <bradenhelmeraus at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Parse/ParseStmt.cpp
M clang/test/CXX/drs/cwg6xx.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-20.cpp
M clang/test/Parser/cxx-template-decl.cpp
M clang/test/SemaCXX/cxx1y-variable-templates_in_class.cpp
A clang/test/SemaCXX/invalid-template-declaration.cpp
M clang/test/SemaTemplate/class-template-decl.cpp
M clang/test/SemaTemplate/nested-template.cpp
Log Message:
-----------
Template Diagnostic Improvements (#99933)
It turns out `SemaTemplate` handles this type of diagnostic already,
however when template gets encountered, it never gets parsed as a
possible statement or declaration, only as an expression.
Fixes #17959.
Commit: 94a8a19f67a5b8b2574104060a2f2ffe7fc1fae3
https://github.com/llvm/llvm-project/commit/94a8a19f67a5b8b2574104060a2f2ffe7fc1fae3
Author: Gulfem Savrun Yeniceri <gulfem at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R llvm/include/llvm/CodeGenData/CodeGenData.h
R llvm/include/llvm/CodeGenData/CodeGenData.inc
R llvm/include/llvm/CodeGenData/CodeGenDataReader.h
R llvm/include/llvm/CodeGenData/CodeGenDataWriter.h
M llvm/lib/CodeGenData/CMakeLists.txt
R llvm/lib/CodeGenData/CodeGenData.cpp
R llvm/lib/CodeGenData/CodeGenDataReader.cpp
R llvm/lib/CodeGenData/CodeGenDataWriter.cpp
M llvm/test/CMakeLists.txt
M llvm/test/lit.cfg.py
R llvm/test/tools/llvm-cgdata/dump.test
R llvm/test/tools/llvm-cgdata/empty.test
R llvm/test/tools/llvm-cgdata/error.test
R llvm/test/tools/llvm-cgdata/merge-archive.test
R llvm/test/tools/llvm-cgdata/merge-concat.test
R llvm/test/tools/llvm-cgdata/merge-double.test
R llvm/test/tools/llvm-cgdata/merge-single.test
R llvm/test/tools/llvm-cgdata/show.test
R llvm/tools/llvm-cgdata/CMakeLists.txt
R llvm/tools/llvm-cgdata/llvm-cgdata.cpp
Log Message:
-----------
Revert "[CGData] llvm-cgdata (#89884)"
This reverts commit d3fb41dddc11b0ebc338a3b9e6a5ab7288ff7d1d
and forward fix patches because of the issue explained in:
https://github.com/llvm/llvm-project/pull/89884#issuecomment-2244348117.
Revert "Fix tests for https://github.com/llvm/llvm-project/pull/89884
(#100061)"
This reverts commit 67937a3f969aaf97a745a45281a0d22273bff713.
Revert "Fix build break for https://github.com/llvm/llvm-project/pull/89884 (#100050)"
This reverts commit c33878c5787c128234d533ad19d672dc3eea19a8.
Revert "[CGData] Fix -Wpessimizing-move in CodeGenDataReader.cpp (NFC)"
This reverts commit 1f8b2b146141f3563085a1acb77deb50857a636d.
Commit: bb29c746188c6b73e90f31925e3a3f8f315066ab
https://github.com/llvm/llvm-project/commit/bb29c746188c6b73e90f31925e3a3f8f315066ab
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFixBrTableDefaults.cpp
M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
M llvm/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll
Log Message:
-----------
[LLVM] Fix typo "depedent"
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251224
Commit: 61eff67ef2e603b529da25f25894ecff10104ebb
https://github.com/llvm/llvm-project/commit/61eff67ef2e603b529da25f25894ecff10104ebb
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Semantics/OpenMP/copyprivate04.f90
M flang/test/Semantics/OpenMP/do05-positivecase.f90
M flang/test/Semantics/OpenMP/do20.f90
M flang/test/Semantics/OpenMP/implicit-dsa.f90
M flang/test/Semantics/OpenMP/reduction08.f90
M flang/test/Semantics/OpenMP/reduction09.f90
M flang/test/Semantics/OpenMP/symbol01.f90
M flang/test/Semantics/OpenMP/symbol02.f90
M flang/test/Semantics/OpenMP/symbol03.f90
M flang/test/Semantics/OpenMP/symbol05.f90
M flang/test/Semantics/OpenMP/symbol07.f90
M flang/test/Semantics/OpenMP/symbol08.f90
M flang/test/Semantics/OpenMP/symbol09.f90
Log Message:
-----------
[flang][OpenMP] Fix copyprivate semantic checks (#95799)
There are some cases in which variables used in OpenMP constructs
are predetermined as private. The semantic checks for copyprivate
were not handling those cases.
Besides that, shared symbols were not being properly represented
in some cases. When there was no previously declared private
(implicit) symbol, no new association symbols, representing
shared ones, were being created.
These symbols must always be inserted in constructs that may
privatize the original symbol: parallel, teams and task
generating constructs.
Fixes #87214 and #86907
Commit: 79dc76b81fe976c51f5fb17a4d90e22518ae3df9
https://github.com/llvm/llvm-project/commit/79dc76b81fe976c51f5fb17a4d90e22518ae3df9
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/fma.ll
Log Message:
-----------
Fold `fma x, -1.0, y` into `fsub x, y` (#100106)
Summary:
Alive2 proof (Please run alive-tv locally with larger `smt-to`):
https://alive2.llvm.org/ce/z/YvUVg-
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251284
Commit: 836b06b45177e12da032de7633c60ea1f54d73d5
https://github.com/llvm/llvm-project/commit/836b06b45177e12da032de7633c60ea1f54d73d5
Author: Finlay <finlay.marno at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/test/Conversion/FuncToLLVM/convert-funcs.mlir
M mlir/test/Dialect/LLVMIR/inlining.mlir
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
M mlir/test/Target/LLVMIR/Import/instructions.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[mlir] Rename memory attribute to memory_effects in llvmir dialect (#100108)
Summary: This commit renames the memory attribute on operations to "memory_effects" to be in line with the naming LLVM IR is using.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251107
Commit: 9d401926af91ed368226680ccaed20965f20f448
https://github.com/llvm/llvm-project/commit/9d401926af91ed368226680ccaed20965f20f448
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/CodeGen/CGStmtOpenMP.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
M clang/test/OpenMP/generic_loop_ast_print.cpp
M clang/test/OpenMP/generic_loop_codegen.cpp
M clang/test/PCH/pragma-loop.cpp
Log Message:
-----------
[clang][OpenMP] Move "loop" directive mapping from sema to codegen (#99905)
Given "loop" construct, clang will try to treat it as "for",
"distribute" or "simd", depending on either the implied binding, or the
bind clause if present. This patch moves the code that performs this
construct remapping from sema to codegen.
For a "loop" construct without a bind clause, this patch will create an
implicit bind clause based on implied binding to simplify further
analysis.
During codegen the function `EmitOMPGenericLoopDirective` (i.e. "loop")
will invoke the "emit" functions for "for", "distribute" or "simd",
depending on the bind clause.
---------
Co-authored-by: Alexey Bataev <a.bataev at gmx.com>
Commit: d36fe34d9281824e8259248538dabddd7fb3faa3
https://github.com/llvm/llvm-project/commit/d36fe34d9281824e8259248538dabddd7fb3faa3
Author: DianQK <dianqk at dianqk.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/argmemonly.ll
Log Message:
-----------
[FunctionAttrs] Determine underlying object by `getUnderlyingObjectAggressive` (#100102)
Summary:
Thanks to #99509, we can fix
https://github.com/rust-lang/rust/issues/119573 too.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251024
Commit: 2e1f23b47735407d42394a7cce0cecbbfca88993
https://github.com/llvm/llvm-project/commit/2e1f23b47735407d42394a7cce0cecbbfca88993
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/argmemonly.ll
Log Message:
-----------
Revert "[FunctionAttrs] Determine underlying object by `getUnderlyingObjectAggressive` (#100102)"
Summary:
This reverts commit a213edd32abff8d154dad96824689b98ec7b5a35.
Assertion failures on buildbots.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251266
Commit: 33547903b5995d954a0d1c561e60a7bdc451f810
https://github.com/llvm/llvm-project/commit/33547903b5995d954a0d1c561e60a7bdc451f810
Author: Mircea Trofin <mtrofin at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/ProfileData/PGOCtxProfReader.h
M llvm/include/llvm/ProfileData/PGOCtxProfWriter.h
M llvm/lib/ProfileData/PGOCtxProfReader.cpp
M llvm/lib/ProfileData/PGOCtxProfWriter.cpp
M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
Log Message:
-----------
[ctx_prof] Make the profile output analyzable by llvm-bcanalyzer (#99563)
Summary:
This requires output-ing a "Magic" 4-byte header. We also emit a block info block, to describe our blocks and records. The output of `llvm-bcanalyzer` would look like:
```
<BLOCKINFO_BLOCK/>
<Metadata NumWords=17 BlockCodeSize=2>
<Version op0=1/>
<Context NumWords=13 BlockCodeSize=2>
<GUID op0=2/>
<Counters op0=1 op1=2 op2=3/>
```
Instead of having `Unknown` for block and record IDs.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251052
Commit: 8ba7da6b70c3723e813f247c6f866ed8a491f771
https://github.com/llvm/llvm-project/commit/8ba7da6b70c3723e813f247c6f866ed8a491f771
Author: Ties Stuij <ties.stuij at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/format
Log Message:
-----------
[libcxx] don't `#include <cwchar>` if wide chars aren't enabled (#99911)
Summary:
Pull request #96032 unconditionall adds the `cwchar` include in the
`format` umbrella header. However support for wchar_t can be disabled in
the build system (LIBCXX_ENABLE_WIDE_CHARACTERS).
This patch guards against inclusion of `cwchar` in `format` by checking
the `_LIBCPP_HAS_NO_WIDE_CHARACTERS` define.
For clarity I've also merged the include header section that `cwchar`
was in with the one above as they were both guarded by the same `#if`
logic.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251114
Commit: f9fd08121879098de09f9715ae18076fad00fcdf
https://github.com/llvm/llvm-project/commit/f9fd08121879098de09f9715ae18076fad00fcdf
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/X86/nontemporal.ll
Log Message:
-----------
[X86] Add MMX nontemporal store DAG test
Summary: As noticed on #98505 - we had fast-isel test but not SDAG
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251072
Commit: 64d82fd1f0ae3f239ec46f1822640587cdf8f9d5
https://github.com/llvm/llvm-project/commit/64d82fd1f0ae3f239ec46f1822640587cdf8f9d5
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86InstrMMX.td
M llvm/test/CodeGen/X86/nontemporal.ll
Log Message:
-----------
[X86] Add MMX nontemporal store pattern
Summary: As noticed on #98505 - try to reduce codegen diffs until we're ready to drop MMX entirely
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251430
Commit: 9881959e12017c5d1cb9a845d8b3be927ae3509d
https://github.com/llvm/llvm-project/commit/9881959e12017c5d1cb9a845d8b3be927ae3509d
Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoC.td
M llvm/test/MC/RISCV/insn_c.s
Log Message:
-----------
[RISCV] Fix InsnCI register type (#100113)
Summary:
According to the spec the CI type instructions can take any of the 32
RVI registers.
Fixes #100112
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251158
Commit: b5d03321efa95d196dc1107c59a0fc8546975137
https://github.com/llvm/llvm-project/commit/b5d03321efa95d196dc1107c59a0fc8546975137
Author: azhan92 <alisonxzhang at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/PPC.cpp
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Driver/ToolChains/Arch/PPC.cpp
M clang/test/Misc/target-invalid-cpu-note.c
M clang/test/Preprocessor/init-ppc64.c
M llvm/lib/Target/PowerPC/PPC.td
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/PowerPC/PPCSubtarget.h
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
M llvm/lib/TargetParser/Host.cpp
M llvm/test/CodeGen/PowerPC/check-cpu.ll
M llvm/test/CodeGen/PowerPC/mma-acc-spill.ll
R llvm/test/CodeGen/PowerPC/p10-constants.ll
A llvm/test/CodeGen/PowerPC/p10-p11-constants.ll
M llvm/unittests/TargetParser/Host.cpp
Log Message:
-----------
[PowerPC] Add support for -mcpu=pwr11 / -mtune=pwr11 (#99511)
Summary:
This PR adds support for -mcpu=pwr11/power11 and -mtune=pwr11/power11 in
clang and llvm.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251149
Commit: 1ee1502c9a65b646bf210673a40c1e04ef07507b
https://github.com/llvm/llvm-project/commit/1ee1502c9a65b646bf210673a40c1e04ef07507b
Author: azhan92 <alisonxzhang at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGen/aix-builtin-cpu-is.c
M clang/test/CodeGen/builtin-cpu-supports.c
M llvm/include/llvm/TargetParser/PPCTargetParser.def
Log Message:
-----------
[PowerPC] Add builtin_cpu_is P11 support (#99550)
This PR adds support for __builtin_cpu_is ("power11")
Commit: 00400841b843f0f5d6c6370e1de56b62eda86c9e
https://github.com/llvm/llvm-project/commit/00400841b843f0f5d6c6370e1de56b62eda86c9e
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/unittests/ProfileData/CMakeLists.txt
Log Message:
-----------
Fix link error after cc7308a156 with shared libraries
/usr/bin/ld: CMakeFiles/ProfileDataTests.dir/PGOCtxProfReaderWriterTest.cpp.o: undefined reference to symbol '_ZN4llvm15BitcodeAnalyzer7analyzeESt8optionalINS_13BCDumpOptionsEES1_INS_9StringRefEE'
/usr/bin/ld: /work/kparzysz/git/llvm.org/b/x86/lib/libLLVMBitReader.so.20.0git: error adding symbols: DSO missing from command line
Commit: d9b34b07f2b5d896d62d60800174f1dc71f67f11
https://github.com/llvm/llvm-project/commit/d9b34b07f2b5d896d62d60800174f1dc71f67f11
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/FunctionPointer.h
M clang/lib/AST/Interp/Interp.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/Pointer.cpp
M clang/lib/AST/Interp/Pointer.h
Log Message:
-----------
[clang][Interp] Merge FunctionPointer into Pointer
Summary:
Back when I introduced the FunctionPointer class, I assumed that we
can always know that a Pointer is not a FunctionPointer. With the
DecayPtr op, that changed somewhat, but the information whether a
Pointer was created through a FunctionPointer was lost.
However, we need this information, especially when we're in the
codegen stage.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251268
Commit: 0dfff026a65ef7c6f4b85547f866c628a02bb2ee
https://github.com/llvm/llvm-project/commit/0dfff026a65ef7c6f4b85547f866c628a02bb2ee
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/ConstructCompositionT.h
Log Message:
-----------
[Frontend][OpenMP] Add deduction guide for `ConstructCompositionT`
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251099
Commit: fc2152bf9a89c9dda99565622710c53c12cd0ba9
https://github.com/llvm/llvm-project/commit/fc2152bf9a89c9dda99565622710c53c12cd0ba9
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vselect-avx.ll
Log Message:
-----------
X86] combineConcatVectorOps - IsConcatFree - peek through bitcasts to find inplace subvectors.
The EXTRACT_SUBVECTOR nodes don't have to be the same type, they just need to be at the correct bit offsets when concatenated back together.
This reapplies d43ec97de081755990264049eba09cb7c83cb321 (after being reverted 68cb903594cd03dd708ef70c85c10807a6deefb5) now that 65e86a8f3fb44dc09dc2e08526d69e3a57f63995 has landed to address a downstream issue.
Commit: 7de6b2c8a41eb7c5d227f2008fc9140fad73c5c2
https://github.com/llvm/llvm-project/commit/7de6b2c8a41eb7c5d227f2008fc9140fad73c5c2
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/CodeGenData/BUILD.gn
M llvm/utils/gn/secondary/llvm/test/BUILD.gn
R llvm/utils/gn/secondary/llvm/tools/llvm-cgdata/BUILD.gn
Log Message:
-----------
Revert "[gn build] Port d3fb41dddc11 (llvm-cgdata)"
This reverts commit adea9f9362085310d95a193f881978f51a79a3ba.
d3fb41dddc11 was reverted in 73d78973fe07.
Commit: b3b2429bfd5c9cf37741ff6d4d10044a270f9f60
https://github.com/llvm/llvm-project/commit/b3b2429bfd5c9cf37741ff6d4d10044a270f9f60
Author: Max Beck-Jones <max.beck-jones at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/sve-i1-add-reduce.ll
Log Message:
-----------
[AArch64] Lower scalable i1 vector add reduction to cntp (#100118)
Summary:
Doing an add reduction on a vector of i1 elements is the same as
counting the number of set elements so such a reduction can be lowered
to a cntp instruction. This saves a number of instructions over
performing a UADDV. This patch only handles straightforward cases (i.e.
when vectors are not split).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251189
Commit: e27701be92d4182b2b965048e31546a2a9783446
https://github.com/llvm/llvm-project/commit/e27701be92d4182b2b965048e31546a2a9783446
Author: Alex Crichton <alex at alexcrichton.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/WebAssembly.cpp
Log Message:
-----------
[WebAssembly] Disable running `wasm-opt` on components (#98373)
Summary:
This commit adds a check that disables `wasm-opt` for the
`wasm32-wasip2` target because `wasm-opt` doesn't support components at
this time. This also fixes a minor issue from #95208 where if `wasm-opt`
was disabled then the linker wouldn't run at all.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251310
Commit: 1927775ba0b09fdc3ab205ec57b6042381a4eb6d
https://github.com/llvm/llvm-project/commit/1927775ba0b09fdc3ab205ec57b6042381a4eb6d
Author: Tobias Hieta <tobias at hieta.se>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/release/bump-version.py
Log Message:
-----------
[Utils] Updates to bump-version.py (#100089)
Summary:
* Add support for --git flag to bump version for a git suffix
* Update location of the new file where the version is stored
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251066
Commit: 3cd085b0533e68f550ba2fd78daaee6b6b9738cd
https://github.com/llvm/llvm-project/commit/3cd085b0533e68f550ba2fd78daaee6b6b9738cd
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
A llvm/test/MC/AMDGPU/reloc-operands-gfx10.s
Log Message:
-----------
AMDGPU: Fix assembler asserting on expressions in vop3 instructions (#100103)
Summary:
Fixes #100075
---------
Co-authored-by: Jay Foad <jay.foad at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251321
Commit: 052ffa31ed7a2847940a862e51c41abcc871a61e
https://github.com/llvm/llvm-project/commit/052ffa31ed7a2847940a862e51c41abcc871a61e
Author: Leonard Grey <lgrey at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/MachO/CMakeLists.txt
M lld/MachO/ConcatOutputSection.cpp
M lld/MachO/InputSection.cpp
M lld/MachO/OutputSegment.cpp
M lld/MachO/OutputSegment.h
A lld/MachO/Sections.cpp
A lld/MachO/Sections.h
M lld/test/MachO/arm64-thunks.s
M lld/test/MachO/section-order.s
M llvm/utils/gn/secondary/lld/MachO/BUILD.gn
Log Message:
-----------
[lld-macho] Fix thunks for non-__text TEXT sections (#99052)
Summary:
This supersedes https://github.com/llvm/llvm-project/pull/87818 and
fixes https://github.com/llvm/llvm-project/issues/52767
When calculating arm64 thunks, we make a few assumptions that may not
hold when considering code sections outside of `__text`:
1. That a section needs thunks only if its size is larger than the
branch range.
2. That any calls into `__stubs` are necessarily forward jumps (that is,
the section with the jump is ordered before `__stubs`)
Sections like this exist in the wild, most prominently the
`__lcxx_overrides` section introduced in
https://github.com/llvm/llvm-project/pull/69498
This change:
- Ensures that if one section in `__TEXT` gets thunks, all of them do.
- Makes all code sections in `__TEXT` contiguous (and guaranteed to be
placed before `__stubs`)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251191
Commit: 34c61e185a126f017da2ba6e1eecb51b603b9efc
https://github.com/llvm/llvm-project/commit/34c61e185a126f017da2ba6e1eecb51b603b9efc
Author: PaulXiCao <paulxicao7 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__math/hypot.h
M libcxx/include/cmath
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/std/numerics/c.math/cmath.pass.cpp
M libcxx/test/support/fp_compare.h
Log Message:
-----------
[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)
Summary:
The 3-dimentionsional `std::hypot(x,y,z)` was sub-optimally implemented.
This lead to possible over-/underflows in (intermediate) results which
can be circumvented by this proposed change.
The idea is to to scale the arguments (see linked issue for full
discussion).
Tests have been added for problematic over- and underflows.
Closes #92782
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251315
Commit: ad858dc3c42bec6381b547b5794159e91073838e
https://github.com/llvm/llvm-project/commit/ad858dc3c42bec6381b547b5794159e91073838e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/linker-wrapper-libs.c
M clang/test/Driver/linker-wrapper.c
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Log Message:
-----------
[LinkerWrapper] Pass all files to the device linker (#97573)
Summary:
The linker wrapper's job is to extract embedded device code from fat
binaries and create linked images that can then be embedded and
executed. In order to support LTO, we originally reinvented all of the
LTO handling that `ld.lld` normally does. Primarily, this was because
`nvlink` didn't support this at all, and we have special hacks required
for offloading languages interacting with archive libraries.
Now since I wrote https://github.com/llvm/llvm-project/pull/96561 we
should be able to pass all the inputs to the device linker
transparently. This has the advantage of allowing the `clang` Driver to
do its own handling. Primarily, this will be used to implicitly pass
libraries to the device link job to make it more consistent with other
toolchains.
The JIT support is a notable departure, however there is an option
called `--lto-emit-llvm` that performs the exact function where we want
the final link job to output LLVM-IR that we can then embed instead.
This patch does not fully delete the LTO handling, primarily because I
think the SPIR-V people might want it. To see only the relevant patches,
ignore the first commit of the nvlink-wrapper.
Depends on https://github.com/llvm/llvm-project/pull/96561.
Commit: 09587eb0f3535c9fa1c5b1a44e5a774036bd9988
https://github.com/llvm/llvm-project/commit/09587eb0f3535c9fa1c5b1a44e5a774036bd9988
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/arm64-subvector-extend.ll
M llvm/test/CodeGen/AArch64/arm64-vabs.ll
M llvm/test/CodeGen/AArch64/cmp-select-sign.ll
M llvm/test/CodeGen/AArch64/fptoi.ll
M llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
M llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
M llvm/test/CodeGen/AArch64/nontemporal-load.ll
M llvm/test/CodeGen/AArch64/sadd_sat_vec.ll
M llvm/test/CodeGen/AArch64/ssub_sat_vec.ll
M llvm/test/CodeGen/AArch64/uadd_sat_vec.ll
M llvm/test/CodeGen/AArch64/usub_sat_vec.ll
M llvm/test/CodeGen/Thumb2/mve-fptosi-sat-vector.ll
M llvm/test/CodeGen/Thumb2/mve-fptoui-sat-vector.ll
M llvm/test/CodeGen/Thumb2/mve-minmaxi.ll
M llvm/test/CodeGen/Thumb2/mve-vst3.ll
M llvm/test/CodeGen/Thumb2/mve-vst4.ll
Log Message:
-----------
[DAG] Add users of operand of simplified extract_vector_elt to worklist (#100074)
Summary:
This helps to ensure we revisit the last extract_element uses of a node
so that it can be optimized away in cases such as extract(insert(scalartovec(x), 1), 0).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251059
Commit: 5fe29075089a7f437eaa99098fde0fcf49084a46
https://github.com/llvm/llvm-project/commit/5fe29075089a7f437eaa99098fde0fcf49084a46
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A lld/MachO/BPSectionOrderer.cpp
A lld/MachO/BPSectionOrderer.h
M lld/MachO/CMakeLists.txt
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
M lld/MachO/SectionPriorities.cpp
A lld/test/MachO/bp-section-orderer-errs.s
A lld/test/MachO/bp-section-orderer-stress.s
A lld/test/MachO/bp-section-orderer.s
Log Message:
-----------
[lld][InstrProf] Profile guided function order (#96268)
Summary:
Add the lld flags `--irpgo-profile-sort=<profile>` and
`--compression-sort={function,data,both}` to order functions to improve
startup time, and functions or data to improve compressed size,
respectively.
We use Balanced Partitioning to determine the best section order using
traces from IRPGO profiles (see
https://discourse.llvm.org/t/rfc-temporal-profiling-extension-for-irpgo/68068
for details) to improve startup time and using hashes of section
contents to improve compressed size.
In our recent LLVM talk (https://www.youtube.com/watch?v=yd4pbSTjwuA),
we showed that this can reduce page faults during startup by 40% on a
large iOS app and we can reduce compressed size by 0.8-3%.
More details can be found in https://dl.acm.org/doi/10.1145/3660635
---------
Co-authored-by: Vincent Lee <thevinster at users.noreply.github.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251039
Commit: df602963134ef5e472d874d001ba423b28ca2009
https://github.com/llvm/llvm-project/commit/df602963134ef5e472d874d001ba423b28ca2009
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lld/MachO/BUILD.gn
Log Message:
-----------
[gn build] Port e3b30bc55377
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251344
Commit: e5409a93bd58e1012ab5e618e2b90dc38dcfbc22
https://github.com/llvm/llvm-project/commit/e5409a93bd58e1012ab5e618e2b90dc38dcfbc22
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGen/builtin-cpu-supports.c
M clang/test/Preprocessor/has_builtin_cpuid.c
M clang/test/Sema/builtin-cpu-supports.c
M llvm/include/llvm/TargetParser/RISCVISAInfo.h
M llvm/lib/TargetParser/RISCVISAInfo.cpp
Log Message:
-----------
[RISCV] Support __builtin_cpu_init and __builtin_cpu_supports (#99700)
This implements the __builtin_cpu_init and __builtin_cpu_supports
builtin routines based on the compiler runtime changes in
https://github.com/llvm/llvm-project/pull/85790.
This is inspired by https://github.com/llvm/llvm-project/pull/85786.
Major changes are a) a restriction in scope to only the builtins (which
have a much narrower user interface), and the avoidance of false
generality. This change deliberately only handles group 0 extensions
(which happen to be all defined ones today), and avoids the tblgen
changes from that review.
I don't have an environment in which I can actually test this, but @BeMg
has been kind enough to report that this appears to work as expected.
Before this can make it into a release, we need a change such as
https://github.com/llvm/llvm-project/pull/99958. The gcc docs claim that
cpu_support can be called by "normal" code without calling the cpu_init
routine because the init routine will have been called by a high
priority constructor. Our current compiler-rt mechanism does not do
this.
Commit: fb92950cc9a59fc6c0d179d801eaea654889d6cf
https://github.com/llvm/llvm-project/commit/fb92950cc9a59fc6c0d179d801eaea654889d6cf
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Log Message:
-----------
[RISCV] Reverse iteration/deletion structure in vsetvli coalescing [NFC] (#98936)
The code previously deferred deleting the vsetvli to avoid invalidating
iterators, but eagerly deleted any ADDIs feeding the AVL register
operand. This was safe because the iterator was known to point to a
non-ADDI instruction (the vsetvli which was the previous user.) This
change switches to using an early_inc_range so that we can eagerly
delete the vsetvlis, but have to track ADDIs for later deletion.
This is purely stylistic, but IMO makes the code easier to follow. It
will also simplify a future change to support recursive deletion of
trivially dead instructions (i.e. LUI/ADDI pairs.)
Commit: cdac073f1991088a1859974e6d65c6f703332676
https://github.com/llvm/llvm-project/commit/cdac073f1991088a1859974e6d65c6f703332676
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-threeway-cmp.mir
Log Message:
-----------
[GlobalIsel] Fix tests for G_SCMP and G_UCMP (#100133)
Summary:
The return type of both is signed. Thus, we have to use sext.
Follow up to https://github.com/llvm/llvm-project/pull/99820
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251305
Commit: 068a2904424075f0776ba7997d6f3f62517778aa
https://github.com/llvm/llvm-project/commit/068a2904424075f0776ba7997d6f3f62517778aa
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
A clang/include/clang/CodeGen/ObjectFilePCHContainerWriter.h
A clang/include/clang/Serialization/ObjectFilePCHContainerReader.h
M clang/lib/CodeGen/CMakeLists.txt
R clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
A clang/lib/CodeGen/ObjectFilePCHContainerWriter.cpp
M clang/lib/Interpreter/Interpreter.cpp
M clang/lib/Interpreter/InterpreterUtils.h
M clang/lib/Serialization/CMakeLists.txt
A clang/lib/Serialization/ObjectFilePCHContainerReader.cpp
M clang/lib/Tooling/DependencyScanning/CMakeLists.txt
M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
M clang/tools/c-index-test/CMakeLists.txt
M clang/tools/c-index-test/core_main.cpp
M clang/tools/clang-check/ClangCheck.cpp
M clang/tools/driver/cc1_main.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/tools/lldb-instr/Instrument.cpp
Log Message:
-----------
[clang] Split ObjectFilePCHContainerReader from ObjectFilePCHContainerWriter (#99599)
Summary:
Close https://github.com/llvm/llvm-project/issues/99479
See https://github.com/llvm/llvm-project/issues/99479 for details
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251769
Commit: f74576d8c8dac8a9f3cd3278dcf71ad572755c0b
https://github.com/llvm/llvm-project/commit/f74576d8c8dac8a9f3cd3278dcf71ad572755c0b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M offload/test/api/omp_dynamic_shared_memory_amdgpu.c
M offload/test/api/omp_dynamic_shared_memory_mixed_amdgpu.c
M offload/test/offloading/bug51982.c
Log Message:
-----------
[Offload] Re-enable tests that are now passing
Summary:
Some recent patches made these stop failing so the XFAIL now makes the
bots go red.
Fixes https://github.com/llvm/llvm-project/issues/98903
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251145
Commit: e10c6a548833e78bdfd7a4a6408a1b828c217ff2
https://github.com/llvm/llvm-project/commit/e10c6a548833e78bdfd7a4a6408a1b828c217ff2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Log Message:
-----------
[SelectionDAGBuilder] Avoid const_cast on call to matchSelectPattern. NFC (#100053)
Summary:
By making the LHS and RHS const pointers, we can use the const signature
of matchSelectPattern.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251079
Commit: a52c1a128098d6a60210631ebfd90f17e420c4b6
https://github.com/llvm/llvm-project/commit/a52c1a128098d6a60210631ebfd90f17e420c4b6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Use MVT::changeVectorElementType. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251428
Commit: 300259664b8f730f3c9a551f37176dfe833cfe8e
https://github.com/llvm/llvm-project/commit/300259664b8f730f3c9a551f37176dfe833cfe8e
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/test/OpenMP/ompx_attributes_codegen.cpp
M clang/test/OpenMP/parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M offload/test/offloading/default_thread_limit.c
Log Message:
-----------
[OpenMP] Ensure the actual kernel is annotated with launch bounds (#99927)
Summary:
In debug mode there is a wrapper (the kernel) around the function in
which we generate the kernel code. We worked around this before to get
the correct kernel name, but now we really distinguish both to attach
the launch bounds to the kernel, not the inner function.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251128
Commit: aaa56f977765749b26d8fe4043f34dc08e3f35fd
https://github.com/llvm/llvm-project/commit/aaa56f977765749b26d8fe4043f34dc08e3f35fd
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
Log Message:
-----------
[libc++][vector<bool>] Tests shrink_to_fit requirement. (#98009)
Summary:
`vector<bool>`'s shrink_to_fit implementation is using the
"swap-to-free-container-resources-trick" which only shrinks when the
input vector is empty. Since the request to shrink_to_fit is
non-binding, this is a valid implementation. It is not a high-quality
implementation. Since `vector<bool>` is not a very popular container the
implementation has not been changed and only a test to validate the
non-growing property has been added.
This was discovered while investigating #95161.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251031
Commit: f1789c0f9649cc5f78bbdd957d12b85a5b2b27c0
https://github.com/llvm/llvm-project/commit/f1789c0f9649cc5f78bbdd957d12b85a5b2b27c0
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/tools/debugserver/source/PThreadEvent.cpp
M lldb/tools/debugserver/source/PThreadEvent.h
Log Message:
-----------
[lldb] Unify WaitForSetEvents and WaitForEventsToReset (#99997)
Unify the implementations of WaitForSetEvents and WaitForEventsToReset.
The former deals with the possibility of a race between the timeout and
the predicate while the latter does not. The functions were also
inconsistent in when they would recompute the mask. This patch unifies
the two implementations and make them behave exactly the same modulo the
predicate.
rdar://130562344
Commit: 54fc532d03de842189abfc767849a4736f79af09
https://github.com/llvm/llvm-project/commit/54fc532d03de842189abfc767849a4736f79af09
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i-sat.ll
M llvm/test/CodeGen/RISCV/rvv/fptosi-sat.ll
M llvm/test/CodeGen/RISCV/rvv/fptoui-sat.ll
Log Message:
-----------
[RISCV] Use vnclip(u) to handle fp_to_(s/u)int_sat that needs additional narrowing. (#100071)
Summary:
If vncvt doesn't produce the destination type directly, use vnclip to do
additional narrowing with saturation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251157
Commit: 14d71b6d9f61c83b527af520789ceb0f95efcd48
https://github.com/llvm/llvm-project/commit/14d71b6d9f61c83b527af520789ceb0f95efcd48
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/string
M libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
Log Message:
-----------
[libc++][string] Fixes shrink_to_fit. (#97961)
Summary:
This ensures that shrink_to_fit does not increase the allocated size.
Partly addresses #95161
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251164
Commit: bb35e9dfcf6dd756fcda9ae95e441f0f3e764c23
https://github.com/llvm/llvm-project/commit/bb35e9dfcf6dd756fcda9ae95e441f0f3e764c23
Author: Anchu Rajendran S <asudhaku at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/flush02.f90
M flang/test/Semantics/OpenMP/nested-barrier.f90
M flang/test/Semantics/OpenMP/nested-master.f90
M flang/test/Semantics/OpenMP/nested-teams.f90
M flang/test/Semantics/OpenMP/ordered-simd.f90
Log Message:
-----------
Adding warning for Master as it is deprecated in 5.2 (#98955)
Since `master` is deprecated from OpenMP spec 5.2, warning is added.
Using `masked` is the recommended alternative as per spec
Commit: d0236070c5a7dfe23cee6c6dcc6e247c5b06d07e
https://github.com/llvm/llvm-project/commit/d0236070c5a7dfe23cee6c6dcc6e247c5b06d07e
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/stdlib/CMakeLists.txt
M libc/test/src/CMakeLists.txt
M libc/test/src/math/smoke/nan_test.cpp
M libc/test/src/math/smoke/nanf128_test.cpp
M libc/test/src/math/smoke/nanf16_test.cpp
M libc/test/src/math/smoke/nanf_test.cpp
M libc/test/src/math/smoke/nanl_test.cpp
Log Message:
-----------
[libc] Fix math tests for macos arm64. (#100060)
Some problem with current build on macos:
- no libatomic.
- death tests do not work yet.
Commit: dac6dff846a0ed5c12cb12b22edc15376f689e99
https://github.com/llvm/llvm-project/commit/dac6dff846a0ed5c12cb12b22edc15376f689e99
Author: Andrew Rogers <andrurogerz at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
Log Message:
-----------
lldb: android: fix missing Python import of urlparse in lldb test utilities (#99934)
Summary:
## Issue
Attempting to run the lldb API tests against a remote-android target
fails with the error `NameError: name 'urlparse' is not defined`.
## Root Cause
It looks the Python import of `urlparse` was removed by mistake in
22ea97d7bfd65abf68a68b13bf96ad69be23df54. This import is only used when
running the lldb API tests against a remote-android target so it went
unnoticed.
## Fix
This change simply puts back the missing import. It is a one line
change.
fixes #99931
## Validation
Tested on Fedora 39 with an attached Android device:
`cd llvm-project`
`cmake -S llvm -B build -G Ninja -DLLVM_ENABLE_PROJECTS='clang;lldb'
-DCMAKE_BUILD_TYPE=Release -DLLDB_ENABLE_PYTHON=On`
`ninja -C build`
`./build/bin/lldb-dotest --arch aarch64 --out-of-tree-debugserver
--platform-name=remote-android
--platform-working-dir=/data/local/tmp/ds2
--platform-url=connect://localhost:5432 --compiler
~/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/clang`
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251272
Commit: 13a5796009ee90f1c37125c66e4f79b59f57c2e3
https://github.com/llvm/llvm-project/commit/13a5796009ee90f1c37125c66e4f79b59f57c2e3
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
A llvm/test/Transforms/UnifyLoopExits/undef-phis.ll
Log Message:
-----------
[UnifyLoopExits] Never generate phis of only `undef` values (#99924)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251460
Commit: 06ca7a054d1145fa3f74a438062a08f750e21f6d
https://github.com/llvm/llvm-project/commit/06ca7a054d1145fa3f74a438062a08f750e21f6d
Author: Sumanth Gundapaneni <sumanth.gundapaneni at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
A llvm/test/CodeGen/AMDGPU/lround.ll
Log Message:
-----------
[AMDGPU] Implement llvm.lround intrinsic lowering. (#98970)
Summary:
This patch enables the target-independent lowering of llvm.lround via
GlobalISel. For SelectionDAG, the instrinsic is custom lowered for
AMDGPU. In order to support vector floating point input for llvm.lround,
this patch extends the target independent APIs and provide support for
scalarizing. pr98950 is needed to let verifier allow vector floating
point types
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251041
Commit: a6a02009adac82498c771927412355208a866312
https://github.com/llvm/llvm-project/commit/a6a02009adac82498c771927412355208a866312
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes.rst
Log Message:
-----------
[libc++][doc] Fixes building the release notes.
Summary:
This libc++ 19 release notes are not longer the active notes and need to
be hidden to avoid build errors.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251571
Commit: c8fc2f7f186006d206aca554783bbf8103b80778
https://github.com/llvm/llvm-project/commit/c8fc2f7f186006d206aca554783bbf8103b80778
Author: Wesley Wiser <wwiser at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/include/llvm/CodeGen/TargetFrameLowering.h
M llvm/include/llvm/MC/MCAsmBackend.h
M llvm/include/llvm/MC/MCDwarf.h
M llvm/lib/CodeGen/CFIInstrInserter.cpp
M llvm/lib/CodeGen/MachineFrameInfo.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/MC/MCDwarf.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/test/CodeGen/PowerPC/huge-frame-size.ll
M llvm/test/CodeGen/RISCV/pr88365.ll
M llvm/test/CodeGen/X86/huge-stack.ll
Log Message:
-----------
[LLVM] [MC] Update frame layout & CFI generation to handle frames larger than 2gb (#99263)
Summary:
Rebase of #84114. I've only included the core changes to frame layout
calculation & CFI generation which sidesteps the regressions found after
merging #84114. Since these changes are a necessary precursor to the
overall fix and are themselves slightly beneficial as CFI is now
generated correctly, I think it is reasonable to merge this first step.
---
For very large stack frames, the offset from the stack pointer to a
local can be more than 2^31 which overflows various `int` offsets in the
frame lowering code.
This patch updates the frame lowering code to calculate the offsets as
64-bit values and fixes CFI to use the corrected sizes.
After this patch, additional work is needed to fix offset truncations in
each target's codegen.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251493
Commit: 935d5040ffd47cf7704853a0561a33ed220b7db7
https://github.com/llvm/llvm-project/commit/935d5040ffd47cf7704853a0561a33ed220b7db7
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/ELF/arm-cmse-implib.s
M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
M llvm/test/DebugInfo/Symbolize/ELF/arm-mapping-symbol.s
M llvm/test/MC/ARM/CheckDataSymbol.s
M llvm/test/MC/ARM/data-in-code.ll
M llvm/test/MC/ARM/directive-arm-thumb-alignment.s
M llvm/test/MC/ARM/multi-section-mapping.s
M llvm/test/MC/ARM/thumb-function-address.s
M llvm/test/MC/ARM/thumb-types.s
M llvm/test/MC/ARM/thumb_set.s
M llvm/test/MC/ELF/ARM/execute-only-section.s
M llvm/test/tools/llvm-objdump/multiple-symbols.s
Log Message:
-----------
[ARM] Create mapping symbols with non-unique names
Similar to #99836 for AArch64.
Non-unique names save .strtab space and match GNU assembler.
Pull Request: https://github.com/llvm/llvm-project/pull/99906
Commit: ee8a810b2cafa4b771a6452fbc8162436ff6382b
https://github.com/llvm/llvm-project/commit/ee8a810b2cafa4b771a6452fbc8162436ff6382b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Parser/provenance.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Optimizer/Dialect/FIRAttr.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M flang/lib/Parser/provenance.cpp
A flang/test/Lower/location.f90
A flang/test/Lower/location0.inc
A flang/test/Lower/location1.inc
Log Message:
-----------
[flang] Enhance location information (#95862)
Summary:
Add inclusion location information by using FusedLocation with
attribute.
More context here:
https://discourse.llvm.org/t/rfc-enhancing-location-information/79650
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251069
Commit: f54dfdb85967d8dcbe9a7c5cf67cfd1dbbc0e094
https://github.com/llvm/llvm-project/commit/f54dfdb85967d8dcbe9a7c5cf67cfd1dbbc0e094
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
Log Message:
-----------
[bazel] Port cc7308a1563e5ebab4dffeb85deefdde61e6711a (#100163)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251070
Commit: 6912a06a16f6cb599091d425d237041090de1d1c
https://github.com/llvm/llvm-project/commit/6912a06a16f6cb599091d425d237041090de1d1c
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/ReleaseNotes/20.rst
M libcxx/docs/Status/SpecialMath.rst
Log Message:
-----------
[libc++][doc] Update the release notes for LLVM 19. (#99061)
This is a preparation for the upcoming LLVM 19 release.
Commit: 3e8a6008628e8f87ef64ad0df607667cea23553b
https://github.com/llvm/llvm-project/commit/3e8a6008628e8f87ef64ad0df607667cea23553b
Author: lntue <35648136+lntue at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/math/smoke/nan_test.cpp
M libc/test/src/math/smoke/nanf128_test.cpp
M libc/test/src/math/smoke/nanf16_test.cpp
M libc/test/src/math/smoke/nanf_test.cpp
M libc/test/src/math/smoke/nanl_test.cpp
Log Message:
-----------
[libc] Skip NaN death tests for asan build. (#100161)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251055
Commit: fac2d84bdd5b9a6e1107625337b1b607a18582a6
https://github.com/llvm/llvm-project/commit/fac2d84bdd5b9a6e1107625337b1b607a18582a6
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
[bazel] Update for new deps (#100166)
Summary:
The config drifted from main in a few places. I didn't track down the
original changes since there were 3 breakages
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251092
Commit: 31a8c84548cda26e9d62972c832faade242cca62
https://github.com/llvm/llvm-project/commit/31a8c84548cda26e9d62972c832faade242cca62
Author: Jun Wang <jwang86 at yahoo.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/test/MC/AMDGPU/gfx1030_err.s
M llvm/test/MC/AMDGPU/gfx10_asm_mimg_err.s
M llvm/test/MC/AMDGPU/gfx10_err_pos.s
M llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s
A llvm/test/MC/AMDGPU/gfx12_asm_mimg_err.s
M llvm/test/MC/AMDGPU/gfx12_err.s
Log Message:
-----------
[AMDGPU][MC] Improve error message for missing dim operand (#96588)
Summary:
For GFX10+, the MIMG instrucitons generally require a dim operand.
However, when dim is missing, the assembler produces the error message
"operands are not valid for this GPU or mode" (See issue
https://github.com/llvm/llvm-project/issues/47585). This patch fixes the
issue by producing a more direct error message.
---------
Co-authored-by: Jun Wang <jun.wang7 at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251483
Commit: 1857df3bfe4b9d5779521ab846f8bf68707c8062
https://github.com/llvm/llvm-project/commit/1857df3bfe4b9d5779521ab846f8bf68707c8062
Author: Ilya Biryukov <ibiryukov at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/DeclTemplate.cpp
Log Message:
-----------
[Sema] Default arguments for template parameters affect ContainsUnexpandedPacks (#99880)
Summary:
This addresses the FIXME in the code. There will be tests for the new
behavior in an upcoming #86265, which also addresses other bugs that
prevent exposing the wrong results of `ContainsUnexpandedPacks` in the
outputs of the compiler without crashes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251126
Commit: e0e9ece43f6992c3afe81cc2d4d1799acbfd1014
https://github.com/llvm/llvm-project/commit/e0e9ece43f6992c3afe81cc2d4d1799acbfd1014
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Core/PluginManager.h
M lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h
A lldb/include/lldb/Interpreter/Interfaces/ScriptedInterfaceUsages.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/Commands/CommandObjectScripting.cpp
M lldb/source/Commands/Options.td
M lldb/source/Core/PluginManager.cpp
M lldb/source/Interpreter/CMakeLists.txt
A lldb/source/Interpreter/Interfaces/CMakeLists.txt
A lldb/source/Interpreter/Interfaces/ScriptedInterfaceUsages.cpp
M lldb/source/Plugins/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
Log Message:
-----------
[lldb/Commands] Add `scripting template list` command with auto discovery (#97273)
Summary:
This patch introduces a new `template` multiword sub-command to the
`scripting` top-level command. As the name suggests, this sub-command
operates on scripting templates, and currently has the ability to
automatically discover the various scripting extensions that lldb
supports.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251298
Commit: 685c700952866ed3be0936fffa9ae1690c1f20cf
https://github.com/llvm/llvm-project/commit/685c700952866ed3be0936fffa9ae1690c1f20cf
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/Targets/X86.cpp
M clang/test/CodeGen/X86/mmx-inline-asm.c
M clang/test/CodeGen/asm-inout.c
M llvm/lib/Target/X86/X86ISelLowering.cpp
A llvm/test/CodeGen/X86/mmx-inlineasm.ll
Log Message:
-----------
Clang: don't unnecessarily convert inline-asm operands to x86mmx in IR. (#98273)
Summary:
The SelectionDAG asm-lowering code can already handle conversion of
other vector types to MMX if needed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251043
Commit: 124f8a026611706602f2ba209321408ec820cf2e
https://github.com/llvm/llvm-project/commit/124f8a026611706602f2ba209321408ec820cf2e
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/include/vector
Log Message:
-----------
[libc++][vector] Updates LWG3778 status. (#99818)
Summary:
The work was done in a8ae392718313e64e2d7bc092b00f51476c074b2 which
implements parts of
N4258: Cleaning-up noexcept in the Library
However that's paper Summary of Proposed Changes contains
No change in vector<bool>
This patch updates the status and as a few NFC cleanups. The fixed
version is based on the release page and might be off.
Updates
- LWG3778 vector<bool> missing exception specifications
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251057
Commit: d1edbe24b094804b034ac3a2b423761f7dc62d2e
https://github.com/llvm/llvm-project/commit/d1edbe24b094804b034ac3a2b423761f7dc62d2e
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/include/__memory/allocator.h
M libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp
A libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.verify.cpp
Log Message:
-----------
[libc++][memory] Implements LWG3307. (#99776)
Summary:
As a drive-by added a nodiscard test for allocate_at_least.
Implements
- LWG33307 std::allocator<void>().allocate(n)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251027
Commit: 673b9ee47f70cdc81dd9958d038bd3af3e66fb38
https://github.com/llvm/llvm-project/commit/673b9ee47f70cdc81dd9958d038bd3af3e66fb38
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP] NFC. ShuffleInstructionBuilder::add V1->getType() is always a FixedVectorType. (#99842)
Summary: castToScalarTyElem has a cast<VectorType>(V->getType()).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251088
Commit: a47e33c57a0b16481191683f6bc210569331e0ac
https://github.com/llvm/llvm-project/commit/a47e33c57a0b16481191683f6bc210569331e0ac
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/setjmp/riscv/longjmp.cpp
M libc/src/setjmp/riscv/setjmp.cpp
Log Message:
-----------
[libc][RISCV] Add naked attribute to setjmp/longjmp (#100036)
Summary:
We want to avoid any possibility that the compiler will insert a
prologue/epilogue violating the calling contracts for these special
functions, potentially clobbering registers that must be preserved. To
do that they should be marked naked, as is already the case on ARM.
See #87837 for further context.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251407
Commit: 30175f49ea8e68137c42047e78d99e6524ab5e77
https://github.com/llvm/llvm-project/commit/30175f49ea8e68137c42047e78d99e6524ab5e77
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/test/AST/Interp/literals.cpp
Log Message:
-----------
[clang][Interp] Properly reject StmtExprs with Stmt result
Commit: d43417901e0476f93594e2d84c5afe67b6199c5b
https://github.com/llvm/llvm-project/commit/d43417901e0476f93594e2d84c5afe67b6199c5b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
A llvm/test/CodeGen/NVPTX/indirect_byval.ll
Log Message:
-----------
[NVPTX] Fix internal indirect call prototypes not obeying the ABI (#100131)
Summary:
The NVPTX backend optimizes the ABI for functions that are internal,
however, this is not legal for indirect call prototypes. Previously, we
would modify the ABI on an aggregate byval type passed to an indirect
call prototype, which would make PTXAS error. This patch just passes the
function as a nullptr to force strict ABI compliance without
modification in the helper function.
Fixes https://github.com/llvm/llvm-project/issues/100055
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251110
Commit: 76e8205115c2d855e80266f80b0da3c80866c679
https://github.com/llvm/llvm-project/commit/76e8205115c2d855e80266f80b0da3c80866c679
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/vendor/llvm/default_assertion_handler.in
Log Message:
-----------
[libc++][NFC] Add comment about __builtin_verbose_trap per review comment
Commit: 2427242dafa2fe3c9239a493e995fae1e0109f20
https://github.com/llvm/llvm-project/commit/2427242dafa2fe3c9239a493e995fae1e0109f20
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCELFObjectWriter.h
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
Log Message:
-----------
[MC] Make *ObjectWriter final
Summary:
to make it clear that target customization should be done by inheriting
from MCObjectTargetWriter subclasses instead of MCObjectWriter
subclasses.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251094
Commit: f8183ce34ffb818e34ae5e2e4d8b348edd50c466
https://github.com/llvm/llvm-project/commit/f8183ce34ffb818e34ae5e2e4d8b348edd50c466
Author: Pete Steinfeld <47540744+psteinfeld at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/DirectivesCommon.h
Log Message:
-----------
[flang] Fix warning in build (#100134)
Summary:
After tblah's update #99817, I'm getting a warning about an
unusedvariable. It looks to me like the warning is bogus, possibly due
to a bug in the compiler I'm using (GCC 9.3.0). But adding a
"maybe_unused" clause fixes it and makes my builds clean.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251162
Commit: 544394b547be49f22249d8cd14df850a1fe73336
https://github.com/llvm/llvm-project/commit/544394b547be49f22249d8cd14df850a1fe73336
Author: Andrii Levytskyi <107996072+aabysswalker at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/test/CodeGenHLSL/builtins/frac.hlsl
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/frac.ll
Log Message:
-----------
[SPIRV][HLSL] Add lowering of frac to SPIR-V (#97111)
Summary:
Implements frac lowering to SPIR-V.
Closes #88059
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251390
Commit: a276a338f1c734a6d4b067cb68a00cb7be2eed1f
https://github.com/llvm/llvm-project/commit/a276a338f1c734a6d4b067cb68a00cb7be2eed1f
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/typeinfo
M libcxx/src/include/overridable_function.h
M libcxxabi/src/private_typeinfo.cpp
Log Message:
-----------
[libc++][libc++abi] Minor follow-up changes after ptrauth upstreaming (#87481)
Summary:
This patch applies the comments provided on #84573. This is done as a
separate PR to avoid merge conflicts with downstreams that already had
ptrauth support.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251081
Commit: 1a4a6fefeab534da9b876372d75efe0f419ec0d0
https://github.com/llvm/llvm-project/commit/1a4a6fefeab534da9b876372d75efe0f419ec0d0
Author: Volodymyr Sapsai <vsapsai at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Modules/subdirectory-module-maps-working-dir.m
Log Message:
-----------
[HeaderSearch] Make a test independent of the local environment. (#100011)
Summary:
Don't ask the driver to inspect the local environment but use `cc1`
directly.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250778
Commit: a21db1c091d929878925b9835fad17aab3e6380a
https://github.com/llvm/llvm-project/commit/a21db1c091d929878925b9835fad17aab3e6380a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Host/common/Host.cpp
Log Message:
-----------
[lldb] Drop LOG_CONS from openlog call.
Summary:
Don't pass `LOG_CONS` to the openlog call.
> Write directly to the system console if there is an error while
> sending to the system logger.
This seemed like a good idea at the time, but it turns out to be
extremely annoying when this happens and LLDB is overwhelmed by log
messages in the console.
rdar://132243490
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251046
Commit: 6abf99662b89591e7eda3ade378f9ea211734022
https://github.com/llvm/llvm-project/commit/6abf99662b89591e7eda3ade378f9ea211734022
Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/scudo/standalone/secondary.h
Log Message:
-----------
[scudo] Added LRU eviction policy to secondary cache. (#99409)
Summary:
The logic for emptying the cache now follows an LRU eviction policy.
When the cache is full on any given free operation, the oldest entry in
the cache is evicted, and the memory associated with that cache entry is
unmapped.
Finding empty cache entries is now a constant operation with the use of
a stack of available cache entries.
Through the LRU structure, the cache retrieval algorithm now only
iterates through valid entries of the cache. Furthermore, the retrieval
algorithm will first search cache entries that have not been decommitted
(i.e. madvise() has not been called on their corresponding memory
chunks) to reduce the likelihood of returning a memory chunk to the user
that would induce a page fault.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251270
Commit: f1676d8ad9b9ce11a6fa516c22dcc80bd3ed400c
https://github.com/llvm/llvm-project/commit/f1676d8ad9b9ce11a6fa516c22dcc80bd3ed400c
Author: vporpo <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
[SandboxIR] Implement BranchInst (#100063)
This patch implements sandboxir::BranchInst which mirrors
llvm::BranchInst.
BranchInst::swapSuccessors() relies on User::swapOperandsInternal() so
this patch also adds Use::swap() and the corresponding tracking code and
test.
Commit: 4bc2c0f7bc65b92c3caac7519305c769aa5707e9
https://github.com/llvm/llvm-project/commit/4bc2c0f7bc65b92c3caac7519305c769aa5707e9
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
A llvm/test/CodeGen/WebAssembly/simd-asm-pred.ll
Log Message:
-----------
[WebAssembly] Enable simd128 when relaxed-simd is set in AsmPrinter (#99803)
Summary:
Even though in `Subtarget` we defined `SIMDLevel` as a number so
`hasRelaxedSIMD` automatically means `hasSIMD128`,
https://github.com/llvm/llvm-project/blob/0caf0c93e759816663af52e8632d1c3953dbc715/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h#L36-L40
https://github.com/llvm/llvm-project/blob/0caf0c93e759816663af52e8632d1c3953dbc715/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h#L107
specifying only `relaxed-simd` feature on a program that needs `simd128`
instructions to compile fails, because of this query in `AsmPrinter`:
https://github.com/llvm/llvm-project/blob/d0d05aec3b6792136a9f75eb85dd2ea66005ae12/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp#L644-L645
This `verifyInstructionPredicates` function (and other functions called
by this function) is generated by
https://github.com/llvm/llvm-project/blob/main/llvm/utils/TableGen/InstrInfoEmitter.cpp,
and looks like this (you can check it in the
`lib/Target/WebAssembly/WebAssemblyGenInstrInfo.inc` in your build
directory):
```cpp
void verifyInstructionPredicates(
unsigned Opcode, const FeatureBitset &Features) {
FeatureBitset AvailableFeatures = computeAvailableFeatures(Features);
FeatureBitset RequiredFeatures = computeRequiredFeatures(Opcode);
FeatureBitset MissingFeatures =
(AvailableFeatures & RequiredFeatures) ^
RequiredFeatures;
...
}
```
And `computeAvailableFeatures` is just a set query, like this:
```cpp
inline FeatureBitset computeAvailableFeatures(const FeatureBitset &FB) {
FeatureBitset Features;
if (FB[WebAssembly::FeatureAtomics])
Features.set(Feature_HasAtomicsBit);
if (FB[WebAssembly::FeatureBulkMemory])
Features.set(Feature_HasBulkMemoryBit);
if (FB[WebAssembly::FeatureExceptionHandling])
Features.set(Feature_HasExceptionHandlingBit);
...
```
So this is how currently `HasSIMD128` is defined:
https://github.com/llvm/llvm-project/blob/0caf0c93e759816663af52e8632d1c3953dbc715/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td#L79-L81
The things being checked in this `computeAvailableFeatures`, and in turn
in `AsmPrinter`, are `AssemblerPredicate`s. These only check which bits
are set in the features set and are different from `Predicate`s, which
can call `Subtarget` functions like `Subtarget->hasSIMD128()`.
But apparently we can use `all_of` and `any_of` directives in
`AssemblerPredicate`, and we can make `simd128`'s `AssemblerPredicate`
set in `relaxed-simd` is set by the condition as an 'or' of the two.
Fixes #98502.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250795
Commit: 5ff6af59b8ed8a872deee76251ce13822a7d9d31
https://github.com/llvm/llvm-project/commit/5ff6af59b8ed8a872deee76251ce13822a7d9d31
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
Revert "[SandboxIR] Implement BranchInst (#100063)"
Summary: This reverts commit 3993da23daa0ae75e9e80def76854534903e3761.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251030
Commit: d7f4c131a81a3f6deb1809e1df0b99e1a8e83b39
https://github.com/llvm/llvm-project/commit/d7f4c131a81a3f6deb1809e1df0b99e1a8e83b39
Author: gulfemsavrun <gulfem at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/libcxx/fuzzing/random.pass.cpp
M libcxx/test/std/depr/depr.c.headers/math_h.pass.cpp
M libcxx/test/std/numerics/c.math/cmath.pass.cpp
Log Message:
-----------
[libc++] Add clang-20 to failing tests on Windows (#100119)
Summary:
After we switched to LLVM version 20, some libc++ tests started failing
on Windows. This patch adds the clang-20 condition to XFAIL to fix the
issue. The way that these tests are excluded from Windows are fragile
and need to be updated every time we bump the LLVM version.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251768
Commit: 338bc9533c63e6005f0b77de9f1a601ee2cf6b21
https://github.com/llvm/llvm-project/commit/338bc9533c63e6005f0b77de9f1a601ee2cf6b21
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/mlgo-utils/mlgo/__init__.py
Log Message:
-----------
[MLGO] Bump MLGO utils version to 20
Summary:
This patch bumps the MLGO utilities python package version to v20 in
sync with the rest of the project. This should be automated later in the
version update script, but this needs to be updated even while a patch
for that lands.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251670
Commit: 7a70550c56cecc64f3e0a80c89660c8f87886d8b
https://github.com/llvm/llvm-project/commit/7a70550c56cecc64f3e0a80c89660c8f87886d8b
Author: David Benjamin <davidben at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/string_view
Log Message:
-----------
Suppress a redundant hardening check in basic_string_view::substr (#91804)
Summary:
Fixes #91634.
This could alternatively be done with an _LIBCPP_ASSUME, after
https://github.com/llvm/llvm-project/pull/91801 lands, but would also
require https://github.com/llvm/llvm-project/issues/91619 be fixed
first. Given the dependencies, it seemed simplest to just make a private
ctor.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251551
Commit: 70f3ac9ef6f811390b62ce77bdd6bb65c43110ca
https://github.com/llvm/llvm-project/commit/70f3ac9ef6f811390b62ce77bdd6bb65c43110ca
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/SandboxIR/SandboxIR.h
M llvm/include/llvm/SandboxIR/SandboxIRValues.def
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/lib/SandboxIR/SandboxIR.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
Reapply "[SandboxIR] Implement BranchInst (#100063)"
Summary: This reverts commit c312a1a9c1beb407506cb1f76eb4ba05e92e5ab4.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251151
Commit: d754e1d74c5deca85c578b5f1bcfe453afe60bf8
https://github.com/llvm/llvm-project/commit/d754e1d74c5deca85c578b5f1bcfe453afe60bf8
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/linker-wrapper-passes.c
M clang/test/Driver/nvlink-wrapper.c
M clang/tools/clang-nvlink-wrapper/NVLinkOpts.td
Log Message:
-----------
[Clang] Correctly forward `--cuda-path` to the nvlink wrapper (#100170)
Summary:
This was not forwarded properly as it would try to pass it to `nvlink`.
Fixes https://github.com/llvm/llvm-project/issues/100168
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251134
Commit: 049377998cf7c7403e5478d89717eb647cfcce14
https://github.com/llvm/llvm-project/commit/049377998cf7c7403e5478d89717eb647cfcce14
Author: Teresa Johnson <tejohnson at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[MemProf] Reduce cloning overhead by sharing nodes when possible (#99832)
Summary:
When assigning calls to nodes while building the graph, we can share
nodes between multiple calls in some cases. Specifically, when we
process the list of calls that had the same stack ids (possibly pruned,
because we are looking at the stack ids that actually had nodes in the
graph due to stack ids in the pruned allocation MIBs), for calls that
are located in the same function, we know that they will behave exactly
the same through cloning and function assignment. Therefore, instead of
creating nodes for all of them (requiring context id duplication), keep
a list of additional "matching calls" on the nodes. During function
assignment we simply update all the matching calls the same way as the
primary call.
This change not only reduces the number of nodes (both original and
cloned), but also greatly reduces the number of duplicated context ids
and the time to propagate them.
For a large target, I measured a 25% peak memory reduction and 42% time
reduction.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251048
Commit: 4f4a692a962875799b452bed001ca21457114203
https://github.com/llvm/llvm-project/commit/4f4a692a962875799b452bed001ca21457114203
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/linker-wrapper-passes.c
M clang/test/Driver/nvlink-wrapper.c
M clang/tools/clang-nvlink-wrapper/NVLinkOpts.td
Log Message:
-----------
Revert "[Clang] Correctly forward `--cuda-path` to the nvlink wrapper (#100170)"
Summary: This reverts commit 7e1fcf5dd657d465c3fc846f56c6f9d3a4560b43.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251020
Commit: 86cc322def9674d69cec9b8f622126312897c06d
https://github.com/llvm/llvm-project/commit/86cc322def9674d69cec9b8f622126312897c06d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/linker-wrapper-passes.c
M clang/test/Driver/nvlink-wrapper.c
M clang/tools/clang-nvlink-wrapper/NVLinkOpts.td
Log Message:
-----------
Reapply "[Clang] Correctly forward `--cuda-path` to the nvlink wrapper (#100170)"
This reverts commit 7d388aeabb34cd954aa57e4321ad3aa9f382c557.
Commit: 508e8d2995e0fcc014b042b7a0cdaf39e23ffba3
https://github.com/llvm/llvm-project/commit/508e8d2995e0fcc014b042b7a0cdaf39e23ffba3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/release/bump-version.py
Log Message:
-----------
[MLGO][Infra] Add mlgo-utils to bump-version script (#100186)
Summary:
This patch adds support in the bump-version script for bumping the
version of the mlgo-utils package. This should hopefully streamline the
processor for that with the rest of the project and prevent having to
manually update this package individually.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251544
Commit: 23414fbe3d8b3283b2c28b836643d0a356550599
https://github.com/llvm/llvm-project/commit/23414fbe3d8b3283b2c28b836643d0a356550599
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/test/X86/dwarf5-dwarf4-types-backward-forward-cross-reference.test
M bolt/test/X86/dwarf5-locexpr-referrence.test
Log Message:
-----------
[BOLT][DWARF][NFC] Split processUnitDIE into two lambdas (#99957)
Split processUnitDIE into two lambdas to separate the processing of DWO
CUs and CUs in the main binary.
Commit: df100a2afd8af26b78a717824d557f5f470a2d38
https://github.com/llvm/llvm-project/commit/df100a2afd8af26b78a717824d557f5f470a2d38
Author: Argyrios Kyrtzidis <kyrtzidis at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp
Log Message:
-----------
[clang/Lex/DependencyDirectivesScanner] Ignore import/include directives with missing filenames without failing the scan (#100126)
Summary:
Follow-up to `34ab855826b8cb0c3b46c770b83390bd1fe95c64`:
* Don't fail the scan with an include with missing filename, it may be
inside a skipped preprocessor block. Let the compilation provide any
related error.
* Fix an issue where the lexer was skipping through the next directive,
after ignoring the include with missing filename.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251051
Commit: 76a510a735b9fdecd3e64e58d9dd0317518fdc8c
https://github.com/llvm/llvm-project/commit/76a510a735b9fdecd3e64e58d9dd0317518fdc8c
Author: Ian Anderson <iana at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Headers/stdarg.h
M clang/lib/Headers/stddef.h
M clang/test/Headers/stddefneeds.cpp
A clang/test/Modules/stddef.cpp
Log Message:
-----------
[clang][headers] Including stddef.h always redefines NULL (#99727)
Summary:
stddef.h always includes __stddef_null.h. This is fine in modules
because it's not possible to re-include the pcm, and it's necessary to
export the _Builtin_stddef.null submodule. However, without modules it
causes NULL to always get redefined which disrupts some C++ code. Rework
the inclusion of __stddef_null.h so that with not building with modules
it's only included if __need_NULL is set by the includer, or it's the
first time stddef.h is being included.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251032
Commit: 45a8aa500df542ebbd9eb79b9cd1d3814866542f
https://github.com/llvm/llvm-project/commit/45a8aa500df542ebbd9eb79b9cd1d3814866542f
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
A llvm/test/Transforms/LoopVectorize/SystemZ/force-target-instruction-cost.ll
Log Message:
-----------
[VPlan] Only use force-target-instruction-cost for recipes with insts.
To match the behavior of the legacy cost model, only apply
-force-target-instruction-cost to recipes with underlying instructions
for now, as only original IR instructions are considered by the legacy
cost model.
This fixes a difference between legacy and VPlan based cost model,
triggering the verification assertion, reported by @JonPsson1.
Commit: b34554d1a567111b8598d648f19b7fa60479dee8
https://github.com/llvm/llvm-project/commit/b34554d1a567111b8598d648f19b7fa60479dee8
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LibcConfig.cmake
M libc/config/config.json
M libc/src/errno/libc_errno.cpp
Log Message:
-----------
[libc] Fix missing default value for errno config (#100175)
Summary:
The configs all need default values which targets then override. This
one was an empty string which made the logic report an error. The only
reason it wasn't a build failure was because of a stray `:`.
Commit: 5ddb22100aec1b9c003c9e013c6cabcde0e3f693
https://github.com/llvm/llvm-project/commit/5ddb22100aec1b9c003c9e013c6cabcde0e3f693
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/linker-wrapper-passes.c
Log Message:
-----------
[Clang] Add back in REQUIRES lines that were accidentally removed
Commit: e077afb67842eb8c61cc9460256623806146c8d7
https://github.com/llvm/llvm-project/commit/e077afb67842eb8c61cc9460256623806146c8d7
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_float.ll
Log Message:
-----------
[msan] Add more NEON VST tests (#100189)
Summary:
This includes additional test cases that are currently unsupported by
MSan: VST_{2,3,4} with floating-point parameters, and VST1x_{2,3,4}.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251111
Commit: e9eeeee54d8501271e574b7f904b229f406bbe6c
https://github.com/llvm/llvm-project/commit/e9eeeee54d8501271e574b7f904b229f406bbe6c
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/setjmp/riscv/longjmp.cpp
M libc/src/setjmp/riscv/setjmp.cpp
Log Message:
-----------
Revert "[libc][RISCV] Add naked attribute to setjmp/longjmp" (#100193)
Summary:
Reverts llvm/llvm-project#100036
This caused a failure on bots:
https://lab.llvm.org/buildbot/#/builders/183/builds/1799
We likely need to discuss the particulars here a bit more deeply before
either relanding or choosing an alternate solution.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251135
Commit: 4ae51e00d4d63eb554aad0f199fddb53d8f88e19
https://github.com/llvm/llvm-project/commit/4ae51e00d4d63eb554aad0f199fddb53d8f88e19
Author: Ryan Prichard <rprichard at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/utils/ci/Dockerfile
M libcxx/utils/ci/vendor/android/run-buildbot-container
Log Message:
-----------
[libc++][Android] Fix Android bugs in the CI Dockerfile (#99623)
Summary:
The base of android-buildkite-builder is buildkite-builder, not
android-build-base. android-build-base is only used for its /opt/android
directory, so move the Docker installation step into
android-buildkite-builder.
Install bzip2 for extracting ndk_platform.tar.bz2.
Add "set -e" to RUN heredocs to catch failing commands.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251028
Commit: 2cf0734f47c87840fe7a9c45d6f99b04b40618ab
https://github.com/llvm/llvm-project/commit/2cf0734f47c87840fe7a9c45d6f99b04b40618ab
Author: Volodymyr Sapsai <vsapsai at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/include/clang/Lex/HeaderSearchOptions.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Lex/HeaderSearch.cpp
A clang/test/Driver/modulemap-allow-subdirectory-search.c
A clang/test/Modules/modulemap-allow-subdirectory-search.m
Log Message:
-----------
[Modules] Don't search for modulemaps in the immediate sub-directories of search paths for recent Apple SDKs. (#100005)
Summary:
Such searches can be costly and non-intuitive. We've seen complaints
from developers that they don't expect clang to find modules on their
own and not in search paths that developers provide. Keeping the search
of modulemaps in subdirectories for code completion as it provides
better user experience.
If you are defining module "UsefulCode" in
"include/UnrelatedName/module.modulemap", it is recommended to rename
the directory "UnrelatedName" to "UsefulCode". If you cannot do so, you
can add to "include/module.modulemap" a line like `extern module
UsefulCode "UnrelatedName/module.modulemap"`, so clang can find module
"UsefulCode" without checking each subdirectory in "include/".
rdar://106677321
---------
Co-authored-by: Jan Svoboda <jan at svoboda.ai>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251103
Commit: 24477f85eb851578e09c913fdd85c480c56fdfaa
https://github.com/llvm/llvm-project/commit/24477f85eb851578e09c913fdd85c480c56fdfaa
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/scudo/standalone/secondary.h
Log Message:
-----------
[NFCI][scudo] Remove unused variable 'MaxCount' (#100201)
Summary:
Fixes "error: unused variable 'MaxCount' [-Werror,-Wunused-variable]",
which is no longer used after
https://github.com/llvm/llvm-project/pull/99409
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251627
Commit: b8b836cc809cd5032bf39a1431d445c189edcd7c
https://github.com/llvm/llvm-project/commit/b8b836cc809cd5032bf39a1431d445c189edcd7c
Author: Oliver Hunt <oliver at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
Log Message:
-----------
[clang][test] Add function type discrimination tests to static destructor tests (#99604)
Summary: I accidentally did not include tests for the setting up runtime calls when compiling with -fptrauth-function-pointer-type-discrimination
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251233
Commit: 7bf91e0045ca735477f56a932f46e3816c2bc9b1
https://github.com/llvm/llvm-project/commit/7bf91e0045ca735477f56a932f46e3816c2bc9b1
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/linker-wrapper-passes.c
Log Message:
-----------
[Clang] Mark test XFAIL until a fix is merged
Summary:
Tracking the issue at
https://github.com/llvm/llvm-project/issues/100212.
Commit: e7685673b94e49967c9c0092c7ea490b4ca4aaf3
https://github.com/llvm/llvm-project/commit/e7685673b94e49967c9c0092c7ea490b4ca4aaf3
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_float.ll
Log Message:
-----------
[msan] Add baseline output for neon_vst_float.ll (#100210)
Followup to https://github.com/llvm/llvm-project/pull/100189/
Commit: 8daca29881473569902d8baf3969235e85b39402
https://github.com/llvm/llvm-project/commit/8daca29881473569902d8baf3969235e85b39402
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cpp
Log Message:
-----------
[PAC][compiler-rt][UBSan] Strip signed vptr instead of authenticating it (#100153)
vptr cannot be authenticated without knowing the class type if it was
signed with type discrimination.
Co-authored-by: Oliver Hunt <oliver at apple.com>
Commit: 34e9ada8fa020964ddeb6ec3129df3149e6b8568
https://github.com/llvm/llvm-project/commit/34e9ada8fa020964ddeb6ec3129df3149e6b8568
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
Log Message:
-----------
[clang-doc] add ftime profiling (#97644)
Summary:
this patches adds ftime-tracing option for clang-doc which was what I
used to profile the performance problems we had with clang-doc
generating the llvm docs.
- ftime-trace produces a time profiler json file called
clang-doc-tracing.json
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251381
Commit: 4237e3f7ed326eff08a82d7b04ec00a5b4336294
https://github.com/llvm/llvm-project/commit/4237e3f7ed326eff08a82d7b04ec00a5b4336294
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Replace VNCLIP RISCVISD opcodes with TRUNCATE_VECTOR_VL_SSAT/USAT opcodes (#100173)
Summary:
These new opcodes drop the shift amount, rounding mode, and passthru.
Making them exactly like TRUNCATE_VECTOR_VL. The shift amount, rounding
mode, and passthru are added in isel patterns similar to how we
translate TRUNCATE_VECTOR_VL to vnsrl with a shift of 0.
This should simplify #99418 a little.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251265
Commit: 24d4aa9c550ab9a7ad0e6646f3c35339aea58eab
https://github.com/llvm/llvm-project/commit/24d4aa9c550ab9a7ad0e6646f3c35339aea58eab
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/CheckCompilerFeatures.cmake
M libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
A libc/cmake/modules/compiler_features/check_builtin_fmax_fmin.cpp
A libc/cmake/modules/compiler_features/check_builtin_fmaxf16_fminf16.cpp
A libc/cmake/modules/cpu_features/check_FullFP16.cpp
M libc/src/__support/FPUtil/BasicOperations.h
M libc/src/__support/FPUtil/CMakeLists.txt
M libc/src/__support/macros/properties/cpu_features.h
M libc/src/math/generic/CMakeLists.txt
M libc/test/src/math/performance_testing/CMakeLists.txt
A libc/test/src/math/performance_testing/max_min_funcs_perf.cpp
Log Message:
-----------
[libc][math] Optimize maximum and minimum functions using builtins when available (#100002)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251213
Commit: db5217c8becd35103124e91eb40a03435293fb3e
https://github.com/llvm/llvm-project/commit/db5217c8becd35103124e91eb40a03435293fb3e
Author: Reid Kleckner <rnk at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/COFF/Options.td
Log Message:
-----------
[COFF] Add help text for /time flag to make it visible in /? output
Summary: Part of #99011
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250772
Commit: 93fcf5478fb53ec1d7b4ccb6a73d286bfa17cfa4
https://github.com/llvm/llvm-project/commit/93fcf5478fb53ec1d7b4ccb6a73d286bfa17cfa4
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/FPUtil/BasicOperations.h
Log Message:
-----------
[libc][math] Fix use of float16 not guarded by LIBC_TYPES_HAS_FLOAT16 (#100241)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251163
Commit: ec45a098bacc4d3654b30de707a304e6d25e3605
https://github.com/llvm/llvm-project/commit/ec45a098bacc4d3654b30de707a304e6d25e3605
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
Log Message:
-----------
Revert "[clang-doc] add ftime profiling" (#100251)
Summary:
This broke the build due to failing some clang-tidy checks:
https://lab.llvm.org/buildbot/#/builders/145/builds/789
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251188
Commit: c787c1ed7cbecce4592eef144f788282d6355900
https://github.com/llvm/llvm-project/commit/c787c1ed7cbecce4592eef144f788282d6355900
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
Log Message:
-----------
[clang-doc] fix broken tests (#100260)
Summary:
This patch fixes the broken test caused by clang-doc which was caused by
https://github.com/llvm/llvm-project/pull/100251
https://lab.llvm.org/buildbot/#/builders/144/builds/3080
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251218
Commit: 82566cc6208130cb381cb1c242a852c4f4572fdd
https://github.com/llvm/llvm-project/commit/82566cc6208130cb381cb1c242a852c4f4572fdd
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/block.h
Log Message:
-----------
[libc][malloc] Reduce block overhead by 4 bytes plus alignment effects (#99945)
Summary:
The unused padding and alignment fields were removed. The used and last
bits were stashed into the lower two bits of the next chunk offset.
(This is a very typical trick for Knuth boundary tags.) The chunk
offsets were recast as counting bytes rather than multiples of the
alignment. To ensure that the lowest two bits are not significant, the
minimum alignment was bumped to 4. This shouldn't affect anything in
practice, since alignof(max_align_t) is overwhelmingly likely to be 8.
See #98096
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251021
Commit: a5beffcf9ee59ae9ef47461f30fcf7700db1c238
https://github.com/llvm/llvm-project/commit/a5beffcf9ee59ae9ef47461f30fcf7700db1c238
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Core/PluginManager.h
M lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h
R lldb/include/lldb/Interpreter/Interfaces/ScriptedInterfaceUsages.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/Commands/CommandObjectScripting.cpp
M lldb/source/Commands/Options.td
M lldb/source/Core/PluginManager.cpp
M lldb/source/Interpreter/CMakeLists.txt
R lldb/source/Interpreter/Interfaces/CMakeLists.txt
R lldb/source/Interpreter/Interfaces/ScriptedInterfaceUsages.cpp
M lldb/source/Plugins/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
Log Message:
-----------
Revert "[lldb/Commands] Add `scripting template list` command with auto discovery" (#100273)
Summary:
Reverts llvm/llvm-project#97273 since it broke the windows bot:
https://lab.llvm.org/buildbot/#/builders/141/builds/1025/steps/4/logs/stdio
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251026
Commit: b1faeba04db599e57afe5c7d0aed9200e7099687
https://github.com/llvm/llvm-project/commit/b1faeba04db599e57afe5c7d0aed9200e7099687
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
A llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj-phi.ll
Log Message:
-----------
[WebAssembly] Fix phi handling for Wasm SjLj (#99730)
Summary:
In Wasm SjLj, longjmpable `call`s that in functions that call `setjmp`
are converted into `invoke`s. Those `invoke`s are meant to unwind to
`catch.dispatch.longjmp` to figure out which `setjmp` those `longjmp`
buffers belong to:
https://github.com/llvm/llvm-project/blob/fada9227325b3eaa0bdc09a486f29a7f08b7b3fb/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp#L250-L260
But in case a longjmpable call is within another `catchpad` or
`cleanuppad` scope, to maintain the nested scope structure, we should
make them unwind to the scope's next unwind destination and not directly
to `catch.dispatch.longjmp`:
https://github.com/llvm/llvm-project/blob/fada9227325b3eaa0bdc09a486f29a7f08b7b3fb/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp#L1698-L1727
In this case the longjmps will eventually unwind to
`catch.dispatch.longjmp` and be handled there.
In this case, it is possible that the unwind destination (which is an
existing `catchpad` or `cleanuppad`) may already have `phi`s. And
because the unwind destinations get new predecessors because of the
newly created `invoke`s, those `phi`s need to have new entries for those
new predecessors.
This adds new preds as new incoming blocks to those `phi`s, and we use a
separate `SSAUpdater` to calculate the correct incoming values to those
blocks.
I have assumed `SSAUpdaterBulk` used in `rebuildSSA` would take care of
these things, but apparently it doesn't. It takes available defs and
adds `phi`s in the defs' dominance frontiers, i.e., where each def's
dominance ends, and rewrites other uses based on the newly added `phi`s.
But it doesn't add entries to existing `phi`s, and the case in this bug
may not even involve dominance frontiers; this bug is simply about
existing `phis`s that have gained new preds need new entries for them.
It is kind of surprising that this bug was only reported recently, given
that this pass has not been changed much in years.
Fixes #97496 and fixes
https://github.com/emscripten-core/emscripten/issues/22170.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251080
Commit: 3c95135f3a22bed16a11c2c2c388b3866a883aae
https://github.com/llvm/llvm-project/commit/3c95135f3a22bed16a11c2c2c388b3866a883aae
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/AST/ast-dump-openmp-for-simd.c
M clang/test/AST/ast-dump-openmp-simd.c
M clang/test/AST/ast-dump-openmp-taskloop-simd.c
Log Message:
-----------
[clang][OpenMP] Mark all SIMD regions as non-throwing (#100162)
Summary:
[4.5:75:19], [5.0:114:3], [5.1:137:21], [5.2:235:30]
"No exception can be raised in the **simd** region."
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250708
Commit: a23f50186d54526eb731e1a012ef24e3534a7d5b
https://github.com/llvm/llvm-project/commit/a23f50186d54526eb731e1a012ef24e3534a7d5b
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/CodeGen/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Serialization/BUILD.gn
Log Message:
-----------
[gn build] Port d64eccf4335e
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250661
Commit: a1f95e7dbfc07a8dc3c82fa8701fea09fcde1f5e
https://github.com/llvm/llvm-project/commit/a1f95e7dbfc07a8dc3c82fa8701fea09fcde1f5e
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/ConstructCompositionT.h
Log Message:
-----------
[Frontend][OpenMP] Fix typo in comment, NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250790
Commit: 201f520d4f748d94cfa3a7aa38556c29703e9711
https://github.com/llvm/llvm-project/commit/201f520d4f748d94cfa3a7aa38556c29703e9711
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/CommonArgs.h
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/openmp-offload-gpu.c
Log Message:
-----------
[Clang] Make the GPU toolchains implicitly link `-lm` and `-lc` (#98170)
Summary:
The previous patches (The other commits in this chain) allow the
offloading toolchain to directly invoke the device linker. Because of
this, we can now just have the toolchain implicitly include `-lc` and
`-lm` like a standard target does. This removes the old handling that
went through the fat binary `-lcgpu`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250724
Commit: 9c4f23c9c84f7d05586b5898cd88fd1b16b0f150
https://github.com/llvm/llvm-project/commit/9c4f23c9c84f7d05586b5898cd88fd1b16b0f150
Author: Walter Erquinigo <a20012251 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M mlir/include/mlir-c/Dialect/LLVM.h
M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
M mlir/lib/CAPI/Dialect/LLVM.cpp
M mlir/lib/Target/LLVMIR/DebugImporter.cpp
M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
M mlir/test/CAPI/llvm.c
M mlir/test/Target/LLVMIR/Import/debug-info.ll
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
Log Message:
-----------
[MLIR][DebugInfo] Enable the use of DILocalVariable DIFlags (#100190)
Summary:
This patch enables the use of flags for local variables in debug info.
They were defaulted as always zero, but allowing them is pretty trivial.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250663
Commit: fdf956fe7d1f9a223930c65fb0f327fc810eaa1c
https://github.com/llvm/llvm-project/commit/fdf956fe7d1f9a223930c65fb0f327fc810eaa1c
Author: Piyou Chen <piyou.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/cpu_model/riscv.c
R compiler-rt/lib/builtins/riscv/feature_bits.c
Log Message:
-----------
[RISCV][compiler-rt] Small fixes for __riscv_feature_bits (#100158)
Summary:
Changes included:
- Adding CONSTRUCTOR_ATTRIBUTE so that the static data is setup early on
in process lifetime. This is required by gcc docs for
__builtin_cpu_supports which we hope to implement in terms of this.
- Move the length initialization outside of the #if defined(linux) block
so that the length field always reflects the size of the structures even
if non of the feature bits are non-zero.
- Change the __riscv_vendor_feature_bits.length field to match the
length of the actual structure.
Note: Copy from https://github.com/llvm/llvm-project/pull/99958
---------
Co-authored-by: Philip Reames <preames at rivosinc.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250767
Commit: 34a99938825d5250bc547055d37cd98dab83e3d9
https://github.com/llvm/llvm-project/commit/34a99938825d5250bc547055d37cd98dab83e3d9
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
R llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj-phi.ll
Log Message:
-----------
Revert "[WebAssembly] Fix phi handling for Wasm SjLj (#99730)"
Summary:
This reverts commit 2bf71b8bc851b49745b795f228037db159005570.
This broke the builbot at
https://lab.llvm.org/buildbot/#/builders/110/builds/474.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250757
Commit: 88fa02acf8327044a5c22abeb8803ea40624557e
https://github.com/llvm/llvm-project/commit/88fa02acf8327044a5c22abeb8803ea40624557e
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/src/__support/block.h
Log Message:
-----------
[libc][malloc] Align blocks to max_align_t. (#100279)
Summary:
Since there are two offsets from block start to usable area, this
ensures that the usable area is maximally aligned, so long as the offset
type size is no less than half the max alignment. This is true on at
least typical 32-bit and 64-bit targets.
Previously, there was a roughly 50-50 chance a given block's usable area
would be misaligned for a malloc on a 32-bit system. The half that were
misaligned would require at least one block of additional padding,
costing 12 bytes. With this change, the only cost is 0-4 bytes at the
beginning of the heap to reach an initial 8-byte alignment.
See #98096
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250709
Commit: c91a89d2b6941a2d4aaad10f03bd350ca7b5f0e9
https://github.com/llvm/llvm-project/commit/c91a89d2b6941a2d4aaad10f03bd350ca7b5f0e9
Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT][DWARF][NFC] Move initialization of DWOName outside of lambda (#99728)
Summary:
Followup to the splitting of processUnitDIE, moves code that accesses
common resource to be outside of the function that will be parallelized.
Followup to #99957
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250695
Commit: f5f19b788475d9f5ff05785c0ad9bed7cf6d2d3b
https://github.com/llvm/llvm-project/commit/f5f19b788475d9f5ff05785c0ad9bed7cf6d2d3b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/test/Driver/omp-driver-offload.f90
Log Message:
-----------
[Flang] Remove tests checking now removed 'libc-gpu.a`
Summary:
These tests were removed in a previous patch.
The linker wrapper now just extracts the device inputs and forwards them
directly to the device's link job. This is the job that occurs when you
do `clang --target=amdgcn-amd-amdhsa foo.o` or similar. Because this can
handle LTO we no longer do LTO in the linker wrapper. This has some
fallout, because we now require `ld.lld` to be built with a compatible
version, but I think we always expected that.
I made the decision to remove this `libc-gpu.a` library because it was
unnecessary and complicated things. Now I simply have the link job
implicitly link `-lc` if it exists. Users can also now pass
`-Xoffload-linker=amdgcn-amd-amdhsa -lc` or similar to pass it. Because
of this, these tests need to be removed. I forgot that Fortran also had
these.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250601
Commit: 7cdd3efc50ab80495f6a491d0f0e3f67487df790
https://github.com/llvm/llvm-project/commit/7cdd3efc50ab80495f6a491d0f0e3f67487df790
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Commands/CommandObjectProcess.cpp
Log Message:
-----------
[lldb] Don't crash when attaching to pid and no binaries found (#100287)
Summary:
There is a narrow window during process launch on macOS where lldb can
attach and no binaries will be seen as loaded in the process (none
reported by libdyld SPI). A year ago I made changes to set the
new-binary-loaded breakpoint correctly despite this. But we've seen a
crash when this combination is seen, where
CommandObjectProcessAttach::DoExecute assumed there was at least one
binary registered in the Target. Fix that.
Also fix two FileSpec API uses from when we didn't have a GetPath()
method that returned a std::string, and was copying the filepaths into
fixed length buffers. All of this code was from ~14 years ago when we
didn't have that API.
rdar://131631627
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250573
Commit: 34bd2538578c63c105db23ef02d305d69dbdf0c8
https://github.com/llvm/llvm-project/commit/34bd2538578c63c105db23ef02d305d69dbdf0c8
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/tsan/debug_alloc_stack.cpp
Log Message:
-----------
[tsan] Enable test on linux (#99659)
Summary: It passes as-is on my system.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250714
Commit: fa7453c643b14960c23ad99995077590876d7a7f
https://github.com/llvm/llvm-project/commit/fa7453c643b14960c23ad99995077590876d7a7f
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__configuration/abi.h
M libcxx/include/__type_traits/datasizeof.h
M libcxx/include/__utility/pair.h
M libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
M libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivially_copyable.compile.pass.cpp
Log Message:
-----------
[libc++] Revert "Make std::pair trivially copyable if its members are (#89652)" (#100184)
Summary:
This reverts commit f9dd885cb6e6b. We're not certain yet whether the
patch has issues, so we are reverting until we've had time to
investigate.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250646
Commit: cccccf4c629cbaeceed824fed95da0a8f7308cee
https://github.com/llvm/llvm-project/commit/cccccf4c629cbaeceed824fed95da0a8f7308cee
Author: Stefan Pintilie <stefanp at ca.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/RegisterCoalescer.cpp
A llvm/test/CodeGen/PowerPC/subreg-coalescer.mir
A llvm/test/CodeGen/X86/subreg-fail.mir
Log Message:
-----------
[RegisterCoalescer] Fix SUBREG_TO_REG handling in the RegisterCoalescer. (#96839)
Summary:
The issue with the handling of the SUBREG_TO_REG is that we don't join
the subranges correctly when we join live ranges across the
SUBREG_TO_REG. For example when joining across this:
```
32B %2:gr64_nosp = SUBREG_TO_REG 0, %0:gr32, %subreg.sub_32bit
```
we want to join these live ranges:
```
%0 [16r,32r:0) 0 at 16r weight:0.000000e+00
%2 [32r,112r:0) 0 at 32r weight:0.000000e+00
```
Before the fix the range for the resulting merged `%2` is:
```
%2 [16r,112r:0) 0 at 16r weight:0.000000e+00
```
After the fix it is now this:
```
%2 [16r,112r:0) 0 at 16r L000000000000000F [16r,112r:0) 0 at 16r weight:0.000000e+00
```
Two tests are added to this fix. The X86 test fails without the patch.
The PowerPC test passes with and without the patch but is added as a way
track future possible failures when register classes are changed in a
future patch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250666
Commit: 489d80ed2bd407d42ac8d1764846c03c8ccc4cf9
https://github.com/llvm/llvm-project/commit/489d80ed2bd407d42ac8d1764846c03c8ccc4cf9
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/docs/configure.rst
Log Message:
-----------
[libc] Fix leftover debug commandline argument
Summary: Fixes https://github.com/llvm/llvm-project/issues/100289
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250809
Commit: 5adb7de50b8fe225949abba3f8116de8fd1a0a85
https://github.com/llvm/llvm-project/commit/5adb7de50b8fe225949abba3f8116de8fd1a0a85
Author: WANG Rui <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
Log Message:
-----------
[LoongArch][test] Pre-commit for fix codegen for ISD::ROTR. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250726
Commit: 3519d8e1387769768006ee42df8e98d55e26de2d
https://github.com/llvm/llvm-project/commit/3519d8e1387769768006ee42df8e98d55e26de2d
Author: WANG Rui <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
Log Message:
-----------
[LoongArch][test] Revert "Pre-commit for fix codegen for ISD::ROTR". NFC
Summary: This reverts commit bc829b501d0ffa93019d29b0294e998d3dbb3d7a.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250619
Commit: b5b11b61077e5345fba5a073b7c08ea1aec1ddc0
https://github.com/llvm/llvm-project/commit/b5b11b61077e5345fba5a073b7c08ea1aec1ddc0
Author: Lang Hames <lhames at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
A llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_common_x_and_addr_getter.s
A llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_strong_x_and_addr_getter.s
A llvm/test/ExecutionEngine/JITLink/AArch64/MachO_common_symbol_x_multiple_defs.s
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_common_symbol.s
Log Message:
-----------
[ORC][JITLink] Treat common symbols as weak definitions.
Summary:
Duplicate common definitions should be coaleseced, rather than being treated as
duplicate definitions. Strong definitions should override common definitions.
rdar://132314264
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250635
Commit: 017b62d96a22ecbc901d1bf8f8b8a323197ac090
https://github.com/llvm/llvm-project/commit/017b62d96a22ecbc901d1bf8f8b8a323197ac090
Author: quartersdg <sdgoglin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
M mlir/lib/AsmParser/AsmParserImpl.h
M mlir/lib/AsmParser/Parser.cpp
M mlir/lib/AsmParser/Parser.h
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestAttributes.cpp
M mlir/test/mlir-tblgen/testdialect-attrdefs.mlir
Log Message:
-----------
Add AsmParser::parseDecimalInteger. (#96255)
Summary:
An attribute parser needs to parse lists of possibly negative integers
separated by x in a way which is foiled by parseInteger handling hex
formats and parseIntegerInDimensionList does not allow negatives.
---------
Co-authored-by: Jacques Pienaar <jpienaar at google.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250672
Commit: a611c168e987fc5648fb51cb64585f87b9a754f7
https://github.com/llvm/llvm-project/commit/a611c168e987fc5648fb51cb64585f87b9a754f7
Author: Lang Hames <lhames at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
R llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_common_x_and_addr_getter.s
R llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_strong_x_and_addr_getter.s
R llvm/test/ExecutionEngine/JITLink/AArch64/MachO_common_symbol_x_multiple_defs.s
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_common_symbol.s
Log Message:
-----------
Revert "[ORC][JITLink] Treat common symbols as weak definitions."
Summary:
This reverts commit 785d376d1231167688dd12f93c5c0a5d46cd4086 while I
investigate some bot failures (e.g.
https://lab.llvm.org/buildbot/#/builders/3/builds/1983).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250752
Commit: a0d74e2e3d34d85891979e9ad53447174bbea58a
https://github.com/llvm/llvm-project/commit/a0d74e2e3d34d85891979e9ad53447174bbea58a
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
M llvm/test/CodeGen/RISCV/rvv/rvv-out-arguments.ll
M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops-mir.ll
M llvm/test/CodeGen/RISCV/rvv/vpload.ll
M llvm/test/CodeGen/RISCV/rvv/vpstore.ll
M llvm/test/CodeGen/RISCV/rvv/vselect-fp.ll
Log Message:
-----------
[RISCV] Add unit strided load/store to whole register peephole (#100116)
Summary:
This adds a new vector peephole that converts unmasked, VLMAX
vleN.v/vseN.v to their whole register equivalents.
It replaces the existing tablegen patterns on ISD::LOAD/ISD::STORE and
is a bit more general since it also catches VP loads and stores and
@llvm.riscv intrinsics.
The heavy lifting of detecting a VLMAX AVL and an all-ones mask is
already taken care of by existing peepholes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250662
Commit: 036ec2a111fa577f9aef562db09dff56a282e72e
https://github.com/llvm/llvm-project/commit/036ec2a111fa577f9aef562db09dff56a282e72e
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/cpu_model/x86.c
M llvm/lib/TargetParser/Host.cpp
Log Message:
-----------
Reland "[compiler-rt][X86] Use functions in cpuid.h instead of inline assembly (#97877)"
Summary:
This reverts commit f1905f064451bf688577976a13000c9c47e58452.
This relands commit 19cf8deabe1124831164987f1b9bf2f806c0a875.
There were issues with the preprocessor includes that should have
excluded MSVC still including clang functions building on windows and
using intrin.h. This relanding fixes this behavior by additionally
wrapping the uses of __get_cpuid and __get_cpuid_count in _MSC_VER so
that clang in MSVC mode, which includes intrin.h, does not have any
conflicts.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250754
Commit: 486d963d1ce4825467de6006028a2d24897a6498
https://github.com/llvm/llvm-project/commit/486d963d1ce4825467de6006028a2d24897a6498
Author: Kai Yan <aklkaiyan at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/WindowScheduler.cpp
A llvm/test/CodeGen/Hexagon/swp-ws-zero-cost.mir
Log Message:
-----------
[llvm][CodeGen] Fixed max cycle calculation with zero-cost instructions for window scheduler (#99454)
Summary:
We discovered some scheduling failures occurring when zero-cost
instructions were involved. This issue will be addressed by this patch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250685
Commit: 1f378e65921a6cb724b6d51f621e99070dc52148
https://github.com/llvm/llvm-project/commit/1f378e65921a6cb724b6d51f621e99070dc52148
Author: Kai Yan <aklkaiyan at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/WindowScheduler.cpp
M llvm/test/CodeGen/Hexagon/swp-ws-fail-2.mir
Log Message:
-----------
[llvm][CodeGen] Added missing initialization failure information for window scheduler (#99449)
Summary: Added missing initialization failure information for window scheduler.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250707
Commit: 48fbceb56659fad7df11c4116e250305b1a7f8df
https://github.com/llvm/llvm-project/commit/48fbceb56659fad7df11c4116e250305b1a7f8df
Author: hev <wangrui at loongson.cn>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
Log Message:
-----------
[LoongArch] Fix codegen for ISD::ROTR (#100292)
Summary:
This patch fixes the code generation for IR:
sext i32 (trunc i64 (rotr i64 %x, i64 %y) to i32) to i64
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250768
Commit: 82c5b817369356c0124f718b5156a1e522423eaf
https://github.com/llvm/llvm-project/commit/82c5b817369356c0124f718b5156a1e522423eaf
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/pr99782.ll
Log Message:
-----------
[RISCV] Update test for #99821 after #100116. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250730
Commit: 255fad9669eb8180d52a8cba2ee0869843cb18cf
https://github.com/llvm/llvm-project/commit/255fad9669eb8180d52a8cba2ee0869843cb18cf
Author: Kai Yan <aklkaiyan at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachinePipeliner.cpp
A llvm/test/CodeGen/Hexagon/swp-ws-pragma-initiation-interval-fail.mir
Log Message:
-----------
[llvm][CodeGen] Added a new restriction for II by pragma in window scheduler (#99448)
Summary:
Added a new restriction for window scheduling.
Window scheduling is disabled when llvm.loop.pipeline.initiationinterval
is set.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250697
Commit: 6104f3c81a62ea6f2af8880e89249a00cdafc2a2
https://github.com/llvm/llvm-project/commit/6104f3c81a62ea6f2af8880e89249a00cdafc2a2
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
A llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp
Log Message:
-----------
[GlobalIsel][NFC] Move cast code (#100196)
Summary: Preparation for more cast combines
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250659
Commit: 975a1b4cded715396a6d945f5b34f4c123884083
https://github.com/llvm/llvm-project/commit/975a1b4cded715396a6d945f5b34f4c123884083
Author: Zhaoshi Zheng <zhaoshiz at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization-scalable.mlir
M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
A mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/reduce_1d.mlir
A mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/reduce_2d.mlir
Log Message:
-----------
[MLIR][Linalg] Scalable Vectorization of Reduction on the Trailing Dimension (#97788)
Summary:
Allow scalable vectorization of linalg::reduce and linalg::generic that has
reduction iterator(s) with two restrictions:
1. The reduction dim is the last (innermost) dim of the op; and
2. Only the reduction dim is requested for scalable vectorization.
One exception is that scalable vectorization of the reduction dim in
Matmul-like ops are not supported even above restrictions are met.
Allowed combinations of scalable flags and iterator types:
Matmul:
Iterators: ["parallel", "parallel", "reduction"]
Scalable Flags: ["true", "true", "false"]
["false", "true", "false"]
Matvec:
Iterators: ["parallel", "reduction"]
Scalable Flags: ["false", "true"]
["true", "false"]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250598
Commit: 69eb318974266cd8265f59d7391c4ee89f61a6db
https://github.com/llvm/llvm-project/commit/69eb318974266cd8265f59d7391c4ee89f61a6db
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/warn-fsyntax-only.c
Log Message:
-----------
[Driver] Don't claim -c/-S
Summary:
Remove the TODO I left in commit
a07b135ce0c0111bd83450b5dc29ef0381cdbc39.
We will now warn about `-c/-S` with `-fsyntax-only`. This relands #98607
with a specific target triple.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250579
Commit: 0f424c5f1a4df5215caf7e4bca38d20054a4c952
https://github.com/llvm/llvm-project/commit/0f424c5f1a4df5215caf7e4bca38d20054a4c952
Author: Hongyu Chen <hongyc4 at uci.edu>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/ELF/ScriptLexer.cpp
M lld/ELF/ScriptLexer.h
M lld/ELF/ScriptParser.cpp
Log Message:
-----------
[ELF] Remove `consumeLabel` in ScriptLexer (#99567)
Summary:
This commit removes `consumeLabel` since we can just use consume
function to have the same functionalities.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250691
Commit: 0c02644ab552f0fb5c869df279c606dd9bf297c7
https://github.com/llvm/llvm-project/commit/0c02644ab552f0fb5c869df279c606dd9bf297c7
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/AST/Interp/literals.cpp
Log Message:
-----------
[clang][Interp][test] Try to make a test case work on Windows
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250664
Commit: f4b12a6f7576ccf0aa2dd8a21a3459b0c962f454
https://github.com/llvm/llvm-project/commit/f4b12a6f7576ccf0aa2dd8a21a3459b0c962f454
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
A llvm/test/Transforms/InstCombine/remquo.ll
A llvm/test/Transforms/InstCombine/remquol-fp128.ll
A llvm/test/Transforms/InstCombine/remquol-fp80.ll
A llvm/test/Transforms/InstCombine/remquol-ppc-fp128.ll
Log Message:
-----------
[SimplifyLibCalls] Constant fold `remquo` (#99647)
Summary:
This patch adds constant folding support for `remquo`.
Reference: https://en.cppreference.com/w/cpp/numeric/math/remquo
Closes https://github.com/llvm/llvm-project/issues/99497.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250753
Commit: d0ee39018f4d1b013e3e51c8687ae9114d26ebd5
https://github.com/llvm/llvm-project/commit/d0ee39018f4d1b013e3e51c8687ae9114d26ebd5
Author: Alexander Shaposhnikov <ashaposhnikov at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/nsan/CMakeLists.txt
A compiler-rt/test/nsan/alloca.cpp
A compiler-rt/test/nsan/helpers.h
M compiler-rt/test/nsan/lit.cfg.py
M compiler-rt/test/nsan/lit.site.cfg.py.in
A compiler-rt/test/nsan/sum.cpp
Log Message:
-----------
[compiler-rt][nsan] Add lit config for tests (#100286)
Summary: Initial setup for tests.
Test Plan: ninja check-nsan
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250720
Commit: 5b0704c021b16760fa0210a9c892e69e26efbef3
https://github.com/llvm/llvm-project/commit/5b0704c021b16760fa0210a9c892e69e26efbef3
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
R llvm/test/CodeGen/RISCV/pr89833.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-load-store.ll
R llvm/test/CodeGen/RISCV/rvv/strided-load-store-intrinsics.ll
M llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll
Log Message:
-----------
[RISCV] Emit VP strided loads/stores in RISCVGatherScatterLowering (#98111)
Summary:
RISCVGatherScatterLowering is the last user of
riscv_masked_strided_{load,store} after #98131 and #98112, this patch
changes it to emit the VP equivalent instead. This allows us to remove
the masked_strided intrinsics so we have only have one lowering path.
riscv_masked_strided_{load,store} didn't have AVL operands and were
always VLMAX, so this passes in the fixed or scalable element count to
the EVL instead, which RISCVVectorPeephole should now convert to VLMAX
after #97800.
For loads we also use a vp_select to get passthru (mask undisturbed)
behaviour
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250735
Commit: 0453443ce27c196216e05c79cf6f3e89fb064156
https://github.com/llvm/llvm-project/commit/0453443ce27c196216e05c79cf6f3e89fb064156
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ExprConstant.cpp
M clang/test/CXX/drs/cwg18xx.cpp
M clang/test/SemaCXX/constant-expression-cxx11.cpp
M clang/test/SemaCXX/constant-expression-cxx2b.cpp
M clang/test/SemaCXX/cxx23-invalid-constexpr.cpp
Log Message:
-----------
[clang][ExprConst] Allow non-literal types in C++23 (#100062)
Summary:
Instead of diagnosing non-literal types in C++23, allow them and later
diagnose them differently, e.g. because they have a non-constexpr
constructor, destructor, etc.
For this test:
```c++
struct NonLiteral {
NonLiteral() {}
};
constexpr int foo() {
NonLiteral L;
return 1;
}
// static_assert(foo() == 1);
```
The current diagnostics with c++20/c++23 are:
```console
~/code/llvm-project/build » clang -c array.cpp -std=c++20
array.cpp:91:14: error: variable of non-literal type 'NonLiteral' cannot be defined in a constexpr function before C++23
91 | NonLiteral L;
| ^
array.cpp:87:8: note: 'NonLiteral' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors
87 | struct NonLiteral {
| ^
1 error generated.
------------------------------------------------------------
~/code/llvm-project/build » clang -c array.cpp -std=c++23
(no output)
```
With the `static_assert` enabled, compiling with `-std=c++23` prints:
```console
array.cpp:95:15: error: static assertion expression is not an integral constant expression
95 | static_assert(foo() == 1);
| ^~~~~~~~~~
array.cpp:91:14: note: non-literal type 'NonLiteral' cannot be used in a constant expression
91 | NonLiteral L;
| ^
array.cpp:95:15: note: in call to 'foo()'
95 | static_assert(foo() == 1);
| ^~~~~
1 error generated.
```
As mentioned in #60311, this is confusing. The output with c++20
suggests that using c++23 will make the problem go away, but it's
diagnosed the same when running the function.
With this commit, the output instead diagnoses _why_ the non-literal
type can't be used:
```console
array.cpp:95:15: error: static assertion expression is not an integral constant expression
95 | static_assert(foo() == 1);
| ^~~~~~~~~~
array.cpp:91:14: note: non-constexpr constructor 'NonLiteral' cannot be used in a constant expression
91 | NonLiteral L;
| ^
array.cpp:95:15: note: in call to 'foo()'
95 | static_assert(foo() == 1);
| ^~~~~
array.cpp:88:3: note: declared here
88 | NonLiteral() {}
| ^
1 error generated.
```
Fixes #60311
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250647
Commit: f59699b332985b2c765818c2acfd74a610081a35
https://github.com/llvm/llvm-project/commit/f59699b332985b2c765818c2acfd74a610081a35
Author: Lang Hames <lhames at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_common_symbol.s
Log Message:
-----------
Re-apply "[ORC][JITLink] Treat common symbols as weak definitions." with fixes.
Summary:
This reapplies 785d376d123, which was reverted in c49837f5f68 due to bot
failures. The fix was to relax some asserts to allow common symbols to be
resolved with either common or weak flags, rather than requiring one or the
other.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250682
Commit: b0021875a29261a53d31216a1a118e64b4e579a9
https://github.com/llvm/llvm-project/commit/b0021875a29261a53d31216a1a118e64b4e579a9
Author: Lang Hames <lhames at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_common_x_and_addr_getter.s
A llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_strong_x_and_addr_getter.s
A llvm/test/ExecutionEngine/JITLink/AArch64/MachO_common_symbol_x_multiple_defs.s
Log Message:
-----------
[ORC] Re-add test files that were accidentally left out of e7698a13e31.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250698
Commit: d6a065897eae9dee982e1d4b822d618f5cac21d5
https://github.com/llvm/llvm-project/commit/d6a065897eae9dee982e1d4b822d618f5cac21d5
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGISel.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
M llvm/unittests/CodeGen/SelectionDAGAddressAnalysisTest.cpp
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
Reland "SelectionDAG: Avoid using MachineFunction::getMMI" (#99779)
Summary:
Reverts llvm/llvm-project#99777
Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250744
Commit: 07ec468ffa87e72acc3485d53894b9df2a3e3d54
https://github.com/llvm/llvm-project/commit/07ec468ffa87e72acc3485d53894b9df2a3e3d54
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/lib/Target/AMDGPU/Utils/AMDGPUAsanInstrumentation.cpp
A llvm/lib/Target/AMDGPU/Utils/AMDGPUAsanInstrumentation.h
M llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
Log Message:
-----------
[AMDGPU] Utilities to asan instrument memory instructions. (#98863)
Summary:
This change adds the utilities required to asan instrument memory
instructions. In "amdgpu-sw-lower-lds" pass #87265, during lowering from
LDS to global memory, new instructions in global memory would be created
which need to be asan instrumented.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250756
Commit: d5c8f9393a6b02895bc06f5f2a2d4b497c201801
https://github.com/llvm/llvm-project/commit/d5c8f9393a6b02895bc06f5f2a2d4b497c201801
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
Log Message:
-----------
[compiler-rt] Implement `DumpAllRegisters` for arm-linux and aarch64-linux (#99613)
Examples of the output:
ARM:
```
# ./a.out
AddressSanitizer:DEADLYSIGNAL
=================================================================
==122==ERROR...
Summary:
...: AddressSanitizer: SEGV on unknown address 0x0000007a (pc 0x76e13ac0 bp 0x7eb7fd00 sp 0x7eb7fcc8 T0)
==122==The signal is caused by a READ memory access.
==122==Hint: address points to the zero page.
#0 0x76e13ac0 (/lib/libc.so.6+0x7cac0)
#1 0x76dce680 in gsignal (/lib/libc.so.6+0x37680)
#2 0x005c2250 (/root/a.out+0x145250)
#3 0x76db982c (/lib/libc.so.6+0x2282c)
#4 0x76db9918 in __libc_start_main (/lib/libc.so.6+0x22918)
==122==Register values:
r0 = 0x00000000 r1 = 0x0000007a r2 = 0x0000000b r3 = 0x76d95020
r4 = 0x0000007a r5 = 0x00000001 r6 = 0x005dcc5c r7 = 0x0000010c
r8 = 0x0000000b r9 = 0x76f9ece0 r10 = 0x00000000 r11 = 0x7eb7fd00
r12 = 0x76dce670 sp = 0x7eb7fcc8 lr = 0x76e13ab4 pc = 0x76e13ac0
AddressSanitizer can not provide additional info.
AddressSanitizer: SEGV (/lib/libc.so.6+0x7cac0)
==122==ABORTING
```
AArch64:
```
# ./a.out
UndefinedBehaviorSanitizer:DEADLYSIGNAL
==99==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address 0x000000000063 (pc 0x007fbbbc5860 bp 0x007fcfdcb700 sp 0x007fcfdcb700 T99)
==99==The signal is caused by a UNKNOWN memory access.
==99==Hint: address points to the zero page.
#0 0x007fbbbc5860 (/lib64/libc.so.6+0x82860)
#1 0x007fbbb81578 (/lib64/libc.so.6+0x3e578)
#2 0x00556051152c (/root/a.out+0x3152c)
#3 0x007fbbb6e268 (/lib64/libc.so.6+0x2b268)
#4 0x007fbbb6e344 (/lib64/libc.so.6+0x2b344)
#5 0x0055604e45ec (/root/a.out+0x45ec)
==99==Register values:
x0 = 0x0000000000000000 x1 = 0x0000000000000063 x2 = 0x000000000000000b x3 = 0x0000007fbbb41440
x4 = 0x0000007fbbb41580 x5 = 0x3669288942d44cce x6 = 0x0000000000000000 x7 = 0x00000055605110b0
x8 = 0x0000000000000083 x9 = 0x0000000000000000 x10 = 0x0000000000000000 x11 = 0x0000000000000000
x12 = 0x0000007fbbdb3360 x13 = 0x0000000000010000 x14 = 0x0000000000000039 x15 = 0x00000000004113a0
x16 = 0x0000007fbbb81560 x17 = 0x0000005560540138 x18 = 0x000000006474e552 x19 = 0x0000000000000063
x20 = 0x0000000000000001 x21 = 0x000000000000000b x22 = 0x0000005560511510 x23 = 0x0000007fcfdcb918
x24 = 0x0000007fbbdb1b50 x25 = 0x0000000000000000 x26 = 0x0000007fbbdb2000 x27 = 0x000000556053f858
x28 = 0x0000000000000000 fp = 0x0000007fcfdcb700 lr = 0x0000007fbbbc584c sp = 0x0000007fcfdcb700
UndefinedBehaviorSanitizer can not provide additional info.
UndefinedBehaviorSanitizer: SEGV (/lib64/libc.so.6+0x82860)
==99==ABORTING
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250739
Commit: f6823521c9ff8ece7b8d5df4879cfbbe2cd2317d
https://github.com/llvm/llvm-project/commit/f6823521c9ff8ece7b8d5df4879cfbbe2cd2317d
Author: Yi-Chi Lee <55395582+yichi170 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Lex/PPMacroExpansion.cpp
Log Message:
-----------
[clang] replaced the usage of `asctime` with `std::put_time` (#99075)
Summary:
In `clang/lib/Lex/PPMacroExpansion.cpp`, replaced the usage of the
obsolete `asctime` function with `std::put_time` for generating
timestamp strings.
Fixes: https://github.com/llvm/llvm-project/issues/98724
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250729
Commit: 3a9df50aea62ba4e0439108d4fe08400481a5ad4
https://github.com/llvm/llvm-project/commit/3a9df50aea62ba4e0439108d4fe08400481a5ad4
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/cpu_model/x86.c
Log Message:
-----------
[compiler-rt][builtins] Fix `-Werror` build problem (#100312)
Summary:
GCC-14.1.1 emit an error due to uninitialized variables
x86.c:303:17: error: ‘EAX’ may be used uninitialized
[-Werror=maybe-uninitialized]
x86.c:970:35: error: ‘MaxLevel’ may be used uninitialized
[-Werror=maybe-uninitialized]
x86.c:987:48: error: ‘MaxExtLevel’ may be used uninitialized
[-Werror=maybe-uninitialized]
It doesn't handle properly that these variables initialized indirectly
in functions that takes pointers to them
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250613
Commit: 624920618711243f8583047969aa40c471f8e497
https://github.com/llvm/llvm-project/commit/624920618711243f8583047969aa40c471f8e497
Author: Rainer Orth <ro at gcc.gnu.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/config-ix.cmake
M compiler-rt/lib/asan/tests/CMakeLists.txt
M compiler-rt/test/asan/Unit/lit.site.cfg.py.in
Log Message:
-----------
[asan][cmake][test] Fix finding dynamic asan runtime lib (#100083)
Summary:
In a `runtimes` build on Solaris/amd64, there are two failues:
```
AddressSanitizer-Unit :: ./Asan-i386-calls-Dynamic-Test/failed_to_discover_tests_from_gtest
AddressSanitizer-Unit :: ./Asan-i386-inline-Dynamic-Test/failed_to_discover_tests_from_gtest
```
This happens when `lit` enumerates the tests with `--gtest_list_tests
--gtest_filter=-*DISABLED_*`. The error is twofold:
- The `LD_LIBRARY_PATH*` variables point at the 64-bit directory
(`lib/clang/19/lib/x86_64-pc-solaris2.11`) for a 32-bit test:
```
ld.so.1: Asan-i386-calls-Dynamic-Test: fatal:
/var/llvm/local-amd64-release-stage2-A-flang-clang18-runtimes/tools/clang/stage2-bins/./lib/../lib/clang/19/lib/x86_64-pc-solaris2.11/libclang_rt.asan.so:
wrong ELF class: ELFCLASS64
```
- While the tests are linked with `-Wl,-rpath`, that path always is the
64-bit directory again.
Accordingly, the fix consists of two parts:
- The code in `compiler-rt/test/asan/Unit/lit.site.cfg.py.in` to adjust
the `LD_LIBRARY_PATH*` variables is guarded by a `config.target_arch !=
config.host_arch` condition. This is wrong in two ways:
- The adjustment is always needed independent of the host arch. This is
what `compiler-rt/test/lit.common.cfg.py` already does.
- Besides, `config.host_arch` is ultimately set from
`CMAKE_HOST_SYSTEM_PROCESSOR`. On Linux/x86_64, this is `x86_64` (`uname
-m`) while on Solaris/amd64 it's `i386` (`uname -p`), explaining why the
transformation is skipped on Solaris, but not on Linux.
- Besides, `RPATH` needs to be set to the correct subdirectory, so
instead of using the default arch in `compiler-rt/CMakeLists.txt`, this
patch moves the code to a function which takes the test's arch into
account.
Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250675
Commit: 4c9d326ce901e55cad683d212c551398e8aa13e1
https://github.com/llvm/llvm-project/commit/4c9d326ce901e55cad683d212c551398e8aa13e1
Author: Edd Dawson <edd.dawson at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/test/Driver/debug-options.c
M clang/test/Driver/lto-jobs.c
M clang/test/Driver/ps4-linker.c
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
A llvm/test/DebugInfo/X86/debug-aranges-sce-tuning.test
M llvm/test/DebugInfo/debuglineinfo-path.ll
Log Message:
-----------
[PS4/PS5][Driver][DWARF] Always emit .debug_aranges for SCE tuning (#100160)
Summary:
Some of SIE's post-mortem analysis infrastructure currently makes use of
.debug_aranges, so we'd like to ensure the section's presence in
PlayStation binaries. The simplest way to do this is to force emission
when the debugger tuning is set to SCE (which is in turn typically
initialized from the target triple). This also simplifies the driver.
llvm/test/DebugInfo/debuglineinfo-path.ll has been marked as UNSUPPORTED
on PlayStation. When aranges are emitted, the DWARF in the test case is
such that relocations need to be applied to the aranges section in order
for symbolization to work. An alternative approach would be to implement
the application of relocations in DWARFDebugArangeSet. While experiments
show that this can be made to work with a modest patch, the test cases
would be rather contrived. Since I expect the only utility for such a
change would be to make this test case pass for PlayStation targets, and
few - if any - outside of PlayStation care about aranges, UNSUPPORTED
would seem to be a more practical option.
This was originally commited as 22eb290a96 (#99629) and later reverted
at 84658fb82b (#99711) due to test failures on SIE built bots. These
failures shouldn't recur due to 3b24e5d450 (#99897) and the
aforementioned change to debuglineinfo-path.ll.
SIE tracker: TOOLCHAIN-16951
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250743
Commit: 79ec1ea5c2f8174c3983cc5baa3cc8ac51542f3c
https://github.com/llvm/llvm-project/commit/79ec1ea5c2f8174c3983cc5baa3cc8ac51542f3c
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/nsan/nsan.cpp
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
M llvm/test/Instrumentation/NumericalStabilitySanitizer/memory.ll
Log Message:
-----------
[nsan] Emit calls to optimized functions (#98900)
Summary:
As previously noted in nsan.cpp we can implement
optimized variants of `__nsan_copy_values` and
`__nsan_set_value_unknown` if a memory operation
size is known.
Now the instrumentation creates calls to optimized functions if there is
4, 8 or 16-byte memory operation like
`memset(X, value, 4/8/16)` or `memcpy(dst, src, 4/8/16)`
nsan.cpp provides definitions of the optimized functions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250636
Commit: 9e1d5380123ee49d2153453c98f337d1564e2dd8
https://github.com/llvm/llvm-project/commit/9e1d5380123ee49d2153453c98f337d1564e2dd8
Author: Sam Parker <sam.parker at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/test/CodeGen/WebAssembly/simd-arith.ll
M llvm/test/CodeGen/WebAssembly/vector-reduce.ll
Log Message:
-----------
[WebAssembly] Ofast pmin/pmax pattern matchers (#100107)
Summary:
With fast-math, the ordered setcc nodes are converted to setcc nodes
which do not care about NaNs, so add patterns that use setlt, setle,
setgt and setge.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250651
Commit: 3fa709a62fd4b70d1855f7fe8722ec3cb39ac922
https://github.com/llvm/llvm-project/commit/3fa709a62fd4b70d1855f7fe8722ec3cb39ac922
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Transforms/AbstractResult.cpp
M flang/test/Fir/abstract-results.fir
Log Message:
-----------
[flang] fix C_PTR function result lowering (#100082)
Summary:
Functions returning C_PTR were lowered to function returning intptr (i64
on 64bit arch). This caused conflicts when these functions were defined
as returning !fir.ref<none>/llvm.ptr in other compiler generated
contexts (e.g., malloc).
Lower them to return !fir.ref<none>.
This should deal with https://github.com/llvm/llvm-project/issues/97325
and https://github.com/llvm/llvm-project/issues/98644.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250769
Commit: 2989d5d4a4993150cf0e946f5c16702030a10dc6
https://github.com/llvm/llvm-project/commit/2989d5d4a4993150cf0e946f5c16702030a10dc6
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/MIRPrinter.h
M llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
M llvm/lib/CodeGen/MIRPrinter.cpp
M llvm/lib/CodeGen/MIRPrintingPass.cpp
M llvm/lib/CodeGen/MachineModuleSlotTracker.cpp
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
M llvm/unittests/MIR/MachineMetadata.cpp
Log Message:
-----------
CodeGen: Avoid using MachineFunction::getMMI in MachineModuleSlotTracker (#100310)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250620
Commit: 5d98770eeaf8803db375c4d9196c429be5eb467b
https://github.com/llvm/llvm-project/commit/5d98770eeaf8803db375c4d9196c429be5eb467b
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
Log Message:
-----------
[LV] Mark dead instructions in loop as free.
Summary:
Update collectValuesToIgnore to also ignore dead instructions in the
loop. Such instructions will be removed by VPlan-based DCE and won't be
considered by the VPlan-based cost model.
This closes a gap between the legacy and VPlan-based cost model. In
practice with the default pipelines, there shouldn't be any dead
instructions in loops reaching LoopVectorize, but it is easy to generate
such cases by hand or automatically via fuzzers.
Fixes https://github.com/llvm/llvm-project/issues/99701.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250593
Commit: 8debbb6551c02c96372576f22473fdf42b9b3e57
https://github.com/llvm/llvm-project/commit/8debbb6551c02c96372576f22473fdf42b9b3e57
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/M68k/M68kFrameLowering.cpp
Log Message:
-----------
M68k: Remove hasDebugInfo check
Summary: Follow up to a03935b9841c4e30b27dd9399e0b93191ad443f3
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250649
Commit: 94e36f64facfac2db833fdd66f714fc5a8eb501e
https://github.com/llvm/llvm-project/commit/94e36f64facfac2db833fdd66f714fc5a8eb501e
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/Headers/ptrauth.h
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExpr.cpp
A clang/test/AST/ast-dump-ptrauth-json.cpp
M clang/test/CodeGenCXX/mangle-fail.cpp
M clang/test/Sema/ptrauth-intrinsics-macro.c
A clang/test/SemaCXX/ptrauth-type-discriminator.cpp
Log Message:
-----------
[PAC] Define __builtin_ptrauth_type_discriminator (#100204)
Summary:
The builtin computes the discriminator for a type, which can be used to
sign/authenticate function pointers and member function pointers.
If the type passed to the builtin is a C++ member function pointer type,
the result is the discriminator used to signed member function pointers
of that type. If the type is a function, function pointer, or function
reference type, the result is the discriminator used to sign functions
of that type. It is ill-formed to use this builtin with any other type.
A call to this function is an integer constant expression.
Co-Authored-By: John McCall rjmccall at apple.com
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250631
Commit: 9c03782e4101d1d495ab038d3f403cdda23b4574
https://github.com/llvm/llvm-project/commit/9c03782e4101d1d495ab038d3f403cdda23b4574
Author: Jessica Del <50999226+OutOfCache at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.atomic.buffer.load.ll
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.atomic.buffer.load.ll
Log Message:
-----------
[AMDGPU] Add intrinsics for atomic struct buffer loads (#100140)
Summary:
Mark these intrinsics as atomic loads within LLVM to prevent hoisting
out of loops in cases where
the load is considered invariant.
Similar to https://github.com/llvm/llvm-project/pull/97707, but for
struct buffer loads.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250668
Commit: c3e350986e7826f4c3782d7480b449dd968f0311
https://github.com/llvm/llvm-project/commit/c3e350986e7826f4c3782d7480b449dd968f0311
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
Log Message:
-----------
[LSR] Fix matching vscale immediates (#100080)
Summary:
Somewhat confusingly a `SCEVMulExpr` is a `SCEVNAryExpr`, so can have
> 2 operands. Previously, the vscale immediate matching did not check
the number of operands of the `SCEVMulExpr`, so would ignore any
operands after the first two.
This led to incorrect codegen (and results) for ArmSME in IREE
(https://github.com/iree-org/iree), which sometimes addresses things
that are a `vscale * vscale` multiple away. The test added with this
change shows an example reduced from IREE. The second write should
be offset from the first `16 * vscale * vscale` (* 4 bytes), however,
previously LSR dropped the second vscale and instead offset the write by
`#4, mul vl`, which is an offset of `16 * vscale` (* 4 bytes).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250721
Commit: 6eb8b3fb3378af33f6f27e2ae28f50045771afb3
https://github.com/llvm/llvm-project/commit/6eb8b3fb3378af33f6f27e2ae28f50045771afb3
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/CodeGen/TargetInstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.h
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86InstrInfo.h
Log Message:
-----------
MachineOutliner: Use PM to query MachineModuleInfo (#99688)
Summary: Avoid getting this from the MachineFunction
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250736
Commit: 8f3052cc4c00ff1a1301777b73be6f0eb3800ae2
https://github.com/llvm/llvm-project/commit/8f3052cc4c00ff1a1301777b73be6f0eb3800ae2
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
Log Message:
-----------
[nsan] Fix `Wstring-conversion` error (#100328)
Summary:
Fix error: implicit conversion turns string literal into bool: 'const
char[46]' to 'bool' [-Werror,-Wstring-conversion]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250690
Commit: 63349ce542e03c6d308ace61cd6e8b37c8ade6e6
https://github.com/llvm/llvm-project/commit/63349ce542e03c6d308ace61cd6e8b37c8ade6e6
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/libcxx/clang_modules_include.gen.py
M libcxx/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.statics/classic_table.pass.cpp
Log Message:
-----------
[libcxx][test] Update picolib xfails (#99631)
Summary:
clang_modules_include.gen.py works now, and I added some background to
classic_table.pass.cpp.
Opened https://github.com/picolibc/picolibc/issues/778 to see if that
one is possible to fix.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250696
Commit: 935a4bdffa0805e736e0512a356dc3d1e6694f6f
https://github.com/llvm/llvm-project/commit/935a4bdffa0805e736e0512a356dc3d1e6694f6f
Author: John Brawn <john.brawn at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineBlockPlacement.cpp
A llvm/test/CodeGen/ARM/block-order.mir
Log Message:
-----------
[CodeGen] Restore MachineBlockPlacement block ordering (#99351)
Summary:
PR #91843 changed the algorithm used to find the next unplaced block so
that it iterates through the blocks in BlockFilter instead of iterating
through the blocks in the function and checking if they are in the block
filter. Unfortunately this sometimes results in a different block
ordering being chosen, as the order of blocks in BlockFilter comes from
the order in MachineLoopInfo, and in some cases this differs from the
order they are in the function. This can also give an end result that
has worse performance.
Fix this by making collectLoopBlockSet place blocks in its output in the
order that they are in the function.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250623
Commit: b2ed324c3891045e2ce22f8c86729586455b2a73
https://github.com/llvm/llvm-project/commit/b2ed324c3891045e2ce22f8c86729586455b2a73
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/test/AST/Interp/literals.cpp
Log Message:
-----------
[clang][Interp] Bail out on value dependent variable initializers
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250693
Commit: 1fb781547b61e938a4ee8f5b17494aaea9246a0f
https://github.com/llvm/llvm-project/commit/1fb781547b61e938a4ee8f5b17494aaea9246a0f
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/ASTContext.cpp
Log Message:
-----------
[ASTContext] Make the end of the switch case unreachable in `encodeTypeForFunctionPointerAuth` (#99763)
Summary: This prevent the warning from compiler.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250722
Commit: eb475e27456db4a1a31c0efd752913bd5bce5796
https://github.com/llvm/llvm-project/commit/eb475e27456db4a1a31c0efd752913bd5bce5796
Author: Sergio Afonso <safonsof at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt
Log Message:
-----------
[MLIR][OpenMP] Keep -verify-openmp-ops output as dependency (#99638)
Summary:
Currently, the `mlir-tblgen -verify-openmp-ops` pseudo-backend, which
only performs an OpenMP dialect-specific set of checks and produces no
output, is prevented from being added as a dependency to the
`MLIROpenMPOpsIncGen` tablegen target.
However, a consequence of this is that it is not triggered with every
modification of the OpenMPOps.td file it's intended to check, although
it should. This patch fixes the issue by letting the empty output file
to be added to the `TABLEGEN_OUTPUT` CMake variable used by the
`add_public_tablegen_target` command below to set up dependencies.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250680
Commit: 3806550dc6625ed6fb1618a5ccaa486a1e98a764
https://github.com/llvm/llvm-project/commit/3806550dc6625ed6fb1618a5ccaa486a1e98a764
Author: Luke Lau <luke at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
R llvm/test/CodeGen/RISCV/rvv/combine-vmv.ll
A llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.ll
Log Message:
-----------
[RISCV] Update combine-vmv.ll to have more foldable cases. NFC
Summary:
A lot of cases have differing AVLs which aren't foldable, update them so the peephole triggers on them and add explicit cases for non-foldable AVLs.
Also rename it to vmv.v.v-peephole.ll since it's not actually a DAG combine.
And remove a TODO, it's correct to fold if the two passthrus are the same.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250727
Commit: cd02bd97a81ce97e3d85386cc057b5fa630c204f
https://github.com/llvm/llvm-project/commit/cd02bd97a81ce97e3d85386cc057b5fa630c204f
Author: Pavel Skripkin <paskripkin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/analyzer/checkers/mismatched_deallocator_example.cpp
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/test/Analysis/Inputs/expected-plists/plist-macros.cpp.plist
M clang/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp
M clang/test/Analysis/MismatchedDeallocator-checker-test.mm
M clang/test/Analysis/NewDelete-intersections.mm
M clang/test/Analysis/free.c
M clang/test/Analysis/free.cpp
M clang/test/Analysis/getline-alloc.c
M clang/test/Analysis/kmalloc-linux.c
M clang/test/Analysis/malloc-fnptr-plist.c
M clang/test/Analysis/malloc-std-namespace.cpp
M clang/test/Analysis/malloc.c
M clang/test/Analysis/malloc.mm
M clang/test/Analysis/plist-macros.cpp
M clang/test/Analysis/weak-functions.c
M clang/test/Sema/attr-ownership.c
Log Message:
-----------
[clang][analyzer] Support `ownership_{returns,takes}` attributes (#98941)
Summary:
Add support for checking mismatched ownership_returns/ownership_takes attributes.
Closes #76861
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250804
Commit: 36928666369aef3d54be0089be6ef25cf150f7d4
https://github.com/llvm/llvm-project/commit/36928666369aef3d54be0089be6ef25cf150f7d4
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/__math/hypot.h
M libcxx/include/cmath
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/std/numerics/c.math/cmath.pass.cpp
M libcxx/test/support/fp_compare.h
Log Message:
-----------
Revert "[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)"
Summary:
This reverts commit 9628777479a970db5d0c2d0b456dac6633864760.
More details in https://github.com/llvm/llvm-project/pull/93350, but
this broke the PowerPC sanitizer bots.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250681
Commit: 303625c4185f9722d307e40327c6a3671a86351b
https://github.com/llvm/llvm-project/commit/303625c4185f9722d307e40327c6a3671a86351b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
Log Message:
-----------
ARM: Avoid using MachineFunction::getMMI
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250670
Commit: eb1d7c0279e7fa32bad0b36ff27a052127d1f893
https://github.com/llvm/llvm-project/commit/eb1d7c0279e7fa32bad0b36ff27a052127d1f893
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/firstprivate-commonblock.f90
M flang/test/Lower/OpenMP/private-commonblock.f90
Log Message:
-----------
[flang][OpenMP] Handle common blocks in delayed privatization (#100317)
Summary:
Adds proper mapping of common block elements to block arguments in
parallel regions when delayed privatization is enabled.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250705
Commit: ccda4cffb244b815bb81598448b1c9da064aee77
https://github.com/llvm/llvm-project/commit/ccda4cffb244b815bb81598448b1c9da064aee77
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
Log Message:
-----------
[gn] port 73ac9536268f
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250764
Commit: 72322d528279464bb7ada7e954c916a699691b29
https://github.com/llvm/llvm-project/commit/72322d528279464bb7ada7e954c916a699691b29
Author: DianQK <dianqk at dianqk.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/argmemonly.ll
Log Message:
-----------
Reapply "[FunctionAttrs] Determine underlying object by `getUnderlyingObjectAggressive` (#100102)"
Summary:
Added handling for `AllocaInst`.
This reverts commit 1ee686a55aa6365eff39bbd1dc2059b16be6c2f1.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250590
Commit: abc9d1758d3826e9e5a9a35e5df3b16050f3be4a
https://github.com/llvm/llvm-project/commit/abc9d1758d3826e9e5a9a35e5df3b16050f3be4a
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/SimplifyQuery.h
M llvm/lib/Analysis/ValueTracking.cpp
A llvm/test/Transforms/InstCombine/pr100298.ll
Log Message:
-----------
[ValueTracking] Don't use CondContext in dataflow analysis of phi nodes (#100316)
Summary:
See the following case:
```
define i16 @pr100298() {
entry:
br label %for.inc
for.inc:
%indvar = phi i32 [ -15, %entry ], [ %mask, %for.inc ]
%add = add nsw i32 %indvar, 9
%mask = and i32 %add, 65535
%cmp1 = icmp ugt i32 %mask, 5
br i1 %cmp1, label %for.inc, label %for.end
for.end:
%conv = trunc i32 %add to i16
%cmp2 = icmp ugt i32 %mask, 3
%shl = shl nuw i16 %conv, 14
%res = select i1 %cmp2, i16 %conv, i16 %shl
ret i16 %res
}
```
When computing knownbits of `%shl` with `%cmp2=false`, we cannot use
this condition in the analysis of `%mask (%for.inc -> %for.inc)`.
Fixes https://github.com/llvm/llvm-project/issues/100298.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250567
Commit: 7ad76f77f792c7793e3f5bc3d67c8e8952538fc6
https://github.com/llvm/llvm-project/commit/7ad76f77f792c7793e3f5bc3d67c8e8952538fc6
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCLibraryRules.cmake
M libc/docs/gpu/building.rst
M libc/docs/gpu/using.rst
M libc/lib/CMakeLists.txt
Log Message:
-----------
[libc] Remove 'packaged' GPU build support (#100208)
Summary:
Previously, the GPU built the `libc` in a fat binary version that was
used to pass this to the link job in offloading languages like CUDA or
OpenMP. This was mostly required because NVIDIA couldn't consume the
standard static library version. Recent patches have now created the
`clang-nvlink-wrapper` which lets us do that. Now, the C library is just
included implicitly by the toolchain (or passed with -Xoffload-linker
-lc).
This code can be fully removed, which will heavily simplify the build
(and removed some bugs and garbage files I've encoutnered).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250551
Commit: 918efef2c53b9461562b670a3055eaa58936671a
https://github.com/llvm/llvm-project/commit/918efef2c53b9461562b670a3055eaa58936671a
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/CodeGen/GlobalISel/BUILD.gn
Log Message:
-----------
[gn build] Port 2ca300f914b1
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250733
Commit: 893204eef763ff2ee98b880492cd084c26ff0938
https://github.com/llvm/llvm-project/commit/893204eef763ff2ee98b880492cd084c26ff0938
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/Utils/BUILD.gn
Log Message:
-----------
[gn build] Port ddb75ca6062c
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250692
Commit: c35e735b2759a003cd518f17304ce2e200dbdfa5
https://github.com/llvm/llvm-project/commit/c35e735b2759a003cd518f17304ce2e200dbdfa5
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp
A llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
R llvm/lib/Target/AMDGPU/Utils/AMDGPUAsanInstrumentation.cpp
R llvm/lib/Target/AMDGPU/Utils/AMDGPUAsanInstrumentation.h
M llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
Log Message:
-----------
[AMDGPU] Move AMDGPUAsanInstrumentation outside of utils (#100323)
Summary:
#98863 merged AMDGPUAsanInstrumentation module which missed
TransformUtils to be linked to AMDGPUUtils.
This PR moves AMDGPUAsanInstrumentation files outside utils folder and
adds them to AMDGPUCodegen lib.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250608
Commit: 6c04b37bfac8cda4975a57ffdc599a3260b1c0bd
https://github.com/llvm/llvm-project/commit/6c04b37bfac8cda4975a57ffdc599a3260b1c0bd
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/MC/AMDGPU/gfx10_err_pos.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/Disassembler/AMDGPU/decode-err.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_ds.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_smem.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_sop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_sop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_sopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_sopk.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_sopp.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3p_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sopk.txt
Log Message:
-----------
[AMDGPU][MC][NFC] Drop remaining -wavesize32/64 attributes in tests. (#100339)
Summary:
Those are not needed now that
<https://github.com/llvm/llvm-project/pull/98400> is submitted.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250755
Commit: d910ddb28ac1716d856b9df365ce6ac5f91ecf78
https://github.com/llvm/llvm-project/commit/d910ddb28ac1716d856b9df365ce6ac5f91ecf78
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/docs/gpu/support.rst
Log Message:
-----------
[libc] Enable 'sscanf' on the GPU (#100211)
Summary: We can enable the `sscanf` function on the GPU now.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250594
Commit: 7a354aa8ba69099ea845f952ae60a3153e549289
https://github.com/llvm/llvm-project/commit/7a354aa8ba69099ea845f952ae60a3153e549289
Author: Matt Davis <mattd at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/bitcast-vector-extract.ll
M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-pal.ll
M llvm/test/CodeGen/AMDGPU/mem-builtins.ll
M llvm/test/CodeGen/NVPTX/store-undef.ll
Log Message:
-----------
[SelectionDAG] Preserve volatile undef stores. (#99918)
Summary:
This patch preserves `undef` SDNodes that are `volatile` qualified.
Previously, these nodes would be discarded. The motivation behind this
change is to adhere to the
[LangRef](https://llvm.org/docs/LangRef.html#volatile-memory-accesses),
even though that doc is mostly in terms of LLVM-IR, it seems reasonable
to imply that the volatile constraints also imply to SDNodes.
> Certain memory accesses, such as
[load](https://llvm.org/docs/LangRef.html#i-load)’s,
[store](https://llvm.org/docs/LangRef.html#i-store)’s, and
[llvm.memcpy](https://llvm.org/docs/LangRef.html#int-memcpy)’s may be
marked volatile. The optimizers must not change the number of volatile
operations or change their order of execution relative to other volatile
operations. The optimizers may change the order of volatile operations
relative to non-volatile operations. This is not Java’s “volatile” and
has no cross-thread synchronization behavior.
Source: https://llvm.org/docs/LangRef.html#volatile-memory-accesses
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250702
Commit: b723322e64c1dbae5db9d597b6c442b4d5059173
https://github.com/llvm/llvm-project/commit/b723322e64c1dbae5db9d597b6c442b4d5059173
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp
Log Message:
-----------
[libcxx][test] Explain picolib unsupported in sort.pass.cpp
Summary: This is not a hidden bug, it's just a very slow test under emulation.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250711
Commit: 682544e4643ac0ca1ee892a44e747865018e3be9
https://github.com/llvm/llvm-project/commit/682544e4643ac0ca1ee892a44e747865018e3be9
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/docs/gpu/support.rst
Log Message:
-----------
Revert "[libc] Enable 'sscanf' on the GPU (#100211)"
Summary:
This fails tests in some situations, revert until it can be fixed.
This reverts commit 445bb35f954ecd5c60ced71523f6b32fc306d557.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250606
Commit: 5031861566f944847bbab8b9644a4878e9d660cb
https://github.com/llvm/llvm-project/commit/5031861566f944847bbab8b9644a4878e9d660cb
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCLibraryRules.cmake
M libc/docs/gpu/building.rst
M libc/docs/gpu/using.rst
M libc/lib/CMakeLists.txt
Log Message:
-----------
Revert "[libc] Remove 'packaged' GPU build support (#100208)"
Summary:
I forgot that the OpenMP tests still look for this, reverting for now
until I can make a fix.
This reverts commit c1c6ed83e9ac13c511961e5f5791034a63168e7e.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250728
Commit: 4ee4313754c35e767399934b4c99e8a60f309ad7
https://github.com/llvm/llvm-project/commit/4ee4313754c35e767399934b4c99e8a60f309ad7
Author: Chris Copeland <chris at chrisnc.net>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Headers/stdatomic.h
M clang/test/Headers/stdatomic.c
Log Message:
-----------
[clang] Define `ATOMIC_FLAG_INIT` correctly for C++. (#97534)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250653
Commit: 02cc833a7bde7924f8b3d003a76330e03e1eeeb1
https://github.com/llvm/llvm-project/commit/02cc833a7bde7924f8b3d003a76330e03e1eeeb1
Author: Qiu Chaofan <qiucofan at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/Driver/ToolChains/AIX.cpp
A clang/test/CodeGen/PowerPC/save-reg-params.c
A clang/test/Driver/aix-save-reg-params.c
M clang/test/Driver/ppc-unsupported.c
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
A llvm/test/CodeGen/PowerPC/save-reg-params.ll
Log Message:
-----------
[AIX] Add -msave-reg-params to save arguments to stack (#97524)
Summary:
In PowerPC ABI, a few initial arguments are passed through registers,
but their places in parameter save area are reserved, arguments passed
by memory goes after the reserved location.
For debugging purpose, we may want to save copy of the pass-by-reg
arguments into correct places on stack. The new option achieves by
adding new function level attribute and make argument lowering part
aware of it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250560
Commit: d38479c00d29d597440da5074003a5476ad791c3
https://github.com/llvm/llvm-project/commit/d38479c00d29d597440da5074003a5476ad791c3
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Log Message:
-----------
[compiler-rt] Move `endif` to correct place (#100342)
Summary:
A couple of previous commits leaded to wrong endif placement inside the
source that caused build problem in
https://lab.llvm.org/buildbot/#/builders/13/builds/1020
See #99613 #99049
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250654
Commit: 8980e9ef6698b9a848051bfa49594eafe70c54ac
https://github.com/llvm/llvm-project/commit/8980e9ef6698b9a848051bfa49594eafe70c54ac
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/Utils/BUILD.gn
Log Message:
-----------
[gn build] Port e6c20e11e7bc
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250656
Commit: 28cc80646deaa543f1d9517ebcbb25c2c746c57d
https://github.com/llvm/llvm-project/commit/28cc80646deaa543f1d9517ebcbb25c2c746c57d
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineLoopInfo.cpp
M llvm/test/CodeGen/AMDGPU/dpp64_combine.ll
A llvm/test/CodeGen/AMDGPU/machinelicm-undef-use.mir
Log Message:
-----------
[MachineLoopInfo] Fix assertion failure on undef use operands (#100137)
Summary: Fixes #100115
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250741
Commit: 3b84bd004e5b976b72989f13cd66daf09ffef74e
https://github.com/llvm/llvm-project/commit/3b84bd004e5b976b72989f13cd66daf09ffef74e
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/aarch64/sme-abi-vg.c
M compiler-rt/lib/builtins/aarch64/sme-abi.S
Log Message:
-----------
[AArch64][SME] Rewrite __arm_get_current_vg to preserve required registers (#100143)
Summary:
The documentation for the __arm_get_current_vg support routine specifies
that the following registers are call-preserved:
- X1-X15, X19-X29 and SP
- Z0-Z31
- P0-P15
This patch rewrites the implementation of this routine in compiler-rt,
as the current version does not guarantee that these registers will be
preserved.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250669
Commit: d7fa0fe462838d7149d81a5d5aec863f114fa2fa
https://github.com/llvm/llvm-project/commit/d7fa0fe462838d7149d81a5d5aec863f114fa2fa
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
Revert "[LV] Add option to still enable the legacy cost model. (#99536)"
Summary:
This reverts commit 9ba524427321b931bad156860755adf420aeec6a.
Remove the recently added temporary option vectorize-use-legacy-cost-model
as discussed on the PR adding it, now that we branched for 19.x.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250748
Commit: a1fc223be5d5b88d30be4e29ccd5e1fa104ace05
https://github.com/llvm/llvm-project/commit/a1fc223be5d5b88d30be4e29ccd5e1fa104ace05
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/X86/var-permute-128.ll
M llvm/test/CodeGen/X86/var-permute-256.ll
Log Message:
-----------
[X86] Add 'clamp out of range index' variable shuffles test coverage from #96754
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250655
Commit: 0296b4a90ff8dff9b28d265a21390f6feb79131d
https://github.com/llvm/llvm-project/commit/0296b4a90ff8dff9b28d265a21390f6feb79131d
Author: Kai Luo <lkail at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/tsan/debug_alloc_stack.cpp
Log Message:
-----------
[tsan] Include unistd.h to declare gettid()
Summary: Try to fix https://lab.llvm.org/buildbot/#/builders/176/builds/14400.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250762
Commit: 105aba426725f32387ea6b2c77e124c24afdd51d
https://github.com/llvm/llvm-project/commit/105aba426725f32387ea6b2c77e124c24afdd51d
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
Log Message:
-----------
[mlir][vector][nfc] Simplify `in_bounds` attr update (#100334)
Summary:
Since the `in_bounds` attribute is mandatory, there's no need for logic
like this (`readOp.getInBounds()` is guaranteed to return a non-empty
ArrayRef):
```cpp
ArrayAttr inBoundsAttr = readOp.getInBounds()
? rewriter.getArrayAttr( readOp.getInBoundsAttr().getValue().drop_back(dimsToDrop))
: ArrayAttr();
```
Instead, we can do this:
```cpp
ArrayAttr inBoundsAttr = rewriter.getArrayAttr(
readOp.getInBoundsAttr().getValue().drop_back(dimsToDrop));
```
This is a small follow-up for #97049 - this change should've been
included there.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250637
Commit: 2dce07170a052d95abbbcedc3c029392f55cf3f0
https://github.com/llvm/llvm-project/commit/2dce07170a052d95abbbcedc3c029392f55cf3f0
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
Log Message:
-----------
[clang][OpenMP] Propoagate debug location to OMPIRBuilder reduction codegen (#100358)
Summary:
This patch propagates the debug location from Clang to the
OpenMPIRBuilder.
Fixes https://github.com/llvm/llvm-project/issues/97458
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250701
Commit: fc2d681e2a3b76edcc588dd4b5b3ae877e0fb3fa
https://github.com/llvm/llvm-project/commit/fc2d681e2a3b76edcc588dd4b5b3ae877e0fb3fa
Author: OverMighty <its.overmighty at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/test/src/math/smoke/TotalOrderMagTest.h
M libc/test/src/math/smoke/TotalOrderTest.h
Log Message:
-----------
[libc][math][c23] Fix totalorder and totalordermag smoke tests (#100354)
Summary:
FPBits::signaling_nan() defaults to setting the MSB of the payload to 1.
The tests also used signaling NaNs with a payload of 0x123. With
float16, the 1 in 0x123 aligns to the MSB of the payload, therefore
0x123 is greater than the default payload. However, that is not the case
with more precise floating-point types.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250676
Commit: 530f1e0f32f3050578da2c719daad9d0e466747d
https://github.com/llvm/llvm-project/commit/530f1e0f32f3050578da2c719daad9d0e466747d
Author: Utkarsh Saxena <usx at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/CheckExprLifetime.cpp
M clang/test/SemaCXX/attr-lifetimebound.cpp
Log Message:
-----------
Fix lifetimebound for field access (#100197)
Summary:
Fixes: https://github.com/llvm/llvm-project/issues/81589
There is no way to switch this off without `-Wno-dangling`.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250725
Commit: 2e75ed4106fa688d3b70799c5acdca3b84a527f9
https://github.com/llvm/llvm-project/commit/2e75ed4106fa688d3b70799c5acdca3b84a527f9
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/Exceptions.cpp
Log Message:
-----------
[BOLT][NFC] Track fragment relationships using EquivalenceClasses
Summary:
Three-way splitting can create references between split fragments (warm
to cold or vice versa) that are not handled by
`isChildOf/isParentOf/isChildOrParentOf`. Generalize fragment
relationships to allow checking if two functions belong to one group,
potentially in presence of ICF which can join multiple groups.
Test Plan: NFC for existing tests
Reviewers: ayermolo, rafaelauler
Reviewed By: rafaelauler
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250679
Commit: 452ff237daed6e81149ae7614053f7cee4c54d57
https://github.com/llvm/llvm-project/commit/452ff237daed6e81149ae7614053f7cee4c54d57
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Core/BinaryContext.cpp
A bolt/test/X86/three-way-split-jt.s
Log Message:
-----------
[BOLT] Support more than two jump table parents
Summary:
Multi-way splitting can cause multiple fragments to access the same jump
table. Relax the assumption that a jump table can only have up to two
parents.
Test Plan: added bolt/test/X86/three-way-split-jt.s
Reviewers: ayermolo, rafaelauler
Reviewed By: rafaelauler
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250699
Commit: ca8273e0c31d3f1a2576f3e78e02c3eeb8e6e4df
https://github.com/llvm/llvm-project/commit/ca8273e0c31d3f1a2576f3e78e02c3eeb8e6e4df
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/builtins/README.txt
M compiler-rt/lib/builtins/trampoline_setup.c
M compiler-rt/test/builtins/Unit/trampoline_setup_test.c
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
A llvm/test/CodeGen/AArch64/trampoline.ll
Log Message:
-----------
[AArch64] Implement INIT/ADJUST_TRAMPOLINE (#70267)
Summary:
Add support for llvm.init.trampoline and llvm.adjust.trampoline
intrinsics for AArch64.
Fixes https://github.com/llvm/llvm-project/issues/65573
Fixes https://github.com/llvm/llvm-project/issues/76927
Fixes https://github.com/llvm/llvm-project/issues/83555
Updates https://github.com/llvm/llvm-project/pull/66157
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250624
Commit: b4855e5205f6942a23c471697a62998c10cf913c
https://github.com/llvm/llvm-project/commit/b4855e5205f6942a23c471697a62998c10cf913c
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/linux/riscv/entrypoints.txt
Log Message:
-----------
[libc] Enable bind test for riscv (#100132)
Summary:
The bind test was failing in the rv32 build bot because of how the build bot was set to run the tests: we were using shared directories between the host and qemu and the bind function was trying to create a file in this directory, thus creating it in the host machine.
The OS was returning "-1 ENXIO (No such device or address)", so we changed the rv32 buildbot to copy the binaries to qemu and dropped the shared directories feature.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250586
Commit: 8e896743df3378b73f08e14a60ae78aaddcf325d
https://github.com/llvm/llvm-project/commit/8e896743df3378b73f08e14a60ae78aaddcf325d
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/YAMLProfileReader.cpp
M bolt/lib/Profile/YAMLProfileWriter.cpp
M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
M bolt/test/X86/pseudoprobe-decoding-inline.test
Log Message:
-----------
[BOLT] Add profile-use-pseudo-probes option
Summary:
Move pseudo probe profile generation under --profile-use-pseudo-probes
option. Note that updating pseudo probes is independent from this flag.
Test Plan: updated pseudoprobe-decoding-inline.test
Reviewers: rafaelauler, ayermolo
Reviewed By:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250734
Commit: b093abbbe4094eacd91936757886b36c0f09d34e
https://github.com/llvm/llvm-project/commit/b093abbbe4094eacd91936757886b36c0f09d34e
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/tsan/debug_alloc_stack.cpp
Log Message:
-----------
Revert "[tsan] Enable test on linux (#99659)"
Summary:
This reverts commit 52ebd8d0577e07be9c25b56656d1974a84c40bf7.
Missing declaration for gettid() on the buildbot
(https://lab.llvm.org/buildbot/#/builders/72/builds/1592) and unfortunately
a fix-forward attempt for unistd.h didn't work
(de8c4bef3329ce0045b8167cdb96d53b2a1509df). Reverting for now.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250634
Commit: e8c7ec245ac622a2b2c374297443e71cbc8b9c11
https://github.com/llvm/llvm-project/commit/e8c7ec245ac622a2b2c374297443e71cbc8b9c11
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/tsan/debug_alloc_stack.cpp
Log Message:
-----------
Revert "[tsan] Include unistd.h to declare gettid()"
Summary:
This reverts commit de8c4bef3329ce0045b8167cdb96d53b2a1509df.
Unfortunately the fix-forward didn't work. Reverting both and will have
Vitaly re-submit.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250703
Commit: 46fb681d8667e612877c4de8af3822401af1a554
https://github.com/llvm/llvm-project/commit/46fb681d8667e612877c4de8af3822401af1a554
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 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/SPIRVConversion.cpp
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
M 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
A mlir/test/Conversion/ConvertToSPIRV/vector-unroll.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
M mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVVectorUnrolling.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
[mlir][spirv] Implement vector unrolling for `convert-to-spirv` pass (#100138)
Summary:
### Description
This PR builds on #99872. It implements a minimal version of function
body vector unrolling to convert vector types into 1D and with a size
supported by SPIR-V (2, 3 or 4 depending on the original dimension). The
ops that are currently supported include those with elementwise traits
(e.g. `arith.addi`), `vector.reduction` and `vector.transpose`. This PR
also includes new LIT tests that only check for vector unrolling.
### Future Plans
- Support more ops
---------
Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250596
Commit: 5129cec34fc1af3171091d6b2fd5ab3a176df68c
https://github.com/llvm/llvm-project/commit/5129cec34fc1af3171091d6b2fd5ab3a176df68c
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Log Message:
-----------
Revert "[compiler-rt] Move `endif` to correct place (#100342)"
Summary:
This reverts commit 558a8953680fd03bdd49a6708f3ea82d82328769.
This was a fix-forward for
https://github.com/llvm/llvm-project/pull/99613 that unfortunately
didn't work for the Android sanitizer buildbot. More information in that
pull request.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250687
Commit: 8b11e959edf950ebc8a5be4c397e14b6bdb0fa5a
https://github.com/llvm/llvm-project/commit/8b11e959edf950ebc8a5be4c397e14b6bdb0fa5a
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
R compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
R compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
Log Message:
-----------
Revert "[compiler-rt] Implement `DumpAllRegisters` for arm-linux and aarch64-linux (#99613)"
Summary:
This reverts commit ef1c70d26b7e84a6f47c0c6a868b769935b2b008.
Unfortunately broke the sanitizer buildbot(s), and the fix-forward
didn't work. More details in
https://github.com/llvm/llvm-project/pull/99613
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250641
Commit: 3117f1853d3b69e109bdf484b2862c4008bbc8d7
https://github.com/llvm/llvm-project/commit/3117f1853d3b69e109bdf484b2862c4008bbc8d7
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
Log Message:
-----------
[clang][Interp][NFC] Fix getting the record decl from a pointer type
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250745
Commit: 012c4b3f3635a4563834c4b9a65508fc3f421686
https://github.com/llvm/llvm-project/commit/012c4b3f3635a4563834c4b9a65508fc3f421686
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/var-permute-128.ll
Log Message:
-----------
[DAG] combineAndnp - fold ANDNP(x,PSHUFB(y,z)) -> PSHUFB(y,OR(z,x))
Summary:
Based off #96754 - if we are zeroing out whole elements, then fold into the PSHUFB mask instead (if MSB is set the element is zero).
Allows us to replace the non-commutative ANDNP with a much simpler OR node.
Move this after ANDNP shuffle combining as that can do a better job of this for constant ANDNP + PSHUFB masks.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250657
Commit: c417008d10eddf74c744723885975871852efc34
https://github.com/llvm/llvm-project/commit/c417008d10eddf74c744723885975871852efc34
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/CMakeLists.txt
Log Message:
-----------
[libc] Make the libc files always available to clang for the GPU (#100396)
Summary:
The GPU build always wants these to be exported to `clang`. These will
be neccesary for setting up tests or using the `libc` from the clang
binary. This will cover the standard 'runtimes' build. If the user is
doing a direct compilation, we will just leave it as-is and assume they
know what they're doing.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250688
Commit: 38ea68b7d69f6ef0d11510f44ede8e768a610a65
https://github.com/llvm/llvm-project/commit/38ea68b7d69f6ef0d11510f44ede8e768a610a65
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.cpp
M clang/test/AST/Interp/cxx20.cpp
Log Message:
-----------
[clang][Interp] Fix calling variadic call operators
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250544
Commit: 39cc344a391ec47c77dc0b619bb73d53a0ea3203
https://github.com/llvm/llvm-project/commit/39cc344a391ec47c77dc0b619bb73d53a0ea3203
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCLibraryRules.cmake
M libc/docs/gpu/building.rst
M libc/docs/gpu/using.rst
M libc/lib/CMakeLists.txt
M offload/test/libc/assert.c
M offload/test/lit.cfg
Log Message:
-----------
Reapply "[libc] Remove 'packaged' GPU build support (#100208)"
Summary: This reverts commit 550b83d658755664a7f0f93b36242e885743a91b.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250773
Commit: fa5d56748f236201ce3785ba168c8cff76077cf8
https://github.com/llvm/llvm-project/commit/fa5d56748f236201ce3785ba168c8cff76077cf8
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Sema/Overload.h
M clang/lib/Sema/SemaOverload.cpp
Log Message:
-----------
[Clang][NFC] Simplify initialization of `OverloadCandidate` objects. (#100318)
Summary:
Initialize some fields of OverloadCandidate in its constructor. The goal
here is try to fix read of uninitialized variable (which I was not able
to reproduce)
https://github.com/llvm/llvm-project/pull/93430#issuecomment-2187544278
We should certainly try to improve the construction of
`OverloadCandidate` further as it can be quite britle.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250652
Commit: 82de56049ca1b308ece7158f3ab894e85ffde1bd
https://github.com/llvm/llvm-project/commit/82de56049ca1b308ece7158f3ab894e85ffde1bd
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
A flang/test/Driver/Inputs/config-1.cfg
A flang/test/Driver/Inputs/config-2.cfg
A flang/test/Driver/Inputs/config-2a.cfg
A flang/test/Driver/Inputs/config-6.cfg
A flang/test/Driver/Inputs/config/config-4.cfg
A flang/test/Driver/Inputs/config2/config-4.cfg
A flang/test/Driver/config-file.f90
Log Message:
-----------
[Flang][Driver] Enable config file options (#100343)
Summary:
Config files provide a facility to invoke the compiler with a predefined
set of options. The patch only enables these options in the flang
driver. Functionality was always there.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250529
Commit: e861559029fafed9c0885f74f7230b1e7bde2d9f
https://github.com/llvm/llvm-project/commit/e861559029fafed9c0885f74f7230b1e7bde2d9f
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaExpr.cpp
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
Log Message:
-----------
[Clang] Fix an assertion failure introduced by #93430 (#100313)
Summary:
The PR #93430 introduced an assertion that did not make any sense. and
caused a regression. The fix is to simply remove the assertion.
No changelog. the intent is to backport this fix to clang 19.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250628
Commit: a92d85fbd5036b5cd17584b6d0f1ff4a987198eb
https://github.com/llvm/llvm-project/commit/a92d85fbd5036b5cd17584b6d0f1ff4a987198eb
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Log Message:
-----------
LV/Legality: fix style after cursory reading (NFC) (#100363)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250587
Commit: dee65a174aa47bc0d2bd4173740545fbe7c5b4af
https://github.com/llvm/llvm-project/commit/dee65a174aa47bc0d2bd4173740545fbe7c5b4af
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
Log Message:
-----------
LV/Legality: update outdated comment for isInvariant (NFC) (#100366)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250747
Commit: 37ae6a9d5187d104ea5eebfb0cad7722ea951463
https://github.com/llvm/llvm-project/commit/37ae6a9d5187d104ea5eebfb0cad7722ea951463
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
M llvm/test/Transforms/InstCombine/sub.ll
Log Message:
-----------
[InstCombine] Infer sub nuw from dominating conditions (#100164)
Summary: Alive2: https://alive2.llvm.org/ce/z/g3xxnM
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250731
Commit: 69139bf5a770c495e16ebf8ee04c153dc21f6676
https://github.com/llvm/llvm-project/commit/69139bf5a770c495e16ebf8ee04c153dc21f6676
Author: Krzysztof Pszeniczny <kpszeniczny at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineBlockPlacement.cpp
M llvm/test/CodeGen/X86/code_placement_ext_tsp_large.ll
Log Message:
-----------
[CodeGen] Add an option to skip extTSP BB placement for huge functions. (#99310)
Summary:
The extTSP-based basic block layout algorithm improves the performance
of the generated code, but unfortunately it has a super-linear time
complexity. This leads to extremely long compilation times for certain
relatively rare kinds of autogenerated code.
This patch adds an `-mllvm` flag to optionally restrict extTSP only to
functions smaller than a specified threshold. While commit
bcdc0477319a26fd8dcdde5ace3bdd6743599f44 added a knob to to limit the
maximum chain size, it's still possible that for certain huge functions
the number of chains is very large, leading to a quadratic behaviour in
ExtTSPImpl::mergeChainPairs.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250584
Commit: 1bda83d8de364ef33be9e3049e56ce6875c3e0c1
https://github.com/llvm/llvm-project/commit/1bda83d8de364ef33be9e3049e56ce6875c3e0c1
Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
R llvm/test/CodeGen/X86/GlobalISel/phi.ll
A llvm/test/CodeGen/X86/isel-phi.ll
Log Message:
-----------
[X86][GlobalISel] Reorganize tests for G_PHI and support fp80 (#100047)
Summary:
* Verified scalar support of G_PHI
* Added cases with i1, ptr and x86_fp80 types
* Added phi inputs variability
We don't enable tests for i686 due to lack of float/integer types in
legalizer. We don't distinguish between illegal 64 bit integer G_LOAD
and legal double load using X87. It leads to artificial G_MERGE_VALUES
of floats into a single double.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250592
Commit: 7e24ff07a14c637af619973dfd0c6cad61733a44
https://github.com/llvm/llvm-project/commit/7e24ff07a14c637af619973dfd0c6cad61733a44
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
LAA: mark LoopInfo pointer const (NFC) (#100373)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250644
Commit: 412b0315b10a47cef264cf3545f9ca050d7f053b
https://github.com/llvm/llvm-project/commit/412b0315b10a47cef264cf3545f9ca050d7f053b
Author: Dmitry Chernenkov <dmitryc at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[Bazel][mlir] Fix Bazel for f83950ab8dfda1da882a6ef7b508639df251621a
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250543
Commit: 0ee14de8e2de7d2b3df5545bf9ed4101672eca9c
https://github.com/llvm/llvm-project/commit/0ee14de8e2de7d2b3df5545bf9ed4101672eca9c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Driver/linker-wrapper.c
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Log Message:
-----------
[LinkerWrapper] Fix `-Xoffload-linker a=b` in offloading (#100270)
Summary:
We have the `-Xoffload-linker=triple=arg` syntax that split the argument
meant only for a single toolchain. However this borke if it was an `a=b`
type argument. Make it only treat it like a triple if it's a valid
triple.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250759
Commit: 77077c6453ea361ce036875dbeffc457e5cccb5c
https://github.com/llvm/llvm-project/commit/77077c6453ea361ce036875dbeffc457e5cccb5c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/combine-pmadd.ll
Log Message:
-----------
[X86] canCreateUndefOrPoisonForTargetNode - PMADDWD/PMADDUBSW intrinsics don't create poison
Summary: Fix regression introduced by #84924
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250574
Commit: 3889b27a5893560adb12aa24173b97d1bf68113e
https://github.com/llvm/llvm-project/commit/3889b27a5893560adb12aa24173b97d1bf68113e
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Type.h
M clang/test/SemaCXX/decltype.cpp
A clang/test/SemaCXX/typeof.cpp
R clang/test/SemaCXX/typeof_unqual.cpp
Log Message:
-----------
[Clang][AST] Don't use canonical type when checking dependence in Type::isOverloadable (#98563)
Summary: Fixes #97646.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250645
Commit: 44de267d52ddbb275eb706393413d8ea5db3297f
https://github.com/llvm/llvm-project/commit/44de267d52ddbb275eb706393413d8ea5db3297f
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/docs/BuildingLibcxx.rst
Log Message:
-----------
[libc++] Improve behavior when using relative path for LIBCXX_ASSERTION_HANDLER_FILE (#100157)
Summary: Fixes #80696
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250671
Commit: 3d5effe16668e35df86b6b0ddda4de5041e5ed45
https://github.com/llvm/llvm-project/commit/3d5effe16668e35df86b6b0ddda4de5041e5ed45
Author: Angel Zhang <angel.zhang at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
Log Message:
-----------
[mlir][spirv] Update dependencies for #100138 (#100397)
Summary: This PR updates CMake and Bazel dependencies for #100138.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250565
Commit: 068a6375e543ee95d04a06f113cb51d77031baf8
https://github.com/llvm/llvm-project/commit/068a6375e543ee95d04a06f113cb51d77031baf8
Author: Finlay <finlay.marno at codeplay.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Conversion/GPUToLLVMSPV/GPUToLLVMSPV.cpp
M mlir/test/Conversion/GPUToLLVMSPV/gpu-to-llvm-spv.mlir
Log Message:
-----------
[mlir] Add optimization attrs for gpu-to-llvmspv function declarations and calls (#99301)
Summary:
Adds the attributes nounwind and willreturn to all function
declarations. Adds `memory(none)` equivalent to the id/dimension
function declarations. The function declaration attributes are copied to
the function calls.
`nounwind` is legal because there are no exception in SPIR-V. I also do
not see any reason why any of these functions would not return when used
correctly.
I'm confident that the get id/dim functions will have no externally
observable memory effects, but think the convergent functions will have
effects.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250575
Commit: bd3f24e0296ecc43e7d99f8145676eb2ac54ab93
https://github.com/llvm/llvm-project/commit/bd3f24e0296ecc43e7d99f8145676eb2ac54ab93
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M offload/cmake/OpenMPTesting.cmake
M offload/include/PluginManager.h
M offload/src/PluginManager.cpp
M offload/src/interface.cpp
M offload/test/lit.cfg
M offload/test/lit.site.cfg.in
A offload/test/tools/llvm-omp-device-info.c
M offload/tools/deviceinfo/CMakeLists.txt
A offload/tools/deviceinfo/llvm-offload-device-info.cpp
R offload/tools/deviceinfo/llvm-omp-device-info.cpp
Log Message:
-----------
[Offload] Repair and rename `llvm-omp-device-info` (to `-offload-`) (#100309)
Summary:
The `llvm-omp-device-info` tool is very handy, but broke due to the lazy
evaluation of devices. This repairs the functionality and adds a test.
The tool is also renamed into `llvm-offload-device-info` as `-omp-` is
going away.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250531
Commit: c64c17bb3803cb9fdeb1278c4a550253ac915b43
https://github.com/llvm/llvm-project/commit/c64c17bb3803cb9fdeb1278c4a550253ac915b43
Author: memory-thrasher <39869500+memory-thrasher at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/MicrosoftMangle.cpp
A clang/test/CodeGen/ms_mangler_templatearg_opte.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors-msvc.cpp
Log Message:
-----------
Adds a pseudonym to clang's windows mangler... (#97792)
Summary:
…to handle template argument values that are pointers one-past-the-end
of a non-array symbol. Also improves error messages in other template
argument scenarios where clang bails.
https://github.com/llvm/llvm-project/issues/97756
I don't think I hooked up the unit test right. I'm not sure one is
really needed for what boils down to a tweaked if statement. Please
advise.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250712
Commit: 3a9d296b5b187940e43740dbbdd0ae2c568ab6c8
https://github.com/llvm/llvm-project/commit/3a9d296b5b187940e43740dbbdd0ae2c568ab6c8
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Analysis/CostModel/RISCV/rvv-load-store.ll
Log Message:
-----------
[RISCV][TTI] Add coverage of odd sized vector loads and stores
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250686
Commit: 6d6d731129188e25a91dc0f9ac0779d7ed72fbd3
https://github.com/llvm/llvm-project/commit/6d6d731129188e25a91dc0f9ac0779d7ed72fbd3
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/docs/GitHub.rst
Log Message:
-----------
Update the backporting docs (#100401)
Summary:
The documentation implies the special commands only work with issues,
but they also work directly from a pull request.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250640
Commit: f6913289fdfaec5bcb43a6e9db90953cbffad6db
https://github.com/llvm/llvm-project/commit/f6913289fdfaec5bcb43a6e9db90953cbffad6db
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Analysis/CostModel/RISCV/rvv-load-store.ll
Log Message:
-----------
[RISCV][CostModel] Test default lowering strategy for vector LD/ST
Summary:
Remove two options from the test command line:
* -riscv-v-vector-bits-min=128 -- This has no effect as v implied zvl128b,
which provides the same minimum.
* -riscv-v-fixed-length-vector-lmul-max=1 -- This one forced the backend
to split as if LMUL>m1 were illegal. This diverges significantly from
default behavior (where all LMUL are legal). Note that we do still
have splitting test coverage after this change. Look at e.g. 32 x i64.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250610
Commit: 41a028b0e99a9302185c8f73f2c7002adae81a2e
https://github.com/llvm/llvm-project/commit/41a028b0e99a9302185c8f73f2c7002adae81a2e
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Compiler.h
M clang/test/AST/Interp/records.cpp
Log Message:
-----------
[clang][Interp] Fix initializing array subobjects with This pointers
Summary: We need to select the right array element once we see the CXXThisExpr.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250706
Commit: 9391b2fe9625d921fe8b97773f2dceb397a1a28b
https://github.com/llvm/llvm-project/commit/9391b2fe9625d921fe8b97773f2dceb397a1a28b
Author: Sam Elliott <quic_aelliott at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/COFF/lto-cpu-string.ll
M lld/test/ELF/lto/cpu-string.ll
M lld/test/ELF/lto/mllvm.ll
M lld/test/MachO/lto-cpu-string.ll
M llvm/docs/ReleaseNotes.rst
M llvm/lib/MC/MCParser/AsmParser.cpp
A llvm/test/MC/AArch64/align-fill-byte-zero.s
A llvm/test/MC/ARM/align-fill-byte-zero.s
M llvm/test/MC/AsmParser/directive_align.s
M llvm/test/MC/COFF/align-nops.s
M llvm/test/MC/ELF/align-nops.s
M llvm/test/MC/MachO/x86_32-optimal_nop.s
A llvm/test/MC/RISCV/align-fill-byte-zero.s
M llvm/test/MC/X86/code16gcc-align.s
Log Message:
-----------
[MC] Honour alignment directive fill value for non-intel (#100136)
Summary:
As reported in https://llvm.org/PR30955, `.balign` with a fill-value of 0 did
not actually align using zeroes, on non-x86 targets.
This is because the check of whether to use the code alignment routines
or whether to just use the fill value was checking whether the fill
value was equal to `TextAlignFillValue`, which has not been changed from
its default of 0 on most targets (it has been changed for x86). However,
most targets do not set the fill value because it doesn't entirely make
sense -- i.e. on AArch64 there's no reasonable byte value to use for
alignment, as instructions are word-sized and have to be well-aligned.
I think the check at the end `AsmParser::parseDirectiveAlign` is
suspicious even on x86 - if you use `.balign <align>, 0x90` in a code
section, you don't end up with a block of `0x90` repeated, you end up
with a block of NOPs of various widths. This functionality is never
tested.
The fix here is to modify the check to ignore the default text align
fill value when choosing to do code alignment or not.
Fixes #30303
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250800
Commit: b69fd87b650a8038dd62deba2d3255efb3a5caa3
https://github.com/llvm/llvm-project/commit/b69fd87b650a8038dd62deba2d3255efb3a5caa3
Author: Andy Kaylor <andrew.kaylor at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/fp-contract.c
M clang/test/Driver/fp-model.c
Log Message:
-----------
[Driver] Clean up fp-contract handling in clang driver (#99723)
Summary:
This change refactors the fp-contract handling in
RenderFloatingPointOptions in the clang driver code and fixes some
inconsistencies in the way warnings are reported for changes in the
fp-contract behavior.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250650
Commit: 66a2ce8d425c1dc57dc1a0c07274193c43e61d9c
https://github.com/llvm/llvm-project/commit/66a2ce8d425c1dc57dc1a0c07274193c43e61d9c
Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M openmp/runtime/src/kmp_tasking.cpp
A openmp/runtime/test/tasking/issue-94260-1.cpp
A openmp/runtime/test/tasking/issue-94260-2.c
Log Message:
-----------
[OpenMP][libomp] Fix tasking debug assert (#95823)
Summary:
The debug assert is meant to check that the index is a valid which means
the runtime needs to check against the size of the array instead of the
number of threads. A free()-ed thread put back in the thread pool may
index into anywhere inside the task team's available array from 0 to
tt_max_threads potentially.
Fixes: #94260
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250622
Commit: 3538cdea56416f870fb49249a9551403e946fda2
https://github.com/llvm/llvm-project/commit/3538cdea56416f870fb49249a9551403e946fda2
Author: smanna12 <soumi.manna at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaExprObjC.cpp
Log Message:
-----------
[Clang] Prevent null pointer dereference in designated initializer check (#97220)
Summary:
This patch adds an assertion in clang::SemaObjC::BuildInstanceMessage()
to ensure getCurMethodDecl() returns a valid method declaration,
addressing a static analyzer finding.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250674
Commit: ea84f51e5307b2e9a9b69ab9ced9f76c754dd7d0
https://github.com/llvm/llvm-project/commit/ea84f51e5307b2e9a9b69ab9ced9f76c754dd7d0
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/docs/Status/SpaceshipProjects.csv
M libcxx/include/__bit_reference
M libcxx/include/__iterator/bounded_iter.h
M libcxx/include/__iterator/wrap_iter.h
M libcxx/include/deque
M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
M libcxx/test/std/containers/sequences/array/iterators.pass.cpp
M libcxx/test/std/containers/sequences/deque/iterators.pass.cpp
M libcxx/test/std/containers/sequences/vector.bool/iterators.pass.cpp
M libcxx/test/std/containers/sequences/vector/iterators.pass.cpp
A libcxx/test/std/containers/views/views.span/span.iterators/iterator.pass.cpp
A libcxx/test/std/strings/string.view/string.view.iterators/iterators.pass.cpp
M libcxx/test/support/test_iterators.h
Log Message:
-----------
[libc++][spaceship] Implements X::iterator container requirements. (#99343)
Summary:
This implements the requirements for the container iterator requirements
for array, deque, vector, and `vector<bool>`.
Implements:
- LWG3352 strong_equality isn't a thing
Implements parts of:
- P1614R2 The Mothership has Landed
Fixes: https://github.com/llvm/llvm-project/issues/62486
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250694
Commit: bec590b262171c2cb2414f59c33af8059f8df551
https://github.com/llvm/llvm-project/commit/bec590b262171c2cb2414f59c33af8059f8df551
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/NVPTX.h
Log Message:
-----------
[NVPTX] Restore old va_list builtin type (#100438)
Summary: This was changed to `void *` from `char *` unintentionally, put it back.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250710
Commit: 0a13c45f8a64650b1d9c74cffb8afae5dcbeb7ac
https://github.com/llvm/llvm-project/commit/0a13c45f8a64650b1d9c74cffb8afae5dcbeb7ac
Author: gonzalobg <65027571+gonzalobg at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
A llvm/test/CodeGen/NVPTX/fence.ll
Log Message:
-----------
[NVPTX] Support fence instruction (#99649)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250530
Commit: e64ee2579d1cb3edd715a0195ffa83fd90facdac
https://github.com/llvm/llvm-project/commit/e64ee2579d1cb3edd715a0195ffa83fd90facdac
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/lib/MC/MCAsmBackend.cpp
M llvm/lib/MC/MachObjectWriter.cpp
Log Message:
-----------
MC: Inline createMachObjectWriter into MCAsmBackend
Summary:
We could do the same to COFF once WinCOFFObjectWriter is cleaned up
(#100303).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250718
Commit: 28a9fa7da6f6046604b2d8ff2eab066e2cc40a14
https://github.com/llvm/llvm-project/commit/28a9fa7da6f6046604b2d8ff2eab066e2cc40a14
Author: David Blaikie <dblaikie at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/Core.cpp
Log Message:
-----------
Mark assert-used-only variable as [[maybe_unused]]
Summary:
Seemed nicer than inlining, given the complexities of flag checking and
the multiple uses.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250732
Commit: 3131eef3a2cc55a2c2d61b1f9d956801ef7e496b
https://github.com/llvm/llvm-project/commit/3131eef3a2cc55a2c2d61b1f9d956801ef7e496b
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
Log Message:
-----------
[Frontend][OpenMP] Apply ompx_attribute to all allowing leaf constructs (#100370)
Summary:
By default, in a compound directive, a clause will apply to the unique
leaf construct that allows it. Clauses that could apply to multiple leaf
constructs follow different rules.
For ompx_attribute, apply it to all leaf constructs that allow it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250683
Commit: 1dd97cd6b6844a79c78f764f1ff8d752e4ceffcb
https://github.com/llvm/llvm-project/commit/1dd97cd6b6844a79c78f764f1ff8d752e4ceffcb
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineTraceMetrics.cpp
Log Message:
-----------
MTM: fix issues after cursory reading (#100404)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250547
Commit: 13b8f2a01cf3836b9cd05cfb0cb72224f0f819a3
https://github.com/llvm/llvm-project/commit/13b8f2a01cf3836b9cd05cfb0cb72224f0f819a3
Author: gonzalobg <65027571+gonzalobg at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
A llvm/test/CodeGen/NVPTX/load-store-sm-70.ll
M llvm/test/CodeGen/NVPTX/load-store.ll
Log Message:
-----------
[NVPTX] Add Volta Load/Store Atomics (.relaxed, .acquire, .release) and Volatile (.mmio/.volatile) support (#99709)
Summary:
Followup to https://github.com/llvm/llvm-project/pull/98022 which broke
support for LLVM `unordered` atomic ordering.
This PR lowers `atomic unordered` to PTX volatile operations to preserve
atomicity, and adds a bunch of tests for this ordering to the NVPTX
backend (we had none).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250591
Commit: c96ad0ceca95f55799d7e0d152371f6093ace6ed
https://github.com/llvm/llvm-project/commit/c96ad0ceca95f55799d7e0d152371f6093ace6ed
Author: Brendan Dahl <brendan.dahl at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/builtins-wasm.c
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/test/CodeGen/WebAssembly/half-precision.ll
M llvm/test/MC/WebAssembly/simd-encodings.s
Log Message:
-----------
[WebAssembly] Implement f16x8.replace_lane instruction. (#99388)
Summary:
Use a builtin and intrinsic until half types are better supported for
instruction selection.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250626
Commit: c7a118f75587d3f1c55cab1947eb8396d3b7e5e0
https://github.com/llvm/llvm-project/commit/c7a118f75587d3f1c55cab1947eb8396d3b7e5e0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll
Log Message:
-----------
[RISCV] Add test cases for failures to form widening FMA instructions. NFC
Summary:
If the fp_extend is in the scalar domain before the shuffle, we
won't recognize the widening opportunity.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250604
Commit: 81f96764506f69db20e8a6efd5f048d9540f1eea
https://github.com/llvm/llvm-project/commit/81f96764506f69db20e8a6efd5f048d9540f1eea
Author: Gang Chen <gangc at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Log Message:
-----------
[AMDGPU][GlobaISel] wrap the load-splitting code in RegBank selection with condition (#98966)
Summary:
The load-splitting code in RegBank selection is only relevant to those
listed address-spaces because there are cases in those address-spaces in
which we are not sure how far to split during legalization
---------
Signed-off-by: gangc <gangc at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250673
Commit: 2cfc3bb674af7c23f9685701ee9390d6ab34f1ab
https://github.com/llvm/llvm-project/commit/2cfc3bb674af7c23f9685701ee9390d6ab34f1ab
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/gpu/entrypoints.txt
M libc/docs/gpu/support.rst
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/sscanf_test.cpp
Log Message:
-----------
[libc] Enable 'sscanf' on the GPU #100211
Summary:
We can enable the sscanf function on the GPU now. This required adding
the configs to the scanf list so that the GPU build didn't do float
conversions.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250750
Commit: 2f44b0d80868decb7fdc870e2f840af3843ca6c8
https://github.com/llvm/llvm-project/commit/2f44b0d80868decb7fdc870e2f840af3843ca6c8
Author: Kevin McAfee <kmcafee at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsNVVM.td
A llvm/test/Transforms/DCE/nvvm-ldu-ldg-willreturn.ll
Log Message:
-----------
Update NVVM ldu/ldg intrinsics with IntrWillReturn and test for DCE (#98968)
Summary:
Dead calls to these intrinsics were not being deleted at the IR level as
they were not marked `IntrWillReturn`, though they were being deleted
when building the SDAG. This fixes that and adds a test to confirm they
are deleted during `opt`
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250715
Commit: 6391f499748ea9431bd3e817caab9769fd8f3b5f
https://github.com/llvm/llvm-project/commit/6391f499748ea9431bd3e817caab9769fd8f3b5f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfw-web-simplification.ll
Log Message:
-----------
[RISCV] Add missing CHECK prefix to fixed-vectors-vfw-web-simplification.ll. NFC
Summary:
The FOLDING prefix was ambiguous on one of the test cases. It would be
nice if the update script reported this.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250713
Commit: 1c50cfbe3202ee00cbb26ce49153036a5d424be6
https://github.com/llvm/llvm-project/commit/1c50cfbe3202ee00cbb26ce49153036a5d424be6
Author: Sumanth Gundapaneni <sumanth.gundapaneni at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
A llvm/test/CodeGen/AMDGPU/lrint.ll
Log Message:
-----------
[AMDGPU] Implement llvm.lrint intrinsic lowering (#98931)
Summary:
This patch enabled the target-independent lowering of llvm.lrint via
GlobalISel.
For SelectionDAG, the instrinsic is custom lowered for AMDGPU.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250609
Commit: 4782de51ee28273bdf8ed131601df94281b28a96
https://github.com/llvm/llvm-project/commit/4782de51ee28273bdf8ed131601df94281b28a96
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/Interp/Interp.h
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CXX/basic/basic.types/p10.cpp
M clang/test/Sema/constant-builtins-2.c
M clang/test/SemaCXX/class.cpp
M clang/test/SemaCXX/enum.cpp
Log Message:
-----------
[ExprConstant] Handle shift overflow the same way as other kinds of overflow (#99579)
Summary:
We have a mechanism to allow folding expressions that aren't ICEs as an
extension; use it more consistently.
This ends up causing bad effects on diagnostics in a few cases, but
that's not specific to shifts; it's a general issue with the way those
uses handle overflow diagnostics.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250717
Commit: 76da35bd659299d368ac2a80596d1dd44c07f6b8
https://github.com/llvm/llvm-project/commit/76da35bd659299d368ac2a80596d1dd44c07f6b8
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineLICM.cpp
Log Message:
-----------
[llvm][MachineLICM] Fix a comment typo. NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250611
Commit: 10fa6004216b8e11accf4dbd72590d29ae24d27f
https://github.com/llvm/llvm-project/commit/10fa6004216b8e11accf4dbd72590d29ae24d27f
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-trunc.mir
Log Message:
-----------
[GlobalIsel] Modernize truncate of ext. (#100338)
Summary:
Credits:
https://github.com/llvm/llvm-project/pull/90964
https://reviews.llvm.org/D87050
combine-trunc.mir
Functional changes intended.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250765
Commit: 7410f52b9bf2379ecc1029bdfed8b3a253cee703
https://github.com/llvm/llvm-project/commit/7410f52b9bf2379ecc1029bdfed8b3a253cee703
Author: Narayan <32898329+vortex73 at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaOverload.cpp
Log Message:
-----------
[Clang] Refactor uses of `Cand->Function` in SemaOverload.cpp (#98965)
Summary:
- [ ] adds checks to called functions containing `Cand->Function` as an
argument.
- [ ] Assigned `Cand->Function` as a `FunctionDecl*` to enhance
readablity.
Solves: #98769 and #98942
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250569
Commit: 62bbd5b41ffbf74b4e9f6c91aa51684e1e7b10ab
https://github.com/llvm/llvm-project/commit/62bbd5b41ffbf74b4e9f6c91aa51684e1e7b10ab
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/BuiltinsX86.def
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Headers/emmintrin.h
M clang/lib/Headers/mmintrin.h
M clang/lib/Headers/tmmintrin.h
M clang/lib/Headers/xmmintrin.h
M clang/lib/Sema/SemaX86.cpp
M clang/test/CodeGen/X86/mmx-builtins.c
M clang/test/CodeGen/X86/mmx-inline-asm.c
M clang/test/CodeGen/X86/mmx-shift-with-immediate.c
M clang/test/CodeGen/attr-target-x86-mmx.c
M clang/test/CodeGen/builtins-x86.c
M clang/test/CodeGen/palignr.c
R clang/test/CodeGen/pr26099.c
M clang/test/Headers/xmmintrin.c
M clang/test/Sema/x86-builtin-palignr.c
M clang/www/builtins.py
M llvm/include/llvm/IR/IntrinsicsX86.td
Log Message:
-----------
Clang: convert `__m64` intrinsics to unconditionally use SSE2 instead of MMX. (#96540)
Summary:
The MMX instruction set is legacy, and the SSE2 variants are in every
way superior, when they are available -- and they have been available
since the Pentium 4 was released, 20 years ago.
Therefore, we are switching the "MMX" intrinsics to depend on SSE2,
unconditionally. This change entirely drops the ability to generate
vectorized code using compiler intrinsics for chips with MMX but without
SSE2: the Intel Pentium MMX, Pentium, II, and Pentium III (released
1997-1999), as well as AMD K6 and K7 series chips of around the same
timeframe. Targeting these older CPUs remains supported -- simply
without the ability to use MMX compiler intrinsics.
Migrating away from the use of MMX registers also fixes a rather
non-obvious requirement. The long-standing programming model for these
MMX intrinsics requires that the programmer be aware of the x87/MMX
mode-switching semantics, and manually call `_mm_empty()` between using
any MMX instruction and any x87 FPU instruction. If you neglect to, then
every future x87 operation will return a NaN result. This requirement is
not at all obvious to users of these these intrinsic functions, and
causes very difficult to detect bugs.
Worse, even if the user did write code that correctly calls
`_mm_empty()` in the right places, LLVM may sometimes reorder x87 and
mmx operations around each-other, unaware of this mode switching issue.
Eliminating the use of MMX registers eliminates this problem.
This change also deletes the now-unnecessary MMX `__builtin_ia32_*`
functions from Clang. Only 3 MMX-related builtins remain in use --
`__builtin_ia32_emms`, used by `_mm_empty`, and
`__builtin_ia32_vec_{ext,set}_v4si`, used by `_mm_insert_pi16` and
`_mm_extract_pi16`. Note particularly that the latter two lower to
generic, non-MMX, IR. Support for the LLVM intrinsics underlying these
removed builtins still remains, for the moment.
The file `clang/www/builtins.py` has been updated with mappings from the
newly-removed `__builtin_ia32` functions to the still-supported
equivalents in `mmintrin.h`.
(Originally uploaded at https://reviews.llvm.org/D86855 and
https://reviews.llvm.org/D94252)
Fixes issue #41665
Works towards #98272
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250580
Commit: 179b376c284cbced6aaeac5875be118d625b2fec
https://github.com/llvm/llvm-project/commit/179b376c284cbced6aaeac5875be118d625b2fec
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/docs/InternalProcedureTrampolines.md
Log Message:
-----------
[Flang][Docs] Update information about AArch64 trampolines (#100391)
Summary:
Commits c4b66bf and 7647174 add support for AArch64 trampolines. Updated
documentation to reflect the changes.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250618
Commit: 894310c09a6e2b429705520746a1bcd80613a855
https://github.com/llvm/llvm-project/commit/894310c09a6e2b429705520746a1bcd80613a855
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/CodeGen/ptrauth-function-attributes.c
M clang/test/CodeGen/ubsan-function.cpp
M clang/test/CodeGenCXX/ptrauth-global-constant-initializers.cpp
M clang/test/CodeGenCXX/ptrauth-member-function-pointer.cpp
M clang/test/CodeGenCXX/ptrauth-type-info-vtable.cpp
M clang/test/Driver/aarch64-ptrauth.c
M clang/test/Preprocessor/ptrauth_feature.c
M clang/test/Sema/ptrauth-indirect-goto.c
Log Message:
-----------
[PAC][clang][test] Implement missing tests for some PAuth features (#100206)
Summary:
Implement tests for the following PAuth-related features:
- driver, preprocessor and ELF codegen tests for type_info vtable
pointer discrimination #99726;
- driver, preprocessor, and ELF codegen (emitting function attributes) +
sema (emitting errors) tests for indirect gotos signing #97647;
- ELF codegen tests for ubsan type checks + auth #99590;
- ELF codegen tests for constant global init with polymorphic MI #99741;
- ELF codegen tests for C++ member function pointers auth #99576.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250599
Commit: 1bdbc0fd780990ba82cb8ea587b598240a23ee9f
https://github.com/llvm/llvm-project/commit/1bdbc0fd780990ba82cb8ea587b598240a23ee9f
Author: David Blaikie <dblaikie at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lld/test/MachO/objc-category-merging-erase-objc-name-test.s
Log Message:
-----------
Fix test to write to %T instead of the current working directory (which may not be writeable)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250570
Commit: fea9bc9a891af15a817161f8abb7fb365bc05fcd
https://github.com/llvm/llvm-project/commit/fea9bc9a891af15a817161f8abb7fb365bc05fcd
Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/docs/dev/header_generation.rst
Log Message:
-----------
[libc][newheadergen]: PyYaml Version Update (#100463)
Summary:
- a lot of builds had an issue using new headergen because they do not
have PyYaml installed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250677
Commit: 0c6e79002225ae066e198a758ce1c64ba96355dd
https://github.com/llvm/llvm-project/commit/0c6e79002225ae066e198a758ce1c64ba96355dd
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Log Message:
-----------
[lldb] Prevent passing a nullptr to std::string in ObjectFileMachO (#100421)
Summary:
Prevent passing a nullptr to std::string::insert in
ObjectFileMachO::GetDependentModules. Calling GetCString on an empty
ConstString will return a nullptr, which is undefined behavior. Instead,
use the GetString helper which will return an empty string in that case.
rdar://132388027
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250638
Commit: 795298921e1690e5a2d68be6940c83565a9a42a1
https://github.com/llvm/llvm-project/commit/795298921e1690e5a2d68be6940c83565a9a42a1
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/lib/Semantics/resolve-directives.cpp
R flang/test/Semantics/OpenMP/copyprivate04.f90
M flang/test/Semantics/OpenMP/do05-positivecase.f90
M flang/test/Semantics/OpenMP/do20.f90
M flang/test/Semantics/OpenMP/implicit-dsa.f90
M flang/test/Semantics/OpenMP/reduction08.f90
M flang/test/Semantics/OpenMP/reduction09.f90
M flang/test/Semantics/OpenMP/symbol01.f90
M flang/test/Semantics/OpenMP/symbol02.f90
M flang/test/Semantics/OpenMP/symbol03.f90
M flang/test/Semantics/OpenMP/symbol05.f90
M flang/test/Semantics/OpenMP/symbol07.f90
M flang/test/Semantics/OpenMP/symbol08.f90
M flang/test/Semantics/OpenMP/symbol09.f90
Log Message:
-----------
Revert "[flang][OpenMP] Fix copyprivate semantic checks" (#100478)
Summary:
Reverts llvm/llvm-project#95799
This caused errors in some internal test suites.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250571
Commit: 208d6cf69318e2bc4f1da9cb215c1bc65e49b805
https://github.com/llvm/llvm-project/commit/208d6cf69318e2bc4f1da9cb215c1bc65e49b805
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
Clang: adjust MMX instrinsics release note.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250784
Commit: 10d235efd477b381558d371b228ea0d8c27b79ea
https://github.com/llvm/llvm-project/commit/10d235efd477b381558d371b228ea0d8c27b79ea
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/aarch64-ptrauth.c
Log Message:
-----------
[PAC][clang] Enable `-fptrauth-indirect-gotos` as part of pauthtest ABI (#100480)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250761
Commit: e0979eccb5515500b6155d0dcef77a413bb3895a
https://github.com/llvm/llvm-project/commit/e0979eccb5515500b6155d0dcef77a413bb3895a
Author: Job Henandez Lara <hj93 at protonmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/config/darwin/arm/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/math/index.rst
M libc/spec/stdc.td
M libc/src/math/CMakeLists.txt
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/totalordermag.cpp
A libc/src/math/generic/totalordermagf.cpp
A libc/src/math/generic/totalordermagf128.cpp
A libc/src/math/generic/totalordermagl.cpp
A libc/src/math/totalordermag.h
A libc/src/math/totalordermagf.h
A libc/src/math/totalordermagf128.h
A libc/src/math/totalordermagl.h
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/totalordermag_test.cpp
A libc/test/src/math/smoke/totalordermagf128_test.cpp
A libc/test/src/math/smoke/totalordermagf_test.cpp
A libc/test/src/math/smoke/totalordermagl_test.cpp
Log Message:
-----------
[libc][math][c23] add entrypoints and tests for totalordermag{f,l,f128} (#100159)
Summary: Fixes https://github.com/llvm/llvm-project/issues/100139
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250612
Commit: 5a50e4ed4237bd0d852ad043953938fd2710b610
https://github.com/llvm/llvm-project/commit/5a50e4ed4237bd0d852ad043953938fd2710b610
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Add missing dependency after 74a1ca504bf60f02431140ee72dbe1c158556237
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250763
Commit: e0232f3d4aebd85e65f9f2213c47a3abe07eaabd
https://github.com/llvm/llvm-project/commit/e0232f3d4aebd85e65f9f2213c47a3abe07eaabd
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
A llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj-phi.ll
Log Message:
-----------
Reapply "[WebAssembly] Fix phi handling for Wasm SjLj (#99730)"
Summary:
This reapplies #99730. #99730 contained a nondeterministic iteration
which failed the reverse-iteration bot
(https://lab.llvm.org/buildbot/#/builders/110/builds/474) and reverted
in
https://github.com/llvm/llvm-project/commit/f3f0d9928f982cfd302351f418bcc5b63cc1bb9d.
The fix is make the order of iteration of new predecessors
determintistic by using `SmallSetVector`.
```diff
--- a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
@@ -1689,7 +1689,7 @@ void WebAssemblyLowerEmscriptenEHSjLj::handleLongjmpableCallsForWasmSjLj(
}
}
- SmallDenseMap<BasicBlock *, SmallPtrSet<BasicBlock *, 4>, 4>
+ SmallDenseMap<BasicBlock *, SmallSetVector<BasicBlock *, 4>, 4>
UnwindDestToNewPreds;
for (auto *CI : LongjmpableCalls) {
// Even if the callee function has attribute 'nounwind', which is true for
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250660
Commit: 1f8c15f956ff9831efee6388036c51a5373e3422
https://github.com/llvm/llvm-project/commit/1f8c15f956ff9831efee6388036c51a5373e3422
Author: Thurston Dang <thurston at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_float.ll
Log Message:
-----------
[msan] Enable and update neon_vst_float test case (#100435)
Summary:
This enables the neon_vst_float test case
(https://github.com/llvm/llvm-project/pull/100210). Although MSan does
not yet generate useful IR, since opt is run with -disable-verify, the
test case should still run successfully.
This patch also makes minor fixes to the test case:
- 'ptr %a' is renamed to 'ptr %p' because update_test_checks.py is
case-insensitive, and was unexpectedly aliasing the %A and %a in the
expected output ('<1 x double> [[A]], <1 x double> [[B]], ptr [[A]]').
- The sample output for st1x{2,3,4} was previously accidentally
generated using a prototype version of MSan rather than trunk; these
instructions are not yet instrumented.
- Changes the comment on how the test case was generated, because '; |
sed -r 's/^\/\/ CHECK:[ ]*//'' was being interpreted by FileCheck to be
a CHECK: command.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250746
Commit: 58e1c499d2470180bfd6910a316ffca4810510d6
https://github.com/llvm/llvm-project/commit/58e1c499d2470180bfd6910a316ffca4810510d6
Author: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
Log Message:
-----------
[compiler-rt] Implement `DumpAllRegisters` for arm-linux and aarch64-linux (#100398)
Summary: Reland with a couple of build fixes
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250545
Commit: da87302f686c66505f1d47a70659d072b92d894a
https://github.com/llvm/llvm-project/commit/da87302f686c66505f1d47a70659d072b92d894a
Author: Jason Molenda <jmolenda at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/source/Expression/IRMemoryMap.cpp
Log Message:
-----------
[lldb] Don't use a vm addr range starting at 0 for local memory (#100288)
Summary:
When an inferior stub cannot allocate memory for lldb, and lldb needs to
store the result of expressions, it will do it in lldb's own memory
range ("host memory"). But it needs to find a virtual address range that
is not used in the inferior process. It tries to use the
qMemoryRegionInfo gdb remote serial protocol packet to find a range that
is inaccessible, starting at address 0 and moving up the size of each
region.
If the first region found at address 0 is inaccessible, lldb will use
the address range starting at 0 to mean "read lldb's host memory, not
the process memory", and programs that crash with a null dereference
will have poor behavior.
This patch skips consideration of a memory region that starts at address
0.
I also clarified the documentation of qMemoryRegionInfo to make it clear
that the stub is required to provide permissions for a memory range that
is accessable, it is not an optional key in this response. This issue
was originally found by a stub that did not list permissions in its
response, and lldb treated the first region returned as the one it would
use. (the stub also didn't support the memory-allocate packet)
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250627
Commit: 368d8020ab598d1766daf6d0cbe6d3e10fd68b7a
https://github.com/llvm/llvm-project/commit/368d8020ab598d1766daf6d0cbe6d3e10fd68b7a
Author: Mingming Liu <mingmingl at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/profile/Linux/instrprof-vtable-value-prof.cpp
M llvm/lib/Transforms/IPO/FunctionImport.cpp
Log Message:
-----------
[ThinLTO][TypeProf] Import local-linkage global var for mod1:func_foo-> mod2:local-var edge (#100448)
Summary:
VTable value profiling can create reference edges from `mod1:func_foo`
to `mod2:local-vtable`. Indirect call profiling can create reference
edges from `mod1:func_foo` to `mod2:local_func_bar`.
Given a ref chain `mod1:func_foo -> mod2:local-var`,`local-var` doesn't
get imported by default.
Compiler checks / requires the module of 'local-var' is the same as the
function that referenced it(`mod1:func_foo`). This is to prevent
mis-compilation when both `mod1` and `mod2` has `local-var` of the same
name, and cpp files are compiled without full path.
This patch allows the import when one of the following conditions
happen:
1) Introduce an option `import-assume-local-unique`. When the compiler
user can guarantee that all files are compiled with full paths, they can
set this option.
2) When there is one instance of value summary.
Test:
* A/B testing this option alone gives -0.16% statistically consistent
cpu cycle reduction on one search workload (no throughput increase)
* Testing it together with existing more-efficient ICP bumps the
throughput increase by a margin (0.05%~0.1%)
* No regressions observed.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250563
Commit: 8dddf671106a29e874a03a5400d945765cafe69e
https://github.com/llvm/llvm-project/commit/8dddf671106a29e874a03a5400d945765cafe69e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCObjectRules.cmake
Log Message:
-----------
[libc] Only add '-fno-builtin-*' on the entrypoints that use them (#100481)
Summary:
The GPU build needs to be able to inline stuff in LTO. Builtin
transformations cause problems on the functions that the optimizer does
heavy libcall recognition on. Previously we moved to using
`-fno-builtin-*` to allow us to only disable the problematic ones.
However, this still didn't allow inlining because each function had the
attribute that told the inliner not to inlining a nobuiltin function
into a non-nobuiltin function
This patch fixes that by only applying these attributes to the
entrypoints that define them. That is enough to prevent recursive calls
within the definitoins themselves.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250630
Commit: 770f5c2b79c77108055df128ba962e3e79980a1e
https://github.com/llvm/llvm-project/commit/770f5c2b79c77108055df128ba962e3e79980a1e
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
Revert "[clang-format] Fix a bug in annotating `*` in `#define`s (#99433)"
Summary:
This reverts commit ce1a87437cc143889665c41046107e84cdf6246e.
Closes #100304.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250538
Commit: e4717c1b0b4ab285298b8689bca9d81494407ef2
https://github.com/llvm/llvm-project/commit/e4717c1b0b4ab285298b8689bca9d81494407ef2
Author: Gedare Bloom <gedare at rtems.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Format/ContinuationIndenter.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Improve BlockIndent at ColumnLimit (#93140)
Summary:
Fixes #55731
The reported formatting problems were related to ignoring deep nesting
of "simple" functions (causing #54808) and to allowing the trailing
annotation to become separated from the closing parens, which allowed a
break to occur between the closing parens and the trailing annotation.
The fix for the nesting of "simple" functions is to detect them more
carefully. "Simple" was defined in a comment as being a single
non-expression argument. I tried to stay as close to the original intent
of the implementation while fixing the various bad formatting reports.
In the process of fixing these bugs, some latent bugs were discovered
related to how JavaScript Template Strings are handled. Those are also
fixed here.
---------
Co-authored-by: Owen Pan <owenpiano at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250557
Commit: e3531ca9c146c9664cb8c86f2a7846df8a724335
https://github.com/llvm/llvm-project/commit/e3531ca9c146c9664cb8c86f2a7846df8a724335
Author: Mingming Liu <mingmingl at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionImport.cpp
Log Message:
-----------
Fix buildbot failure by fixing the base pointer type (#100508)
Summary:
This should fix buildbot failures like
https://lab.llvm.org/buildbot/#/builders/169/builds/1448
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250583
Commit: 10b61c730eb50595b0f2d98f03cdfb9dec46547a
https://github.com/llvm/llvm-project/commit/10b61c730eb50595b0f2d98f03cdfb9dec46547a
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/test/AST/Interp/records.cpp
Log Message:
-----------
[clang][Interp] Fix array element This chains
Summary:
The previous test was too minimal. If we actually do something after
initializing the nested array element, we end up causing a stack element
type mismatch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250568
Commit: cf436b2c49e3a4cc6a296eaf1b5862bcd8552421
https://github.com/llvm/llvm-project/commit/cf436b2c49e3a4cc6a296eaf1b5862bcd8552421
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Targets/PPC.cpp
M clang/lib/Driver/ToolChains/Arch/PPC.cpp
M clang/lib/Driver/ToolChains/Arch/PPC.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/CodeGen/aix-builtin-cpu-is.c
M clang/test/CodeGen/builtin-cpu-supports.c
M clang/test/Misc/target-invalid-cpu-note.c
M llvm/include/llvm/TargetParser/PPCTargetParser.def
A llvm/include/llvm/TargetParser/PPCTargetParser.h
M llvm/lib/TargetParser/CMakeLists.txt
A llvm/lib/TargetParser/PPCTargetParser.cpp
M llvm/utils/gn/secondary/llvm/lib/TargetParser/BUILD.gn
Log Message:
-----------
[PowerPC] add TargetParser for PPC target (#97541)
Summary:
For now only focus on the CPU type, will work on the CPU features part
later.
With the CPU handling in TargetParser, clang and llc/opt are able to
query common interfaces.
So we can set same default CPU and CPU features with same interfaces.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250758
Commit: 6777f45fae1ed5a84a1baf3e5e37900261568804
https://github.com/llvm/llvm-project/commit/6777f45fae1ed5a84a1baf3e5e37900261568804
Author: Mariusz Sikora <mariusz.sikora at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/AMDGPU/dpp64_combine.ll
Log Message:
-----------
[AMDGPU][NFC] Use GFX940 prefix in dpp64_combine test (#100459)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250737
Commit: 153c01fc15a1e30a66391278fed2cbf563e8f1e6
https://github.com/llvm/llvm-project/commit/153c01fc15a1e30a66391278fed2cbf563e8f1e6
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Mapper.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
Log Message:
-----------
[clang-doc] Improve clang-doc performance through memoization (#96809)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250689
Commit: a4d16734bf25232106f78bb563e48bb201e4ca84
https://github.com/llvm/llvm-project/commit/a4d16734bf25232106f78bb563e48bb201e4ca84
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
Log Message:
-----------
[Clang] Remove some dead code in getNumTeamsExprForTargetDirective (#95695)
Summary:
This was reported in https://pvs-studio.com/en/blog/posts/cpp/1126/,
fragment N9.
V523 The 'then' statement is equivalent to the subsequent code fragment.
CGOpenMPRuntime.cpp:6040, 6036
---------
Co-authored-by: Shivam Gupta <shivma98.tkg at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250549
Commit: e19f6dd6058880047f4b63a83976419f320c71d4
https://github.com/llvm/llvm-project/commit/e19f6dd6058880047f4b63a83976419f320c71d4
Author: Freddy Ye <freddy.ye at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86InstrAsmAlias.td
M llvm/test/MC/X86/apx/ctest-att.s
M llvm/test/MC/X86/apx/ctest-intel.s
Log Message:
-----------
[X86][MC] Support 'ctestX <reg>, <mem>' and 'ctextX <mem>, <reg>' as synonyms. (#97985)
Summary:
relate gas discussion:
https://sourceware.org/pipermail/binutils/2024-July/135349.html
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250523
Commit: da53ffe986cd6cf0409617f73e23c98857c53cd0
https://github.com/llvm/llvm-project/commit/da53ffe986cd6cf0409617f73e23c98857c53cd0
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/TargetParser/PPCTargetParser.cpp
Log Message:
-----------
[TargetParser] Fix warnings
Summary:
This patch fixes:
llvm/include/llvm/TargetParser/PPCTargetParser.def:109:9: error:
suggest braces around initialization of subobject
[-Werror,-Wmissing-braces]
llvm/lib/TargetParser/PPCTargetParser.cpp:96:16: error: address of
stack memory associated with local variable 'CPU' returned
[-Werror,-Wreturn-stack-address]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250616
Commit: e227a941b0310432d3a96cad4687974265a1e24f
https://github.com/llvm/llvm-project/commit/e227a941b0310432d3a96cad4687974265a1e24f
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/include/lldb/Core/PluginManager.h
M lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h
A lldb/include/lldb/Interpreter/Interfaces/ScriptedInterfaceUsages.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/Commands/CommandObjectScripting.cpp
M lldb/source/Commands/Options.td
M lldb/source/Core/PluginManager.cpp
M lldb/source/Interpreter/CMakeLists.txt
A lldb/source/Interpreter/Interfaces/CMakeLists.txt
A lldb/source/Interpreter/Interfaces/ScriptedInterfaceUsages.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/CMakeLists.txt
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.h
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.cpp
R lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/CMakeLists.txt
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
Log Message:
-----------
[lldb/Commands] Add `scripting template list` command with auto discovery
Summary:
This patch introduces a new `template` multiword sub-command to the
`scripting` top-level command. As the name suggests, this sub-command
operates on scripting templates, and currently has the ability to
automatically discover the various scripting extensions that lldb
supports.
This was previously reviewed in #97273.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250700
Commit: a18a96a620e918d5623bcac0c868989228be0a5e
https://github.com/llvm/llvm-project/commit/a18a96a620e918d5623bcac0c868989228be0a5e
Author: Fangrui Song <i at maskray.me>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Basic/Sarif.cpp
Log Message:
-----------
Internalize a clang Sarif function
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250554
Commit: 6e0813b6161eae91c7a4f1e6a3baf422ddd7a075
https://github.com/llvm/llvm-project/commit/6e0813b6161eae91c7a4f1e6a3baf422ddd7a075
Author: Mel Chen <mel.chen at sifive.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/VectorBuilder.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/VectorBuilder.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/unittests/IR/VPIntrinsicTest.cpp
Log Message:
-----------
[VP] Refactor VectorBuilder to avoid layering violation. NFC (#99276)
Summary:
This patch refactors the handling of reduction to eliminate layering
violations.
* Introduced `getReductionIntrinsicID` in LoopUtils.h for mapping
recurrence kinds to llvm.vector.reduce.* intrinsic IDs.
* Updated `VectorBuilder::createSimpleTargetReduction` to accept
llvm.vector.reduce.* intrinsic directly.
* New function `VPIntrinsic::getForIntrinsic` for mapping intrinsic ID
to the same functional VP intrinsic ID.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250539
Commit: ee75538464e0d6217b0396381fe80f1fd730ed8a
https://github.com/llvm/llvm-project/commit/ee75538464e0d6217b0396381fe80f1fd730ed8a
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
Log Message:
-----------
Revert "[LLVM] Silence compiler-rt warning in runtimes build (#99525)"
Summary:
This patch broke LLVM Flang build on Windows. PR #100202
This reverts commit f6f88f4b99638821af803d1911ab6a7dac04880b.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250542
Commit: f8211c62c815910783a1494f27c7f6f1db8d583b
https://github.com/llvm/llvm-project/commit/f8211c62c815910783a1494f27c7f6f1db8d583b
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/test/Transforms/InstCombine/struct-assign-tbaa-2.ll
Log Message:
-----------
[TBAA] Introduce test for PR96483 (NFC)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250749
Commit: edb3726f19346013bcf2638071bd9730cf2b262a
https://github.com/llvm/llvm-project/commit/edb3726f19346013bcf2638071bd9730cf2b262a
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/IR/Metadata.h
M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/struct-assign-tbaa-2.ll
M llvm/test/Transforms/InstCombine/struct-assign-tbaa.ll
R llvm/test/Transforms/SROA/tbaa-struct.ll
M llvm/test/Transforms/SROA/tbaa-struct3.ll
Log Message:
-----------
[TBAA] Do not rewrite TBAA if exists, always null out `!tbaa.struct`
Summary:
Retrieve `!tbaa` metadata via `!tbaa.struct` in `adjustForAccess`
unless it already exists, as struct-path aware `MDNodes` emitted
via `new-struct-path-tbaa` may be leveraged. As `!tbaa.struct`
carries memcpy padding semantics among struct fields and `!tbaa`
is already meant to aid to alias semantics, it should be possible
to zero out `!tbaa.struct` once the memcpy has been simplified.
`SROA/tbaa-struct.ll` test has gone out of scope, as `!tbaa` has
already replaced `!tbaa.struct` in SROA.
Fixes: https://github.com/llvm/llvm-project/issues/95661.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250561
Commit: 13e4975612670ccb3771757d3b68f7cdff98b659
https://github.com/llvm/llvm-project/commit/13e4975612670ccb3771757d3b68f7cdff98b659
Author: PeterChou1 <peter.chou at mail.utoronto.ca>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/index.js
A clang-tools-extra/test/clang-doc/test-path-abs.cpp
Log Message:
-----------
[clang-doc] switched from using relative to absolute paths (#93281)
Summary:
fixes https://github.com/llvm/llvm-project/issues/92867
This patches changes the way clang-doc index navigation works,
previously it was based a relative path approach, this approach is error
prone and lead to wrong paths for the anchor tag. The new navigation way
is based on absolute paths and should work and be less confusing
codewise.
Because the differences with serving over a http server and viewing via
file system I also added export a RootPath variable to the index_json.js
file
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250723
Commit: 4c2c6cf8dd84b1e9c6475526a8351ab478958d93
https://github.com/llvm/llvm-project/commit/4c2c6cf8dd84b1e9c6475526a8351ab478958d93
Author: Hari Limaye <hari.limaye at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/TargetFrameLowering.h
M llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp
M llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
Log Message:
-----------
[StackFrameLayoutAnalysis] Use target-specific hook for SP offsets (#100386)
Summary:
StackFrameLayoutAnalysis currently calculates SP-relative offsets in a
target-independent way via MachineFrameInfo offsets. This is incorrect
for some Targets, e.g. AArch64, when there are scalable vector stack
slots.
This patch adds a virtual function to TargetFrameLowering to provide
offsets from SP, with a default implementation matching what is
currently used in StackFrameLayoutAnalysis, and refactors
StackFrameLayoutAnalysis to use this function. Only non-zero scalable
offsets are output by the analysis pass.
An implementation of this function is added for AArch64 targets, which
aims to provide correct SP offsets in most cases.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250658
Commit: a122fc41a2a765398fd1c81c0b2d1612929245db
https://github.com/llvm/llvm-project/commit/a122fc41a2a765398fd1c81c0b2d1612929245db
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Host/linux/Host.cpp
Log Message:
-----------
[lldb][Linux] Parse, but don't store "comm" from /proc/stat file (#100387)
Summary:
As reported in https://github.com/llvm/llvm-project/issues/89710, the %s
code used for `comm` could and probably does, overflow the buffer.
Likely we haven't seen it cause problems because the following data is
overwritten right afterwards.
Also scanf isn't a great choice here as this `comm` can include many
characters that might trip up %s.
We don't actually use `comm`, so parse but don't store it so we're not
overflowing anything.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250556
Commit: 6e813fa7ad0e52b7b5334ec6fcf6b8a664e93d87
https://github.com/llvm/llvm-project/commit/6e813fa7ad0e52b7b5334ec6fcf6b8a664e93d87
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/OperatingSystemPythonInterface/OperatingSystemPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPlanPythonInterface/ScriptedThreadPlanPythonInterface.h
Log Message:
-----------
[lldb/Plugins] Fix build failure on windows following 2914a4b88837
Summary:
This patch tries to fix the following build failure on windows:
https://lab.llvm.org/buildbot/#/builders/141/builds/1083
This started happening following 2914a4b88837, and it seems to be caused
by some special `#include` ordering for the lldb-python header on Windows.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250605
Commit: acb04973e55d879b300a8f7071fbe80369ed2417
https://github.com/llvm/llvm-project/commit/acb04973e55d879b300a8f7071fbe80369ed2417
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocationSimplification.cpp
M mlir/lib/Transforms/Utils/RegionUtils.cpp
M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/dealloc-branchop-interface.mlir
M mlir/test/Dialect/Linalg/detensorize_entry_block.mlir
M mlir/test/Dialect/Linalg/detensorize_if.mlir
M mlir/test/Dialect/Linalg/detensorize_while.mlir
M mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
M mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
M mlir/test/Transforms/canonicalize-block-merge.mlir
M mlir/test/Transforms/canonicalize-dce.mlir
M mlir/test/Transforms/make-isolated-from-above.mlir
R mlir/test/Transforms/test-canonicalize-merge-large-blocks.mlir
Log Message:
-----------
Revert "[mlir] Fix block merging" (#100510)
Summary:
Reverts llvm/llvm-project#97697
This commit introduced non-trivial bugs related to type consistency.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250716
Commit: 79bfb4750c527aea3f988b79bd1a8cf6fb1cd751
https://github.com/llvm/llvm-project/commit/79bfb4750c527aea3f988b79bd1a8cf6fb1cd751
Author: Edd Dawson <edd.dawson at sony.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/test/Driver/lto-jobs.c
M clang/test/Driver/ps4-linker.c
M clang/test/Driver/ps5-linker.c
M clang/test/Driver/unified-lto.c
Log Message:
-----------
[PS4/PS5][Driver] Always pass LTO options to the linker (#100423)
Summary:
The driver doesn't know if LTO will occur at link time. That's
determined by the presence or absence of LLVM bitcode objects among
those ingested by the linker.
For this reason, LTO options for codegen etc must be passed to the
linker unconditionally. If LTO does not occur, these options have no
effect.
Also simplify the way LTO options are supplied to the PS4 linker.
`-lto-debug-options` and `-lto-thin-debug-options` are combined and
routed to the same place. So, always use the former, regardless of
full/thin LTO mode.
SIE tracker: TOOLCHAIN-16575
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250517
Commit: eeed9a5f31bd99ded8d873ed029d0b1d578b58f5
https://github.com/llvm/llvm-project/commit/eeed9a5f31bd99ded8d873ed029d0b1d578b58f5
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorize-tensor-extract-masked.mlir
Log Message:
-----------
[mlir][linalg] Fix scalable vectorisation of tensor.extract (#100325)
Summary:
This PR fixes one very specific aspect of vectorising `tensor.extract`
Ops when targeting scalable vectors. Namely, it makes sure that the
scalable flag is correctly propagated when creating
`vector::ShapeCastOp`.
BEFORE:
```mlir
vector.shape_cast %idx_vec : vector<1x1x[4]xindex> to vector<4xindex>
```
AFTER:
```mlir
vector.shape_cast %idx_vec : vector<1x1x[4]xindex> to vector<[4]xindex>
```
This particular ShapeCastOp is created when generating an index for
`vector.transfer_read` operations. Strictly speaking, casting is not
really required. However, it makes the subsequent address calculation
much simpler (*).
The following test is updated to demonstrate the use of
`vector.shape_cast` by the vectoriser:
*
@masked_static_vectorize_nd_tensor_extract_with_affine_apply_contiguous
Similar test with scalable vectors is also added.
(*) At this point in the vectoriser it is known
that all leading dims in the index vector are "1").
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250742
Commit: d6d49ac791f942e8b9e52e286a3c05c21c7fc91e
https://github.com/llvm/llvm-project/commit/d6d49ac791f942e8b9e52e286a3c05c21c7fc91e
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/IR/BuiltinTypes.td
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/invalid.mlir
Log Message:
-----------
[mlir][vector] Restrict vector.shape_cast (scalable vectors) (#100331)
Summary:
Updates the verifier for `vector.shape_cast` so that incorrect cases
where "scalability" is dropped are immediately rejected. For example:
```mlir
vector.shape_cast %vec : vector<1x1x[4]xindex> to vector<4xindex>
```
Also, as a separate PR, I've prepared a fix for the Linalg vectorizer to
avoid generating such shape casts (*):
* https://github.com/llvm/llvm-project/pull/100325
(*) Note, that's just one specific case that I've identified so far.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250589
Commit: ee49feb9a386185a7fcb0695899f1847a3ed519b
https://github.com/llvm/llvm-project/commit/ee49feb9a386185a7fcb0695899f1847a3ed519b
Author: kadir çetinkaya <kadircet at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
M clang/unittests/Tooling/ToolingTest.cpp
Log Message:
-----------
[clang][CUDA] Assume unknown emission status for skipped function definitions (#100124)
Summary:
Emission status seems to be only used by cuda/openmp/hip compiles, to
figure out
when to emit diagnostics. Current logic emits "uknown" when definition
is
missing, so i extended that to skipped-function-bodies as well.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250704
Commit: ecffe5ee266a3fcfa6200720f97ebdf871bcdfeb
https://github.com/llvm/llvm-project/commit/ecffe5ee266a3fcfa6200720f97ebdf871bcdfeb
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/language.support/support.runtime/ctime.timespec.compile.pass.cpp
M libcxx/utils/ci/build-picolibc.sh
Log Message:
-----------
[libcxx][test] Update picolibc version (#100348)
Summary:
This is the latest as of today, and it fixes one of the xfails.
Since
https://github.com/picolibc/picolibc/commit/5e4d0c80f49b4efe8be85e36b5e85d65bd343214,
TIME_UTC is defined.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250615
Commit: c7ec634d48d3883c302660fd03e3837dfc4b44e2
https://github.com/llvm/llvm-project/commit/c7ec634d48d3883c302660fd03e3837dfc4b44e2
Author: kadir çetinkaya <kadircet at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
A clang/test/Frontend/skip-function-bodies.cpp
Log Message:
-----------
[clang][Driver] Add cc1 flag for setting SkipFunctionBodies (#100135)
Summary:
This is an option set by certain tools (clangd and ASTUnit). Sometimes
there are crashes in clang, unique to this configuration and it's really
hard to provide reproducers without invoking the tool.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250597
Commit: cf1707f6935e2aba4419ef6eb707465b4c9bcddc
https://github.com/llvm/llvm-project/commit/cf1707f6935e2aba4419ef6eb707465b4c9bcddc
Author: Jay Foad <jay.foad at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.prim.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.row.ll
Log Message:
-----------
[AMDGPU] Add GFX12 test coverage for export instructions (#100415)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250629
Commit: e6b33b3c322c1e7018b67f800d2dd1f6afb4dfdb
https://github.com/llvm/llvm-project/commit/e6b33b3c322c1e7018b67f800d2dd1f6afb4dfdb
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/kernel-argument-dag-lowering.ll
Log Message:
-----------
AMDGPU: Fix asserting in DAG kernel argument lowering on v6i32 (#100528)
Summary: Remove this pointless assertion for the number of vector elements.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250774
Commit: e230edbcd1a720dc5dde8a2bc88b1c9266f8faaf
https://github.com/llvm/llvm-project/commit/e230edbcd1a720dc5dde8a2bc88b1c9266f8faaf
Author: chuongg3 <chuong.goh at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-dup.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-dup.mir
M llvm/test/CodeGen/AArch64/arm64-dup.ll
M llvm/test/CodeGen/AArch64/neon-mov.ll
Log Message:
-----------
[AArch64][GlobalISel] Reland Make G_DUP immediate 32-bits or larger (#96780) (#99014)
Summary:
Immediate operand gets extended in RegBankSelect to at least 32 bits to
allow for better pattern matching in TableGen
The previous patch was erasing a constant without checking if it has
more than one use
Changes:
- Does not erase the constant
- Added @v_dup16_const test
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250559
Commit: 60055ad7eb319748399949839688d8ba0d504cf3
https://github.com/llvm/llvm-project/commit/60055ad7eb319748399949839688d8ba0d504cf3
Author: Him188 <tguan at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-ccmp.ll
A llvm/test/CodeGen/AArch64/fcmp-fp128.ll
M llvm/test/CodeGen/AArch64/fcmp.ll
Log Message:
-----------
[AArch64][GlobalISel] Legalize fp128 types as libcalls for G_FCMP (#98452)
Summary:
- Generate libcall for supported predicates.
- Generate unsupported predicates as combinations of supported
predicates.
- Vectors are scalarized, however some cases like `v3f128_fp128` are still failing, because we failed to legalize G_OR for these types.
GISel now generates the same code as SDAG, however, note the difference
in the `one` case.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250518
Commit: e970be9b68c6ac830fcd1a74dbebbd4735403e26
https://github.com/llvm/llvm-project/commit/e970be9b68c6ac830fcd1a74dbebbd4735403e26
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
Log Message:
-----------
[LV] Ignore live-out users in cost model if scalar epilogue is required.
Summary:
Follow-up to ba8126b6fef79.
If a scalar epilogue is required, users outside the loop won't use
live-outs from the vector loop but from the scalar epilogue. Ignore them if
that is the case.
This fixes another case where the VPlan-based cost-model more accurately
computes cost.
Fixes https://github.com/llvm/llvm-project/issues/100464.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250614
Commit: e9796727c31cbdecd39b1d558612b53145f225a9
https://github.com/llvm/llvm-project/commit/e9796727c31cbdecd39b1d558612b53145f225a9
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
A llvm/test/Transforms/SLPVectorizer/X86/pr98978.ll
Log Message:
-----------
[BasicAA] Fix handling of indirect assumption based results (#100130)
Summary:
If a result is potentially based on a not yet proven assumption,
BasicAA will remember it inside AssumptionBasedResults and remove
the cache entry if an assumption higher up is later disproved.
However, we currently miss the case where another cache entry ends
up depending on such an AssumptionBased result.
Fix this by introducing an additional AssumptionBased state for
cache entries. If such a result is used, we'll still increment
AAQI.NumAssumptionUses, which means that the using entry will
also become AssumptionBased and be cleared if the assumption is
disproved.
At the end of the root query, convert remaining AssumptionBased
results into definitive results.
Fixes https://github.com/llvm/llvm-project/issues/98978.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250771
Commit: 9bb090ec48382d66c7de5a807caf47892cec7dd0
https://github.com/llvm/llvm-project/commit/9bb090ec48382d66c7de5a807caf47892cec7dd0
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/MapLattice.h
Log Message:
-----------
[Clang] Fix a variable shadowing in MapLattice (NFC) (#95697)
Summary:
Reported in https://pvs-studio.com/en/blog/posts/cpp/1126/, fragment
N10.
The PVS-Studio warning:
V570 The 'C' variable is assigned to itself. MapLattice.h:52
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250526
Commit: 396adab4ff3c01d04248bd380d3b7a92658e3ec5
https://github.com/llvm/llvm-project/commit/396adab4ff3c01d04248bd380d3b7a92658e3ec5
Author: Kai Yan <aklkaiyan at tencent.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/WindowScheduler.cpp
A llvm/test/CodeGen/Hexagon/swp-ws-stall-cycle.mir
Log Message:
-----------
[llvm][CodeGen] Fixed a bug in stall cycle calculation for window scheduler (#99451)
Summary:
Fixed a bug in stall cycle calculation.
When a register defined by an instruction in the current iteration is
used by an instruction in the next iteration, we have modified the
number of stall cycle that need to be inserted.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250684
Commit: 441384567baaaedd8afb4a4dcaf31875776dbf16
https://github.com/llvm/llvm-project/commit/441384567baaaedd8afb4a4dcaf31875776dbf16
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/X86/divs-with-tail-folding.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
Log Message:
-----------
[LV] Don't predicate divs with invariant divisor when folding tail (#98904)
Summary:
When folding the tail, at least one of the lanes must execute
unconditionally. If the divisor is loop-invariant no predication is
needed, as predication would not prevent the divide-by-0 on the executed
lane.
Depends on https://github.com/llvm/llvm-project/pull/98892.
PR: https://github.com/llvm/llvm-project/pull/98904
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250648
Commit: 9cd5dbaa0bef7ad2234a2580ceb71fc42b2dcb2b
https://github.com/llvm/llvm-project/commit/9cd5dbaa0bef7ad2234a2580ceb71fc42b2dcb2b
Author: Kristóf Umann <dkszelethus at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
Log Message:
-----------
[analyzer][NFC] Add some docs for LazyCompoundValue (#97407)
Summary:
Yes, I basically copy-pasted some posts from discord and Artem's book,
but these make for a rather decent docs.
---------
Co-authored-by: Artem Dergachev <noqnoqneo at gmail.com>
Co-authored-by: Donát Nagy <donat.nagy at ericsson.com>
Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250770
Commit: 23bae0d367f05ba08ef002a8c1422ef83723d2a3
https://github.com/llvm/llvm-project/commit/23bae0d367f05ba08ef002a8c1422ef83723d2a3
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
Log Message:
-----------
[lldb] Fix incorrect uses of logical operator in 'if' condition check (NFC) (#94779)
Summary:
The condition checking for missing class name, interpreter dictionary,
and script object incorrectly used logical AND (&&), which could never
be true to enter the 'if' block.
This commit uses separate if conditions for each class name, interpreter
dictionary, and script object.
Cought by cppcheck -
lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h:89:11:
warning: Identical inner 'if' condition is always true.
[identicalInnerCondition]
lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h:91:16:
warning: Identical inner 'if' condition is always true.
[identicalInnerCondition]
Fix #89195
---------
Co-authored-by: Shivam Gupta <shivma98.tkg at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250553
Commit: ed25eb351308ee4b7cdbc35860f7a2a1b3c55093
https://github.com/llvm/llvm-project/commit/ed25eb351308ee4b7cdbc35860f7a2a1b3c55093
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/test/Analysis/call-invalidation.cpp
Log Message:
-----------
[analyzer] Don't invalidate the super region when a std object ctor runs (#100405)
Summary: CPP-5269
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250642
Commit: 77cccf56a056833ff313d11a857d62b943eb6619
https://github.com/llvm/llvm-project/commit/77cccf56a056833ff313d11a857d62b943eb6619
Author: yronglin <yronglin777 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/test/SemaCXX/cxx1z-decomposition.cpp
Log Message:
-----------
[Clang][Interp] Visit `DecompositionDecl` and create a local variable (#100400)
Summary:
The following code should be well-formed:
```C++
float decompose_complex(_Complex float cf) {
static _Complex float scf;
auto &[sre, sim] = scf;
// ok, this is references initialized by constant expressions all the way down
static_assert(&sre == &__real scf);
static_assert(&sim == &__imag scf);
auto [re, im] = cf;
return re*re + im*im;
}
```
We should visit `DecompositionDecl` and create a local variable but not
a create a dummy value directly.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250516
Commit: 31447fb7af53a5dc3f8d2506fe0003d8e598de85
https://github.com/llvm/llvm-project/commit/31447fb7af53a5dc3f8d2506fe0003d8e598de85
Author: runseny <145632023+runseny at users.noreply.github.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/MathToROCDL/MathToROCDL.cpp
M mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
Log Message:
-----------
[MLIR][GPUToNVVM] support fastMath and other non-supported mathOp (#99890)
Summary:
Support fastMath and other non-supported mathOp which only require float
operands and call libdevice function directly to nvvm.
1. lowering mathOp with fastMath attribute to correct libdevice
intrinsic.
2. some mathOp in math dialect has been lowered to libdevice now, but it
doesn't cover all mathOp. so this mr lowers all the remaining mathOp
which only require float operands.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250617
Commit: a4e721eb207b1a3e48fd574d7329d5ff07bdf947
https://github.com/llvm/llvm-project/commit/a4e721eb207b1a3e48fd574d7329d5ff07bdf947
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineTraceMetrics.cpp
Log Message:
-----------
Revert "MTM: fix issues after cursory reading" (#100559)
Summary:
Reverts llvm/llvm-project#100404
This broke the gcc7 build here:
https://lab.llvm.org/buildbot/#/builders/116/builds/1724
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250678
Commit: 29c63878287e43bd362a091316ae9297b954ecee
https://github.com/llvm/llvm-project/commit/29c63878287e43bd362a091316ae9297b954ecee
Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/SemaCXX/cxx2a-destroying-delete.cpp
Log Message:
-----------
[Clang] fix assertion failure in invalid delete operator declaration check (#99308)
Summary: Fixes #96191
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250558
Commit: a146e3be303a34764682cec40852d7fc1b4baf7f
https://github.com/llvm/llvm-project/commit/a146e3be303a34764682cec40852d7fc1b4baf7f
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
Log Message:
-----------
Revert "[lldb] Fix incorrect logical operator in 'if' condition check (NFC)" (#100561)
Summary:
Reverts llvm/llvm-project#94779
Due to bot failures:
https://lab.llvm.org/buildbot/#/builders/18/builds/1371
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250548
Commit: deb8ebf61666db39e8c4621e08101b0d40acdf47
https://github.com/llvm/llvm-project/commit/deb8ebf61666db39e8c4621e08101b0d40acdf47
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/MachineModuleInfo.cpp
R llvm/test/CodeGen/Generic/disable-debug-info-print.ll
R llvm/test/CodeGen/X86/disable-debug-info-print-codeview.ll
M llvm/test/CodeGen/X86/frame-order.ll
Log Message:
-----------
CodeGen: Remove -disable-debug-info-print cl::opt (#100319)
Summary:
This was first introduced way back in in 2010 by
6c74a872a8d34d41b751efb68e335cbe91b5a5cc, and has little evidence
of use. Only one test attempts to make use of this, but it's
also redundant since it's also using strip to drop debug info anyway
(and that also makes the test buggy, since it's intended to test
with and without debug info).
The other tests using it were only added to test the option after
discovering it was untested and moved, in later commits.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250578
Commit: 626022bfd18f335ef62a461992a05dfed4e6d715
https://github.com/llvm/llvm-project/commit/626022bfd18f335ef62a461992a05dfed4e6d715
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
A flang/test/Transforms/debug-96314.fir
Log Message:
-----------
[flang][debug] Set scope of internal functions correctly. (#99531)
Summary:
The functions internal to subroutine should have the scope set to the
parent function. This allows a user to evaluate local variables of
parent function when control is stopped in the child.
Fixes #96314
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250527
Commit: d32b5caa83e6f4ba35cb95b3a6d740353ac41e2e
https://github.com/llvm/llvm-project/commit/d32b5caa83e6f4ba35cb95b3a6d740353ac41e2e
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Interp.h
Log Message:
-----------
[clang][Interp][NFC] Protect getPtrBase{,Pop} ops from past-end ptrs
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250522
Commit: 3baaf95799911d11e64db975bf1e027408dcc6ec
https://github.com/llvm/llvm-project/commit/3baaf95799911d11e64db975bf1e027408dcc6ec
Author: James Y Knight <jyknight at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm.mli
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/docs/BitCodeFormat.rst
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/DataLayout.h
M llvm/include/llvm/IR/Type.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/CodeGen/ValueTypes.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/ConstantFold.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DataLayout.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/Type.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
M llvm/lib/Target/X86/X86CallingConv.td
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
R llvm/test/Assembler/x86mmx.ll
M llvm/test/Bitcode/bcanalyzer-types.ll
M llvm/test/Bitcode/compatibility-3.6.ll
M llvm/test/Bitcode/compatibility-3.7.ll
M llvm/test/Bitcode/compatibility-3.8.ll
M llvm/test/Bitcode/compatibility-3.9.ll
M llvm/test/Bitcode/compatibility-4.0.ll
M llvm/test/Bitcode/compatibility-5.0.ll
M llvm/test/Bitcode/compatibility-6.0.ll
M llvm/test/Bitcode/compatibility.ll
M llvm/test/CodeGen/X86/2008-09-05-sinttofp-2xi32.ll
M llvm/test/CodeGen/X86/avx-vbroadcast.ll
M llvm/test/CodeGen/X86/avx2-vbroadcast.ll
M llvm/test/CodeGen/X86/fast-isel-bc.ll
M llvm/test/CodeGen/X86/mmx-arg-passing-x86-64.ll
M llvm/test/CodeGen/X86/mmx-arg-passing.ll
M llvm/test/CodeGen/X86/mmx-arith.ll
M llvm/test/CodeGen/X86/mmx-bitcast-fold.ll
M llvm/test/CodeGen/X86/mmx-bitcast.ll
M llvm/test/CodeGen/X86/mmx-cvt.ll
M llvm/test/CodeGen/X86/mmx-fold-load.ll
M llvm/test/CodeGen/X86/mmx-intrinsics.ll
M llvm/test/CodeGen/X86/pr23246.ll
M llvm/test/CodeGen/X86/pr29222.ll
M llvm/test/CodeGen/X86/select-mmx.ll
M llvm/test/CodeGen/X86/stack-folding-mmx.ll
M llvm/test/CodeGen/X86/vec_extract-mmx.ll
M llvm/test/CodeGen/X86/vec_insert-7.ll
M llvm/test/CodeGen/X86/vec_insert-mmx.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/mmx-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/vector_arith.ll
M llvm/test/Instrumentation/MemorySanitizer/vector_cvt.ll
M llvm/test/Instrumentation/MemorySanitizer/vector_pack.ll
M llvm/test/Instrumentation/MemorySanitizer/vector_shift.ll
M llvm/test/Transforms/InstCombine/X86/x86-movmsk.ll
M llvm/test/Transforms/InstCombine/bitcast-vec-canon-inseltpoison.ll
M llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
M llvm/test/Transforms/InstSimplify/ConstProp/loads.ll
R llvm/test/Transforms/LoopUnroll/X86/mmx.ll
M llvm/test/Transforms/SLPVectorizer/X86/bad_types.ll
M llvm/test/Transforms/SROA/pr57796.ll
M llvm/tools/llvm-c-test/echo.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/unittests/IR/InstructionsTest.cpp
M mlir/docs/Dialects/LLVM.md
M mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
M mlir/lib/Target/LLVMIR/TypeFromLLVM.cpp
M mlir/lib/Target/LLVMIR/TypeToLLVM.cpp
M mlir/test/Dialect/LLVMIR/types.mlir
M mlir/test/Target/LLVMIR/llvmir-types.mlir
Log Message:
-----------
Remove the `x86_mmx` IR type. (#98505)
Summary:
It is now translated to `<1 x i64>`, which allows the removal of a bunch
of special casing.
This _incompatibly_ changes the ABI of any LLVM IR function with
`x86_mmx` arguments or returns: instead of passing in mmx registers,
they will now be passed via integer registers. However, the real-world
incompatibility caused by this is expected to be minimal, because Clang
never uses the x86_mmx type -- it lowers `__m64` to either `<1 x i64>`
or `double`, depending on ABI.
This change does _not_ eliminate the SelectionDAG `MVT::x86mmx` type.
That type simply no longer corresponds to an IR type, and is used only
by MMX intrinsics and inline-asm operands.
Because SelectionDAGBuilder only knows how to generate the
operands/results of intrinsics based on the IR type, it thus now
generates the intrinsics with the type MVT::v1i64, instead of
MVT::x86mmx. We need to fix this before the DAG LegalizeTypes, and thus
have the X86 backend fix them up in DAGCombine. (This may be a
short-lived hack, if all the MMX intrinsics can be removed in upcoming
changes.)
Works towards issue #98272.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250667
Commit: e961607b5179d559dff90d5ebb4707e91e767361
https://github.com/llvm/llvm-project/commit/e961607b5179d559dff90d5ebb4707e91e767361
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
Log Message:
-----------
Fix fs.op.copy_file/copy_file_large.pass.cpp on z/OS (#100382)
Summary:
This PR is required to fix copy_file_large.pass.cpp which is failing on
z/OS in all ASCII variations. The problem is that a destination file is
opened in binary mode and auto-conversion does not happen when this lit
is compiled with -fzos-le-char-mode=ascii.
In addition opening a destination file will match a text mode of
`fopen()` of a source file.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250519
Commit: 0e20e16b8fec98e111525d9c4b5d886b2de432af
https://github.com/llvm/llvm-project/commit/0e20e16b8fec98e111525d9c4b5d886b2de432af
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/IR/ConstantRange.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/mul.ll
M llvm/unittests/IR/ConstantRangeTest.cpp
Log Message:
-----------
[ConstantRange] Infer nonnegative for mul nuw nsw (#100554)
Summary: Alive2: https://alive2.llvm.org/ce/z/byzmsV
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250532
Commit: e078e0a76bd20e159e27c1d0dc1f739083c70c38
https://github.com/llvm/llvm-project/commit/e078e0a76bd20e159e27c1d0dc1f739083c70c38
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/Compiler.cpp
M clang/lib/AST/Interp/Compiler.h
M clang/lib/AST/Interp/Interp.h
M clang/lib/AST/Interp/Opcodes.td
M clang/test/SemaCXX/new-delete-0x.cpp
Log Message:
-----------
[clang][Interp] Reject non-literal values
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250535
Commit: c2c22112b8ae415fd0ee90b9c64ee1c8ffc6e04b
https://github.com/llvm/llvm-project/commit/c2c22112b8ae415fd0ee90b9c64ee1c8ffc6e04b
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
Log Message:
-----------
[AMDGPU][NFCI] Declare offset0/1 operands to be i32. (#100560)
Summary:
Being of type i8 makes them signed, which they aren't, and requires
extra work masking them on verbalisation.
Part of <https://github.com/llvm/llvm-project/issues/62629>.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250552
Commit: 57faae076810723980b27e921d4de844bfff726a
https://github.com/llvm/llvm-project/commit/57faae076810723980b27e921d4de844bfff726a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
Log Message:
-----------
[SLP][X86] Update add/sub sat test checks to share common SSE prefixes
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250541
Commit: b0fcafa13610eba0f89e7aaa1a489f5e9015cdb4
https://github.com/llvm/llvm-project/commit/b0fcafa13610eba0f89e7aaa1a489f5e9015cdb4
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/arith-ssat-codesize.ll
M llvm/test/Analysis/CostModel/X86/arith-ssat-latency.ll
M llvm/test/Analysis/CostModel/X86/arith-ssat-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/arith-ssat.ll
M llvm/test/Analysis/CostModel/X86/arith-usat-codesize.ll
M llvm/test/Analysis/CostModel/X86/arith-usat-latency.ll
M llvm/test/Analysis/CostModel/X86/arith-usat-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/arith-usat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
Log Message:
-----------
[CostModel][X86] Add add/sat sat intrinsic costs
Summary: Fixes regressions from #97463 due to missing costs for custom lowered ops
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250540
Commit: 2e97c096d994006801422521d3bf0283300b3fec
https://github.com/llvm/llvm-project/commit/2e97c096d994006801422521d3bf0283300b3fec
Author: Kai Nacke <kai.peter.nacke at ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
M llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
M llvm/lib/Target/ARM/ARMRegisterBankInfo.h
M llvm/lib/Target/M68k/GISel/M68kRegisterBankInfo.cpp
M llvm/lib/Target/M68k/GISel/M68kRegisterBankInfo.h
M llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
M llvm/lib/Target/Mips/MipsRegisterBankInfo.h
M llvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.cpp
M llvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.h
M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
M llvm/lib/Target/SPIRV/SPIRVRegisterBankInfo.cpp
M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp
M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.h
A llvm/test/TableGen/RegBankFromRegClass.td
M llvm/utils/TableGen/RegisterBankEmitter.cpp
Log Message:
-----------
[GISel][TableGen] Generate getRegBankFromRegClass (#99896)
Summary:
Generating the mapping from a register class to a register bank is
complex:
- there can be lots of register classes
- the mapping may be ambiguos
- a register class can span several register banks (e.g. a register
class containing all registers)
- the type information is not enough to decide which register bank to
map to (e.g. a register class containing floating point and vector
registers, and all register can represent a f64 value)
The approach taken here is to encode the register banks in an array
indexed by the ID of the register class. To save space, the entries are
packed into chunks of size 2^n.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250585
Commit: f412fddf6233cc6a2131eae40ce8e503d341b4a1
https://github.com/llvm/llvm-project/commit/f412fddf6233cc6a2131eae40ce8e503d341b4a1
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/TargetParser/PPCTargetParser.cpp
Log Message:
-----------
[PowerPC] fix default cpu setting
Summary:
for platform that returns nothing for getHostCPUName()
For example for target ARM on windows. For this case, -mcpu=native
should set CPU to the default according to triple instead of setting
CPU to "native"
Fixes https://lab.llvm.org/buildbot/#/builders/161/builds/873 caused by
https://github.com/llvm/llvm-project/pull/97541
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250515
Commit: 43f9ee424f53cc979b96df7cfdf8e545bddbceef
https://github.com/llvm/llvm-project/commit/43f9ee424f53cc979b96df7cfdf8e545bddbceef
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Analysis/ctor-array.cpp
M clang/test/Analysis/ctor.mm
Log Message:
-----------
[analyzer][NFC] Minor cleanup in two test files. (#100570)
Summary:
This commit contains two unrelated trivial changes:
(1) Three unused variables are removed from `ctor.mm`.
(2) A FIXME block is removed from `ctor-array.cpp` because it described
an issue that was resolved since then.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250625
Commit: 958d170a9eef0f9487fbf29f438422e9553917c7
https://github.com/llvm/llvm-project/commit/958d170a9eef0f9487fbf29f438422e9553917c7
Author: weiwei chen <weiwei.chen at modular.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/docs/Diagnostics.md
M mlir/include/mlir/IR/Diagnostics.h
A mlir/test/IR/diagnostic-handler-metadata.mlir
M mlir/test/lib/IR/CMakeLists.txt
A mlir/test/lib/IR/TestDiagnosticsMetadata.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
[mlir] Add metadata to Diagnostic. (#99398)
Summary:
Add metadata to Diagnostic.
Motivation: we have a use case where we want to do some filtering in our
customized Diagnostic Handler based on some customized info that is not
`location` or `severity` or `diagnostic arguments` that are member
variables of `Diagnostic`. Specifically, we want to add a unique ID to
the `Diagnostic` for the handler to filter in a compiler pass that emits
errors in async tasks with multithreading and the diagnostic handling is
associated to the task.
This patch adds a field of `metadata` to `mlir::Diagnostics` as a
general solution. `metadata` is of type `SmallVector<DiagnosticArgument,
0>` to save memory size and reuse existing `DiagnosticArgument` for
metadata type.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250607
Commit: c9ee8a241962d323e9c60366982e37093886ba28
https://github.com/llvm/llvm-project/commit/c9ee8a241962d323e9c60366982e37093886ba28
Author: Chen Zheng <czhengsz at cn.ibm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/test/Sema/builtin-cpu-supports.c
Log Message:
-----------
[PowerPC] add testcaseis for PPC, NFC
Summary: For builtin __builtin_cpu_is and __builtin_cpu_supports
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250632
Commit: acf6d4e1c62065f1fb0529ec3c550524899644b8
https://github.com/llvm/llvm-project/commit/acf6d4e1c62065f1fb0529ec3c550524899644b8
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
M llvm/unittests/Frontend/OpenMPDecompositionTest.cpp
Log Message:
-----------
[Frontend][OpenMP] Allow implicit clauses to fail to apply (#100460)
Summary:
The `linear(x)` clause implies `firstprivate(x)` on the compound
construct if `x` is not an induction variable. With more construct
combinations coming in OpenMP 6.0, the `firstprivate` clause may not be
possible to apply, e.g. in "masked simd".
An additional benefit from this change is that it allows treating leaf
constructs as combined constructs with a single constituent. Otherwise,
a `linear` clause on a lone `simd` construct could imply a
`firstprivate` clause that can't be applied.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250572
Commit: 03646115ef239625a3b8d3566be330d19601cd59
https://github.com/llvm/llvm-project/commit/03646115ef239625a3b8d3566be330d19601cd59
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-lto-defaults.ll
A llvm/test/Transforms/PhaseOrdering/varargs.ll
Log Message:
-----------
[LLVM] Add 'ExpandVariadicsPass' to LTO default pipeline (#100479)
Summary:
This pass expands variadic functions into non-variadic function calls
according to the target ABI. Currently, this is used as the lowering for
the NVPTX and AMDGPU targets.
This pass is currently only run late in the target's backend. However,
during LTO we want to run it before the inliner pass so that the
expanded functions can be inlined using standard heuristics. This pass
is a no-op for unsupported targets, so this won't apply to any code that
isn't already using it.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250576
Commit: b9815c52bb2910ff32cbe80e3ff8b4bce5930ca1
https://github.com/llvm/llvm-project/commit/b9815c52bb2910ff32cbe80e3ff8b4bce5930ca1
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/varargs.ll
Log Message:
-----------
[LLVM] Only run vararg test with the amdgpu target
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250665
Commit: b7e5db1add9c06f32d327f3e96f59126cda3254c
https://github.com/llvm/llvm-project/commit/b7e5db1add9c06f32d327f3e96f59126cda3254c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/arith-overflow.ll
M llvm/test/Analysis/CostModel/X86/costmodel.ll
M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
M llvm/test/Transforms/LoopVectorize/X86/pr54634.ll
Log Message:
-----------
[CostModel][X86] Improve add/sub/mul overflow intrinsic costs
Summary: Noticed due to x86 changes in #97463
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250555
Commit: 185f5e7b2c1917c293186014567cb5cecf80890e
https://github.com/llvm/llvm-project/commit/185f5e7b2c1917c293186014567cb5cecf80890e
Author: Mike Rice <michael.p.rice at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
Log Message:
-----------
[clang][NFC] remove unneeded nullptr checks after dereference (#100489)
Summary:
Fix static verifer concerns of null pointer checks after dereferencing
the pointer. Update the assert to make it super clear it is not null and
remove the checks.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250760
Commit: 1194214a26bf346725e7064825d08ad184daa20a
https://github.com/llvm/llvm-project/commit/1194214a26bf346725e7064825d08ad184daa20a
Author: Tristan Ross <tristan.ross at midstall.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/CMakeLists.txt
M bolt/include/bolt/RuntimeLibs/RuntimeLibrary.h
M bolt/lib/CMakeLists.txt
M bolt/lib/RuntimeLibs/HugifyRuntimeLibrary.cpp
M bolt/lib/RuntimeLibs/InstrumentationRuntimeLibrary.cpp
M bolt/lib/RuntimeLibs/RuntimeLibrary.cpp
M bolt/lib/Target/AArch64/CMakeLists.txt
M bolt/lib/Target/RISCV/CMakeLists.txt
M bolt/lib/Target/X86/CMakeLists.txt
M bolt/lib/Utils/CMakeLists.txt
M bolt/lib/Utils/CommandLineOpts.cpp
M bolt/runtime/CMakeLists.txt
M bolt/test/lit.cfg.py
M bolt/test/lit.site.cfg.py.in
Log Message:
-----------
[BOLT] Enable standalone build (#97130)
Summary:
Continue from #87196 as author did not have much time, I have taken over
working on this PR. We would like to have this so it'll be easier to
package for Nix.
Can be tested by copying cmake, bolt, third-party, and llvm directories
out into their own directory with this PR applied and then build bolt.
---------
Co-authored-by: pca006132 <john.lck40 at gmail.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250600
Commit: 833de7531b6d6dc77de3d3c7fbbfd5dee02c2149
https://github.com/llvm/llvm-project/commit/833de7531b6d6dc77de3d3c7fbbfd5dee02c2149
Author: Tristan Ross <tristan.ross at midstall.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M bolt/utils/docker/Dockerfile
Log Message:
-----------
[BOLT] Update Docker to use Ubuntu 24.04 (#99421)
Summary:
Updates the Dockerfile to use Ubuntu 24.04 due to CMake wanting a newer
version. Can be tested by trying to build the Docker image currently in
main and then try building the Docker image in this PR.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250719
Commit: 6902e520d60b3fd1ff14401db5fafcbea1ff9d8a
https://github.com/llvm/llvm-project/commit/6902e520d60b3fd1ff14401db5fafcbea1ff9d8a
Author: Nathan James <n.james93 at hotmail.co.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
Log Message:
-----------
[clang-tidy] Fix crash in modernize-use-ranges (#100427)
Summary:
Crash seems to be caused by the check function not handling inline
namespaces correctly for some instances. Changed how the Replacer is got
from the MatchResult now which should alleviate any potential issues
Fixes #100406
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250581
Commit: 8ae0d748bc8c6985243f6e813b84088988e9de7f
https://github.com/llvm/llvm-project/commit/8ae0d748bc8c6985243f6e813b84088988e9de7f
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/non-const-parameter.c
Log Message:
-----------
[clang-tidy] Fix crash in C language in readability-non-const-parameter (#100461)
Summary:
Fix crash that happen when redeclaration got
different number of parameters than definition.
Fixes #100340
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250525
Commit: e8c9dce6945d7d096201239c7141069307fdc572
https://github.com/llvm/llvm-project/commit/e8c9dce6945d7d096201239c7141069307fdc572
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
Log Message:
-----------
[AMDGPU] Simplify printing row/bank_mask modifiers. (#100575)
Summary:
And fix a codegen test to use mask values that fit their encoding
fields.
Part of <https://github.com/llvm/llvm-project/issues/62629>.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250603
Commit: 3b395c7c457f1337ba000dfd4bb80e28b19d4775
https://github.com/llvm/llvm-project/commit/3b395c7c457f1337ba000dfd4bb80e28b19d4775
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Lower/ConvertVariable.h
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
A flang/test/Lower/OpenMP/private-derived-type.f90
Log Message:
-----------
[flang][OpenMP] Initialize privatised derived type variables (#100417)
Summary: Fixes #91928
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250643
Commit: 01739eaad60a0553ebacf7fc98b39400c2db6ae0
https://github.com/llvm/llvm-project/commit/01739eaad60a0553ebacf7fc98b39400c2db6ae0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Log Message:
-----------
Fix unused variable warning. NFC.
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250521
Commit: 8f73d1ff3bb1feced3da337468d7053898b31968
https://github.com/llvm/llvm-project/commit/8f73d1ff3bb1feced3da337468d7053898b31968
Author: Acim Maravic <Acim.Maravic at Syrmia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/BUFInstructions.td
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/SMInstructions.td
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
Log Message:
-----------
[LLVM][AMDGPU] Copy isConvergent from Pseudo to Real instructions (#99658)
Summary:
This patch copies the flag isConvergent from pseudo instructions to the
corresponding real instructions, so that isConvergent flag is also
defined for real instructions.
Flags are not required by the compiler, but for consistency it would be
nice to have them.
Co-authored-by: Acim Maravic <Acim.Maravic at amd.com>
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250766
Commit: cb510bb7bc15ed884fb1915a0e22fd66cb3b7498
https://github.com/llvm/llvm-project/commit/cb510bb7bc15ed884fb1915a0e22fd66cb3b7498
Author: jeanPerier <jperier at nvidia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M flang/include/flang/Optimizer/CodeGen/CGOps.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
Log Message:
-----------
[flang][NFC] rename fircg op operand index accessors (#100584)
Summary:
fircg operations have xxxOffset members to give the operand index of
operand xxx. This is a bit weird when looking at usage (e.g.
`arrayCoor.shiftOffset` reads like it is shifting some offset). Rename
them to getXxxOperandIndex.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250528
Commit: dcd817f163d5469883f9bbfe535391450bbc20ac
https://github.com/llvm/llvm-project/commit/dcd817f163d5469883f9bbfe535391450bbc20ac
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Parse/ParseExpr.cpp
Log Message:
-----------
[clang] Remove `__is_layout_compatible` from revertible type traits list (#100572)
Summary:
`__is_layout_compatible` was added in Clang 19 (#81506), and at that
time it wasn't entirely clear whether it should be a revertible type
trait or not. We decided to follow the example of other type traits.
Since then #95969 happened, and now we know that we don't want new
revertible type traits.
This patch removes `__is_layout_compatible` from revertible type traits
list, and leaves a comment what revertible type traits are, and that new
type traits should not be added there.
The intention is to also cherry-pick this to 19 branch.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250602
Commit: 045cb95e6e6e465206b0eb52f38d0a79c9cb5817
https://github.com/llvm/llvm-project/commit/045cb95e6e6e465206b0eb52f38d0a79c9cb5817
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
A llvm/test/CodeGen/AMDGPU/si-fold-scalar-clamp.mir
Log Message:
-----------
[AMDGPU] Fix folding clamp into pseudo scalar instructions (#100568)
Summary:
Clamp is canonically a v_max* instruction with a VGPR dst. Folding clamp
into a pseudo scalar instruction can cause issues due to a change in
regbank. We fix this with a copy.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250582
Commit: bcdca5c14c9b23a0ef68ccb406804de3911cfce5
https://github.com/llvm/llvm-project/commit/bcdca5c14c9b23a0ef68ccb406804de3911cfce5
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libc/docs/date_and_time.rst
M libc/docs/math/index.rst
Log Message:
-----------
[libc][NFC] Update riscv documentation (#100578)
Summary:
This adds linux-riscv32 to the documentation and fixes riscv's
entrypoint broken link.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250524
Commit: 11e89f667d1844e53ae65f5bde6c1550f37c4326
https://github.com/llvm/llvm-project/commit/11e89f667d1844e53ae65f5bde6c1550f37c4326
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Object/ELF.h
Log Message:
-----------
[ELF] Add missing `static` decl on several helpers; NFC
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250588
Commit: 61b0c0bc5b4e705753805769301b42b69884664c
https://github.com/llvm/llvm-project/commit/61b0c0bc5b4e705753805769301b42b69884664c
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
M clang/test/Headers/float.c
M clang/test/Sema/warn-infinity-nan-disabled-lnx.cpp
Log Message:
-----------
[CLANG] Emit warning in finite math mode when INF and NAN are used. (#99672)
Summary:
In finite math mode when special math builtins `__builtin_inf` and
`__builtin_nan` are used a warning is emitted when the builtin is
expanded and at call point.
This warning at call point was missing for` __builtin_inf` and this
patch fixes the issue
(https://github.com/llvm/llvm-project/issues/98018).
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250564
Commit: 24fc1be4bb8dfa86ec155e6434eb93f15c8810dc
https://github.com/llvm/llvm-project/commit/24fc1be4bb8dfa86ec155e6434eb93f15c8810dc
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx20.rst
M libcxx/docs/Status/Cxx20Papers.csv
M libcxx/docs/Status/SpaceshipPapers.csv
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][spaceship] Marks P1614 as complete. (#99375)
Summary:
Implements parts of:
- P1902R1 Missing feature-test macros 2017-2019
Completes:
- P1614R2 The Mothership has Landed
Fixes #100018
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250621
Commit: de230f7edd49c123f7f0c323e0648f61dd363361
https://github.com/llvm/llvm-project/commit/de230f7edd49c123f7f0c323e0648f61dd363361
Author: Akash Banerjee <akash.banerjee at amd.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Log Message:
-----------
[OpenMP] Fix OpenMPIRBuilder generating incorrect duplicate SrcLocInfo (#100364)
Summary:
This should further fix some of the incorrect debug info being generated
related to #97458
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250639
Commit: f8f1ae2f487e3f1a764bf581859c061b27a50e73
https://github.com/llvm/llvm-project/commit/f8f1ae2f487e3f1a764bf581859c061b27a50e73
Author: David Green <david.green at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
M llvm/test/Transforms/VectorCombine/AArch64/select-shuffle.ll
Log Message:
-----------
[AArch64] Remove special-case inserted shuffle cost.
Summary:
This special case tried to measure if the shuffle vector will be multiple
inserts into an existing vector, with one of the lanes already in-place. If so
it reduces the cost by 1 to to represent it will can insert n-1 vector lanes.
This isn't always true though as the original vector may need to be moved to a
new value to start inserting new values into it, if other values from the
original are still needed.
This didn't effect performance much when I tried it, but should hopefully start
to address a regression we see from differences in SLP vectorization lane
orders.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250537
Commit: bcec09dd560b3ab339c93ae5b58bca0d357fd724
https://github.com/llvm/llvm-project/commit/bcec09dd560b3ab339c93ae5b58bca0d357fd724
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/AST/Interp/ByteCodeEmitter.cpp
M clang/lib/AST/Interp/InterpBuiltin.cpp
A clang/test/AST/Interp/builtin-constant-p.cpp
Log Message:
-----------
[clang][Interp] Add preliminary __builtin_constant_p implementation
Summary:
This is not perfect or complete, but it helps us pass the simple tests
and those tests where __builtin_constant_p is not the main subject of
testing.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250546
Commit: 1002f37bc956f498a60ad98b4db1cd4bccbbad72
https://github.com/llvm/llvm-project/commit/1002f37bc956f498a60ad98b4db1cd4bccbbad72
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
Log Message:
-----------
LAA: fix style after cursory reading (NFC) (#100447)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250595
Commit: a3e236e80fcef41358103356c2b9cf5e0c8a731a
https://github.com/llvm/llvm-project/commit/a3e236e80fcef41358103356c2b9cf5e0c8a731a
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M compiler-rt/test/profile/ContinuousSyncMode/darwin-proof-of-concept.c
Log Message:
-----------
[compiler-rt][Profile][Darwin] Fix a test that expected an alignment … (#100469)
Summary:
…greater than the maximum for a segment
This test was failing with:
```
--
Exit Code: 1
Command Output (stderr):
--
ld: warning: reducing alignment of section __DATA,__pcnts from 0x4000 to 0x1000 because it exceeds segment maximum alignment ld: warning: reducing alignment of section __DATA,__pdata from 0x4000 to 0x1000 because it exceeds segment maximum alignment __pdata not ordered after __pcnts.
--
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250533
Commit: a98cbe76703830119ad8dac4d152745ca4a47da8
https://github.com/llvm/llvm-project/commit/a98cbe76703830119ad8dac4d152745ca4a47da8
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M mlir/include/mlir/Dialect/ArmSME/Transforms/Passes.td
M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
M mlir/lib/Dialect/ArmSME/Transforms/CMakeLists.txt
M mlir/lib/Dialect/ArmSME/Transforms/VectorLegalization.cpp
M mlir/test/Dialect/ArmSME/vector-legalization.mlir
Log Message:
-----------
[mlir][ArmSME] Add rewrite to handle unsupported SVE transposes via SME/ZA (#98620)
Summary:
This adds a workaround rewrite that allows stores of unsupported SVE
transposes such as:
```mlir
%tr = vector.transpose %vec, [1, 0]
: vector<2x[4]xf32> to vector<[4]x2xf32>
vector.transfer_write %tr, %dest[%i, %j] {in_bounds = [true, true]}
: vector<[4]x2xf32>, memref<?x?xf32>
```
To use SME tiles, which are possible to lower (when SME is available):
```mlir
// Insert vector<2x[4]xf32> into an SME tile:
%0 = arm_sme.get_tile : vector<[4]x[4]xf32>
%1 = vector.extract %vec[0] : vector<[4]xf32> from vector<2x[4]xf32>
%2 = vector.insert %1, %0 [0] : vector<[4]xf32> into vector<[4]x[4]xf32>
%3 = vector.extract %vec[1] : vector<[4]xf32> from vector<2x[4]xf32>
%4 = vector.insert %3, %2 [1] : vector<[4]xf32> into vector<[4]x[4]xf32>
// Store the tile with a transpose + mask:
%c4_vscale = arith.muli %vscale, %c4 : index
%mask = vector.create_mask %c4_vscale, %c2 : vector<[4]x[4]xi1>
vector.transfer_write %4, %arg1[%arg2, %arg3], %mask
{permutation_map = affine_map<(d0, d1) -> (d1, d0)>}
: vector<[4]x[4]xf32>, memref<?x?xf32>
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250566
Commit: bc641f8e180902bc184c9429cb967459dae5e136
https://github.com/llvm/llvm-project/commit/bc641f8e180902bc184c9429cb967459dae5e136
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M libcxx/include/locale
Log Message:
-----------
[libc++] Add missing xlocale.h include on Apple and FreeBSD (#99689)
Summary:
The `<locale>` header uses `strtoll_l` and friends which are defined in
`<xlocale.h>` on these platforms. While this works via transitive
includes when modules are disabled, this doesn't work anymore if the
platforms are modularized properly.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250520
Commit: 1916dda2bc88ff2fb48ff18789394972f276f2f1
https://github.com/llvm/llvm-project/commit/1916dda2bc88ff2fb48ff18789394972f276f2f1
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/combine-cast.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
M llvm/test/CodeGen/AMDGPU/cttz.ll
Log Message:
-----------
[GlobalIsel] Push cast through select. (#100539)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250562
Commit: 42cae95021fa25acfbfef9b3bbe600c22012e97a
https://github.com/llvm/llvm-project/commit/42cae95021fa25acfbfef9b3bbe600c22012e97a
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/bolt/lib/RuntimeLibs/BUILD.gn
M llvm/utils/gn/secondary/bolt/lib/Utils/BUILD.gn
M llvm/utils/gn/secondary/bolt/test/BUILD.gn
Log Message:
-----------
[gn] port abc2eae6829 (bolt standalone)
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250534
Commit: bec14e7a3fffc1927cdfc5a5ccbd2bba0ee1d5ae
https://github.com/llvm/llvm-project/commit/bec14e7a3fffc1927cdfc5a5ccbd2bba0ee1d5ae
Author: Nico Weber <thakis at chromium.org>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Interpreter/BUILD.gn
A llvm/utils/gn/secondary/lldb/source/Interpreter/Interfaces/BUILD.gn
Log Message:
-----------
[gn] port enough of 2914a4b88837 (lldb Interfaces)
Summary:
gn's lldb does not have the Python plugin, so most of the changes
from 2914a4b88837 aren't necessary here.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250738
Commit: ddd2068cd4e6ba6930ddcad25f35b1e2da20ef01
https://github.com/llvm/llvm-project/commit/ddd2068cd4e6ba6930ddcad25f35b1e2da20ef01
Author: Kazu Hirata <kazu at google.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
Log Message:
-----------
[Sema] Fix a warning
Summary:
This patch fixes:
clang/lib/Sema/SemaChecking.cpp:8220:3: error: default label in
switch which covers all enumeration values
[-Werror,-Wcovered-switch-default]
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250577
Commit: 7748a347e1993b49fbb75d9c0daf894f38999e5b
https://github.com/llvm/llvm-project/commit/7748a347e1993b49fbb75d9c0daf894f38999e5b
Author: Hari Limaye <hari.limaye at arm.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp
M llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
M llvm/test/CodeGen/X86/stack-frame-layout-remarks.ll
Log Message:
-----------
[StackFrameLayoutAnalysis] Support more SlotTypes (#100562)
Summary:
Add new SlotTypes to StackFrameLayoutAnalysis to disambiguate Fixed and
Variable-Sized stack slots from Variable slots. As Offsets are
unreliable for VLA-area objects, sort these to the end of the list -
using the Frame Index to ensure a deterministic order when Offsets are
equal.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250536
Commit: 7bcd8cdc4003214ce353cff6ed0168bb47a60b05
https://github.com/llvm/llvm-project/commit/7bcd8cdc4003214ce353cff6ed0168bb47a60b05
Author: Yuxuan Chen <yuxuanchen1997 at outlook.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/lib/CodeGen/CGBlocks.cpp
M clang/lib/CodeGen/CGCUDARuntime.cpp
M clang/lib/CodeGen/CGCUDARuntime.h
M clang/lib/CodeGen/CGCXXABI.h
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
A clang/test/CodeGenCoroutines/Inputs/utility.h
A clang/test/CodeGenCoroutines/coro-await-elidable.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/IR/Attributes.td
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
Log Message:
-----------
[Clang] Introduce [[clang::coro_await_elidable]]
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250633
Commit: 2b358ba450a88a73ffbde4504b32b2462ace05b8
https://github.com/llvm/llvm-project/commit/2b358ba450a88a73ffbde4504b32b2462ace05b8
Author: Yuxuan Chen <ych at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/lib/Transforms/Coroutines/Coroutines.cpp
M llvm/test/Transforms/Coroutines/ArgAddr.ll
M llvm/test/Transforms/Coroutines/coro-alloca-07.ll
M llvm/test/Transforms/Coroutines/coro-alloca-loop-carried-address.ll
M llvm/test/Transforms/Coroutines/coro-lifetime-end.ll
M llvm/test/Transforms/Coroutines/coro-spill-after-phi.ll
M llvm/test/Transforms/Coroutines/coro-split-00.ll
Log Message:
-----------
Implement noalloc in CoroSplit
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250740
Commit: 7b89a7c6cebe91b6ea672de6d8995a3f022955ec
https://github.com/llvm/llvm-project/commit/7b89a7c6cebe91b6ea672de6d8995a3f022955ec
Author: Yuxuan Chen <ych at meta.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
A llvm/include/llvm/Transforms/Coroutines/CoroAnnotationElide.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Coroutines/CMakeLists.txt
A llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
A llvm/test/Transforms/Coroutines/coro-transform-must-elide.ll
Log Message:
-----------
add CoroAnnotationElidePass
Summary:
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60250514
Compare: https://github.com/llvm/llvm-project/compare/08760faf3168...7b89a7c6cebe
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