[Thread Safety Analysis] Fix a bug of context saving in alias-analysis (#178825)
The commit b4c98fcbe1504841203e610c351a3227f36c92a4 introduces
alias-analysis and conservatively invalidates variable definitions at
function calls. For each invalidated argument, it creates and pushes a
context. So if there are multiple arguments being invalidated, there are
more than one context being pushed. However, the analysis expects one
context at the program point of a call, causing context mismatch. This
issue could lead to false negatives.
For example,
```
MyLock->Lock(); // 'MyLock' holds the lock
Lock_t *Ptr = MyLock; // 'Ptr' aliases with 'MyLock'
// Before the fix, two contexts are saved and pushed at the call below, causing context mismatch later.
escapeAliasMultiple(&Irrelevant, &Ptr);
Ptr->Unlock(); // 'Ptr' may no longer hold the lock but the analyzer missed it due to context mismatch
```
This commit fixes the issue.
[2 lines not shown]
[NFC][TableGen] Adopt CodeGenHelpers in X86MnemonicEmitter (#179324)
Additionally, cleanup the code a bit to use nested namespace definition
and emit it per code section, and emit spaces instead of tabs.
[SelectionDAGISel] Separate the operand numbers in OPC_EmitNode/MorphNodeTo into their own table. (#178722)
The operand lists for these opcode require 1 byte per operand and are
usually small values that fit in 3-4 bits. This makes their storage
inefficient. In addition, many EmitNode/MorphNodeTo in the isel table
will use the same list of operand numbers.
This patch proposes to separate the operand lists into their own table
where they can be de-duplicated. The OPC_EmitNode/MorphNodeTo in the
main table will only store an index into this smaller table.
This is a reduced version of a suggestion from this very old FIXME.
https://github.com/llvm/llvm-project/blob/d8d4096c0be0a6a3248c8deae96608913a85debf/llvm/utils/TableGen/DAGISelMatcherGen.cpp#L1070
For RISC-V this reduces the main table from 1437353 bytes to 1276015
bytes plus a 929 byte operand list table. A savings of about 11%.
For X86 this reduces the main table from 719237 bytes to 623612 bytes
plus a 1042 byte operand list table. A savings of about 11%.
I expect further savings could be had by moving more bytes over.
[VPlan] Refine exit select check in transformtoPartialReduction.
Make sure we find the actual select for the exit users and only use it
for the final link in the chain. This fixes a miscompile after
90b3712d8a20efa2cbaadc177da576e485dce038.
[VPlan] Generalize `VPAllSuccessorsIterator` to support predecessors (#178724)
To be used in Mel's https://github.com/llvm/llvm-project/pull/173265.
---------
Co-authored-by: Florian Hahn <flo at fhahn.com>
Co-authored-by: Luke Lau <luke_lau at icloud.com>
hugo: Update to 0.155.2
upstream changes:
-----------------
v0.155.2
Note that the bug fix below is for the two new dimensions introduced in v0.153.0 (version and role), multiple languages worked fine. Also, changes to the first version and role also worked, which had me head-scratching for a while. Oh, well, enjoy.
* Fix template change detection for multi-version sites 0f1c7d1 @bep #14461
* resources/image: Add some image decode/encode debug logging 6bd2bde @bep #14337 #14460
[CIR] Implement 'allocsize' function/call attribute lowering (#179342)
The alloc_size attribute takes the argument number(normalized to the
index!) of the element size and count, for things like 'malloc' or
'calloc'.
This ends up being slightly more complicated than others, as this has
data that we have to decide on a format for. LLVM chooses to pack both
of these 32 bit values into a single i64, but unpacks it for the purpose
of input/output. The second value, the number of elements, is optional.
This patch uses a DenseI32ArrayAttr to store them for the LLVMIR
dialect, which gets us the packed nature, but doesn't require us doing
any work to unpack it.
net-p2p/{lib,r}torrent: Roll back to 0.16.5
Due to instability of 0.16.6, roll back to 0.16.5 stable.
As a temporary measure as upstream is working on a release fix, let's
roll back with a portrevision bump.
PR: 292914
Reported by: glebius
Reviewed by: glebius, novel
MFH: 2026Q1
See also: https://github.com/rakshasa/rtorrent/issues/1689
(cherry picked from commit 73e88b9f23d4986b5862933ff0d07f9ebf0aeee7)
net-p2p/{lib,r}torrent: Roll back to 0.16.5
Due to instability of 0.16.6, roll back to 0.16.5 stable.
As a temporary measure as upstream is working on a release fix, let's
roll back with a portrevision bump.
PR: 292914
Reported by: glebius
Reviewed by: glebius, novel
MFH: 2026Q1
See also: https://github.com/rakshasa/rtorrent/issues/1689
python314 py314-html-docs: updated to 3.14.3
Python 3.14.3
Windows
gh-128067: Fix a bug in PyREPL on Windows where output without a trailing newline was overwritten by the next prompt.
Tools/Demos
gh-142095: Make gdb ‘py-bt’ command use frame from thread local state when available. Patch by Sam Gross and Victor Stinner.
Tests
gh-144415: The Android testbed now distinguishes between stdout/stderr messages which were triggered by a newline, and those triggered by a manual call to flush. This fixes logging of progress indicators and similar content.
gh-143460: Skip tests relying on infinite recusion if stack size is unlimited.
gh-65784: Add support for parametrized resource wantobjects in regrtests, which allows to run Tkinter tests with the specified value of tkinter.wantobjects, for example -u wantobjects=0.
gh-143553: Add support for parametrized resources, such as -u xpickle=2.7.
gh-142836: Accommodated Solaris in test_pdb.test_script_target_anonymous_pipe.
bpo-31391: Forward-port test_xpickle from Python 2 to Python 3 and add the resource back to test’s command line.
Security
gh-144125: BytesGenerator will now refuse to serialize (write) headers that are unsafely folded or delimited; see verify_generated_headers. (Contributed by Bas Bloemsaat and Petr Viktorin in gh-121650).
gh-143935: Fixed a bug in the folding of comments when flattening an email message using a modern email policy. Comments consisting of a very long sequence of non-foldable characters could trigger a forced line wrap that omitted the required leading space on the continuation line, causing the remainder of the comment to be interpreted as a new header field. This enabled header injection with carefully crafted inputs.
gh-143925: Reject control characters in data: URL media types.
[114 lines not shown]
[CIR] Add CIR types and operations for flattened EH and cleanup (#178496)
This adds the CIR dialect definitions for the new types and operations
that will be needed to perform CFG flattening on the high-level CIR
representation of exception handlng and cleanups. Tests are added for
the dialect printing, parsing, and verification.
This does not include any code to flatten the CFG or otherwise generate
the new operations or to lower them into other forms. That support will
be added in later changes.