Javascript must be enabled to continue!
DRUID : Metacompilation of Baseline JIT Compilers
View through CrossRef
DRUID : Métacompilation des compilateurs JIT de base
Les machines virtuelles (VM) combinent des interprètes et des compilateurs à la volée (JIT) pour obtenir de bonnes performances.Cependant, maintenir plusieurs moteurs d'exécution augmente considérablement les coûts de développement et de maintenance.Alors que des travaux antérieurs se sont intéressés à la génération automatique de compilateurs JIT optimisants, la question de savoir si la métacompilation peut être appliquée efficacement aux compilateurs JIT de base, qui privilégient une compilation rapide et un temps de préchauffage réduit, restait ouverte.Dans cette thèse, nous présentons textbf{Druid, un métacompilateur source-à-source avant d'exécution qui génère un compilateur JIT de base} directement à partir des définitions de l'interpréteur.Les développeurs du langage guident le processus de métacompilation à l'aide d'annotations et d'intrinsèques, pendant que Druid cible une infrastructure JIT existante afin de réutiliser des optimisations et des composants d'exécution éprouvés, offrant ainsi des performances de préchauffage compétitives.Nous avons appliqué Druid à la machine virtuelle Pharo utilisée en production, et évalué les performances du compilateur JIT généré automatiquement.Le JIT de base obtenu est xTimes{1.8} plus rapide que l'interpréteur et atteint {70%} des performances d'un compilateur JIT écrit manuellement et amélioré depuis plus de dix ans.Cela n'a nécessité que 60 modifications ponctuelles dans l'interpréteur, démontrant que Druid réduit considérablement l'effort d'ingénierie requis pour maintenir et faire évoluer les VM de langage.Les compilateurs JIT de base doivent compiler rapidement tout en appliquant des optimisations essentielles.Une stratégie couramment utilisée est l'interprétation abstraite à la compilation, qui réalise en un seul passage l'allocation de registres, la propagation de constantes et l'ordonnancement des instructions.Cependant, il est difficile d'isoler et de quantifier les bénéfices de cette technique en comparant des compilateurs développés indépendamment.Avec Druid, nous avons généré automatiquement plusieurs variantes du compilateur JIT de Pharo afin d'évaluer expérimentalement l'impact de l'interprétation abstraite dans des conditions contrôlées.Nous utilisons la métacompilation pour: (a) réduire l'effort d'expérimentation et (b) produire des variantes de compilateurs comparables, réduisant le bruit lié aux différences implémentations.Nos résultats montrent que l'interprétation abstraite réduit la taille du code machine de {12%} et améliore la vitesse d'exécution de {10%} en moyenne (jusqu'à {30%}), sans augmentation mesurable du temps de compilation JIT par rapport à une approche de traduction directe.
Title: DRUID : Metacompilation of Baseline JIT Compilers
Description:
DRUID : Métacompilation des compilateurs JIT de base
Les machines virtuelles (VM) combinent des interprètes et des compilateurs à la volée (JIT) pour obtenir de bonnes performances.
Cependant, maintenir plusieurs moteurs d'exécution augmente considérablement les coûts de développement et de maintenance.
Alors que des travaux antérieurs se sont intéressés à la génération automatique de compilateurs JIT optimisants, la question de savoir si la métacompilation peut être appliquée efficacement aux compilateurs JIT de base, qui privilégient une compilation rapide et un temps de préchauffage réduit, restait ouverte.
Dans cette thèse, nous présentons textbf{Druid, un métacompilateur source-à-source avant d'exécution qui génère un compilateur JIT de base} directement à partir des définitions de l'interpréteur.
Les développeurs du langage guident le processus de métacompilation à l'aide d'annotations et d'intrinsèques, pendant que Druid cible une infrastructure JIT existante afin de réutiliser des optimisations et des composants d'exécution éprouvés, offrant ainsi des performances de préchauffage compétitives.
Nous avons appliqué Druid à la machine virtuelle Pharo utilisée en production, et évalué les performances du compilateur JIT généré automatiquement.
Le JIT de base obtenu est xTimes{1.
8} plus rapide que l'interpréteur et atteint {70%} des performances d'un compilateur JIT écrit manuellement et amélioré depuis plus de dix ans.
Cela n'a nécessité que 60 modifications ponctuelles dans l'interpréteur, démontrant que Druid réduit considérablement l'effort d'ingénierie requis pour maintenir et faire évoluer les VM de langage.
Les compilateurs JIT de base doivent compiler rapidement tout en appliquant des optimisations essentielles.
Une stratégie couramment utilisée est l'interprétation abstraite à la compilation, qui réalise en un seul passage l'allocation de registres, la propagation de constantes et l'ordonnancement des instructions.
Cependant, il est difficile d'isoler et de quantifier les bénéfices de cette technique en comparant des compilateurs développés indépendamment.
Avec Druid, nous avons généré automatiquement plusieurs variantes du compilateur JIT de Pharo afin d'évaluer expérimentalement l'impact de l'interprétation abstraite dans des conditions contrôlées.
Nous utilisons la métacompilation pour: (a) réduire l'effort d'expérimentation et (b) produire des variantes de compilateurs comparables, réduisant le bruit lié aux différences implémentations.
Nos résultats montrent que l'interprétation abstraite réduit la taille du code machine de {12%} et améliore la vitesse d'exécution de {10%} en moyenne (jusqu'à {30%}), sans augmentation mesurable du temps de compilation JIT par rapport à une approche de traduction directe.
Related Results
JIT production, JIT supply and performance: investigating the moderating effects
JIT production, JIT supply and performance: investigating the moderating effects
PurposeThe purpose of this paper is to study whether just in time (JIT) supply practices interact with JIT production practices by positively moderating the relationship between JI...
EDI Implementation in JIT and Non‐JIT Manufacturing Firms:
A Comparative Study
EDI Implementation in JIT and Non‐JIT Manufacturing Firms:
A Comparative Study
To compete successfully in the global market, firms are adopting
new technologies and manufacturing strategies. The Just‐in‐Time (JIT)
philosophy and Electronic Data Interchange (E...
EDI Implementation: A Comparative Study of JIT and Non‐JIT Manufacturing Firms
EDI Implementation: A Comparative Study of JIT and Non‐JIT Manufacturing Firms
To compete successfully in the global market, firms are adopting
new technologies and manufacturing strategies. The just‐in‐time (JIT)
philosophy and electronic data interchange (E...
The Context, Organizational Design, and Performance of JIT Buying Versus Non‐JIT Buying Firms
The Context, Organizational Design, and Performance of JIT Buying Versus Non‐JIT Buying Firms
IN BRIEFA comparison of Just‐In‐Time (JIT) versus non‐JIT buying firms was made on context, organizational, and performance dimensions. Of nine context variables examined, four dis...
Just‐in‐time implementation issues among automotive suppliers in the southern USA
Just‐in‐time implementation issues among automotive suppliers in the southern USA
PurposeThe purpose of this paper is to provide insight into the major supply chain issues of the automotive manufacturing industry in the southern USA.Design/methodology/approachTh...
A longitudinal examination of JIT purchasing practices
A longitudinal examination of JIT purchasing practices
PurposeTo examine the changes in just‐in‐time (JIT) purchasing practices over time.Design/methodology/approachThe evaluation of changes in JIT purchasing practices was done through...
Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler
Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler
Modern Just-in-Time compilers (or JITs) typically interleave several mechanisms to execute a program. For faster startup times and to observe the initial behavior of an execution, ...
Analisis Pengendalian Kuantitas Produksi dengan Menggunakan Metode Just In Time (JIT) pada Usaha Dagang Mastura di Kota Palu
Analisis Pengendalian Kuantitas Produksi dengan Menggunakan Metode Just In Time (JIT) pada Usaha Dagang Mastura di Kota Palu
Penelitian ini bertujuan untuk mengetahui dan menganalisis pengendalian kuantitas produksi dengan menggunakan metode Just In Time (JIT) pada UD. MASTURA Kota Palu selama tahun 2020...

