The Effect of Code Expanding Optimizations on Instruction Cache Design

William Y. Chen, Pohua P. Chung, Wen Mei W. Hwu

Research output: Contribution to journalArticlepeer-review


This paper shows that code expanding optimizations have strong and nonintuitive implications on instruction cache design. Three types of code expanding optimizations are studied in this paper: instruction placement, function inline expansion, and superscalar optimizations. Overall, instruction placement reduces the miss ratio of small caches. Function inline expansion improves the performance for small cache sizes, but degrades the performance of medium caches. Superscalar optimizations increase the miss ratio for all cache sizes. However, they also increase the sequentiality of instruction access so that a simple load forwarding scheme effectively cancels the negative effects. Overall, we show that with load forwarding, the three types of code expanding optimizations jointly improve the performance of small caches and have little effect on large caches.

Original languageEnglish (US)
Pages (from-to)1045-1057
Number of pages13
JournalIEEE Transactions on Computers
Issue number9
StatePublished - Sep 1993


  • C compiler
  • cache memory
  • code expansion
  • code optimization
  • function inline expansion
  • instruction placement
  • load forwarding
  • superscalar optimizations

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computational Theory and Mathematics


Dive into the research topics of 'The Effect of Code Expanding Optimizations on Instruction Cache Design'. Together they form a unique fingerprint.

Cite this