Landing: 933221722a25

Project / Subsystem

gcc / sh

Date

2024-09-24

Author

Kaz Kojima

Commit

933221722a25bc46c5215d40e97a4c0a385a96ba

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
sh
patch_id
commit_hash
933221722a25bc46c5215d40e97a4c0a385a96ba
source_type
github
headline
SH: Pin sfunc input args to hard-regs via predicates
tldr
SH sfuncs now use predicates to pin input arguments to hard registers, resolving LRA issues with clobber patterns.
author
Kaz Kojima
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • SH
  • register allocation
  • target specific
discussion_id_link
bugzilla_pr
date
2024-09-24T00:00:00.000Z

This commit modifies SH-specific sfuncs to use new predicates for pinning input arguments to hard registers. Previously, some sfuncs used hard registers as inputs but then clobbered their raw register patterns, which the Local Register Allocator (LRA) did not handle correctly. The rewrite uses match_operand and match_dup to ensure these arguments are properly constrained, resolving issues related to PR target/55212.