aarch64: Assume function's are non-streaming unless annotated [PR126133] #194

Open
karmea01 wants to merge 1 commit from karmea01:km/neon-port-fix-pr126133 into trunk
Member

Make aarch64_update_ipa_fn_target_info more conservative, by setting
the AARCH64_IPA_SM_FIXED bit by default. The bit will only be unset if
the function is annotated with [[arm::streaming_compatible]]. This
matches the ACLE's specification which states that functions are by
default non-streaming.

This fixes PR 126133 by causing inlining to fail, even with
[[gnu::always_inline]], because the target features do not match.

gcc/ChangeLog:

* config/aarch64/aarch64.cc (aarch64_update_ipa_fn_target_info): 
set `AARCH64_IPA_SM_FIXED` when the call's decl is null.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/pr126133-1.c: New test.
* gcc.target/aarch64/pr126133-2.c: New test.
* gcc.target/aarch64/pr126133-3.c: New test.
Make `aarch64_update_ipa_fn_target_info` more conservative, by setting the `AARCH64_IPA_SM_FIXED` bit by default. The bit will only be unset if the function is annotated with `[[arm::streaming_compatible]]`. This matches the ACLE's specification which states that functions are by default non-streaming. This fixes PR 126133 by causing inlining to fail, even with `[[gnu::always_inline]]`, because the target features do not match. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_update_ipa_fn_target_info): set `AARCH64_IPA_SM_FIXED` when the call's decl is null. gcc/testsuite/ChangeLog: * gcc.target/aarch64/pr126133-1.c: New test. * gcc.target/aarch64/pr126133-2.c: New test. * gcc.target/aarch64/pr126133-3.c: New test.
aarch64: treat functions with missing decl as non-streaming [PR126133]
Some checks failed
/ format-checks (pull_request) Failing after 1m31s
bca9ef6d7c
Change `aarch64_update_ipa_fn_target_info` to set `AARCH64_IPA_SM_FIXED`
when the call's decl is null.

This fixes PR126133 by causing inlining to fail, even with
`[[always_inline]]`, because the target features do not match.

	PR 126133

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch64_update_ipa_fn_target_info):

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr126133-1.c: New test.
	* gcc.target/aarch64/pr126133-2.c: New test.
	* gcc.target/aarch64/pr126133-3.c: New test.
Member

Hi @karmea01. This bot helps send your PR as a patch series to the mailing list.

Next steps

  1. Write a clear PR description. It will be used as the cover letter.
  2. To CC extra people, add lines like this at the end of the PR description: CC: Reviewer1 <revi.ewer@example.com>, Reviewer2 <an.other@example.com>.
  3. To preview the emails, comment with /preview.
  4. When ready, request review in the Reviewers section. Or, if you just want to send the series, comment with /submit.
  5. Use the cover-letter links below to follow replies.
  6. For a new patch series, push your changes, update the PR description with a Changes since vX section, and comment with /submit again.

See Submitting Patches and UsingForge.

Consider joining the gcc and gcc-patches mailing lists..
For real time communication, check the gcc irc channels.

Or join #overseers on Libera Chat, particularly if this automation is not working (stay online to get replies, IRC does not save messages if people are not online).

<!-- pr-welcome --> Hi @karmea01. This bot helps send your PR as a patch series to the mailing list. ## Next steps 1. Write a clear PR description. It will be used as the cover letter. 2. To CC extra people, add lines like this **at the end** of the PR description: `CC: Reviewer1 <revi.ewer@example.com>, Reviewer2 <an.other@example.com>`. 3. To preview the emails, comment with `/preview`. 4. When ready, request review in the Reviewers section. Or, if you just want to send the series, comment with `/submit`. 5. Use the cover-letter links below to follow replies. 6. For a new patch series, push your changes, update the PR description with a `Changes since vX` section, and comment with `/submit` again. See [Submitting Patches](https://gcc.gnu.org/contribute.html#patches) and [UsingForge](https://gcc.gnu.org/wiki/UsingForge). Consider joining the [gcc and gcc-patches mailing lists.](https://gcc.gnu.org/lists.html). For real time communication, check the [gcc irc channels](https://gcc.gnu.org/wiki/GCConIRC). Or join [`#overseers`](https://web.libera.chat/#overseers) on Libera Chat, particularly if this automation is not working (stay online to get replies, IRC does not save messages if people are not online).
Member

Version 1 of this pull request has been stored. It includes the following commits:

