scispace - formally typeset
Open AccessJournal ArticleDOI

Using profile information to assist classic code optimizations

TLDR
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.
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.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

The superblock: an effective technique for VLIW and superscalar compilation

TL;DR: Superblocks as discussed by the authors enable the optimizer and scheduler to extract more ILP along the important execution paths by systematically removing constraints due to the unimportant paths, which is useful for control-intensive programs.
Proceedings ArticleDOI

Exploiting hardware performance counters with flow and context sensitive profiling

TL;DR: This paper extends previous work on efficient path profiling to flow sensitive profiling, which associates hardware performance metrics with a path through a procedure, and describes a data structure, the calling context tree, that efficiently captures calling contexts for procedure-level measurements.
Proceedings ArticleDOI

Towards automatically generating summary comments for Java methods

TL;DR: A novel technique to automatically generate descriptive summary comments for Java methods is presented, given the signature and body of a method, which identifies the content for the summary and generates natural language text that summarizes the method's overall actions.
Patent

Dynamic classification of sections of software

TL;DR: In this article, a profile-based optimization system is used to optimize management of the sections of software during later execution, by matching the usage background to a usage profile in the set of usage profiles.

Automatic performance tuning of sparse matrix kernels

TL;DR: An automated system to generate highly efficient, platform-adapted implementations of sparse matrix kernels, and extends SPARSITY to support tuning for a variety of common non-zero patterns arising in practice, and for additional kernels like sparse triangular solve (SpTS) and computation of ATA·x and A ρ·x.
References
More filters
Book

Compilers: Principles, Techniques, and Tools

TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
Journal ArticleDOI

Trace Scheduling: A Technique for Global Microcode Compaction

TL;DR: Compilation of high-level microcode languages into efficient horizontal microcode and good hand coding probably both require effective global compaction techniques.
Proceedings ArticleDOI

Gprof: A call graph execution profiler

TL;DR: The gprof profiler accounts for the running time of called routines in therunning time of the routines that call them, and the design and use of this profiler is described.
Book

Partitioning and Scheduling Parallel Programs for Multiprocessing

Vivek Sarkar
TL;DR: Sarkar et al. as mentioned in this paper presented two approaches to automatic partitioning and scheduling so that the same parallel program can be made to execute efficiently on widely different multiprocessors, based on a macro dataflow model and a compile time scheduling model.
Book

Bulldog: A Compiler for VLIW Architectures

John R. Ellis
TL;DR: The Bulldog compiler described here uses several new compilation techniques: trace scheduling to find more parallelism, memory-reference and memorybank disambiguation to increase memory bandwidth, and new code-generation algorithms.
Related Papers (5)