[scudo] Create a non-static getErrorInfo function. (#199770)
Create a getErrorInfo function that operates on the Allocator and
doesn't require passing in all of the extra information.
Add interface function __scudo_get_fault_error_info that calls this new
function.
Add all needed functions to support the new getErrorInfo.
This is being added to replace the static version from Android that
required linking in a copy of libscudo to use. This new version will be
used directly from libc.
[lldb][Darwin] Save "most recent SDK root" in local var (#200095)
In PlatformRemoteDarwinDevice::GetSharedModule we have an array of "sdk
root" directories (aka DeviceSupport directories) for a remote device,
which contain all of the system shared libraries on the local mac. We
may have 6 SDK Root directories for different OS builds. We try to
identify the correct one for the target based on version number, but
when we find a file with a matching UUID in one directory we set that as
the "most recently successful" directory, and start our searches with
that one. Then we fall back to searching all the other directories.
Since adding parallel module loading, because this method doesn't lock
access to the "most recently successful directory"
(m_last_module_sdk_idx), we could check the m_last_module_sdk_idx
directory, and then if that was unsuccessful, check all other entries !=
m_last_module_sdk_idx. But m_last_module_sdk_idx could mutate via
another thread, and we skip one of our SDK Root directories. Resulting
in reading a binary out of memory, when we had a local copy of it.
[9 lines not shown]
[Instrumentor] Add Cast instruction instrumentation support
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
[z/OS][tests] using aliases on z/OS are not supported (#200233)
This PR follows up on #200176 by replacing XFAIL with UNSUPPORTED for
test cases that are not planned for support in the near future.
NAS-141185 / 27.0.0-BETA.1 / mypy checks for pwenc plugin (#19028)
Additionally, a new `private_method` decorator was added to replace
`@private`, `@pass_app`, etc. decorators that cause
```
middlewared/plugins/pwenc.py:91: error: Untyped decorator makes function "replace" untyped [misc]
```
[Instrumentor] Add Cast instruction instrumentation support
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
[Instrumentor] Add Cast instruction instrumentation support
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
[RISCV] Update the ProcResource used by vsetvli in SiFiveP400 model (#199802)
The vsetvli instruction (and friends) should use the first integer pipe
(i.e. SiFiveP400IEXQ0)
Co-authored-by: Craig Topper <craig.topper at sifive.com>
[LifetimeSafety] Improve dangling field/global diagnostics (#200147)
Reuses the function for getting object information that was added in
#199432
Comes as part of completing #186002
---------
Co-authored-by: Utkarsh Saxena <usx at google.com>
[flang] Canonicalize fir.array_coor for contiguous arrays. (#200106)
This patch adds new canonicalization pattern for `fir.array_coor`
sequences appearing for contiguous array slices like `dx(1:3)`,
`dx(1:3, 2)`, etc. This canonicalization helps exposing the original
rank of the array, which makes MLIR after FIRToMemRef better
optimizable.
Assisted by Cursor
[AMDGPU] Add an early exit in `tryMatchVOPDPairVariant` (#200148)
This allows to skip calls to `hasRAWDependency` when we know that no
VOPD pair can be encoded.
[AMDGPU][GlobalIsel] Add regbank support for amdgcn_cvt_scalef32_sr_f8_f16/32 (#197031)
This patch adds register bank legalization rules for amdgcn_cvt_scalef32_sr_f8_f16/32 intrinsics in the AMDGPU GlobalISel
pipeline.
[libc++] Fix multi{map,set}::extract not returning the first matching element (#199703)
According to [associative.reqmts] `extract(k)` returns the _first_
element in the container with key equivalent to k.
[Clang][Sema] Use correct DeclContext when checking 'this' (#163243)
As mentioned in #163089, clang crashes for the following inputs:
```cpp
struct S {
static void f() {
auto x = []() -> decltype(this) {};
}
};
```
```cpp
struct S {
static void f() {
auto x = []() noexcept(decltype(this)()) {};
}
};
```
[6 lines not shown]
[InstCombine] Fold zext into de-interleaving (factor=2) instructions (#195330)
Given the following de-interleaving shufflevectors and the consuming
zexts:
```
%f0 = shufflevector <8 x i32> %v, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
%f1 = shufflevector <8 x i32> %v, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
%z0 = zext <4 x i32> %f0 to <4 x i64>
%z1 = zext <4 x i32> %f1 to <4 x i64>
```
We can actually bitcast the input value, `%v`, first into a vector type
with double the element size but half the vector length, before
replacing zexts with simple arithmetics on this new bitcast:
```
%bc = bitcast <8 x i32> %v to <4 x i64>
%z0 = and <4 x i64> %bc, splat (i64 4294967295)
%z1 = lshr <4 x i64> %bc, splat (i64 32)
```
This transformation is almost always benefitial as shufflevector is
generally more expensive than normal arithmetics.
[LifetimeSafety] Add fix-it for misplaced lifetimebound attributes (#199149)
This patch adds a fix-it hint for
`warn_lifetime_safety_intra_tu_misplaced_lifetimebound` and
`warn_lifetime_safety_cross_tu_misplaced_lifetimebound` to the
appropriate declaration.
The fix-it attribute is emitted in the correct location, accounting for
pure virtual functions, overrides, trailing return types, and default
arguments. The message is suppressed for macros.
Resolves #198634
NAS-141181 / 26.0.0-RC.1 / fix vseries rear nvme bay mapping (by yocalebo) (#19031)
When this platform is fully populated a pci device can hang off root
port tree causing the existing logic for mapping the rear nvme bays to
be off by 1. This changes the logic to map similar to what was done in
5cd50ecebf5aa679e06f71d54177176ecf2a7a98
Original PR: https://github.com/truenas/middleware/pull/19026
---------
Co-authored-by: caleb <yocalebo at gmail.com>