In this paper, we describe the overall architecture (bytecode translators, global optimizer, and code generators) of the StarJIT compiler and the design of its intermediate representation, global optimizer, Itanium Processor Family code generator, and dynamic optimization framework. We present implementation details on the single static assignment (SSA)-based global optimizations , the Itanium Processor Family trace scheduler, and the profile-driven dynamic optimization framework.
he dynamic compiler must be sensitive to the time and space efficiency of its optimization algorithms – compilation overheads become overheads on the application’s execution. For example, a slow compiler can slow down an application’s load time, making the system feel less responsive to the user. A dynamic compiler, therefore, must be designed to balance compilation overhead with code quality. Bugs in the dynamic compiler can become security holes that can be exploited by hackers.DOWNLOAD SOLUTION HERE