Eingebettete Systeme basieren häufig auf aus modellbasierten Entwurfstools generiertem Code, der aufgrund des Verlusts von hochgradigen semantischen Informationen während der Codegenerierung zu ineffizienten Implementierungen führen kann. Dieses Papier untersucht eine inter-prozedurale Erweiterung der Stärke-Reduktions-Transformation, die traditionell innerhalb von Schleifen angewendet wird, um wiederholte Berechnungen über Funktionsaufrufe hinweg zu optimieren. Die vorgeschlagene Technik identifiziert Parameter, die als Zähler fungieren, und ersetzt kostspielige Operationen – wie Potenzierung oder Multiplikation – durch inkrementelle Aktualisierungen basierend auf Rekurrenzrelationen, wobei statische Variablen verwendet werden, um den Zustand zwischen den Aufrufen zu erhalten. Wir formalisierten die Transformation, diskutieren ihre Anwendbarkeit und analysieren die Kompromisse zwischen Berechnungs- und Speicherzugriffskosten. Experimentelle Bewertungen auf ARMv8-, AVR-Mikrocontrollern und x86₆4-Plattformen zeigen signifikante Geschwindigkeitsverbesserungen für Leistungsoperationen (bis zu 9 ×) und heben gleichzeitig Einschränkungen bei einfacheren Operationen aufgrund des Speicherüberheads hervor.
Giovanni Agosta (Thu,) untersuchte diese Frage.