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
Updates
- New ext-dce pass has been integrated.
- Breaking out additional items as 2H2024 work
- 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.
- 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.
- Carried over unfinished items from 2H2023 plan
- Jivan's patch for catching corner cases of promoted objects integrated into tester