CT_00_024 - Extension Elimination (GCC)
About
These are tasks carried forward from 2H2023 and some additional work identified in 2024
The extension-dce work that was started in 2H2024. This is a new optimization pass which is designed to track liveness of the result of sign/zero extension instructions. If the bits set by a sign/zero extension are never read and never escape (implicitly read), then the extension is useless and can potentially be removed. This is expected to improve x264's scalar implementation by roughly 1%. It is also expected to be a very small improvement to the coremark benchmark. Other codes show very small improvements. This code was originally targeted at gcc-14 (Spring 2024), but it was decided to wait rather than push integration of the code well after feature freeze.
Stakeholders/Partners
RISE:
Ventana: 1 FTE Jivan Hakobyan and Jeff Law
Rivos: Vineet (part time)
External:
The original idea for and implementation of the ext-dce pass was from Joern Rennecke at EMBECOSM.
Dependencies
Status
Development | COMPLETE |
|
|---|---|---|
Development Timeline | 1H2024 |
|
Upstreaming | COMPLETED |
|
Upstream Version | gcc-15 Spring 2025
|
|
Contacts | Jeff Law (Ventana) |
|
Dependencies | None |
|
Updates
Jul 8, 2024
New ext-dce pass has been integrated.
Jun 29, 2024
Breaking out additional items as 2H2024 work
Apr 5, 2024
Note additional case we should add to ext-dce.
Note Jivan has taken care of extensions following fp→int conversions. It will be submitted once gcc-15 is open for development.
Mar 14, 2024
Note the two additional identified opportunities to remove redundant sign extensions. Change development state to in-progress.
Added yet another idea for ABI defined extension elimination in REE.
Jan 29, 2024
Carried over unfinished items from 2H2023 plan
Jivan's patch for catching corner cases of promoted objects integrated into tester