Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Oct 17, 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 : )

jrbyrnes and others added 11 commits October 16, 2025 16:59
Adds a couple missing variants based on opcode.
This adds the support for dynamic cast to void in the Itanium ABI.
This improves the diagnostic emitted when `errorNYI` is called for
missing builtin calls so that the builtin being called is displayed in
the diagnostic.
#163832)

When a template function with `out` arguments is instantiated, only the arguments with dependent types need to have their `out` type updated to a restricted reference. Non-dependent argument types have already been converted and the template instantiation should not change that.

Fixes #163648
When we implemented array cookie support for hardening std::unique_ptr,
the implementation was only done for the Itanium ABI. I did not
initially realize that ARM was using a different ABI for array cookies,
so unique_ptr should not have been hardened on ARM.

However, we were also incorrectly setting the ABI-detection macro: we
were pretending to be using a vanilla Itanium ABI when in reality the
(similar but different) ARM ABI was in use. As a result, unique_ptr was
using the wrong representation for array cookies on ARM, which
fortunately only mattered in the case of overaligned types.

This patch fixes that.

rdar://160852193
…icates. (#163846)

The PseudoVFWCVTBF16_F_F and PseudoVFNCVTBF16_F_F pseudos should only
have Zvfbfmin as their Predicate, they are not used by Zvfofp8min which
requires different Pseudos with different SEW.

The patterns had an outer Predicates saying ZvfbfminOrZvfofp8min and
inner Predicate saying HasVInstructionsMinimal||HasVInstructionsF32. I
believe the outer Predicates overrides the inner Predicates.

The correct predicate for the patterns is Zvfbfmin(which implies
HasVInstructionsF32). They aren't used by Zvfofp8min and
HasVInstructionsMinimal is going to be changed to Zvbfmin||Zvfbfa, but
these instructions are Zvfbfmin only.
This includes the rename from `mlirOpRewritePattenCreate` to `mlirOpRewritePatternCreate` in CAPI, and other typo fixes in docs and code comments.
Unlike the incubator, this adds the inline attribute directly to FuncOp
instead of adding the ExtraFnAttr dict.

This adds three new optional keywords to CIR: inline_always,
inline_never and inline_hint. Just like in OGCG -O0 implies inline_never
on functions withoutt the C++ `inline` keyword and no other
inlining-related attribute.

This patch also adapts all tests that use functions so they account for
LLVM attributes being attached now.
@pull pull bot locked and limited conversation to collaborators Oct 17, 2025
@pull pull bot added the ⤵️ pull label Oct 17, 2025
@pull pull bot merged commit 4aba5ed into optimizecompile:main Oct 17, 2025
13 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants