aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2011-12-09 18:27:22 +0000
committerDimitry Andric <dim@FreeBSD.org>2011-12-09 18:27:22 +0000
commitd4c8b5d2e851b0e8a063c6bf8543a4823a26c15a (patch)
treed5baf24dba561bcf8bc6ec60db36bfc5586f6378 /docs
parent30815c536baacc07e925f0aef23a5395883173dc (diff)
downloadsrc-d4c8b5d2e851b0e8a063c6bf8543a4823a26c15a.tar.gz
src-d4c8b5d2e851b0e8a063c6bf8543a4823a26c15a.zip
Vendor import of llvm 3.0 final release:vendor/llvm/llvm-r145349
Notes
Notes: svn path=/vendor/llvm/dist/; revision=228364 svn path=/vendor/llvm/llvm-r145349/; revision=228365; tag=vendor/llvm/llvm-r145349
Diffstat (limited to 'docs')
-rw-r--r--docs/AliasAnalysis.html3
-rw-r--r--docs/BranchWeightMetadata.html1
-rw-r--r--docs/Bugpoint.html3
-rw-r--r--docs/CMake.html1
-rw-r--r--docs/CodeGenerator.html6
-rw-r--r--docs/CodingStandards.html3
-rw-r--r--docs/DebuggingJITedCode.html3
-rw-r--r--docs/ExtendingLLVM.html3
-rw-r--r--docs/GetElementPtr.html4
-rw-r--r--docs/GoldPlugin.html1
-rw-r--r--docs/HowToReleaseLLVM.html3
-rw-r--r--docs/HowToSubmitABug.html3
-rw-r--r--docs/LangRef.html530
-rw-r--r--docs/LinkTimeOptimization.html3
-rw-r--r--docs/Packaging.html3
-rw-r--r--docs/Passes.html16
-rw-r--r--docs/ProgrammersManual.html5
-rw-r--r--docs/Projects.html3
-rw-r--r--docs/ReleaseNotes.html426
-rw-r--r--docs/SystemLibrary.html3
-rw-r--r--docs/TableGenFundamentals.html3
-rw-r--r--docs/TestingGuide.html3
-rw-r--r--docs/UsingLibraries.html5
-rw-r--r--docs/index.html3
24 files changed, 393 insertions, 644 deletions
diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html
index 770cfe2190cc..e65279c1deb1 100644
--- a/docs/AliasAnalysis.html
+++ b/docs/AliasAnalysis.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM Alias Analysis Infrastructure</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -1060,7 +1061,7 @@ analysis directly.</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-05-25 00:01:32 +0200 (Wed, 25 May 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/BranchWeightMetadata.html b/docs/BranchWeightMetadata.html
index 6106e6ffac71..38b87baa3b70 100644
--- a/docs/BranchWeightMetadata.html
+++ b/docs/BranchWeightMetadata.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM Branch Weight Metadata</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
diff --git a/docs/Bugpoint.html b/docs/Bugpoint.html
index bc78933fed6d..a1de242f6c7f 100644
--- a/docs/Bugpoint.html
+++ b/docs/Bugpoint.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM bugpoint tool: design and usage</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -231,7 +232,7 @@ non-obvious ways. Here are some hints and tips:<p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-08-30 20:26:11 +0200 (Tue, 30 Aug 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/CMake.html b/docs/CMake.html
index 6389c7f22afd..feb1db05cbaa 100644
--- a/docs/CMake.html
+++ b/docs/CMake.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Building LLVM with CMake</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
diff --git a/docs/CodeGenerator.html b/docs/CodeGenerator.html
index e693a22369ec..9d0370fd3cc8 100644
--- a/docs/CodeGenerator.html
+++ b/docs/CodeGenerator.html
@@ -1813,6 +1813,8 @@ $ llc -regalloc=pbqp file.bc -o pbqp.s;
<a name="proepicode">Prolog/Epilog Code Insertion</a>
</h3>
+<div>
+
<!-- _______________________________________________________________________ -->
<h4>
<a name="compact_unwind">Compact Unwind</a>
@@ -1927,6 +1929,8 @@ $ llc -regalloc=pbqp file.bc -o pbqp.s;
</div>
+</div>
+
<!-- ======================================================================= -->
<h3>
<a name="latemco">Late Machine Code Optimizations</a>
@@ -2988,7 +2992,7 @@ MOVSX32rm16 -&gt; movsx, 32-bit register, 16-bit memory
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-09-19 20:15:46 +0200 (Mon, 19 Sep 2011) $
+ Last modified: $Date: 2011-11-03 07:43:54 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html
index 3153a6e10ccf..3ccbfc9c6235 100644
--- a/docs/CodingStandards.html
+++ b/docs/CodingStandards.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="llvm.css" type="text/css">
<title>LLVM Coding Standards</title>
</head>
@@ -1526,7 +1527,7 @@ something.</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-08-12 21:49:16 +0200 (Fri, 12 Aug 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/DebuggingJITedCode.html b/docs/DebuggingJITedCode.html
index fa15633fddbf..a6883adc531f 100644
--- a/docs/DebuggingJITedCode.html
+++ b/docs/DebuggingJITedCode.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Debugging JITed Code With GDB</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -146,7 +147,7 @@ coordinate with GDB to get better debug information.
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="mailto:reid.kleckner@gmail.com">Reid Kleckner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/ExtendingLLVM.html b/docs/ExtendingLLVM.html
index cf57fab1fd1a..15e698421066 100644
--- a/docs/ExtendingLLVM.html
+++ b/docs/ExtendingLLVM.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Extending LLVM: Adding instructions, intrinsics, types, etc.</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -384,7 +385,7 @@ void calcTypeName(const Type *Ty,
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
<br>
- Last modified: $Date: 2011-06-30 08:37:07 +0200 (Thu, 30 Jun 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/GetElementPtr.html b/docs/GetElementPtr.html
index 4c347a6aaf12..f678e2723634 100644
--- a/docs/GetElementPtr.html
+++ b/docs/GetElementPtr.html
@@ -746,8 +746,8 @@ idx3 = (char*) &amp;MyVar + 8
src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
- <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br/>
- Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $
+ <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
+ Last modified: $Date: 2011-11-03 07:43:54 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/GoldPlugin.html b/docs/GoldPlugin.html
index 92ba4116a071..375dd3c8ca78 100644
--- a/docs/GoldPlugin.html
+++ b/docs/GoldPlugin.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM gold plugin</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
diff --git a/docs/HowToReleaseLLVM.html b/docs/HowToReleaseLLVM.html
index c46ed5aa4a76..8588f3fa7c00 100644
--- a/docs/HowToReleaseLLVM.html
+++ b/docs/HowToReleaseLLVM.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>How To Release LLVM To The Public</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -574,7 +575,7 @@ $ svn copy https://llvm.org/svn/llvm-project/test-suite/branches/release_XY \
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
<br>
- Last modified: $Date: 2011-10-17 22:32:14 +0200 (Mon, 17 Oct 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/HowToSubmitABug.html b/docs/HowToSubmitABug.html
index 81d0f9960a3b..a6e5a70ac769 100644
--- a/docs/HowToSubmitABug.html
+++ b/docs/HowToSubmitABug.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>How to submit an LLVM bug report</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -340,7 +341,7 @@ the following:</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
<br>
- Last modified: $Date: 2011-06-07 22:03:13 +0200 (Tue, 07 Jun 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 71e606d304cf..3d01b60a8b47 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -281,23 +281,6 @@
<li><a href="#int_at">'<tt>llvm.adjust.trampoline</tt>' Intrinsic</a></li>
</ol>
</li>
- <li><a href="#int_atomics">Atomic intrinsics</a>
- <ol>
- <li><a href="#int_memory_barrier"><tt>llvm.memory_barrier</tt></a></li>
- <li><a href="#int_atomic_cmp_swap"><tt>llvm.atomic.cmp.swap</tt></a></li>
- <li><a href="#int_atomic_swap"><tt>llvm.atomic.swap</tt></a></li>
- <li><a href="#int_atomic_load_add"><tt>llvm.atomic.load.add</tt></a></li>
- <li><a href="#int_atomic_load_sub"><tt>llvm.atomic.load.sub</tt></a></li>
- <li><a href="#int_atomic_load_and"><tt>llvm.atomic.load.and</tt></a></li>
- <li><a href="#int_atomic_load_nand"><tt>llvm.atomic.load.nand</tt></a></li>
- <li><a href="#int_atomic_load_or"><tt>llvm.atomic.load.or</tt></a></li>
- <li><a href="#int_atomic_load_xor"><tt>llvm.atomic.load.xor</tt></a></li>
- <li><a href="#int_atomic_load_max"><tt>llvm.atomic.load.max</tt></a></li>
- <li><a href="#int_atomic_load_min"><tt>llvm.atomic.load.min</tt></a></li>
- <li><a href="#int_atomic_load_umax"><tt>llvm.atomic.load.umax</tt></a></li>
- <li><a href="#int_atomic_load_umin"><tt>llvm.atomic.load.umin</tt></a></li>
- </ol>
- </li>
<li><a href="#int_memorymarkers">Memory Use Markers</a>
<ol>
<li><a href="#int_lifetime_start"><tt>llvm.lifetime.start</tt></a></li>
@@ -1915,9 +1898,6 @@ in signal handlers).</p>
possible to have a two dimensional array, using an array as the element type
of another array.</p>
-</div>
-
-
<!-- _______________________________________________________________________ -->
<h4>
<a name="t_aggregate">Aggregate Types</a>
@@ -2225,6 +2205,8 @@ in signal handlers).</p>
</div>
+</div>
+
<!-- *********************************************************************** -->
<h2><a name="constants">Constants</a></h2>
<!-- *********************************************************************** -->
@@ -6321,8 +6303,6 @@ declare void @llvm.va_end(i8*)
</div>
-</div>
-
<!-- ======================================================================= -->
<h3>
<a name="int_gc">Accurate Garbage Collection Intrinsics</a>
@@ -7018,8 +6998,6 @@ LLVM</a>.</p>
</div>
-</div>
-
<!-- _______________________________________________________________________ -->
<h4>
<a name="int_exp">'<tt>llvm.exp.*</tt>' Intrinsic</a>
@@ -7084,6 +7062,9 @@ LLVM</a>.</p>
<p>This function returns the same values as the libm <tt>log</tt> functions
would, and handles error conditions in the same way.</p>
+</div>
+
+<!-- _______________________________________________________________________ -->
<h4>
<a name="int_fma">'<tt>llvm.fma.*</tt>' Intrinsic</a>
</h4>
@@ -7117,6 +7098,8 @@ LLVM</a>.</p>
</div>
+</div>
+
<!-- ======================================================================= -->
<h3>
<a name="int_manip">Bit Manipulation Intrinsics</a>
@@ -7812,503 +7795,6 @@ LLVM</a>.</p>
<!-- ======================================================================= -->
<h3>
- <a name="int_atomics">Atomic Operations and Synchronization Intrinsics</a>
-</h3>
-
-<div>
-
-<p>These intrinsic functions expand the "universal IR" of LLVM to represent
- hardware constructs for atomic operations and memory synchronization. This
- provides an interface to the hardware, not an interface to the programmer. It
- is aimed at a low enough level to allow any programming models or APIs
- (Application Programming Interfaces) which need atomic behaviors to map
- cleanly onto it. It is also modeled primarily on hardware behavior. Just as
- hardware provides a "universal IR" for source languages, it also provides a
- starting point for developing a "universal" atomic operation and
- synchronization IR.</p>
-
-<p>These do <em>not</em> form an API such as high-level threading libraries,
- software transaction memory systems, atomic primitives, and intrinsic
- functions as found in BSD, GNU libc, atomic_ops, APR, and other system and
- application libraries. The hardware interface provided by LLVM should allow
- a clean implementation of all of these APIs and parallel programming models.
- No one model or paradigm should be selected above others unless the hardware
- itself ubiquitously does so.</p>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_memory_barrier">'<tt>llvm.memory.barrier</tt>' Intrinsic</a>
-</h4>
-
-<div>
-<h5>Syntax:</h5>
-<pre>
- declare void @llvm.memory.barrier(i1 &lt;ll&gt;, i1 &lt;ls&gt;, i1 &lt;sl&gt;, i1 &lt;ss&gt;, i1 &lt;device&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>The <tt>llvm.memory.barrier</tt> intrinsic guarantees ordering between
- specific pairs of memory access types.</p>
-
-<h5>Arguments:</h5>
-<p>The <tt>llvm.memory.barrier</tt> intrinsic requires five boolean arguments.
- The first four arguments enables a specific barrier as listed below. The
- fifth argument specifies that the barrier applies to io or device or uncached
- memory.</p>
-
-<ul>
- <li><tt>ll</tt>: load-load barrier</li>
- <li><tt>ls</tt>: load-store barrier</li>
- <li><tt>sl</tt>: store-load barrier</li>
- <li><tt>ss</tt>: store-store barrier</li>
- <li><tt>device</tt>: barrier applies to device and uncached memory also.</li>
-</ul>
-
-<h5>Semantics:</h5>
-<p>This intrinsic causes the system to enforce some ordering constraints upon
- the loads and stores of the program. This barrier does not
- indicate <em>when</em> any events will occur, it only enforces
- an <em>order</em> in which they occur. For any of the specified pairs of load
- and store operations (f.ex. load-load, or store-load), all of the first
- operations preceding the barrier will complete before any of the second
- operations succeeding the barrier begin. Specifically the semantics for each
- pairing is as follows:</p>
-
-<ul>
- <li><tt>ll</tt>: All loads before the barrier must complete before any load
- after the barrier begins.</li>
- <li><tt>ls</tt>: All loads before the barrier must complete before any
- store after the barrier begins.</li>
- <li><tt>ss</tt>: All stores before the barrier must complete before any
- store after the barrier begins.</li>
- <li><tt>sl</tt>: All stores before the barrier must complete before any
- load after the barrier begins.</li>
-</ul>
-
-<p>These semantics are applied with a logical "and" behavior when more than one
- is enabled in a single memory barrier intrinsic.</p>
-
-<p>Backends may implement stronger barriers than those requested when they do
- not support as fine grained a barrier as requested. Some architectures do
- not need all types of barriers and on such architectures, these become
- noops.</p>
-
-<h5>Example:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 4, %ptr
-
-%result1 = load i32* %ptr <i>; yields {i32}:result1 = 4</i>
- call void @llvm.memory.barrier(i1 false, i1 true, i1 false, i1 false, i1 true)
- <i>; guarantee the above finishes</i>
- store i32 8, %ptr <i>; before this begins</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_cmp_swap">'<tt>llvm.atomic.cmp.swap.*</tt>' Intrinsic</a>
-</h4>
-
-<div>
-
-<h5>Syntax:</h5>
-<p>This is an overloaded intrinsic. You can use <tt>llvm.atomic.cmp.swap</tt> on
- any integer bit width and for different address spaces. Not all targets
- support all bit widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.cmp.swap.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;cmp&gt;, i8 &lt;val&gt;)
- declare i16 @llvm.atomic.cmp.swap.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;cmp&gt;, i16 &lt;val&gt;)
- declare i32 @llvm.atomic.cmp.swap.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;cmp&gt;, i32 &lt;val&gt;)
- declare i64 @llvm.atomic.cmp.swap.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;cmp&gt;, i64 &lt;val&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>This loads a value in memory and compares it to a given value. If they are
- equal, it stores a new value into the memory.</p>
-
-<h5>Arguments:</h5>
-<p>The <tt>llvm.atomic.cmp.swap</tt> intrinsic takes three arguments. The result
- as well as both <tt>cmp</tt> and <tt>val</tt> must be integer values with the
- same bit width. The <tt>ptr</tt> argument must be a pointer to a value of
- this integer type. While any bit width integer may be used, targets may only
- lower representations they support in hardware.</p>
-
-<h5>Semantics:</h5>
-<p>This entire intrinsic must be executed atomically. It first loads the value
- in memory pointed to by <tt>ptr</tt> and compares it with the
- value <tt>cmp</tt>. If they are equal, <tt>val</tt> is stored into the
- memory. The loaded value is yielded in all cases. This provides the
- equivalent of an atomic compare-and-swap operation within the SSA
- framework.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 4, %ptr
-
-%val1 = add i32 4, 4
-%result1 = call i32 @llvm.atomic.cmp.swap.i32.p0i32(i32* %ptr, i32 4, %val1)
- <i>; yields {i32}:result1 = 4</i>
-%stored1 = icmp eq i32 %result1, 4 <i>; yields {i1}:stored1 = true</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = 8</i>
-
-%val2 = add i32 1, 1
-%result2 = call i32 @llvm.atomic.cmp.swap.i32.p0i32(i32* %ptr, i32 5, %val2)
- <i>; yields {i32}:result2 = 8</i>
-%stored2 = icmp eq i32 %result2, 5 <i>; yields {i1}:stored2 = false</i>
-
-%memval2 = load i32* %ptr <i>; yields {i32}:memval2 = 8</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_swap">'<tt>llvm.atomic.swap.*</tt>' Intrinsic</a>
-</h4>
-
-<div>
-<h5>Syntax:</h5>
-
-<p>This is an overloaded intrinsic. You can use <tt>llvm.atomic.swap</tt> on any
- integer bit width. Not all targets support all bit widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.swap.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;val&gt;)
- declare i16 @llvm.atomic.swap.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;val&gt;)
- declare i32 @llvm.atomic.swap.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;val&gt;)
- declare i64 @llvm.atomic.swap.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;val&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>This intrinsic loads the value stored in memory at <tt>ptr</tt> and yields
- the value from memory. It then stores the value in <tt>val</tt> in the memory
- at <tt>ptr</tt>.</p>
-
-<h5>Arguments:</h5>
-<p>The <tt>llvm.atomic.swap</tt> intrinsic takes two arguments. Both
- the <tt>val</tt> argument and the result must be integers of the same bit
- width. The first argument, <tt>ptr</tt>, must be a pointer to a value of this
- integer type. The targets may only lower integer representations they
- support.</p>
-
-<h5>Semantics:</h5>
-<p>This intrinsic loads the value pointed to by <tt>ptr</tt>, yields it, and
- stores <tt>val</tt> back into <tt>ptr</tt> atomically. This provides the
- equivalent of an atomic swap operation within the SSA framework.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 4, %ptr
-
-%val1 = add i32 4, 4
-%result1 = call i32 @llvm.atomic.swap.i32.p0i32(i32* %ptr, i32 %val1)
- <i>; yields {i32}:result1 = 4</i>
-%stored1 = icmp eq i32 %result1, 4 <i>; yields {i1}:stored1 = true</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = 8</i>
-
-%val2 = add i32 1, 1
-%result2 = call i32 @llvm.atomic.swap.i32.p0i32(i32* %ptr, i32 %val2)
- <i>; yields {i32}:result2 = 8</i>
-
-%stored2 = icmp eq i32 %result2, 8 <i>; yields {i1}:stored2 = true</i>
-%memval2 = load i32* %ptr <i>; yields {i32}:memval2 = 2</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_load_add">'<tt>llvm.atomic.load.add.*</tt>' Intrinsic</a>
-</h4>
-
-<div>
-
-<h5>Syntax:</h5>
-<p>This is an overloaded intrinsic. You can use <tt>llvm.atomic.load.add</tt> on
- any integer bit width. Not all targets support all bit widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.load.add.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.add.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.add.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.add.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>This intrinsic adds <tt>delta</tt> to the value stored in memory
- at <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.</p>
-
-<h5>Arguments:</h5>
-<p>The intrinsic takes two arguments, the first a pointer to an integer value
- and the second an integer value. The result is also an integer value. These
- integer types can have any bit width, but they must all have the same bit
- width. The targets may only lower integer representations they support.</p>
-
-<h5>Semantics:</h5>
-<p>This intrinsic does a series of operations atomically. It first loads the
- value stored at <tt>ptr</tt>. It then adds <tt>delta</tt>, stores the result
- to <tt>ptr</tt>. It yields the original value stored at <tt>ptr</tt>.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 4, %ptr
-%result1 = call i32 @llvm.atomic.load.add.i32.p0i32(i32* %ptr, i32 4)
- <i>; yields {i32}:result1 = 4</i>
-%result2 = call i32 @llvm.atomic.load.add.i32.p0i32(i32* %ptr, i32 2)
- <i>; yields {i32}:result2 = 8</i>
-%result3 = call i32 @llvm.atomic.load.add.i32.p0i32(i32* %ptr, i32 5)
- <i>; yields {i32}:result3 = 10</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = 15</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_load_sub">'<tt>llvm.atomic.load.sub.*</tt>' Intrinsic</a>
-</h4>
-
-<div>
-
-<h5>Syntax:</h5>
-<p>This is an overloaded intrinsic. You can use <tt>llvm.atomic.load.sub</tt> on
- any integer bit width and for different address spaces. Not all targets
- support all bit widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.load.sub.i8.p0i32(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.sub.i16.p0i32(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.sub.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.sub.i64.p0i32(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>This intrinsic subtracts <tt>delta</tt> to the value stored in memory at
- <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.</p>
-
-<h5>Arguments:</h5>
-<p>The intrinsic takes two arguments, the first a pointer to an integer value
- and the second an integer value. The result is also an integer value. These
- integer types can have any bit width, but they must all have the same bit
- width. The targets may only lower integer representations they support.</p>
-
-<h5>Semantics:</h5>
-<p>This intrinsic does a series of operations atomically. It first loads the
- value stored at <tt>ptr</tt>. It then subtracts <tt>delta</tt>, stores the
- result to <tt>ptr</tt>. It yields the original value stored
- at <tt>ptr</tt>.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 8, %ptr
-%result1 = call i32 @llvm.atomic.load.sub.i32.p0i32(i32* %ptr, i32 4)
- <i>; yields {i32}:result1 = 8</i>
-%result2 = call i32 @llvm.atomic.load.sub.i32.p0i32(i32* %ptr, i32 2)
- <i>; yields {i32}:result2 = 4</i>
-%result3 = call i32 @llvm.atomic.load.sub.i32.p0i32(i32* %ptr, i32 5)
- <i>; yields {i32}:result3 = 2</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = -3</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_load_and">
- '<tt>llvm.atomic.load.and.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_nand">
- '<tt>llvm.atomic.load.nand.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_or">
- '<tt>llvm.atomic.load.or.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_xor">
- '<tt>llvm.atomic.load.xor.*</tt>' Intrinsic
- </a>
-</h4>
-
-<div>
-
-<h5>Syntax:</h5>
-<p>These are overloaded intrinsics. You can
- use <tt>llvm.atomic.load_and</tt>, <tt>llvm.atomic.load_nand</tt>,
- <tt>llvm.atomic.load_or</tt>, and <tt>llvm.atomic.load_xor</tt> on any integer
- bit width and for different address spaces. Not all targets support all bit
- widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.load.and.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.and.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.and.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.and.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.or.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.or.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.or.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.or.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.nand.i8.p0i32(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.nand.i16.p0i32(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.nand.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.nand.i64.p0i32(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.xor.i8.p0i32(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.xor.i16.p0i32(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.xor.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.xor.i64.p0i32(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>These intrinsics bitwise the operation (and, nand, or, xor) <tt>delta</tt> to
- the value stored in memory at <tt>ptr</tt>. It yields the original value
- at <tt>ptr</tt>.</p>
-
-<h5>Arguments:</h5>
-<p>These intrinsics take two arguments, the first a pointer to an integer value
- and the second an integer value. The result is also an integer value. These
- integer types can have any bit width, but they must all have the same bit
- width. The targets may only lower integer representations they support.</p>
-
-<h5>Semantics:</h5>
-<p>These intrinsics does a series of operations atomically. They first load the
- value stored at <tt>ptr</tt>. They then do the bitwise
- operation <tt>delta</tt>, store the result to <tt>ptr</tt>. They yield the
- original value stored at <tt>ptr</tt>.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 0x0F0F, %ptr
-%result0 = call i32 @llvm.atomic.load.nand.i32.p0i32(i32* %ptr, i32 0xFF)
- <i>; yields {i32}:result0 = 0x0F0F</i>
-%result1 = call i32 @llvm.atomic.load.and.i32.p0i32(i32* %ptr, i32 0xFF)
- <i>; yields {i32}:result1 = 0xFFFFFFF0</i>
-%result2 = call i32 @llvm.atomic.load.or.i32.p0i32(i32* %ptr, i32 0F)
- <i>; yields {i32}:result2 = 0xF0</i>
-%result3 = call i32 @llvm.atomic.load.xor.i32.p0i32(i32* %ptr, i32 0F)
- <i>; yields {i32}:result3 = FF</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = F0</i>
-</pre>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<h4>
- <a name="int_atomic_load_max">
- '<tt>llvm.atomic.load.max.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_min">
- '<tt>llvm.atomic.load.min.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_umax">
- '<tt>llvm.atomic.load.umax.*</tt>' Intrinsic
- </a>
- <br>
- <a name="int_atomic_load_umin">
- '<tt>llvm.atomic.load.umin.*</tt>' Intrinsic
- </a>
-</h4>
-
-<div>
-
-<h5>Syntax:</h5>
-<p>These are overloaded intrinsics. You can use <tt>llvm.atomic.load_max</tt>,
- <tt>llvm.atomic.load_min</tt>, <tt>llvm.atomic.load_umax</tt>, and
- <tt>llvm.atomic.load_umin</tt> on any integer bit width and for different
- address spaces. Not all targets support all bit widths however.</p>
-
-<pre>
- declare i8 @llvm.atomic.load.max.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.max.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.max.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.max.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.min.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.min.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.min.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.min.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.umax.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.umax.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.umax.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.umax.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<pre>
- declare i8 @llvm.atomic.load.umin.i8.p0i8(i8* &lt;ptr&gt;, i8 &lt;delta&gt;)
- declare i16 @llvm.atomic.load.umin.i16.p0i16(i16* &lt;ptr&gt;, i16 &lt;delta&gt;)
- declare i32 @llvm.atomic.load.umin.i32.p0i32(i32* &lt;ptr&gt;, i32 &lt;delta&gt;)
- declare i64 @llvm.atomic.load.umin.i64.p0i64(i64* &lt;ptr&gt;, i64 &lt;delta&gt;)
-</pre>
-
-<h5>Overview:</h5>
-<p>These intrinsics takes the signed or unsigned minimum or maximum of
- <tt>delta</tt> and the value stored in memory at <tt>ptr</tt>. It yields the
- original value at <tt>ptr</tt>.</p>
-
-<h5>Arguments:</h5>
-<p>These intrinsics take two arguments, the first a pointer to an integer value
- and the second an integer value. The result is also an integer value. These
- integer types can have any bit width, but they must all have the same bit
- width. The targets may only lower integer representations they support.</p>
-
-<h5>Semantics:</h5>
-<p>These intrinsics does a series of operations atomically. They first load the
- value stored at <tt>ptr</tt>. They then do the signed or unsigned min or
- max <tt>delta</tt> and the value, store the result to <tt>ptr</tt>. They
- yield the original value stored at <tt>ptr</tt>.</p>
-
-<h5>Examples:</h5>
-<pre>
-%mallocP = tail call i8* @malloc(i32 ptrtoint (i32* getelementptr (i32* null, i32 1) to i32))
-%ptr = bitcast i8* %mallocP to i32*
- store i32 7, %ptr
-%result0 = call i32 @llvm.atomic.load.min.i32.p0i32(i32* %ptr, i32 -2)
- <i>; yields {i32}:result0 = 7</i>
-%result1 = call i32 @llvm.atomic.load.max.i32.p0i32(i32* %ptr, i32 8)
- <i>; yields {i32}:result1 = -2</i>
-%result2 = call i32 @llvm.atomic.load.umin.i32.p0i32(i32* %ptr, i32 10)
- <i>; yields {i32}:result2 = 8</i>
-%result3 = call i32 @llvm.atomic.load.umax.i32.p0i32(i32* %ptr, i32 30)
- <i>; yields {i32}:result3 = 8</i>
-%memval1 = load i32* %ptr <i>; yields {i32}:memval1 = 30</i>
-</pre>
-
-</div>
-
-</div>
-
-<!-- ======================================================================= -->
-<h3>
<a name="int_memorymarkers">Memory Use Markers</a>
</h3>
@@ -8615,7 +8101,7 @@ LLVM</a>.</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-10-14 01:04:49 +0200 (Fri, 14 Oct 2011) $
+ Last modified: $Date: 2011-11-03 07:43:54 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/LinkTimeOptimization.html b/docs/LinkTimeOptimization.html
index a1e8bba74d05..63403ca5f636 100644
--- a/docs/LinkTimeOptimization.html
+++ b/docs/LinkTimeOptimization.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM Link Time Optimization: Design and Implementation</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -392,7 +393,7 @@ of the native object files.</p>
Devang Patel and Nick Kledzik<br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-09-18 14:51:05 +0200 (Sun, 18 Sep 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/Packaging.html b/docs/Packaging.html
index b9329726991f..e3cdf7911aec 100644
--- a/docs/Packaging.html
+++ b/docs/Packaging.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Advice on Packaging LLVM</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -112,7 +113,7 @@ line numbers.</dd>
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/Passes.html b/docs/Passes.html
index eb4a11549e15..96d1aeefd4d3 100644
--- a/docs/Passes.html
+++ b/docs/Passes.html
@@ -226,11 +226,8 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<a name="basicaa">-basicaa: Basic Alias Analysis (stateless AA impl)</a>
</h3>
<div>
- <p>
- This is the default implementation of the Alias Analysis interface
- that simply implements a few identities (two different globals cannot alias,
- etc), but otherwise does no analysis.
- </p>
+ <p>A basic alias analysis pass that implements identities (two different
+ globals cannot alias, etc), but does no stateful analysis.</p>
</div>
<!-------------------------------------------------------------------------- -->
@@ -527,9 +524,10 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
</h3>
<div>
<p>
- Always returns "I don't know" for alias queries. NoAA is unlike other alias
- analysis implementations, in that it does not chain to a previous analysis. As
- such it doesn't follow many of the rules that other alias analyses must.
+ This is the default implementation of the Alias Analysis interface. It always
+ returns "I don't know" for alias queries. NoAA is unlike other alias analysis
+ implementations, in that it does not chain to a previous analysis. As such it
+ doesn't follow many of the rules that other alias analyses must.
</p>
</div>
@@ -2041,7 +2039,7 @@ if (X &lt; 3) {</pre>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-08-04 00:18:20 +0200 (Thu, 04 Aug 2011) $
+ Last modified: $Date: 2011-11-04 07:30:50 +0100 (Fri, 04 Nov 2011) $
</address>
</body>
diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html
index 3697dd7501ba..47fc6e99b276 100644
--- a/docs/ProgrammersManual.html
+++ b/docs/ProgrammersManual.html
@@ -879,9 +879,6 @@ elements (but could contain many), for example, it's much better to use
. Doing so avoids (relatively) expensive malloc/free calls, which dwarf the
cost of adding the elements to the container. </p>
-</div>
-
-
<!-- ======================================================================= -->
<h3>
<a name="ds_sequential">Sequential Containers (std::vector, std::list, etc)</a>
@@ -4055,7 +4052,7 @@ arguments. An argument has a pointer to the parent Function.</p>
<a href="mailto:dhurjati@cs.uiuc.edu">Dinakar Dhurjati</a> and
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-10-11 08:33:56 +0200 (Tue, 11 Oct 2011) $
+ Last modified: $Date: 2011-11-03 07:43:54 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/Projects.html b/docs/Projects.html
index 068acde087e5..a3d68911d934 100644
--- a/docs/Projects.html
+++ b/docs/Projects.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Creating an LLVM Project</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -481,7 +482,7 @@ Mailing List</a>.</p>
<a href="mailto:criswell@uiuc.edu">John Criswell</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
<br>
- Last modified: $Date: 2011-06-03 04:20:48 +0200 (Fri, 03 Jun 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index b0d4f67e9836..56d0eb914839 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -189,13 +189,7 @@ Release Notes</a>.</h1>
<div>
-<p><a href="http://lldb.llvm.org/">LLDB</a> is a brand new member of the LLVM
- umbrella of projects. LLDB is a next generation, high-performance
- debugger. It is built as a set of reusable components which highly leverage
- existing libraries in the larger LLVM Project, such as the Clang expression
- parser, the LLVM disassembler and the LLVM JIT.</p>
-
-<p>LLDB is has advanced by leaps and bounds in the 3.0 timeframe. It is
+<p>LLDB has advanced by leaps and bounds in the 3.0 timeframe. It is
dramatically more stable and useful, and includes both a
new <a href="http://lldb.llvm.org/tutorial.html">tutorial</a> and
a <a href="http://lldb.llvm.org/lldb-gdb.html">side-by-side comparison with
@@ -210,13 +204,6 @@ Release Notes</a>.</h1>
<div>
-<p><a href="http://libcxx.llvm.org/">libc++</a> is another new member of the
- LLVM family. It is an implementation of the C++ standard library, written
- from the ground up to specifically target the forthcoming C++'0X standard and
- focus on delivering great performance.</p>
-
-<p>In the LLVM 3.0 timeframe,</p>
-
<p>Like compiler_rt, libc++ is now <a href="DeveloperPolicy.html#license">dual
licensed</a> under the MIT and UIUC license, allowing it to be used more
permissively.</p>
@@ -290,22 +277,256 @@ be used to verify some algorithms.
projects that have already been updated to work with LLVM 3.0.</p>
<!--=========================================================================-->
-<h3>Crack Programming Language</h3>
+<h3>AddressSanitizer</h3>
+
+<div>
+
+<p><a href="http://code.google.com/p/address-sanitizer/">AddressSanitizer</a>
+ uses compiler instrumentation and a specialized malloc library to find C/C++
+ bugs such as use-after-free and out-of-bound accesses to heap, stack, and
+ globals. The key feature of the tool is speed: the average slowdown
+ introduced by AddressSanitizer is less than 2x.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>ClamAV</h3>
+
+<div>
+
+<p><a href="http://www.clamav.net">Clam AntiVirus</a> is an open source (GPL)
+ anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail
+ gateways.</p>
+
+<p>Since version 0.96 it
+ has <a href="http://vrt-sourcefire.blogspot.com/2010/09/introduction-to-clamavs-low-level.html">bytecode
+ signatures</a> that allow writing detections for complex malware.</p>
+
+<p>It uses LLVM's JIT to speed up the execution of bytecode on X86, X86-64,
+ PPC32/64, falling back to its own interpreter otherwise. The git version was
+ updated to work with LLVM 3.0.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>clReflect</h3>
<div>
-<p><a href="http://code.google.com/p/crack-language/">Crack</a> aims to provide
- the ease of development of a scripting language with the performance of a
- compiled language. The language derives concepts from C++, Java and Python,
- incorporating object-oriented programming, operator overloading and strong
- typing.</p>
+<p><a href="https://bitbucket.org/dwilliamson/clreflect">clReflect</a> is a C++
+ parser that uses clang/LLVM to derive a light-weight reflection database
+ suitable for use in game development. It comes with a very simple runtime
+ library for loading and querying the database, requiring no external
+ dependencies (including CRT), and an additional utility library for object
+ management and serialisation.</p>
</div>
+
+<!--=========================================================================-->
+<h3>Cling C++ Interpreter</h3>
+
+<div>
+
+<p><a href="http://cern.ch/cling">Cling</a> is an interactive compiler interface
+ (aka C++ interpreter). It uses LLVM's JIT and clang; it currently supports
+ C++ and C. It has a prompt interface, runs source files, calls into shared
+ libraries, prints the value of expressions, even does runtime lookup of
+ identifiers (dynamic scopes). And it just behaves like one would expect from
+ an interpreter.</p>
+
+</div>
+
+<!--=========================================================================-->
+<!-- FIXME: Comment out
+<h3>Crack Programming Language</h3>
+
+<div>
+<p>
+<a href="http://code.google.com/p/crack-language/">Crack</a> aims to provide the
+ease of development of a scripting language with the performance of a compiled
+language. The language derives concepts from C++, Java and Python, incorporating
+object-oriented programming, operator overloading and strong typing.</p>
+</div>
+-->
+
+<!--=========================================================================-->
+<h3>Glasgow Haskell Compiler (GHC)</h3>
+<div>
+
+<p>GHC is an open source, state-of-the-art programming suite for Haskell, a
+ standard lazy functional programming language. It includes an optimizing
+ static compiler generating good code for a variety of platforms, together
+ with an interactive system for convenient, quick development.</p>
+
+<p>GHC 7.0 and onwards include an LLVM code generator, supporting LLVM 2.8 and
+ later. Since LLVM 2.9, GHC now includes experimental support for the ARM
+ platform with LLVM 3.0.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>gwXscript</h3>
+
+<div>
+
+<p><a href="http://botwars.tk/gwscript/">gwXscript</a> is an object oriented,
+ aspect oriented programming language which can create both executables (ELF,
+ EXE) and shared libraries (DLL, SO, DYNLIB). The compiler is implemented in
+ its own language and translates scripts into LLVM-IR which can be optimized
+ and translated into native code by the LLVM framework. Source code in
+ gwScript contains definitions that expand the namespaces. So you can build
+ your project and simply 'plug out' features by removing a file. The remaining
+ project does not leave scars since you directly separate concerns by the
+ 'template' feature of gwX. It is also possible to add new features to a
+ project by just adding files and without editing the original project. This
+ language is used for example to create games or content management systems
+ that should be extendable.</p>
+
+<p>gwXscript is strongly typed and offers comfort with its native types string,
+ hash and array. You can easily write new libraries in gwXscript or native
+ code. gwXscript is type safe and users should not be able to crash your
+ program or execute malicious code except code that is eating CPU time.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>include-what-you-use</h3>
+
+<div>
+
+<p><a href="http://code.google.com/p/include-what-you-use">include-what-you-use</a>
+ is a tool to ensure that a file directly <code>#include</code>s
+ all <code>.h</code> files that provide a symbol that the file uses. It also
+ removes superfluous <code>#include</code>s from source files.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>LanguageKit and Pragmatic Smalltalk</h3>
+
+<div>
+
+<p><a href="http://etoileos.com/etoile/features/languagekit/">LanguageKit</a> is
+ a framework for implementing dynamic languages sharing an object model with
+ Objective-C. It provides static and JIT compilation using LLVM along with
+ its own interpreter. Pragmatic Smalltalk is a dialect of Smalltalk, built on
+ top of LanguageKit, that interfaces directly with Objective-C, sharing the
+ same object representation and message sending behaviour. These projects are
+ developed as part of the &Eacute;toi&eacute; desktop environment.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>LuaAV</h3>
+
+<div>
+
+<p><a href="http://lua-av.mat.ucsb.edu/blog/">LuaAV</a> is a real-time
+ audiovisual scripting environment based around the Lua language and a
+ collection of libraries for sound, graphics, and other media protocols. LuaAV
+ uses LLVM and Clang to JIT compile efficient user-defined audio synthesis
+ routines specified in a declarative syntax.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>Mono</h3>
+
+<div>
+
+<p>An open source, cross-platform implementation of C# and the CLR that is
+ binary compatible with Microsoft.NET. Has an optional, dynamically-loaded
+ LLVM code generation backend in Mini, the JIT compiler.</p>
+
+<p>Note that we use a Git mirror of LLVM with some patches. See:
+ https://github.com/mono/llvm</p>
+
+</div>
+
<!--=========================================================================-->
-<h3>TTA-based Codesign Environment (TCE)</h3>
+<h3>Portable OpenCL (pocl)</h3>
+
+<div>
+
+<p>Portable OpenCL is an open source implementation of the OpenCL standard which
+ can be easily adapted for new targets. One of the goals of the project is
+ improving performance portability of OpenCL programs, avoiding the need for
+ target-dependent manual optimizations. A "native" target is included, which
+ allows running OpenCL kernels on the host (CPU).</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>Pure</h3>
<div>
+<p><a href="http://pure-lang.googlecode.com/">Pure</a> is an
+ algebraic/functional programming language based on term rewriting. Programs
+ are collections of equations which are used to evaluate expressions in a
+ symbolic fashion. The interpreter uses LLVM as a backend to JIT-compile Pure
+ programs to fast native code. Pure offers dynamic typing, eager and lazy
+ evaluation, lexical closures, a hygienic macro system (also based on term
+ rewriting), built-in list and matrix support (including list and matrix
+ comprehensions) and an easy-to-use interface to C and other programming
+ languages (including the ability to load LLVM bitcode modules, and inline C,
+ C++, Fortran and Faust code in Pure programs if the corresponding LLVM-enabled
+ compilers are installed).</p>
+
+<p>Pure version 0.48 has been tested and is known to work with LLVM 3.0
+ (and continues to work with older LLVM releases &gt;= 2.5).</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>Renderscript</h3>
+
+<div>
+
+<p><a href="http://developer.android.com/guide/topics/renderscript/index.html">Renderscript</a>
+ is Android's advanced 3D graphics rendering and compute API. It provides a
+ portable C99-based language with extensions to facilitate common use cases
+ for enhancing graphics and thread level parallelism. The Renderscript
+ compiler frontend is based on Clang/LLVM. It emits a portable bitcode format
+ for the actual compiled script code, as well as reflects a Java interface for
+ developers to control the execution of the compiled bitcode. Executable
+ machine code is then generated from this bitcode by an LLVM backend on the
+ device. Renderscript is thus able to provide a mechanism by which Android
+ developers can improve performance of their applications while retaining
+ portability.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>SAFECode</h3>
+
+<div>
+
+<p><a href="http://safecode.cs.illinois.edu">SAFECode</a> is a memory safe C/C++
+ compiler built using LLVM. It takes standard, unannotated C/C++ code,
+ analyzes the code to ensure that memory accesses and array indexing
+ operations are safe, and instruments the code with run-time checks when
+ safety cannot be proven statically. SAFECode can be used as a debugging aid
+ (like Valgrind) to find and repair memory safety bugs. It can also be used
+ to protect code from security attacks at run-time.</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>The Stupid D Compiler (SDC)</h3>
+
+<div>
+
+<p><a href="https://github.com/bhelyer/SDC">The Stupid D Compiler</a> is a
+ project seeking to write a self-hosting compiler for the D programming
+ language without using the frontend of the reference compiler (DMD).</p>
+
+</div>
+
+<!--=========================================================================-->
+<h3>TTA-based Co-design Environment (TCE)</h3>
+
+<div>
<p>TCE is a toolset for designing application-specific processors (ASP) based on
the Transport triggered architecture (TTA). The toolset provides a complete
@@ -322,120 +543,140 @@ be used to verify some algorithms.
</div>
<!--=========================================================================-->
-<h3>PinaVM</h3>
-
+<h3>Tart Programming Language</h3>
+
<div>
-<p><a href="http://gitorious.org/pinavm/pages/Home">PinaVM</a> is an open
- source, <a href="http://www.systemc.org/">SystemC</a> front-end. Unlike many
- other front-ends, PinaVM actually executes the elaboration of the program
- analyzed using LLVM's JIT infrastructure. It later enriches the bitcode with
- SystemC-specific information.</p>
+<p><a href="http://code.google.com/p/tart/">Tart</a> is a general-purpose,
+ strongly typed programming language designed for application
+ developers. Strongly inspired by Python and C#, Tart focuses on practical
+ solutions for the professional software developer, while avoiding the clutter
+ and boilerplate of legacy languages like Java and C++. Although Tart is still
+ in development, the current implementation supports many features expected of
+ a modern programming language, such as garbage collection, powerful
+ bidirectional type inference, a greatly simplified syntax for template
+ metaprogramming, closures and function literals, reflection, operator
+ overloading, explicit mutability and immutability, and much more. Tart is
+ flexible enough to accommodate a broad range of programming styles and
+ philosophies, while maintaining a strong commitment to simplicity, minimalism
+ and elegance in design.</p>
</div>
<!--=========================================================================-->
-<h3>Pure</h3>
-
+<h3>ThreadSanitizer</h3>
+
<div>
-<p><a href="http://pure-lang.googlecode.com/">Pure</a> is an
- algebraic/functional programming language based on term rewriting. Programs
- are collections of equations which are used to evaluate expressions in a
- symbolic fashion. The interpreter uses LLVM as a backend to JIT-compile Pure
- programs to fast native code. Pure offers dynamic typing, eager and lazy
- evaluation, lexical closures, a hygienic macro system (also based on term
- rewriting), built-in list and matrix support (including list and matrix
- comprehensions) and an easy-to-use interface to C and other programming
- languages (including the ability to load LLVM bitcode modules, and inline C,
- C++, Fortran and Faust code in Pure programs if the corresponding
- LLVM-enabled compilers are installed).</p>
-
-<p>Pure version 0.47 has been tested and is known to work with LLVM 3.0 (and
- continues to work with older LLVM releases &gt;= 2.5).</p>
+<p><a href="http://code.google.com/p/data-race-test/">ThreadSanitizer</a> is a
+ data race detector for (mostly) C and C++ code, available for Linux, Mac OS
+ and Windows. On different systems, we use binary instrumentation frameworks
+ (Valgrind and Pin) as frontends that generate the program events for the race
+ detection algorithm. On Linux, there's an option of using LLVM-based
+ compile-time instrumentation.</p>
</div>
<!--=========================================================================-->
-<h3 id="icedtea">IcedTea Java Virtual Machine Implementation</h3>
+<h3>The ZooLib C++ Cross-Platform Application Framework</h3>
<div>
-<p><a href="http://icedtea.classpath.org/wiki/Main_Page">IcedTea</a> provides a
- harness to build OpenJDK using only free software build tools and to provide
- replacements for the not-yet free parts of OpenJDK. One of the extensions
- that IcedTea provides is a new JIT compiler
- named <a href="http://icedtea.classpath.org/wiki/ZeroSharkFaq">Shark</a>
- which uses LLVM to provide native code generation without introducing
- processor-dependent code.</p>
+<p><a href="http://www.zoolib.org/">ZooLib</a> is Open Source under the MIT
+ License. It provides GUI, filesystem access, TCP networking, thread-safe
+ memory management, threading and locking for Mac OS X, Classic Mac OS,
+ Microsoft Windows, POSIX operating systems with X11, BeOS, Haiku, Apple's iOS
+ and Research in Motion's BlackBerry.</p>
-<p>OpenJDK 7 b112, IcedTea6 1.9 and IcedTea7 1.13 and later have been tested and
- are known to work with LLVM 3.0 (and continue to work with older LLVM
- releases &gt;= 2.6 as well).</p>
+<p>My current work is to use CLang's static analyzer to improve ZooLib's code
+ quality. I also plan to set up LLVM compiles of the demo programs and test
+ programs using CLang and LLVM on all the platforms that CLang, LLVM and
+ ZooLib all support.</p>
</div>
<!--=========================================================================-->
-<h3>Glasgow Haskell Compiler (GHC)</h3>
+<!--
+<h3>PinaVM</h3>
<div>
+<p><a href="http://gitorious.org/pinavm/pages/Home">PinaVM</a> is an open
+source, <a href="http://www.systemc.org/">SystemC</a> front-end. Unlike many
+other front-ends, PinaVM actually executes the elaboration of the
+program analyzed using LLVM's JIT infrastructure. It later enriches the
+bitcode with SystemC-specific information.</p>
+</div>
+-->
-<p>GHC is an open source, state-of-the-art programming suite for Haskell, a
- standard lazy functional programming language. It includes an optimizing
- static compiler generating good code for a variety of platforms, together
- with an interactive system for convenient, quick development.</p>
-<p>In addition to the existing C and native code generators, GHC 7.0 now
- supports an LLVM code generator. GHC supports LLVM 2.7 and later.</p>
+<!--=========================================================================-->
+<!--
+<h3 id="icedtea">IcedTea Java Virtual Machine Implementation</h3>
+
+<div>
+<p>
+<a href="http://icedtea.classpath.org/wiki/Main_Page">IcedTea</a> provides a
+harness to build OpenJDK using only free software build tools and to provide
+replacements for the not-yet free parts of OpenJDK. One of the extensions that
+IcedTea provides is a new JIT compiler named <a
+href="http://icedtea.classpath.org/wiki/ZeroSharkFaq">Shark</a> which uses LLVM
+to provide native code generation without introducing processor-dependent
+code.
+</p>
+<p> OpenJDK 7 b112, IcedTea6 1.9 and IcedTea7 1.13 and later have been tested
+and are known to work with LLVM 3.0 (and continue to work with older LLVM
+releases &gt;= 2.6 as well).</p>
</div>
+-->
<!--=========================================================================-->
+<!--
<h3>Polly - Polyhedral optimizations for LLVM</h3>
<div>
-
<p>Polly is a project that aims to provide advanced memory access optimizations
- to better take advantage of SIMD units, cache hierarchies, multiple cores or
- even vector accelerators for LLVM. Built around an abstract mathematical
- description based on Z-polyhedra, it provides the infrastructure to develop
- advanced optimizations in LLVM and to connect complex external optimizers. In
- its first year of existence Polly already provides an exact value-based
- dependency analysis as well as basic SIMD and OpenMP code generation support.
- Furthermore, Polly can use PoCC(Pluto) an advanced optimizer for
- data-locality and parallelism.</p>
-
+to better take advantage of SIMD units, cache hierarchies, multiple cores or
+even vector accelerators for LLVM. Built around an abstract mathematical
+description based on Z-polyhedra, it provides the infrastructure to develop
+advanced optimizations in LLVM and to connect complex external optimizers. In
+its first year of existence Polly already provides an exact value-based
+dependency analysis as well as basic SIMD and OpenMP code generation support.
+Furthermore, Polly can use PoCC(Pluto) an advanced optimizer for data-locality
+and parallelism.</p>
</div>
+-->
<!--=========================================================================-->
+<!--
<h3>Rubinius</h3>
<div>
-
-<p><a href="http://github.com/evanphx/rubinius">Rubinius</a> is an environment
- for running Ruby code which strives to write as much of the implementation in
- Ruby as possible. Combined with a bytecode interpreting VM, it uses LLVM to
- optimize and compile ruby code down to machine code. Techniques such as type
- feedback, method inlining, and deoptimization are all used to remove dynamism
- from ruby execution and increase performance.</p>
-
+ <p><a href="http://github.com/evanphx/rubinius">Rubinius</a> is an environment
+ for running Ruby code which strives to write as much of the implementation in
+ Ruby as possible. Combined with a bytecode interpreting VM, it uses LLVM to
+ optimize and compile ruby code down to machine code. Techniques such as type
+ feedback, method inlining, and deoptimization are all used to remove dynamism
+ from ruby execution and increase performance.</p>
</div>
+-->
<!--=========================================================================-->
+<!--
<h3>
<a name="FAUST">FAUST Real-Time Audio Signal Processing Language</a>
</h3>
<div>
-
-<p><a href="http://faust.grame.fr">FAUST</a> is a compiled language for
- real-time audio signal processing. The name FAUST stands for Functional AUdio
- STream. Its programming model combines two approaches: functional programming
- and block diagram composition. In addition with the C, C++, JAVA output
- formats, the Faust compiler can now generate LLVM bitcode, and works with
- LLVM 2.7-3.0.</p>
+<p>
+<a href="http://faust.grame.fr">FAUST</a> is a compiled language for real-time
+audio signal processing. The name FAUST stands for Functional AUdio STream. Its
+programming model combines two approaches: functional programming and block
+diagram composition. In addition with the C, C++, JAVA output formats, the
+Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-3.0.</p>
</div>
+-->
</div>
@@ -698,6 +939,9 @@ Builder.CreateResume(UnwindData);
<a name="OtherTS">Other Target Specific Improvements</a>
</h3>
+<p>PPC32/ELF va_arg was implemented.</p>
+<p>PPC32 initial support for .o file writing was implemented.</p>
+
<div>
<ul>
@@ -730,6 +974,9 @@ Builder.CreateResume(UnwindData);
"<code>load volatile</code>"/"<code>store volatile</code>". The old
syntax ("<code>volatile load</code>"/"<code>volatile store</code>")
is still accepted, but is now considered deprecated.</li>
+ <li>The old atomic intrinscs (<code>llvm.memory.barrier</code> and
+ <code>llvm.atomic.*</code>) are now gone. Please use the new atomic
+ instructions, described in the <a href="Atomics.html">atomics guide</a>.
</ul>
<h4>Windows (32-bit)</h4>
@@ -943,8 +1190,7 @@ Builder.CreateResume(UnwindData);
<div>
<ul>
- <li>The Linux PPC32/ABI support needs testing for the interpreter and static
- compilation, and lacks support for debug information.</li>
+ <li>The PPC32/ELF support lacks PIC support.</li>
</ul>
</div>
@@ -1096,7 +1342,7 @@ Builder.CreateResume(UnwindData);
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-10-17 08:31:58 +0200 (Mon, 17 Oct 2011) $
+ Last modified: $Date: 2011-11-01 05:51:35 +0100 (Tue, 01 Nov 2011) $
</address>
</body>
diff --git a/docs/SystemLibrary.html b/docs/SystemLibrary.html
index 57dc2391d535..24c4dc533182 100644
--- a/docs/SystemLibrary.html
+++ b/docs/SystemLibrary.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>System Library</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -309,7 +310,7 @@
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/TableGenFundamentals.html b/docs/TableGenFundamentals.html
index f607ef8ebeab..92b90e687bbf 100644
--- a/docs/TableGenFundamentals.html
+++ b/docs/TableGenFundamentals.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TableGen Fundamentals</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -911,7 +912,7 @@ This should highlight the APIs in <tt>TableGen/Record.h</tt>.</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-10-07 20:25:05 +0200 (Fri, 07 Oct 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
diff --git a/docs/TestingGuide.html b/docs/TestingGuide.html
index 5a28c447f3a3..eb3714272d33 100644
--- a/docs/TestingGuide.html
+++ b/docs/TestingGuide.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LLVM Testing Infrastructure Guide</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -1206,7 +1207,7 @@ example reports that can do fancy stuff.</p>
John T. Criswell, Daniel Dunbar, Reid Spencer, and Tanya Lattner<br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-05-18 20:07:16 +0200 (Wed, 18 May 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body>
</html>
diff --git a/docs/UsingLibraries.html b/docs/UsingLibraries.html
index 2c1c69a69a5f..6c1dd18aac92 100644
--- a/docs/UsingLibraries.html
+++ b/docs/UsingLibraries.html
@@ -1,7 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>Using The LLVM Libraries</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Using The LLVM Libraries</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>
@@ -440,7 +441,7 @@
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a>
</address>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
-<br>Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $ </div>
+<br>Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $ </div>
</body>
</html>
<!-- vim: sw=2 ts=2 ai
diff --git a/docs/index.html b/docs/index.html
index e22d991055f1..b17ca0388bed 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2,6 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documentation for the LLVM System at SVN head</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
@@ -285,7 +286,7 @@ times each day, making it a high volume list.</li>
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2011-10-11 18:35:07 +0200 (Tue, 11 Oct 2011) $
+ Last modified: $Date: 2011-11-03 07:43:23 +0100 (Thu, 03 Nov 2011) $
</address>
</body></html>