MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Bitwidth analysis with application to silicon compilation (2000) [62 citations — 0 self]

Download:
pdf | ps
by Mark Stephenson, Jonathan Babb, Saman Amarasinghe
In Proceedings of the SIGPLAN conference on Programming Language Design and Implementation
http://www.cag.lcs.mit.edu/bitwise/main.ps
Add To MetaCart

Abstract:

This paper introduces Bitwise, a compiler that minimizes the bitwidth--- the number of bits used to represent each operand--- for both integers and pointers in a program. By propagating static information both forward and backward in the program dataflow graph, Bitwise frees the programmer from declaring bitwidth invariants in cases where the compiler can determine bitwidths automatically. We find a rich opportunity for bitwidth reduction in modern multimedia and streaming application workloads. For new architectures that support sub-word quantities, we expect that our bitwidth reductions will save power and increase processor performance. This paper also applies our analysis to silicon compilation--- the translation of programs into custom hardware---to realize the full benefits of bitwidth reduction. We describe our integration of Bitwise with the DeepC Silicon Compiler. By taking advantage of bitwidth information during architectural synthesis, we reduce silicon real estate by 15 %-86%, improve clock speed by 3 %- 249%, and reduce power by 46 %- 73%. The next era of general purpose and reconfigurable architectures should strive to capture a portion of these gains.

Citations

192 MMX technology extension to the Intel architecture – Peleg, Weiser - 1996
176 SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers – Wilson, French, et al.
145 The Filter Cache: An Energy Efficient Memory Structure – Kin, Gupta, et al. - 1997
117 Pointer Analysis for Multithreaded Programs – Rugina, Rinard - 1999
103 Dynamically Exploiting Narrow Width Operands to Improve Processor Power and Performance – Brooks, Martonosi - 1999
91 Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form – Gerlek, Stoltz, et al. - 1995
76 Compiler Analysis of the Value Ranges for Variables – Harrison - 1977
75 Space-time scheduling of instruction-level parallelism on a RAW machine – Lee, Barua, et al. - 1998
61 Extending SUIF for machinedependent optimizations – Smith - 1996
60 ÂȘAccurate Static Branch Prediction by Value Range – Patterson - 1995
58 Dependence-based program analysis – Johnson, Pingali - 1993
53 Exploiting superword level parallelism with multimedia instruction sets – Larsen, Amarasinghe - 2000
43 Maps: A Compiler-Managed Memory System for Raw Machines – Barua, Lee, et al. - 1999
43 Array SSA form and its use in parallelization – Knobe, Sarkar - 1998
42 PRISC: Programmable Reduced Instruction Set Computers – Razdan - 1994
40 Automatic parallelization of divide and conquer algorithms – Rugina, Rinard - 1999
38 Parallelizing applications into silicon – Babb, Rinard, et al. - 1998
35 Bitvalue inference: Detecting and exploiting narrowbitwidth computations – Budiu, Goldstein, et al. - 2000
17 A general method for compiling event-driven simulations – French, Lam, et al. - 1995
10 The Static Single Information Form – Ananian - 1999
7 AltiVec(tm): Bringing Vector Technology to the PowerPC(tm) Processor Family – Tyler, Lent, et al. - 1999
2 High-Level Compilation For Reconfigurable Architectures – Babb - 2000
2 VirtuaLogic Emulation System Documentation – Systems, Inc - 1999