Global productiveness propagation: a code optimization technique to speculatively prune useless narrow computations

  • Authors:
  • Indu Bhagat;Enric Gibert;Jesús Sánchez;Antonio González

  • Affiliations:
  • Universitat Politecnica de Catalunya, Barcelona, Spain;Intel Labs-UPC, Barcelona, Spain;Intel Labs-UPC, Barcelona, Spain;Intel Labs-UPC, Barcelona, Spain

  • Venue:
  • Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper proposes a unique hardware-software collaborative strategy to remove useless work at 16-bit data-width granularity. The underlying motivation is to design a low power execution platform by exploiting 'narrow' computations. The proposal uses a strictly narrow bit-wide microarchitecture (16-bit integer datapath), which realizes the goal of a low cost, low hardware complexity, low power execution engine. Software dynamically maps the 64-bit computations by translating them into an equivalent 16-bit instruction stream and optimizing them. In this paper, we propose an optimization technique, called Global Productiveness Propagation (GPP), which is a dynamic, profile-based optimization technique that infers the minimum required dataflow by pruning narrow computations that are most-probably useless (non-productive). More precisely, GPP speculatively prunes the static backward slices of selected narrow computations: computations that result in the same value (in their respective storage location) as that at the input of the region. This speculative optimization technique is formulated around the concept of 'narrow' computations because the same allow a finer granularity to distinguish between useful (productive) and useless (non-productive) work. GPP has been evaluated on an in-order narrow bit-wide execution core, achieving an average dynamic instruction stream reduction of 6.6%, while improving overall performance by 4.2%.