SYSTEMS AND METHODS FOR COMPILER-BASED VECTORIZATION OF NON-LEAF CODE

Systems and methods for the vectorization of software applications are described. In some embodiments, source code dependencies can be expressed in ways that can extend a compiler's ability to vectorize otherwise scalar functions. For example, when compiling a called function, a compiler may id...

Full description

Saved in:
Bibliographic Details
Main Author JEFFRY E. GONION
Format Patent
LanguageEnglish
Spanish
Published 24.06.2013
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Systems and methods for the vectorization of software applications are described. In some embodiments, source code dependencies can be expressed in ways that can extend a compiler's ability to vectorize otherwise scalar functions. For example, when compiling a called function, a compiler may identify dependencies of the called function on variables other than parameters passed to the called function. The compiler may record these dependencies, e.g., in a dependency file. Later, when compiling a calling function that calls the called function, the same (or another) compiler may reference the previously-identified dependencies and use them to determine whether and how to vectorize the calling function. In particular, these techniques may facilitate the vectorization of non-leaf loops. Because non-leaf loops are relatively common, the techniques described herein can increase the amount of vectorization that can be applied to many applications. Se describen sistemas y métodos para la vectorización de aplicaciones de software. En algunas modalidades, pueden expresarse dependencias de código de origen en formas que pueden extender la capacidad de un compilador para vectorizar funciones escalares de otra manera. Por ejemplo, cuando se compila una función invocada, un compilador puede identificar dependencias de la función invocada de variables diferentes a los parámetros pasados para la función invocada. El compilador puede registrar estas dependencias, por ejemplo, en un archivo de dependencias. Después, cuando se compila una función de llamada que invoca la función invocada, el mismo (u otro) compilador puede referenciar las dependencias previamente identificadas y usarlas para determinar si y cómo vectorizar la función de llamada. En particular, estas técnicas pueden facilitar la vectorización de bucles no hoja. Dado que los bucles no hoja son relativamente comunes, las técnicas descritas en este documento pueden incrementar la cantidad de vectorización que puede utilizarse en muchas aplicaciones.
Bibliography:Application Number: MX20130003339