Code compression by register operand dependency

Kelvin Lin*, Jyh-Jiun Shann, Chung-Ping Chung

*Corresponding author for this work

Research output: Contribution to journalArticle


This paper proposes a dictionary-based code compression technique that maps the source register operands to the nearest occurrence of a destination register in the predecessor instructions. The key idea is that most destination registers have a great possibility to be used as source registers in the following instructions. The dependent registers can be removed from the dictionary if this information can be specified otherwise. Such destination-source relationships are so common that making use of them can result in much better code compression. After removing the dependent register operands, the original dictionary size can be reduced significantly. As a result, the compression ratio can benefit from: (a) the reduction of dictionary size due to the removal of dependent registers, and (b) the reduction of program encoding due to the reduced number of dictionary entries. A set of programs has been compressed using this feature. The compression results show that the average compression ratio is reduced to 38.41% on average for MediaBench benchmarks compiled for MIPS R2000 processor, as opposed to 45% using operand factorization.

Original languageEnglish
Pages (from-to)295-304
Number of pages10
JournalJournal of Systems and Software
Issue number3
StatePublished - 1 Aug 2004

Fingerprint Dive into the research topics of 'Code compression by register operand dependency'. Together they form a unique fingerprint.

Cite this