Landing: 6a1f0d171ba1
Project / Subsystem
gcc / sh
Date
2024-10-06
Author
Kaz Kojima
Commit
6a1f0d171ba12f3dbddf2f8b7358f8d042195249
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- sh
- patch_id
- —
- commit_hash
- 6a1f0d171ba12f3dbddf2f8b7358f8d042195249
- source_type
- github
- headline
- SH: Reduce R0 live ranges for LRA with R0-constrained moves
- tldr
- SH backend reduces R0 live ranges around R0-constrained move instructions to help LRA succeed.
- author
- Kaz Kojima
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • sh
- • register allocation
- • optimization
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2024-10-06T00:00:00.000Z
This commit reduces the likelihood of Long-Range Addresser (LRA) failures on the SH architecture by shortening the live ranges of the R0 register around specific move and extend instructions. It achieves this by using instruction variants that explicitly clobber R0 and by splitting moves into two instructions, tricking LRA into using non-R0 registers for operands.