Using profile information to assist classic code optimizations

Pohua P. Chang, Scott A. Mahlke, Wen‐Mei W. Hwu

Research output: Contribution to journalArticle

Abstract

This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile‐based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information and supplies this information to the optimizer. The profile‐based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile‐based code optimizer significantly improves the performance of production C programs that have already been optimized by a high‐quality global code optimizer.

Original languageEnglish (US)
Pages (from-to)1301-1321
Number of pages21
JournalSoftware: Practice and Experience
Volume21
Issue number12
DOIs
StatePublished - Dec 1991

Fingerprint

Global optimization

Keywords

  • C
  • Code optimization
  • Compiler
  • Profiler
  • Profile‐based code optimization

ASJC Scopus subject areas

  • Software

Cite this

Using profile information to assist classic code optimizations. / Chang, Pohua P.; Mahlke, Scott A.; Hwu, Wen‐Mei W.

In: Software: Practice and Experience, Vol. 21, No. 12, 12.1991, p. 1301-1321.

Research output: Contribution to journalArticle

Chang, Pohua P. ; Mahlke, Scott A. ; Hwu, Wen‐Mei W. / Using profile information to assist classic code optimizations. In: Software: Practice and Experience. 1991 ; Vol. 21, No. 12. pp. 1301-1321.
@article{d0188ee09717472089b23440bc103741,
title = "Using profile information to assist classic code optimizations",
abstract = "This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile‐based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information and supplies this information to the optimizer. The profile‐based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile‐based code optimizer significantly improves the performance of production C programs that have already been optimized by a high‐quality global code optimizer.",
keywords = "C, Code optimization, Compiler, Profiler, Profile‐based code optimization",
author = "Chang, {Pohua P.} and Mahlke, {Scott A.} and Hwu, {Wen‐Mei W.}",
year = "1991",
month = "12",
doi = "10.1002/spe.4380211204",
language = "English (US)",
volume = "21",
pages = "1301--1321",
journal = "Software - Practice and Experience",
issn = "0038-0644",
publisher = "John Wiley and Sons Ltd",
number = "12",

}

TY - JOUR

T1 - Using profile information to assist classic code optimizations

AU - Chang, Pohua P.

AU - Mahlke, Scott A.

AU - Hwu, Wen‐Mei W.

PY - 1991/12

Y1 - 1991/12

N2 - This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile‐based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information and supplies this information to the optimizer. The profile‐based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile‐based code optimizer significantly improves the performance of production C programs that have already been optimized by a high‐quality global code optimizer.

AB - This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile‐based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information and supplies this information to the optimizer. The profile‐based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile‐based code optimizer significantly improves the performance of production C programs that have already been optimized by a high‐quality global code optimizer.

KW - C

KW - Code optimization

KW - Compiler

KW - Profiler

KW - Profile‐based code optimization

UR - http://www.scopus.com/inward/record.url?scp=0026368758&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0026368758&partnerID=8YFLogxK

U2 - 10.1002/spe.4380211204

DO - 10.1002/spe.4380211204

M3 - Article

AN - SCOPUS:0026368758

VL - 21

SP - 1301

EP - 1321

JO - Software - Practice and Experience

JF - Software - Practice and Experience

SN - 0038-0644

IS - 12

ER -