摘要 |
Systeme und Verfahren für die Vektorisierung von Softwareanwendungen werden beschrieben. In einigen Ausführungsformen können Quellcode-Abhängigkeiten auf Weisen ausgedrückt werden, die eine Fähigkeit eines Compilers erweitern können, um ansonsten skalare Funktion zu vektorisieren. Zum Beispiel, beim Kompilieren einer aufgerufenen Funktion, kann ein Compiler Abhängigkeiten der aufgerufenen Funktion von anderen Variablen als den Parameter, die an die aufgerufene Funktion übergeben werden, identifizieren. Der Compiler kann diese Abhängigkeiten aufzeichnen, z. B. in einer Abhängigkeitsdatei. Später, beim Kompilieren einer aufrufenden Funktion, die die aufgerufene Funktion aufruft, kann der gleiche (oder ein anderer) Compiler die vorher-identifizierten Abhängigkeiten referenzieren und sie verwenden, um zu bestimmen, ob und wie die aufrufende Funktion zu vektorisieren ist. Insbesondere können diese Techniken die Vektorisierung von Non-Leaf-Schleifen vereinfachen. Weil Non-Leaf-Schleifen relativ gebräuchlich sind, können die hierin beschriebenen Techniken die Menge der Vektorisierung erhöhen, die auf viele Anwendungen angewendet werden kann.
|