[scudo] Mark functions/classes as test only. (#231737)
A few functions/classes should be test only to indicate they should not
be used in normal code.
Specifically, isOwned to isOwnedTestOnly and the class
ScopedDisableMemoryTagChecks to ScopedTestOnlyDisableMemoryTagChecks.
Modify the iterateOverChunks function to avoid using the test class and
clean up the function a bit.
[CodeGen] Drop dead SlotIndexes before allocation
SlotIndexes keeps the index list entry of an erased instruction and only
clears its instruction pointer. Live range sizes are measured in slot
indexes and greedy ranks ranges by size, so the leftovers inflate some
ranges more than others and reorder allocation, spilling heavily on
register-starved functions.
Add SlotIndexes::compactIndexes() to erase them. Erased entries are
unlinked, so LiveIntervals first reports the indexes it holds via
appendReferencedIndexes().
Off by default behind -greedy-compact-slot-indexes, since it changes
allocation across much of the test suite.
[libc++] Switch the libc++ benchmark pipelines to LNT v5 (#232888)
Since lnt.llvm.org is now running LNT v5, switch the benchmark pipelines
over to it. Note that we hardcode the submission URL now because
submitting requires an API key, so allowing the submission workflows to
submit to another instance would allow leaking that token.
[bazel][libc] Add missing type_traits dep to nearest_integer (#232868)
88fd7f873e30 added an include of src/__support/CPP/type_traits.h to
nearest_integer.h without the matching Bazel dep, so the layering check
fails for every target that reaches it.
[RISCV] Call tryWidenMaskForShuffle at the end of P extension shuffle lowering.
If the shuffle mask has contiguous elements we can try shuffling
them using a large element type.
[OpenMP] follow-up on strict fence SPMDization (#232873)
Summary:
Address some late comments. Autogenerates tests, fix up function usage.
Main behavior of the change is that the SPMDization no longer breaks the
happens-before relationship a fence provided. I.e. cannot move loads or
stores past a barrier stronger than the one inserted by the pass itself.
[mlir] Report block argument removal from runRegionDCE (#232211)
runRegionDCE reports whether it changed the IR, but deleteDeadness did not include
dead non-entry block arguments in its change flag.
This caused GreedyPatternRewriteDriver to not report a change even when DCE happened.
Assisted-by: gpt 6 sol
[flang][OpenMP] Move CanonicalizationOfOmp member definitions out of … (#232872)
…class
Keep only declarations (and the trivial constructor) in the class, and
define each member function out of line after the class. Each function's
leading comment moves with its implementation. No functional change.
Co-authored-by: Claude Opus 4 (1M context) <noreply at anthropic.com>
[lldb] Add target groups for related targets (#229180)
## Summary
- introduce first-class `TargetGroup` objects
- represent each group member as `{TargetWP, TargetGroup::Role}`, with
one extensible role per target
- use synchronized `TargetGroupList` collections for the debugger
registry and per-target memberships
- add `target groups list` for inspecting groups and member roles
This contains the generic target-group model discussed in review.
Accelerator integration and public SB APIs can follow separately after
the initial foundation is landed.
## Testing
added target group tests.
[Support] Add isCharacter, isControl functions (#231223)
This adds functions for determining whether a code point is an assigned
character, and for determining whether a code point is a control
character, based on the Unicode standard.
[NFC][DirectX][SPIRV] Clang-format intrinsic definition files (#231647)
Formatted the intrinsic definition files for DirectX and SPIR-V with
clang-format. The `.td` files are by default excluded from clang-format
runs, but I figured it is worth having these intrinsics definitions in
consistent layout. I'll be editing a number of the intrinsics as part of
#217423 and this will make it easier to review.
[libc++] Update the LNT tooling to LNT v5 (#232866)
lnt.llvm.org now runs LNT v5, which has a different submission format
and REST API than the LNT v4 instance. This updates the scripts that
talk to LNT accordingly.
[NVPTX] Infer address spaces for mbarrier intrinsics (#229272)
Teach InferAddressSpaces to rewrite generic mbarrier operands to
shared-memory variants. Emit a trap for provably invalid address spaces
while leaving unknown and cluster-shared addresses unchanged.
[GlobalISel] Preserve more constant DBG_VALUEs by using vregs (#232110)
buildConstDbgValue() can only express a constant as an immediate or as a
reference to the symbol of a defined global. An example that it cannot
encode is:
extern long g;
long *p = &g;
as well as thread-locals, vector constants and most constant
expressions.
Since IRTranslator materializes every (used) constant once in the entry
block anyway, we can point the DBG_VALUE to it. This is done after the
whole function is translated, so debug info cannot influence
code generation.
Note that SelectionDAG still drops a debug value in a block that does
not use the constant, because it rematerializes constants per block.
[2 lines not shown]
[InstCombine] Remove target specific sext(trunc(...)) combine tests. NFC (#230049)
Follow up to
https://github.com/llvm/llvm-project/pull/227321#issuecomment-6055905388
t0 already exists in the generic test file, t1 was moved over as
"ashr_signbits". A new RUN line has been added for a datalayout with a
native i32 type to exercise the change in #227321
[flang][OpenMP] Move CanonicalizationOfOmp member definitions out of class
Keep only declarations (and the trivial constructor) in the class, and
define each member function out of line after the class. Each function's
leading comment moves with its implementation. No functional change.
Co-Authored-By: Claude Opus 4 (1M context) <noreply at anthropic.com>