Creative Commons Attribution 4.0 International license
Embedded systems often rely on code generated from model-based design tools, which can result in inefficient implementations due to the loss of high-level semantic information during code generation. This paper explores an inter-procedural extension of the strength reduction transformation, traditionally applied within loops, to optimize repeated computations across function calls. The proposed technique identifies parameters acting as counters and replaces costly operations - such as exponentiation or multiplication - with incremental updates based on recurrence relations, using static variables to preserve state between calls. We formalize the transformation, discuss its applicability conditions, and analyse tradeoffs between computation and memory access costs. Experimental evaluation on ARMv8, AVR microcontrollers, and x86_64 platforms demonstrates significant speedups for power operations (up to 9 ×), while highlighting limitations for simpler operations due to memory overhead.
@InProceedings{agosta:OASIcs.PARMA-DITAM.2026.4,
author = {Agosta, Giovanni},
title = {{Inter-Procedural Strength Reduction for Embedded Systems}},
booktitle = {17th Workshop on Parallel Programming and Run-Time Management Techniques for Many-Core Architectures and 15th Workshop on Design Tools and Architectures for Multicore Embedded Computing Platforms (PARMA-DITAM 2026)},
pages = {4:1--4:10},
series = {Open Access Series in Informatics (OASIcs)},
ISBN = {978-3-95977-416-1},
ISSN = {2190-6807},
year = {2026},
volume = {141},
editor = {Baroffio, Davide and Busia, Paola and Denisov, Lev and Shukla, Nitin},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.PARMA-DITAM.2026.4},
URN = {urn:nbn:de:0030-drops-256717},
doi = {10.4230/OASIcs.PARMA-DITAM.2026.4},
annote = {Keywords: Compiler Optimization, Strength Reduction}
}