<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <title>Clang - Performance</title>
  <link type="text/css" rel="stylesheet" href="menu.css" />
  <link type="text/css" rel="stylesheet" href="content.css" />
  <style type="text/css">
</style>
</head>
<body>

<!--#include virtual="menu.html.incl"-->

<div id="content">

<!--*************************************************************************-->
<h1>Clang - Performance</h1>
<!--*************************************************************************-->

<p>This page shows the compile time performance of Clang on two
interesting benchmarks:
<ul>
  <li><i>Sketch</i>: The Objective-C example application shipped on
    Mac OS X as part of Xcode. <i>Sketch</i> is indicative of a
    "typical" Objective-C app. The source itself has a relatively
    small amount of code (~7,500 lines of source code), but it relies
    on the extensive Cocoa APIs to build its functionality. Like many
    Objective-C applications, it includes <tt>Cocoa/Cocoa.h</tt> in
    all of its source files, which represents a significant stress
    test of the front-end's performance on lexing, preprocessing,
    parsing, and syntax analysis.</li>
  <li><i>176.gcc</i>: This is the gcc-2.7.2.2 code base as present in
    SPECINT 2000. In contrast to Sketch, <i>176.gcc</i> consists of a
    large amount of C source code (~200,000 lines) with few system
    dependencies. This stresses the back-end's performance on generating
    assembly code and debug information.</li>
</ul>
</p>

<p>
For previous performance numbers, please
go <a href="performance-2008-10-31.html">here</a>.
</p>

<!--*************************************************************************-->
<h2><a name="experiments">Experiments</a></h2>
<!--*************************************************************************-->

<p>Measurements are done by running a full build (using xcodebuild or
make for Sketch and 176.gcc respectively) using Clang and gcc 4.2 as
compilers; gcc is run both with and without the new clang driver (ccc)
in order to evaluate the overhead of the driver itself.</p>

<p>In order to track the performance of various subsystems the timings
have been broken down into separate stages where possible. This is
done by over-riding the CC environment variable used during the build
to point to one of a few simple shell scripts which may skip part of
the build.

<ul>
  <li><tt>non-compiler</tt>: The overhead of the build system itself;
    for Sketch this also includes the time to build/copy various
    non-source code resource files.</li>
  <li><tt>+ driver</tt>: Add execution of the driver, but do not execute any
    commands (by using the -### driver option).</li>
  <li><tt>+ pch gen</tt>: Add generation of PCH files.</li>
  <li><tt>+ cpp</tt>: Add preprocessing of source files (this time is
    include in syntax for gcc).</li>
  <li><tt>+ parse</tt>: Add parsing of source files (this time is
    include in syntax for gcc).</li>
  <li><tt>+ syntax</tt>: Add semantic checking of source files (for
    gcc, this includes preprocessing and parsing as well).</li>
  <li><tt>+ IRgen</tt>: Add generation of LLVM IR (gcc has no
    corresponding phase).</li>
  <li><tt>+ codegen</tt>: Add generation of assembler files.</li>
  <li><tt>+ assembler</tt>: Add assembler time to generate .o files.</li>
  <li><tt>+ linker</tt>: Add linker time.</li>
</ul>
</p>

<p>This set of stages is chosen to be approximately additive, that is
each subsequent stage simply adds some additional processing. The
timings measure the delta of the given stage from the previous
one. For example, the timings for <tt>+ syntax</tt> below show the
difference of running with <tt>+ syntax</tt> versus running with <tt>+
parse</tt> (for clang) or <tt>+ driver</tt> with gcc. This amounts to
a fairly accurate measure of only the time to perform semantic
analysis (and preprocessing/parsing, in the case of gcc).</p>

<!--*************************************************************************-->
<h2><a name="timings">Timing Results</a></h2>
<!--*************************************************************************-->

<!--=======================================================================-->
<h3><a name="2009-03-02">2009-03-02</a></h3>
<!--=======================================================================-->

<a href="timing-data/2009-03-02/sketch.pdf">
<img class="img_slide" 
     src="timing-data/2009-03-02/sketch.png" alt="Sketch Timings"/>
</a>

<a href="timing-data/2009-03-02/176.gcc.pdf">
<img class="img_slide" 
     src="timing-data/2009-03-02/176.gcc.png" alt="176.gcc Timings"/>
</a>

</div>
</body>
</html>
