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.