Skip to content

Conversation

pull[bot]
Copy link

@pull pull bot commented Oct 2, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot locked and limited conversation to collaborators Oct 2, 2025
@pull pull bot added the ⤵️ pull label Oct 2, 2025
felipepiovezan and others added 28 commits October 7, 2025 14:45
#162297)

This code was duplicated in multiple places and a subsequent patch will
need to do it again.
…161752)

The attribute needs to be preserved for rewriter scenarios. Two places were updated to use the `ResourceBindingAttrs` helper struct to make sure the `HLSLVkBindingAttr` is ignored when the target is DirectX.
Revert removal of local variables.
…SiFive7 (#162386)

This is helpful on validating the non-throttled vector FP64 performance,
compared to the throttled model of sifive-x390.
…L for some target triples (#159796)

The problem with the current `target={{.*}}-darwin{{.*}}` XFAIL
condition (changed in #130144)
is that the Swift build script uses Apple platform names like 'macosx',
not 'darwin', for the LLVM target triple, e.g. `arm64-apple-macosx13.0`.

These tests appear to have been originally XFAILed because the default
format on macOS (darwin) adds newlines as padding to align members. See:
https://github.com/llvm/llvm-project/blob/ee8394d9469a2946ffe2e7d192c593ecf3f93098/llvm/lib/Object/ArchiveWriter.cpp#L897-L904

Use `--format=gnu` to cope with the differences in the output and
reenable the tests.

rdar://157213658
…d RL. NFC (#162321)

Instruction names should match the mnemomic with '.' replaced by '_'.
The instruction mnemonics use ".aqrl" not ".aq.rl".
…ctor()` and `getInstVecMap()` return same results (#162365)

Tests for #162165. Missed it earlier.
#160025)

In linux kernel commit [1], we have a bpf selftest failure caused by
llvm. In this particular case, the BPFCheckAndAdjustIR pass has a
function insertASpaceCasts() which inserts proper addrspacecast insn
at proper IR places. It does not handle __builtin_memset() and hance
caused selftest failure.

Add support in insertASpaceCasts() to handle
  __builtin_(memset,memcpy,memmove,memset_inline,memcpy_inline}()
properly and this can fix the issue in [1] as well.

[1]
https://lore.kernel.org/all/[email protected]/
Refactor MIRVocabulary to improve opcode lookup and add Section enum for better organization. This is useful for embedder lookups (next patches)

(Tracking issue - #141817)
…162163)

This code is activated on all INTRINSIC_WO_CHAIN but only handles
a selection. However it was trying to read the arguments before
checking which intrinsic it was handling. This fails for intrinsics
that have no arguments.
This test, with a corefile created via yaml2macho-core plus an
ObjectFileJSON binary with symbol addresses and ranges, was failing
on some machines/CI because the wrong ABI was being picked.

The bytes of the functions were not included in the yaml or .json
binary.  The unwind falls back to using the ABI plugin default
unwind plans.  We have two armv7 ABIs - the Darwin ABI that always
uses r7 as the frame pointer, and the AAPCS ABI which uses r11 code.
In reality, armv7 code uses r11 in arm mode, r7 in thumb code.  But
the ABI ArchDefaultUnwindPlan doesn't have any access to the Target's
ArchSpec or Process register state, to determine the correct processor
state (arm or thumb).  And in fact, on Cortex-M targets, the
instructions are always thumb, so the arch default unwind plan
(hardcoded r11) is always wrong.

The corefile doesn't specify a vendor/os, only a cpu.
The object file json specifies the armv7m-apple-* triple, which will
select the correct ABI plugin, and the test runs.

In some cases, it looks like the Process ABI was fetched after
opening the corefile, but before the binary.json was loaded and
corrected the Target's ArchSpec.  And we never re-evaluate the ABI
once it is set, in a Process.  When we picked the AAPCS armv7 ABI,
we would try to use r11 as frame pointer, and the unwind would stop
after one stack frame.

I'm stepping around this problem by (1) adding the register bytes of
the prologues of every test function in the backtrace, and (2)
shortening the function ranges (in binary.json) to specify that the
functions are all just long enough for the prologue where execution
is stopped.  The instruction emulation plugin will fail if it can't
get all of the bytes from the function instructions, so I hacked
the function sizes in the .json to cover the prologue plus one and
changed the addresses in the backtrace to fit within those ranges.
This way we can roll out new breaking features as opt-int.
E.g. "#!special-case-list-v3" will enabled something new.

Nothing to enabled yet, but with pinpointed default it's an option.

Follow up #162350.
…64 G_SEXT/G_ZEXT. (#161971)

Because GISel doesn't distinquish integer and FP types, we need to allow
s16/s32 as legal inputs/outputs of G_SEXT and G_ZEXT.

This requires a extra isel patterns to support the cross product of
these types that we don't need for SelectionDAG. We also needed to add
i16/i32 to the GPR register class which prevents some type inferencing
in tablegen and increases the size of the RISCVGenDAGISel.inc by 2K.

This patch proposes to do manual selection so we can remove these
patterns and eventually remove the types from the register class.
This was causing bot failures if you build with -Werror -Wdocumentation.
Fix the docs to reflect the new headers.
…162397)

There are some users who rely on more than line
number. It would be easy to move some logic from
users side here with extracted methods.
#162405)

The DirectCaller utility allows "direct" calls (with arguments
serialized into, and then immediately back out of a
WrapperFunctionBuffer) to wrapper functions. It was introduced for the
SPSWrapperFunction tests, but will be useful for testing WrapperFunction
interfaces for various orc-rt APIs too, so this commit hoists it
somewhere where it can be reused.
marykass-arm and others added 30 commits October 9, 2025 10:12
Since the `emitc.expression` was recently updated, the documentation has
been changed
The field has been moved to the base class, but I forgot to actually
delete it in the derived class.
We don't care how long any of this took. Due to OS scheduling,
one or more parts of the test may be delayed for any amount of
time.
This change splits cta_group::1 and cta_group::2 into two separate
functions because they are not supported inside a single function. ptxas
from 13.0 release onwards emits an error message for this case.
Use fast-math flag `afn` for `fmul` and remove UseUnsafeMath feature,
users now should use fast-math flags only, `unsafe-fp-math` attribute
support will be removed in future. Hopefully `afn` is the right option
This is the Hexagon part.
lifetime intrinsics are now restricted to alloca arguments, so
the scenario that this is testing for cannot occur anymore. The
lifetime intrinsics in this test actually get completely removed
by the IR auto-upgrade.
…s. (#162617)

Simplify and generalize the code to get a common constant multiple for
expressions when collecting guards, replacing the manual implementation.

Split off from #160012.

PR: #162617
Currently, `size_t` and `__libcpp_is_constant_evaluated` are obtained by
transitive inclusion in `<__algorithm/find.h>` when `<cwchar>` is not
included. This broke module build when `_LIBCPP_HAS_WIDE_CHARACTERS` is
`1` and caused CI failure. We should explicitly include the
corresponding internal headers.
The dependency analysis in MachinePipeliner checks dependencies for
every pair of store instructions in the target basic block. This means
the time complexity of the analysis is `O(N^2)`, where `N` is the number
of store instructions. Therefore, compilation time can become
significantly long when there are too many store instructions.

To mitigate it, this patch introduces logic to count the number of store
instructions at the beginning of the pipeliner and bail out if it
exceeds the threshold. The default value if the threshold should be
large enough. Thus, in most practical cases where the pipeliner is
beneficial, this patch should not cause any performance regression.

Related issue: #150262
This test failed on a buildbot where the path happened to contain
"ld2":
/home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build2_hwasan/test/tools/llvm-exegesis/AArch64/Output/no-aliasing-ld-str.s.tmp.obj: file format elf64-littleaarch64

To fix this, make lit consume a line past this one and
do the check-not after that point.
…ager.add` (#162594)

Previously, each time we called `PassManager.add(python_pass_callable)`,
a new `TypeID` allocator was created and never released afterward. This
approach could potentially lead to some issues. In this PR, we introduce
a global `TypeIDAllocator` that is shared across all `add` calls to
allocate IDs.
`structured-data ommand` -> `structured-data command`
…62096)

Before this patch we had:
>    clang -cc1 source.c -o bitcode.bc
>    llvm-link -o a.out bitcode.bc
>    llvm-spirv -o a.out a.out

Now we have:
>    clang -cc1 source.c -o bitcode.bc
>    llvm-link -o a-linked.bc bitcode.bc
>    llvm-spirv -o a.out a-linked.bc

Co-authored-by: Manuel Carrasco <[email protected]>
…hon (#162591)

`PassManager::enableStatistics` seems currently missing in both C API
and Python bindings. So here we added them in this PR, which includes
the `PassDisplayMode` enum type and the `EnableStatistics` method.
This reverts commit aeed686.

The test is no longer causing llvm-objdump to crash, but we're
getting different errors from llvm-exegis, like:
```
FMOVWSr: Not all operands were initialized by the snippet generator for UMOVvi32 opcode.

FMOVWSr: Not all operands were initialized by the snippet generator for FCVTZUSWDri opcode.
```
…egion (#162306)

Variable references inside OpenACC compute and loop region were
currently always lowered to usages of the same SSA values than in the
host thread, even for variables that appear in data clauses and for
which acc data operations are created.

This makes it a non-trivial task to identify implicit data usages vs
usage of data appearing in clauses because the SSA addresses used in the
region may have a non-trivial SSA relationship with the SSA addresses
used as inputs of the data operations, especially after CSE runs that
may merge component or array element addressing operations with similar
addressing on the host thread (fir.coordinate/hlfir.designate).

This patch updates OpenACC lowering to remap the Symbol that appear in
data clauses to the related acc data operation result for the scope of
the compute or loop region.

To allow FIR passes to reason about these addresses, a new hlfir.declare
operation is created with the acc data operation result. This gives
access to the shape, contiguity, attributes, and dummy argument
relationships inside the region without having FIR extended to
understand the data operations.
Reflecting the [Coding
Standards](https://llvm.org/docs/CodingStandards.html), the following
changes were made to reflect this guideline.
```
Variable names should be nouns (as they represent state). The name should be camel case, and start with an upper-case letter (e.g. Leader or Boats).
```
The first letter in the variable names are changed to upper-case and
reflect being camel case.
#157928)

There is a commonly used library that interposes the write call, and is
interposed itself. When running with `TSAN_OPTIONS=verbosity=(1|2)`,
this leads to a thread locking itself, resulting in the program hanging.

This patch adds a new flag `lock_during_write` to TSan (on Apple
platforms only) that, when set, allows interceptors to be bypassed
during calls to write. The flag can be inherited by children, or not,
depending on the value.

rdar://157565672
Handle ptrtoaddr the same way as ptrtoint. This code is already
working on the index size (= address size) of the pointer only.
In the libc++ test suite, we consistently declare main() functions with
full parameters and explicitly return from the function. This helps code
that compiles the tests with -ffreestanding, where main() is not a
special function (with an implicit return and special mangling).

This patch fixes a few stray declarations, including in libunwind and
libc++abi.
This was used for the old interop code. It's dead code after #143491
When creating function pointers, make sure the pointer is in the program
address space.

Also fix a spot where I forgot to set `setDefaultTargetAS` and one spot
where we didn't use the default AS for a pointer.

---------

Signed-off-by: Sarnie, Nick <[email protected]>
This is a find from static analysis tool complaining about potential
constant overflow for `Index`.
Also regenerate the test in current format.
Turns out there already was a test for the non-inbounds variant,
so remove the duplicate. Rename the tests to be more meaningful.
Drop irrelevant target triple.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.