[MemProf] Resolve alias ValueInfo in ThinLTO backend summary lookup (#238162)
Synthesized MemProf callsite records for missing tail-call frames are
keyed by the callee's summary entry, which for an alias target is its
AliasSummary rather than its aliasee's FunctionSummary.
In the ThinLTO backend, two paths looked up the aliasee instead, missing
those records and leaving callers uncloned with undefined .memprof.*
references at link time:
1. Alias definitions imported via replaceAliasWithAliasee retain the
aliasee's !guid metadata for body-level profile passes, so querying
F.getGUID() matched the aliasee's ValueInfo and could also resolve
the imported alias copy itself to an imported aliasee's
FunctionSummary instead of skipping it.
2. Direct tail calls to a same-module GlobalAlias resolved the callee to
its aliasee Function before looking up its ValueInfo.
Attach thinlto_alias_guid metadata when importing alias definitions,
[4 lines not shown]
CI: stop QEMU dependency preparation on failure
The dependency wrapper continues after failed boot checks, transfers and
remote preparation. It can then wait for a guest that never powers off,
or return success after losing the original error.
Select Bash explicitly and stop on failed commands so the calling
workflow receives the preparation failure immediately.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Kamil Monicz <kamil at monicz.dev>
Closes #19462
[lldb] Name GDB-remote communication channels (#237417)
Give every GDB-remote communication channel a stable name and include
that name in packet logs. This makes simultaneous native and accelerator
connections distinguishable without relying on object addresses.
The existing client broadcaster name is reused for its communication
channel. LLGS instances now identify native and mock-accelerator servers
separately, and lldb-platform has its own server label.
A focused unit test verifies that send and receive packet logs carry the
correct channel identity.
Testing:
- Built lldb-server and ProcessGdbRemoteTests with the mock accelerator
enabled
- All 52 ProcessGdbRemoteTests pass
- LLVM pinned clang-format check passes
- git diff --check passes
[RISCV] Build register pairs directly for byte vector lowering
Use BuildPairGPRVec when lowering RV32 packed byte build vectors.
The PPAIRE sequence only needs the low byte of each scalar register.
Constructing pairs through scalar-to-vector concatenations lets DAG
folding turn them into build vectors that unnecessarily pack undefined
lanes.
[SelectionDAG] Preserve build-vector legality in concat folding
Custom lowering can construct CONCAT_VECTORS after BUILD_VECTOR
legalization. Folding scalar-to-vector operands there may introduce a
BUILD_VECTOR that the target cannot select.
Require a legal BUILD_VECTOR by default in FoldConcatVectors, and pass
the combine phase from DAGCombiner so pre-legalization combines can still
form illegal operations.
[libc++][NFC] Mark LWG2859 as "Nothing To Do" (#236127)
LWG2859 only rewrites the definition of "reachable" in the Remarks
paragraph of `std::launder` precondition, relaxing the reachable set
with the pointer arithmetic scenario.
It does not change any observable behaviour of the library. No test
should be added because the precondition is not observable (a program
that is valid under the new wording was also valid under the old one,
and vice versa).
Closes: https://github.com/llvm/llvm-project/issues/100269
---------
Co-authored-by: A. Jiang <de34 at live.cn>
libexpat: cath up with import of expat 2.10.0
Update expat_config.h and the libbsdxml(3) manpage to reflect the most
recent import.
MFC after: 3 days
MFC with: 765f30b9f3af
[ReplayInlineAdvisor] Don't crash on indirect calls (#237859)
getAdviceImpl uses CB.getCalledFunction() without a null check, so
-sample-profile-inline-replay crashes when a replayed function has an
indirect call. Remarks only name direct callees, so treat indirect calls
as having no replay decision.
[lldb] Add server support for jLLDBSettings (#237356)
This is a followup to client side support landed in #229179.
This adds the corresponding handlers and support on the lldb-server.
Tests
- Added the tests with Mock plugin.
Join short wrapped RUN lines
Removing -verify-machineinstrs shortened these RUN lines enough to fit
on a single line of at most 100 columns.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
Restore indentation of wrapped RUN line continuations
Removing -verify-machineinstrs from the start of a continuation line
also dropped its indentation.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
CodeGen: Remove -verify-machineinstrs from llc -passes MIR tests
With the new pass manager, -verify-machineinstrs does not add a
verifier after each pass; only -verify-each does. Bizarrely, instead
it suppresses the verifier llc runs at the end of the pipeline, so
removing it enables verification of the output. This is probably a
bug, but I think the plan is to replace this flag in the new PM
anyway.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Restore indentation of wrapped RUN line continuations
Removing -verify-machineinstrs from the start of a continuation line
also dropped its indentation. Join the RUN line when it fits in 80
columns, otherwise restore the original indentation.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
Join short wrapped RUN lines
Removing -verify-machineinstrs shortened these RUN lines enough to fit
on a single line of at most 100 columns.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
CodeGen: Remove -verify-machineinstrs from single -run-pass MIR tests
Since #228248 / 66366908, llc verifies MIR output by default. MIR
inputs were always verified so for an llc invocation running exactly
one pass with -run-pass, the -verify-machineinstrs flag does nothing
so these flags are pointless. We should more aggressively trim
-verify-machineinstrs uses in the future, but this covers the cases
that don't change behavior. This removal was performed by generated
script.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Describe vector FuncArgTypes by element type and count (#237489)
Define the vector libcall argument types from an element type and
count. Derive the matching integer and mask vector types from them
instead of spelling each one out.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Use element alignment for vector libcall out pointers (#237486)
The pointer arguments of the vector modf, sincos and sincospi functions
are linear pointers to the scalar element type (e.g. the l4 in
_ZGVnN4vl4l4_sincosf), not pointers to the vector type. Only the element
alignment is guaranteed, so stop declaring them with the ABI alignment
of the vector.
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for more runtime functions (#237483)
Add type missing signatures for assorted functions which were missing
type information.
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
games/loderunner-ng: Add ctrl-a-abort patch
When the runner is stuck and you need to reset, you can press Ctrl+A
to sacrifice a life and restart the level.
Ctrl+A is the traditional key binding on C64 for sacrificial restart
when you get stuck. Without this patch, your only recourse is to use
q to quit, losing your progress, going back to level 1.
While it is true that you can then relaunch the game with `-l level`
to pick up at the level you left off at, it will be with zero score.
[ValueTracking] Make use of range bundle assumptions (#237761)
This is an initial patch to support the new `range` assume bundle.
Follow-up patches will add support in other parts of LLVM.
editors/openoffice-*: system lucene cleanup
Delete the remaining remnants of the system lucene dependency.
Reported by: Ronald Klop <ronald-lists at klop.ws>
(cherry picked from commit 117941ee407dec8c0b40a926a3cad2de45fa3029)