Profile guided code positioning
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
DCG: an efficient, retargetable dynamic code generation system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Annotation-directed run-time specialization in C
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
MICRO 30 Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture
Tempo: specializing systems applications and beyond
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Dynamic specialization in the Fabius system
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
C and tcc: a language and compiler for dynamic code generation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamo: a transparent dynamic optimization system
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A dynamic optimization framework for a Java just-in-time compiler
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OCEANS: Optimising Compilers for Embedded Applications
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Code Specialization Based on Value Profiles
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Automatic, Template-Based Run-Time Specialization: Implementation and Experimental Study
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Code Size Efficiency in Global Scheduling for ILP Processors
INTERACT '02 Proceedings of the Sixth Annual Workshop on Interaction between Compilers and Computer Architectures
Retargeting JIT Compilers by using C-Compiler Generated Executable Code
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
An Event-Driven Multithreaded Dynamic Optimization Framework
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
Design and implementation of a lightweight runtime optimization system on modern computer architectures
Improving performance of optimized kernels through fast instantiations of templates
Concurrency and Computation: Practice & Experience - Compilers for Parallel Computers 2007 Workshop (CPC 2007)
Improving performance through deep value profiling and specialization with code transformation
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Based on feedback information, a large number of optimizations can be performed by the compiler. This information actually indicates the changing behavior of the applications and can be used to specialize code accordingly. Code specialization is a way to facilitate the compiler to perform optimizations by providing the information regarding variables in the code. It is however difficult to select the variables which maximize the benefit of specialization. Also the overhead of specialization and code size increase are the main issues while specializing code. This paper suggests a novel method for improving the performance using specialization based on feedback information and analysis. The code is iteratively specialized after selecting candidate variables by using a heuristic, followed by generation of optimized templates. These templates require a limited set of instructions to be specialized at runtime and are valid for a large number of values. The overhead of runtime specialization is further minimized through optimal software cache of template clones whose instantiation can be performed at static compile time. The experiments have been performed on Itanium-II(IA-64) and Pentium-IV processors using icc and gcc compilers. A significant improvement in terms of execution speed and reduction of code size has been achieved for SPEC and FFTW benchmarks.