In the Morph Project we are exploring new ways to understand and improve the performance of computer systems through late-code modification, in which we interpose an additional phase of optimization between the time an executable module is produced by the linker and when the instructions are actually executed on the CPU. Morph permits executable programs to be re-optimized ("morphed") to apply profile-based and other platform specific optimizations. Our goal in doing so is to change executable programs from a dead-end into a resource that permits an unlimited number of updates and re-optimizations.
Morph technology will make it easy to apply precise performance measurement information directly to improve the performance of executable programs. Obtaining and understanding such information is the goal of our project on Understanding Behavior of Commodity Software Systems.
Etch is a joint project between University of Washington and Harvard.
Just-In-Time code layout (JITCL) is a new method for improving the locality of an instruction reference stream by selecting the order of procedures in the text segment during program execution. By determining procedure placement dynamically, this method provides an optimized procedure layout without requiring profile data. We have found that JITCL can provide improvements in instruction cache performance comparable to profile-based layout strategies, while avoiding the requirement of profile data. The late nature of this optimization makes it possible to implement procedure orderings that cross executable and DLL boundaries, overcoming a limitation of current profile-based techniques. We are using Etch to explore the benefit of inter-module JITCL for Win32 applications on Windows NT.
Improving Instruction Locality with Just-In-Time Code Layout, to appear in The 1997 USENIX Windows NT Workshop.