@techreport{TR-IC-13-13,
   number = {IC-13-13},
   author = {Rafael Auler and Edson Borin},
   title = {{A LLVM Just-in-Time Compilation Cost Analysis}},
   month = {May},
   year = {2013},
   institution = {Institute of Computing, University of Campinas},
   note = {In English, 23 pages.
    \par\selectlanguage{english}\textbf{Abstract}
       The  compilation  time and generated code quality are important
       factors  of  a  Just-in-Time  (JIT)  compilation Dynamic Binary
       Translation (DBT) system. In order to decide which optimization
       level to apply, a good DBT must know in advance for how long it
       will halt the execution system until the optimization finishes.
       If this time is known, the system can make a better judgment on
       which  subset of optimizations it should use. Nevertheless, the
       algorithms  used for code optimization and generation execute a
       number  of  steps  that is difficult to predict. The algorithms
       complexity  in  time  is  dependent  on a transitory input that
       changes  every  time  a  pass  from  the  compilation  pipeline 
       finishes.  For  worklist-based  algorithms, the worst-case time
       and   average-case  time  may  differ  greatly,  affecting  the 
       usefulness  of  an analytical approach to time estimation. This
       technical  report  presents an analysis of the LLVM compilation
       cost and proposes a model to predict this compilation cost as a
       function  of code properties. We use an empirical approach that
       provides  an  easy  way  to  understand  the  behavior  of code
       generation  performance  and provide a quantitative analysis of
       the  compilation  time of all C and C++ functions from the SPEC
       CPU2006  benchmarks.  We  also show that the error of our final
       model is under 21\% for 90\% of the tests.
  }
}