<!-- pr-new-version --> Version 1 of this pull request has been stored. It includes the following commits: - aarch64: treat functions with missing decl as non-streaming [PR126133] - bca9ef6d7cda9699c2dccf4464d23a8c1cbd659b
karmea01 force-pushed km/neon-port-fix-pr126133 from bca9ef6d7c
Some checks failed
/ format-checks (pull_request) Failing after 1m31s
to b128a846be
Some checks failed
/ format-checks (pull_request) Failing after 1m34s
2026-07-20 12:51:44 +00:00
Compare
karmea01 changed title from aarch64: treat functions with missing decl as non-streaming [PR126133] to WIP: aarch64: treat functions with missing decl as non-streaming [PR126133] 2026-07-20 12:52:54 +00:00
karmea01 force-pushed km/neon-port-fix-pr126133 from b128a846be
Some checks failed
/ format-checks (pull_request) Failing after 1m34s
to 6eb78d945e
Some checks failed
/ format-checks (pull_request) Failing after 1m37s
2026-07-21 09:02:36 +00:00
Compare
karmea01 force-pushed km/neon-port-fix-pr126133 from 6eb78d945e
Some checks failed
/ format-checks (pull_request) Failing after 1m37s
to 90578745cb
Some checks failed
/ format-checks (pull_request) Failing after 1m34s
2026-07-21 09:06:49 +00:00
Compare
karmea01 force-pushed km/neon-port-fix-pr126133 from 90578745cb
Some checks failed
/ format-checks (pull_request) Failing after 1m34s
to 01443d664a
Some checks failed
/ format-checks (pull_request) Failing after 1m39s
2026-07-22 10:21:19 +00:00
Compare
karmea01 changed title from WIP: aarch64: treat functions with missing decl as non-streaming [PR126133] to aarch64: treat functions with missing decl as non-streaming [PR126133] 2026-07-22 13:39:12 +00:00
karmea01 changed title from aarch64: treat functions with missing decl as non-streaming [PR126133] to aarch64: Assume function's are non-streaming unless annotated [PR126133] 2026-07-22 13:41:09 +00:00
Author
Member

/submit

/submit
Member

Version 2 of this pull request has been stored. It includes the following commits:

<!-- pr-new-version --> Version 2 of this pull request has been stored. It includes the following commits: - aarch64: Assume function's are non-streaming unless annotated [PR126133] - 01443d664a96d3b7b3b8d2d7dea4d6a9f0e50a8b
Member

Pull Request versions:

# Base Head
1 a760fee28d bca9ef6d7c (diff)
2 9cdb20d76a 01443d664a (diff)

In order to compare , clone this repository and run

PR=194
git fetch origin "refs/versioned_pull/${PR}/*:refs/versioned_pull/${PR}/*"
PRV1=1
PRV2=2
git range-diff "refs/versioned_pull/${PR}/${PRV1}/base..refs/versioned_pull/${PR}/${PRV1}/head"  "refs/versioned_pull/${PR}/${PRV2}/base..refs/versioned_pull/${PR}/${PRV2}/head"
<!-- pr-versions --> Pull Request versions: | # | Base | Head | | | - | ---- | ---- | - | | 1 | a760fee28d361e7f8336c62104d2421a06867424 | bca9ef6d7cda9699c2dccf4464d23a8c1cbd659b | [(diff)](https://forge.sourceware.org/gcc/gcc.git/compare/a760fee28d361e7f8336c62104d2421a06867424...bca9ef6d7cda9699c2dccf4464d23a8c1cbd659b) | | 2 | 9cdb20d76ac54e68e5baa928919487addf3bfad2 | 01443d664a96d3b7b3b8d2d7dea4d6a9f0e50a8b | [(diff)](https://forge.sourceware.org/gcc/gcc.git/compare/9cdb20d76ac54e68e5baa928919487addf3bfad2...01443d664a96d3b7b3b8d2d7dea4d6a9f0e50a8b) | In order to compare , clone this repository and run ``` PR=194 git fetch origin "refs/versioned_pull/${PR}/*:refs/versioned_pull/${PR}/*" PRV1=1 PRV2=2 git range-diff "refs/versioned_pull/${PR}/${PRV1}/base..refs/versioned_pull/${PR}/${PRV1}/head" "refs/versioned_pull/${PR}/${PRV2}/base..refs/versioned_pull/${PR}/${PRV2}/head" ```
Member

Sent patch series version 2 containing 1 patches to gcc-patches mailing list gcc-patches@gcc.gnu.org.
Cover letter

Sent patch series version 2 containing 1 patches to gcc-patches mailing list <gcc-patches@gcc.gnu.org>. [Cover letter](https://inbox.sourceware.org/gcc-patches/bmm.hkmskzy3my.gcc.gcc.karmea01.194.2.0@forge-stage.sourceware.org)
Some checks failed
/ format-checks (pull_request) Failing after 1m39s
This pull request is broken due to missing fork information.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u km/neon-port-fix-pr126133:karmea01-km/neon-port-fix-pr126133
git switch karmea01-km/neon-port-fix-pr126133

Merge

Merge the changes and update on Forgejo.
git switch trunk
git merge --no-ff karmea01-km/neon-port-fix-pr126133
git switch karmea01-km/neon-port-fix-pr126133
git rebase trunk
git switch trunk
git merge --ff-only karmea01-km/neon-port-fix-pr126133
git switch karmea01-km/neon-port-fix-pr126133
git rebase trunk
git switch trunk
git merge --no-ff karmea01-km/neon-port-fix-pr126133
git switch trunk
git merge --squash karmea01-km/neon-port-fix-pr126133
git switch trunk
git merge --ff-only karmea01-km/neon-port-fix-pr126133
git switch trunk
git merge karmea01-km/neon-port-fix-pr126133
git push origin trunk
Sign in to join this conversation.
No reviewers
gcc/Maintainers.AArch64
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gcc/gcc!194
No description provided.