[all-commits] [llvm/llvm-project] e6cbea: Revert "[lldb] unique_ptr-ify some GetUserExpressi...
wanglei via All-commits
all-commits at lists.llvm.org
Wed Aug 28 02:54:38 PDT 2024
Branch: refs/heads/users/wangleiat/spr/loongarch-pre-commit-test-for-immediate-value-materialization-using-bstrins_d
Home: https://github.com/llvm/llvm-project
Commit: e6cbea11578f197589801297d22b9b3bc4f1bd10
https://github.com/llvm/llvm-project/commit/e6cbea11578f197589801297d22b9b3bc4f1bd10
Author: Lang Hames <lhames at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M lldb/include/lldb/Symbol/TypeSystem.h
M lldb/include/lldb/Target/Target.h
M lldb/source/Breakpoint/BreakpointLocation.cpp
M lldb/source/Breakpoint/Watchpoint.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
M lldb/source/Target/Target.cpp
Log Message:
-----------
Revert "[lldb] unique_ptr-ify some GetUserExpression APIs. (#106034)"
This reverts commit 3c5ab5a75a9c8fb87dcb13cdf4207aa975fd6972 while I investigate
bot failures (e.g. https://lab.llvm.org/buildbot/#/builders/163/builds/4286).
Commit: 8067b88f8327a36ade4d587d4e611c7941f70a78
https://github.com/llvm/llvm-project/commit/8067b88f8327a36ade4d587d4e611c7941f70a78
Author: zhongyunde 00443407 <zhongyunde at huawei.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/test/CodeGen/AArch64/large-offset-ldr-merge.mir
Log Message:
-----------
[AArch64] Fix buildbot breakage of ubsan
Fix the ERROR: UndefinedBehaviorSanitizer, reproduced by
BUILDBOT_REVISION=43ffe2eed llvm-zorg/zorg/buildbot/builders/sanitizers/buildbot_bootstrap_ubsan.sh
It might be also related to #76202
Commit: e5a5ac0c2355df9911953260aaf519185efa369e
https://github.com/llvm/llvm-project/commit/e5a5ac0c2355df9911953260aaf519185efa369e
Author: zhongyunde 00443407 <zhongyunde at huawei.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/test/CodeGen/AArch64/arm64-addrmode.ll
Log Message:
-----------
[AArch64] Fold more load.x into load.i with large offset
The list of load.x is refer to canFoldIntoAddrMode on D152828.
Also support LDRSroX missed in canFoldIntoAddrMode
Commit: 190449a5d2a9ddfc2180dce11714a4443f0f29f0
https://github.com/llvm/llvm-project/commit/190449a5d2a9ddfc2180dce11714a4443f0f29f0
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/Analysis/copy-elision.cpp
M clang/test/Analysis/incorrect-checker-names.cpp
M clang/test/Analysis/loop-block-counts.c
M clang/test/Analysis/stack-addr-ps.c
M clang/test/Analysis/stack-addr-ps.cpp
M clang/test/Analysis/stack-capture-leak-no-arc.mm
M clang/test/Analysis/stackaddrleak.c
Log Message:
-----------
[analyzer] Detect leaks of stack addresses via output params, indirect globals 3/3 (#105648)
Fix some false negatives of StackAddrEscapeChecker:
- Output parameters
```
void top(int **out) {
int local = 42;
*out = &local; // Noncompliant
}
```
- Indirect global pointers
```
int **global;
void top() {
int local = 42;
*global = &local; // Noncompliant
}
```
Note that now StackAddrEscapeChecker produces a diagnostic if a function
with an output parameter is analyzed as top-level or as a callee. I took
special care to make sure the reports point to the same primary location
and, in many cases, feature the same primary message. That is the
motivation to modify Core/BugReporter.cpp and Core/ExplodedGraph.cpp
To avoid false positive reports when a global indirect pointer is
assigned a local address, invalidated, and then reset, I rely on the
fact that the invalidation symbol will be a DerivedSymbol of a
ConjuredSymbol that refers to the same memory region.
The checker still has a false negative for non-trivial escaping via a
returned value. It requires a more sophisticated traversal akin to
scanReachableSymbols, which out of the scope of this change.
CPP-4734
---------
This is the last of the 3 stacked PRs, it must not be merged before
https://github.com/llvm/llvm-project/pull/105652 and
https://github.com/llvm/llvm-project/pull/105653
Commit: 3dbb6befa837c5daa07de1e0daa45e5943ee9520
https://github.com/llvm/llvm-project/commit/3dbb6befa837c5daa07de1e0daa45e5943ee9520
Author: Michael Park <mcypark at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/lib/AST/ComputeDependence.cpp
Log Message:
-----------
[NFC] Comment fix: "does specify state that" -> "does specify that" (#106338)
Commit: 0b554dd9b1932c76225afded64d5f4cc7bb2933f
https://github.com/llvm/llvm-project/commit/0b554dd9b1932c76225afded64d5f4cc7bb2933f
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/Demangle/Demangle.cpp
M llvm/test/tools/llvm-cxxfilt/invalid.test
R llvm/test/tools/llvm-cxxfilt/strip-underscore-default-darwin.test
R llvm/test/tools/llvm-cxxfilt/strip-underscore-default.test
M llvm/test/tools/llvm-cxxfilt/strip-underscore.test
M llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
Log Message:
-----------
[llvm-cxxfilt][macOS] Don't strip underscores on macOS by default (#106233)
Currently, `llvm-cxxfilt` will strip the leading underscore of its input
on macOS. Historically MachO symbols were prefixed with an extra
underscore and this is why this default exists. However, nowadays, the
`ItaniumDemangler` supports all of the following mangling prefixes:
`_Z`, `__Z`, `___Z`, `____Z`. So really `llvm-cxxfilt` can simply
forward the mangled name to the demangler and let the library decide
whether it's a valid encoding.
Compiling C++ on macOS nowadays will generate symbols with `_Z` and
`___Z` prefixes. So users trying to demangle these symbols will have to
know that they need to add the `-n` prefix. This routinely catches
people off-guard.
This patch removes the `-n` default for macOS and allows calling into
the `ItaniumDemangler` with all the `_Z` prefixes that the demangler
supports (1-4 underscores).
rdar://132714940
Commit: 175aa864f33786f3a6a4ee7381cbcafd0758501a
https://github.com/llvm/llvm-project/commit/175aa864f33786f3a6a4ee7381cbcafd0758501a
Author: wanglei <wanglei at loongson.cn>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
Log Message:
-----------
[LoongArch] Format LoongArchL{A}SXInstrInfo.td. NFC
Alignment and start with an upper-case letter.
Commit: 6332c36bc846e7cba5c8cc1f865ca506539692fc
https://github.com/llvm/llvm-project/commit/6332c36bc846e7cba5c8cc1f865ca506539692fc
Author: Kazu Hirata <kazu at google.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
Log Message:
-----------
[AMDGPU] Use range-based for loops (NFC) (#106328)
Commit: 22e55ba3293f72df84de509db821b4d8a2c4c55e
https://github.com/llvm/llvm-project/commit/22e55ba3293f72df84de509db821b4d8a2c4c55e
Author: Kazu Hirata <kazu at google.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/lib/FileCheck/FileCheck.cpp
M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
M llvm/unittests/Support/VirtualFileSystemTest.cpp
Log Message:
-----------
[llvm] Prefer StringRef::substr to StringRef::slice (NFC) (#106330)
S.substr(N) is simpler than S.slice(N, StringRef::npos). Also, substr
is probably better recognizable than slice thanks to
std::string_view::substr.
Commit: 866bec7d3ff8803b68e9972939c1a76ccf5fdc62
https://github.com/llvm/llvm-project/commit/866bec7d3ff8803b68e9972939c1a76ccf5fdc62
Author: Robin Caloudis <robin.caloudis at gmx.de>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M libcxx/include/__math/traits.h
M libcxx/test/std/numerics/c.math/isnormal.pass.cpp
Log Message:
-----------
[libc++][math] Provide overloads for cv-unqualified floating point types for `std::isnormal` (#104773)
## Why
Currently, the following does not work when compiled with clang:
```c++
#include <cmath>
struct ConvertibleToFloat {
operator float();
};
bool test(ConvertibleToFloat x) {
return std::isnormal(x);
}
```
See https://godbolt.org/z/5bos8v67T for differences with respect to
msvc, gcc or icx. It fails for `float`, `double` and `long double` (all
cv-unqualified floating-point types).
## What
Test and provide overloads as expected by the ISO C++ standard. The
classification/comparison function `isnormal` is defined since C++11
until C++23 as
```c++
bool isnormal( float num );
bool isnormal( double num );
bool isnormal( long double num );
```
and since C++23 as
```c++
constexpr bool isnormal( /* floating-point-type */ num );
```
for which "the library provides overloads for all cv-unqualified
floating-point types as the type of the parameter num". See §28.7.1/1 in
the [ISO C++
standard](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4950.pdf)
or check
[cppreference](https://en.cppreference.com/w/cpp/numeric/math/isnormal).
Commit: 902b2a26ab9e1e78dfb66b52fba4512c91472e09
https://github.com/llvm/llvm-project/commit/902b2a26ab9e1e78dfb66b52fba4512c91472e09
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/test/SemaCXX/attr-lifetimebound.cpp
Log Message:
-----------
[clang] Add lifetimebound attr to std::span/std::string_view constructor (#103716)
With this patch, clang now automatically adds
``[[clang::lifetimebound]]`` to the parameters of `std::span,
std::string_view` constructors, this enables Clang to capture more cases
where the returned reference outlives the object.
Fixes #100567
Commit: 07514fa9b607fd80a72a80270d714e22d842fa39
https://github.com/llvm/llvm-project/commit/07514fa9b607fd80a72a80270d714e22d842fa39
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
A clang/test/CodeGenCoroutines/coro-dwarf-O2.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/test/Transforms/Coroutines/coro-debug-O2.ll
Log Message:
-----------
[Coroutines] Salvage the debug information for coroutine frames within optimizations
This patch tries to salvage the debug information for the coroutine
frames within optimizations by creating the help alloca varaibles with
optimizations too. We didn't do this when I implement it initially. I
roughtly remember the reason was, we feel the additional help alloca
variable may pessimize the performance, which is almost the most
important thing under optimizations. But now, it looks like the new
inserted help alloca variables can be optimized out by the following
optimizations. So it looks like the time to make it available within
optimizations.
And also, it looks like the following optimizations will convert the
generated dbg.declare instrinsic into dbg.value intrinsic within
optimizations.
In LLVM's test, there is a slightly regression
that a dbg.declare for the promise object failed to be remained after
this change. But it looks like we won't have a chance to see dbg.declare
for the promise object when we split the coroutine as that dbg.declare
will be converted into a dbg.value in early stage.
So everything looks fine.
Commit: 82e314e3664d2c8768212e74f751187d51950b87
https://github.com/llvm/llvm-project/commit/82e314e3664d2c8768212e74f751187d51950b87
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
M clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
M clang/test/Analysis/block-in-critical-section-inheritance.cpp
A clang/test/Analysis/block-in-critical-section-nested-namespace.cpp
Log Message:
-----------
[analyzer] Fix false positive for mutexes inheriting mutex_base (#106240)
If a mutex interface is split in inheritance chain, e.g. struct mutex
has `unlock` and inherits `lock` from __mutex_base then calls m.lock()
and m.unlock() have different "this" targets: m and the __mutex_base of
m, which used to confuse the `ActiveCritSections` list.
Taking base region canonicalizes the region used to identify a critical
section and enables search in ActiveCritSections list regardless of
which class the callee is the member of.
This likely fixes #104241
CPP-5541
Commit: 0bd513082540b2b00bfad1540812e3ea282e70ed
https://github.com/llvm/llvm-project/commit/0bd513082540b2b00bfad1540812e3ea282e70ed
Author: Tim Besard <tim.besard at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/lib/IR/Core.cpp
M llvm/unittests/IR/FunctionTest.cpp
M llvm/unittests/IR/ValueTest.cpp
Log Message:
-----------
[LLVM][C API] Clearing initializer and personality by passing NULL (#105521)
This is similar to how the C++ API supports passing `nullptr` to
`setPersonalityFn` or `setInitializer`.
Commit: dfde1a7232593fef01ef8c0e311a94188af5984d
https://github.com/llvm/llvm-project/commit/dfde1a7232593fef01ef8c0e311a94188af5984d
Author: Mel Chen <mel.chen at sifive.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
Log Message:
-----------
[LV][NFC] Update and clean up the test case LoopVectorize/RISCV/inloop-reduction.ll. (#102907)
Commit: fc338df07e00386aa10b8c6494a26c8a0aa8e1fd
https://github.com/llvm/llvm-project/commit/fc338df07e00386aa10b8c6494a26c8a0aa8e1fd
Author: wanglei <wanglei at loongson.cn>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/lib/AST/ComputeDependence.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/Analysis/block-in-critical-section-inheritance.cpp
A clang/test/Analysis/block-in-critical-section-nested-namespace.cpp
M clang/test/Analysis/copy-elision.cpp
M clang/test/Analysis/incorrect-checker-names.cpp
M clang/test/Analysis/loop-block-counts.c
M clang/test/Analysis/stack-addr-ps.c
M clang/test/Analysis/stack-addr-ps.cpp
M clang/test/Analysis/stack-capture-leak-no-arc.mm
M clang/test/Analysis/stackaddrleak.c
A clang/test/CodeGenCoroutines/coro-dwarf-O2.cpp
M clang/test/SemaCXX/attr-lifetimebound.cpp
M libcxx/include/__math/traits.h
M libcxx/test/std/numerics/c.math/isnormal.pass.cpp
M lldb/include/lldb/Symbol/TypeSystem.h
M lldb/include/lldb/Target/Target.h
M lldb/source/Breakpoint/BreakpointLocation.cpp
M lldb/source/Breakpoint/Watchpoint.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
M lldb/source/Target/Target.cpp
M llvm/docs/ReleaseNotes.rst
M llvm/lib/Demangle/Demangle.cpp
M llvm/lib/FileCheck/FileCheck.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/test/CodeGen/AArch64/arm64-addrmode.ll
M llvm/test/CodeGen/AArch64/large-offset-ldr-merge.mir
M llvm/test/Transforms/Coroutines/coro-debug-O2.ll
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
M llvm/test/tools/llvm-cxxfilt/invalid.test
R llvm/test/tools/llvm-cxxfilt/strip-underscore-default-darwin.test
R llvm/test/tools/llvm-cxxfilt/strip-underscore-default.test
M llvm/test/tools/llvm-cxxfilt/strip-underscore.test
M llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
M llvm/unittests/IR/FunctionTest.cpp
M llvm/unittests/IR/ValueTest.cpp
M llvm/unittests/Support/VirtualFileSystemTest.cpp
Log Message:
-----------
rebase
Created using spr 1.3.5-bogner
Compare: https://github.com/llvm/llvm-project/compare/a845c796939f...fc338df07e00
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