作者: David W. Wall , Amitabh Srivastava
DOI:
关键词:
摘要: We have developed a system called OM to explore the problem of code optimization at link-time. takes collection object modules constituting entire program, and converts into symbolic Register Transfer Language (RTL) form that can be easily manipulated. This RTL is then transformed by intermodule finally converted back form. Although much high-level information about program gone link-time, this approach enables us perform optimizations compiler looking single module cannot see. Since are more or less independent particular source language compiler, also gives chance improve in ways some compilers might simply missed. To test concept, we used build an optimizer does interprocedural motion. It moves simple loop-invariant out loops, even when loop body extends across many procedures control different procedure from invariant code. Our technique handles ‘‘loops’’ induced recursion rather than iteration. motion makes use liveness analysis discover dead registers it hold results. lets elimination. applied our removal SPEC benchmarks compiled with using standard for DECstation 5000. improved performance 5% on average 14% one case. More improvement should possible soon; present move only load load-address operations scavenge these values, completely reallocating them. paper will appear March issue Journal Programming Languages. replaces Technical Note TN-31, earlier version same material.