How many addressing modes are enough?
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Program optimization for instruction caches
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Achieving high instruction cache performance with an optimizing compiler
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
Managing programs and libraries in AIX version 3 for RISC System/6000 processors
IBM Journal of Research and Development
Profile guided code positioning
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
MIPS R4000 user's manual
Designing the TFP Microprocessor
IEEE Micro
OS and compiler considerations in the design of the IA-64 architecture
ACM SIGPLAN Notices
OS and compiler considerations in the design of the IA-64 architecture
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
Dynamically-linked programs in general do not perform as well as statically-linked programs. This paper identifies three main areas that account for the performance loss. First, symbols are referenced indirectly and thus extra instructions are required. Second, the overhead in run-time symbol resolution is significant. Third, poor locality of functions in shared libraries and data structures maintained by the run-time linker may result in poor memory utilization. This paper presents new optimization techniques we developed that address these three areas and significantly improve the performance of dynamically-linked programs. Also, we provide measurements of the performance improvement achieved. Most importantly, we show that all desirable features of shared libraries can be achieved without sacrificing performance.