<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>LLVM Test Results for $DateString</title></head>

<body bgcolor=white>
<center><font size=+3 face=Verdana><b>LLVM Test Results for $DateString</b></font></center>
<hr height=1>

<table width=100%>
<tr><td valign=top align=center>

<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="5" cellspacing="0"><tr><td bgcolor="#DDAA77">
<font size=+1><b>Sections:</b></font><br>
</td></tr><tr><td bgcolor="#FFCC99" align=center>
<a href="#Overview">Overview</a><br>
<a href="#Changes">Changes</a><br>
<a href="#Dejagnu">Dejagnu Tests</a><br>
<a href="#Trends">Trends</a><br>
<a href="#Programs">Programs</a><br>
</td></tr></table></td></tr></table>

<p>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="5" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+1><b>Previous:</b></font><br>
</td></tr><tr><td bgcolor="#FFCC99">
  $PrevDaysList
</td></tr></table></td></tr></table>
<p>

<font size=+1><b>Back to:</b></font><br>
<a href="http://llvm.org/testresults/">Test&nbsp;Results</a><br>
<a href="http://llvm.org/">LLVM&nbsp;Page</a><p>

</td><td valign=top>

<center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="10" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+2 face=Verdana><b><a name="Overview">Today's Test Results Overview</font></b>
</td></tr></table></td></tr></table></center><p>

<!-- Running LOC graph -->
<table align=right>
<tr><td>
<a href="running_loc_large.png"
   ><img border=0 width=480 height=360 src="running_loc.png"></a>
</td></tr>
<tr><td align=center>Lines Of Code over Time<br>
<font size=-1><a href="running_loc_large.png">Click for larger view</a></font>
</td></tr>
</table>

<h2>Nightly Test Overview:</h2>
<ul>
  <li>Start: <b>$TestStartTime</b></li>
  <li>Finish: <b>$TestFinishTime</b></li>
  <li>Platform: <b>$TestPlatform</b></li>
</ul>
<h2>CVS Tree Overview:</h2>
<ul>
<li><a href="$DATE-CVS-Log.txt">CVS Checkout Log</a>
<ul>
    <b>$NumDirsInCVS</b> dirs, <b>$NumFilesInCVS</b> files, <b>$LOC</b>
    lines of code, checked out in <b>$CVSCheckoutTime</b> seconds<br></ul>
<li><a href="$DATE-Build-Log.txt">Compilation Log</a>
<table>
<tr><td><b>Item</b></td><td><b>CPU Time</b></td><td><b>Wall Clock</b></td></tr>
<tr><td>Configure CVS Tree</td><td>$ConfigTime</td><td>$ConfigWallTime</td></tr>
<tr><td>Build CVS Tree</td><td>$BuildTime</td><td>$BuildWallTime</td></tr>
<tr><td>Run Dejagnu Tests</td><td>$DejagnuTime</td><td>$DejagnuWallTime</td></tr>
</table></li>
<li>Number of object files compiled: <b>$NumObjects</b></li>
<li>Number of libraries linked: <b>$NumLibraries</b></li>
<li>Number of executables linked:<b> $NumExecutables</b></li>
<li>Build Status: $BuildStatus</li>
</ul>

<h2>Warnings during the build:</h2>
$WarningsList

<br><br><center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="10" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+2 face=Verdana><b><a name="Changes">Changes from Yesterday</font></b>
</td></tr></table></td></tr></table></center><p>

<h2>Changes to CVS:</h2>
<ul>
<li>Users who committed to CVS: <b>$UserCommitList</b>
<li>Users who updated from CVS: <b>$UserUpdateList</b>
<li>Added Files:    $AddedFilesList
<li>Modified Files: $ModifiedFilesList
<li>Removed Files:  $RemovedFilesList
</ul><p>

<h2>Changes to Warnings:</h2>
<p>Warnings Added:</p>
$WarningsAdded
<p>Warnings Removed:</p>
$WarningsRemoved

<h2>Changes in the test suite:</h2>
<ul>
<li>New Tests: $TestsAdded
<li>Removed Tests: $TestsRemoved
<li>Newly passing tests: $TestsFixed
<li>Newly failing tests: $TestsBroken
</ul>
</td></tr></tbody></table>


<br/><br/><center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="10" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+2 face=Verdana><b><a name="Dejagnu">Dejagnu Test Results</font></b>
</td></tr></table></td></tr></table></center>
<br/>
$DejagnuTestResults
<p>A complete log of testing <a href="$DATE-Dejagnu-testrun.log">Feature and Regression</a> is available for further analysis.</p>

<br><br><center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="10" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+2 face=Verdana><b><a name="Trends">Changes Over Time</font></b>
</td></tr></table></td></tr></table></center><p>


