Monthly Archives: April 2013

Forces et faiblesses de LLVM comme g\’en\’erateur de code d’un DSP sp\’ecialis\’e

Forces et faiblesses de LLVM comme g\’en\’erateur de code d’un DSP sp\’ecialis\’e

  • Ivan Llopard. Forces et faiblesses de LLVM comme générateur de code d’un DSP spécialisé. In Sixièmes rencontres de la communauté francaise de compilation, Annecy, France, 2013.
    [BibTeX] [Abstract] [Download PDF]

    Modern compilers integrate recent advances in compiler construction, intermediate representations, algorithms and programming language front-ends. Yet code generation for application-specific architectures benefits only marginally from this trend, as most of the effort is oriented towards popular general-purpose architectures. Historically, non-orthogonal architectures have relied on custom compiler technologies, some retargettable, but largely decoupled from the evolution of mainstream tool flows. Very Long Instruction Word (VLIW) architectures have introduced a variety of interesting problems such as clusterization, packetization or bundling, instruction scheduling for exposed pipelines, long delay slots, software pipelining, etc. These have been addressed in the literature, with a focus on the exploitation of Instruction Level Parallelism (ILP). While these are well known solutions already embedded into existing compilers, they rely on common hardware functionalities that are expected to be present in a fairly large subset of VLIW architectures. We’d like to present Mephisto, a high performance low-power application-specific processor, and discuss about the strenghts and weaknesses of LLVM as a code generator framework for this kind of processor. Mephisto is specialized enough to challenge established code generation solutions for VLIW and DSP processors, calling for an innovative compilation flow. Interesting features such as indexed register files, parallel address generation and exposed pipeline, among other specific functionalities, require dedicated compiler analysis and transformations in order to generate high-quality code.

    @InProceedings{2013-04-LLOPARD,
    author = {Ivan Llopard},
    title = {{Forces et faiblesses de LLVM comme g\'en\'erateur de code d'un DSP sp\'ecialis\'e}},
    booktitle = {{Sixi\`emes rencontres de la communaut\'e francaise de compilation}},
    date = {2013-04-02/2013-04-04},
    address = {Annecy, France},
    url = {http://compilfr.ens-lyon.fr/wp-content/uploads/2013/04/ivan.pdf},
    abstract = {Modern compilers integrate recent advances in compiler construction, intermediate representations, algorithms and programming language front-ends. Yet code generation for application-specific architectures benefits only marginally from this trend, as most of the effort is oriented towards popular general-purpose architectures. Historically, non-orthogonal architectures have relied on custom compiler technologies, some retargettable, but largely decoupled from the evolution of mainstream tool flows. Very Long Instruction Word (VLIW) architectures have introduced a variety of interesting problems such as clusterization, packetization or bundling, instruction scheduling for exposed pipelines, long delay slots, software pipelining, etc. These have been addressed in the literature, with a focus on the exploitation of Instruction Level Parallelism (ILP). While these are well known solutions already embedded into existing compilers, they rely on common hardware functionalities that are expected to be present in a fairly large subset of VLIW architectures. We'd like to present Mephisto, a high performance low-power application-specific processor, and discuss about the strenghts and weaknesses of LLVM as a code generator framework for this kind of processor. Mephisto is specialized enough to challenge established code generation solutions for VLIW and DSP processors, calling for an innovative compilation flow. Interesting features such as indexed register files, parallel address generation and exposed pipeline, among other specific functionalities, require dedicated compiler analysis and transformations in order to generate high-quality code. },
    year = {2013}
    }

Posted in Dissemination | Leave a comment