deGoal a Tool to Embed Dynamic Code Generators into Applications

  • Henri-Pierre Charles
  • Damien Couroussé
  • Victor Lomüller
  • Fernando A. Endo
  • Rémy Gauguey
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8409)


The processing applications that are now being used in mobile and embedded platforms require at the same time a fair amount of processing power and a high level of flexibility, due to the nature of the data to process. In this context we propose a lightweight code generation technique that is able to perform data dependent optimizations at run-time for processing kernels.

In this paper we present the motivations and how to use deGoal: a tool designed to build fast and portable binary code generators called compilettes.


Code Generation Machine Code Execution Context Memory Allocator Kernel Description 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Aracil, C., Couroussé, D.: Software acceleration of floating-point multiplication using runtime code generation. In: Proceedings of the 4th International Conference on Energy Aware Computing, Istanbul, Turkey (December 2013)Google Scholar
  2. 2.
    Charles, H.P.: Basic infrastructure for dynamic code generation. In: Proceedings of the Workshop “Dynamic Compilation Everywhere”, in Conjunction with the 7th HiPEAC Conference, Paris, France (January 2012)Google Scholar
  3. 3.
    Charles, H.P., Lomüller, V.: Data Size and Data Type Dynamic GPU Code Generation. In: GPU Design Pattern. Saxe-Coburg publications (2012)Google Scholar
  4. 4.
    Consel, C., Noël, F.: A general approach for run-time specialization and its application to C. In: Proceedings of the 23th Annual Symposium on Principles of Programming Languages, pp. 145–156 (1996)Google Scholar
  5. 5.
    Couroussé, D., Lomüller, V., Charles, H.P.: Introduction to Dynamic Code Generation – An Experiment with Matrix Multiplication for the STHORM Platform. In: Smart Multicore Embedded Systems, ch. 6, pp. 103–124. Springer (2013)Google Scholar
  6. 6.
    Gal, A., Probst, C.W., Franz, M.: HotpathVM: An effective JIT compiler for resource-constrained devices. In: VEE 2006, pp. 144–153. ACM, New York (2006)Google Scholar
  7. 7.
    Grant, B., Mock, M., Philipose, M., Chambers, C., Eggers, S.J.: DyC: An expressive annotation-directed dynamic compiler for C. Theor. Comput. Sci. 248(1-2), 147–199 (2000)CrossRefzbMATHGoogle Scholar
  8. 8.
    Jones, N.D.: An introduction to partial evaluation. ACM Comput. Surv. 28, 480–503 (1996), CrossRefGoogle Scholar
  9. 9.
    Lattner, C.: LLVM: An Infrastructure for Multi-Stage Optimization. Master’s thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, Urbana, IL (2002)Google Scholar
  10. 10.
    Lhuillier, Y., Couroussé, D.: Embedded system memory allocator optimization using dynamic code generation. In: Proceedings of the Workshop “Dynamic Compilation Everywhere”, in Conjunction with the 7th HiPEAC Conference, Paris, France (January 2012)Google Scholar
  11. 11.
    Sajjad, K., Tran, S.M., Barthou, D., Charles, H.P., Preda, M.: A global approach for mpeg-4 avc encoder optimization. In: 14th Workshop on Compilers for Parallel Computing (2009)Google Scholar
  12. 12.
    Shaylor, N.: A just-in-time compiler for memory-constrained low-power devices. In: Java VM 2002, pp. 119–126. USENIX Association, Berkeley (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Henri-Pierre Charles
    • 1
  • Damien Couroussé
    • 1
  • Victor Lomüller
    • 1
  • Fernando A. Endo
    • 1
  • Rémy Gauguey
    • 1
  1. 1.LIST, Département Architecture Conception Logiciels EmbarquésCEAGrenobleFrance

Personalised recommendations