Compile-time optimization is often limited by a l a c k o f t a rget machine and input data set knowledge. Without this information, compilers may b e f orced to make c o n s e r v ative assumptions to preserve correctness and to avoid performance degradation. In order to cope with this lack o f i nformation at compile-time, adaptive and dynamic systems can be used to perform optimization at runtime when complete knowledge of input and machine parameters is available. This paper presents a compiler-supported high-level adaptive o p t imization system. Users describe, in a domain speci c language, optimizations performed by stand-alone optimization tools and backend compiler ags, as well as heuristics for applying these optimizations dynamically at runtime. The ADAPT compiler reads these descriptions and generates application-speci c runtime systems to a pply the heuristics. To facilitate the usage of existing tools and compilers, overheads are minimized by decoupling optimization from execution. Our system, ADAPT, supports a range of paradigms proposed recently, including dynamic compilation, parameterization and runtime sampling. We demonstrate our system by applying several optimization techniques to a suite of benchmarks on two target machines. ADAPT is shown to consistently outperform statically generated executables, improving performance by a s m uch a s 70%.
ADAPT REF is a compiler-supported infrastructure for high-level adaptive program optimization.
High-level adaptive program optimization with ADAPT
PPoPP '01
Computer Science