Landing: 398bdccce49e
Project / Subsystem
gcc / gcc/ira
Date
2026-06-12
Author
Stefan Schulze Frielinghaus
Commit
398bdccce49e0ed5774cf05f7f1fa5aa00f54afe
Source
github
Perf win
Yes
Breaking
No
All attributes
- project
- gcc
- subsystem
- gcc/ira
- patch_id
- —
- commit_hash
- 398bdccce49e0ed5774cf05f7f1fa5aa00f54afe
- source_type
- github
- headline
- IRA aligns equivalence rejection with LRA policies
- tldr
- The IRA pass in GCC now anticipates LRA's rejection of certain register equivalences, reducing unnecessary spilling and improving code quality for PIC.
- author
- Stefan Schulze Frielinghaus
- outcome
- committed
- performance_win
- true
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • ira
- • lra
- • optimization
- • pic
- • s390
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-06-12T00:00:00.000Z
The Instruction Register Allocator (IRA) in GCC now harmonizes its handling of register equivalences with the Local Register Allocator (LRA). Previously, IRA might unnecessarily spill pseudo-registers with equivalences that LRA would ultimately reject, especially in Position-Independent Code (PIC) scenarios. By aligning IRA’s costing function to reject these equivalences earlier, the compiler avoids generating inefficient code that creates stack frames solely for these spills, resulting in smaller and faster binaries.