Here are some charts showing how the LLVM optimizer and code generators are
changing over time.  For now we use the Olden benchmark suite to measure this,
but eventually we will switch to using SPEC CPU2000.  All programs are run with
"LARGE_PROBLEM_SIZE" enabled.  Click on any of the charts to get a larger
version.<p>

<h2>Compilation Measurements:</h2>

<table border="0" align=center>
<tr>
<td width=50% align=center>
<a href="running_Olden_bytecode_large.png"><img width=480 height=360 border=0 src="running_Olden_bytecode.png"></a><br>
Size of LLVM bytecode files
</td>
<td width=50% align=center>
<a href="running_Olden_opt_time_large.png"><img width=480 height=360 border=0 src="running_Olden_opt_time.png"></a><br>
Time to run the LLVM optimizer on each program
</td></tr>
</table>

<h2>Program Execution Measurements:</h2>

<table border="0" align=center>
<tr>
<td width=50% align=center>
<a href="running_Olden_cbe_time_large.png"><img width=480 height=360 border=0 src="running_Olden_cbe_time.png"></a><br>
Execution time for CBE generated executable
</td>
<td width=50% align=center>
<a href="running_Olden_llc_time_large.png"><img width=480 height=360 border=0 src="running_Olden_llc_time.png"></a><br>
Execution time for the LLC generated executable
</td></tr>

<tr>
<td align=center>
<a href="running_Olden_jit_time_large.png"><img width=480 height=360 border=0 src="running_Olden_jit_time.png"></a><br>
Execution time for program in the JIT
</td>
<td></td></tr>
</table>




<br><br><center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
<table border="0" cellpadding="10" cellspacing="0"><tr><td bgcolor="#DDAA77"
<font size=+2 face=Verdana><b><a name="Programs">Program Tests</font></b>
</td></tr></table></td></tr></table></center><p>

This section tests LLVM on a variety of programs in the test suite.  This
includes benchmark suites like the Olden, McCat, Ptrdist, and SPEC benchmarks as
well as a few random programs with test inputs.  This section is meant to track
how stable LLVM is as a whole. A failure in the execution of any test is marked
with an asterisk: `*'. The columns of the tables are:<p>

<ol>
<li><a name="Program">Program</a> - The name of the program for that row.</li>
<li><a name="GCCAS">GCCAS</a> - Time to run LLVM optimizers on the program.</li>
<li><a name="Bytecode">Bytecode</a> - The size of the bytecode for the
    program</li>
<li><a name="Instrs">Instrs</a> - The number of LLVM instructions in the
    compiled bytecode</li>
<li><a name="LLC<br>compile">LLC compile</a> - The time taken compile with
    LLC (the static backend)</li>
<li><a name="JIT<br>codegen">JIT codegen</a> - The amount of time spent in the
    JIT itself, instead of executing the program.</li>
<li><a name="Machine<br>code">Machine code</a> - The number of bytes of machine
    code generated by the JIT.</li>
<li><a name="GCC">GCC</a> - The time taken to execute the program when compiled
    with GCC -O2.</li>
<li><a name="CBE">CBE</a> - The time taken to execute the program after
    compilation through the C backend, compiled with -O2.</li>
<li><a name="LLC">LLC</a> - How long does the program generated by the static
    backend LLC take to execute </li>
<li><a name="JIT">JIT</a> - The amount of time spent running the
    program with the JIT; this includes the code generation phase (listed above)
    and actually running the program.</li>
<li><a name="GCC/LLC">GCC/LLC</a> - The speed-up of the LLC output vs the native 
    GCC output: greater than 1 is a speedup, less than 1 is a slowdown.</li>
<li><a name="GCC/CBE">GCC/CBE</a> - The speed-up of the CBE output vs the native 
    GCC output: greater than 1 is a speedup, less than 1 is a slowdown.</li>
<li><a name="LLC-BETA">LLC-BETA</a> - How long does the program generated by the static
    backend LLC take to execute the program, when compiled with new experimental 
    features.  This is temporary, for tuning.</li>
</ol><p>

A complete log of testing 
<a href="$DATE-SingleSource-ProgramTest.txt.gz">SingleSource</a>, 
<a href="$DATE-MultiSource-ProgramTest.txt.gz">MultiSource</a>, and
<a href="$DATE-External-ProgramTest.txt.gz">External</a> programs are
available for further analysis.

<h2>Programs/External</h2>

<center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
$ExternalProgramsTable
</td></tr></table></center>

<h2>Programs/MultiSource</h2>

<center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
$MultiSourceProgramsTable
</td></tr></table></center>

<h2>Programs/SingleSource</h2>

<center>
<table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#000000"> 
$SingleSourceProgramsTable
</td></tr></table></center>

</td></tr></html>

