Tcc: A System For Fast, Flexible, And High-Level Dynamic Code Generation

PLDI(1997)

引用 115|浏览84
暂无评分
摘要
tcc is a compiler that provides efficient and high-level access to dynamic code generation. It implements the 'C (''Tick-C'') programming language, an extension of ANSI C that supports dynamic code generation [15]. 'C gives power and flexibility in specifying dynamically generated code: whereas most other systems use annotations to denote run-time invariants, 'C allows the programmer to specify and compose arbitrary expressions and statements at run time. This degree of control is needed to efficiently implement some of the most important applications of dynamic code generation, such as ''just in time'' compilers [17] and efficient simulators [10, 48, 46].The paper focuses on the techniques that allow tee to provide 'C's flexibility and expressiveness without sacrificing run-time code generation efficiency. These techniques include fast register allocation, efficient creation and composition of dynamic code specifications, and link-time analysis to reduce the size of dynamic code generators. tee also implements two different dynamic code generation strategies, designed to address the tradeoff of dynamic compilation speed versus generated code quality. To characterize the effects of dynamic compilation, we present performance measurements for eleven programs compiled using tee. On these applications, we measured performance improvements of up to one order of magnitude.To encourage further experimentation and use of dynamic code generation, we are making the tee compiler available in the public domain. This is, to our knowledge, the first high-level dynamic compilation system to be made available.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要