[llvm-commits] [www-releases] r170845 [12/55] - in /www-releases/trunk/3.2/docs: ./ CommandGuide/ HistoricalNotes/ _static/ _templates/ _themes/ _themes/llvm-theme/ _themes/llvm-theme/static/ doxygen/ doxygen/html/ llvm-theme/ llvm-theme/static/ tutorial/

Tanya Lattner tonic at nondot.org
Thu Dec 20 22:58:17 PST 2012


Added: www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,1666 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: Execution.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_c92c51dc3debf4668a549c62f98ec4ab.html">ExecutionEngine</a>      </li>
+      <li class="navelem"><a class="el" href="dir_67e5f5b4ec08fa66f6c096161f4e9853.html">Interpreter</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">Execution.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "Interpreter.h"</code><br/>
+<code>#include "<a class="el" href="Constants_8h_source.html">llvm/Constants.h</a>"</code><br/>
+<code>#include "<a class="el" href="DerivedTypes_8h_source.html">llvm/DerivedTypes.h</a>"</code><br/>
+<code>#include "<a class="el" href="Instructions_8h_source.html">llvm/Instructions.h</a>"</code><br/>
+<code>#include "<a class="el" href="IntrinsicLowering_8h_source.html">llvm/CodeGen/IntrinsicLowering.h</a>"</code><br/>
+<code>#include "<a class="el" href="GetElementPtrTypeIterator_8h_source.html">llvm/Support/GetElementPtrTypeIterator.h</a>"</code><br/>
+<code>#include "<a class="el" href="APInt_8h_source.html">llvm/ADT/APInt.h</a>"</code><br/>
+<code>#include "<a class="el" href="Statistic_8h_source.html">llvm/ADT/Statistic.h</a>"</code><br/>
+<code>#include "<a class="el" href="CommandLine_8h_source.html">llvm/Support/CommandLine.h</a>"</code><br/>
+<code>#include "<a class="el" href="Debug_8h_source.html">llvm/Support/Debug.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include "<a class="el" href="MathExtras_8h_source.html">llvm/Support/MathExtras.h</a>"</code><br/>
+<code>#include <algorithm></code><br/>
+<code>#include <cmath></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for Execution.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="Execution_8cpp__incl.png" border="0" usemap="#Execution_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="Execution_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "interpreter"</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a3949efc1d5bca1a86dcf300cf11536ee">IMPLEMENT_BINARY_OPERATOR</a>(OP, TY)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ac4e06ed051f3a169ce69957401c35978">IMPLEMENT_INTEGER_ICMP</a>(OP, TY)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a930b0c47dc8ca23c7c467b8818f9a6c6">IMPLEMENT_POINTER_ICMP</a>(OP)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ac86dae43d05947074538335c136d8286">IMPLEMENT_FCMP</a>(OP, TY)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a9c13a70fc317a045485f7a12c8855609">IMPLEMENT_UNORDERED</a>(TY, <a class="el" href="Hello_8cpp.html#a8c52190361e97ffdef605d3479a11551">X</a>, <a class="el" href="Hello_8cpp.html#af7a9e9117a5e3a101250445ff373b42a">Y</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ab17082b5668396b9c47660397a72c0e6">IMPLEMENT_VAARG</a>(TY)   case Type::TY##TyID: Dest.TY##Val = Src.TY##Val; break</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a0c0fece9ed3c5502437724591ea00b98">STATISTIC</a> (NumDynamicInsts,"Number of dynamic <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> executed")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#aa43f5ded794bbaa78a7d7b3b72caed8b">SetValue</a> (<a class="el" href="classllvm_1_1Value.html">Value</a> *V, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Val, <a class="el" href="structllvm_1_1ExecutionContext.html">ExecutionContext</a> &SF)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a46d49ce365aa2b814bb9b25f332757df">executeFAddInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> &Dest, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a1ba822e8185395389ff297d86335506b">executeFSubInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> &Dest, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#af8cce347f31a3057d0d8a61a4ade64e4">executeFMulInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> &Dest, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a2dcd6bdc8271cf5a7a963933e7a18c66">executeFDivInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> &Dest, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ab2b2089ccf34571233f731db1c299b85">executeFRemInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> &Dest, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ae7670586abfe3aed532c70997b0d4424">executeICMP_EQ</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a908bbe72c94bd551dcbd394a8817c2d7">executeICMP_NE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#af9477a1cada9e071e78a65a75f09247b">executeICMP_ULT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a0b809b83b0c40ad9dcb8bbd8ea4591a7">executeICMP_SLT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a072f11ea1ef8304f96662d1f385f5ad3">executeICMP_UGT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a2d592b5002f3855f9fa9f486a55087b2">executeICMP_SGT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a826efd0d1d8bbe269183e89ea5514e2f">executeICMP_ULE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a2f5002419dfa68ad8a3be90f9e591a1d">executeICMP_SLE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a0c84af3c90fae95a8ea40029ddceb3b0">executeICMP_UGE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a34085170841ce0d5eb1687c8cefd9234">executeICMP_SGE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a53a0f3f250d2ad3ab79b96b2d7b12527">executeFCMP_OEQ</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#ad84c8e547a3add8cc581d6fbec1ea5cb">executeFCMP_ONE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a687130dc367d99c69d3c7c611169d6b6">executeFCMP_OLE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a0473b23318c3e81617e969e5d34b6c65">executeFCMP_OGE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a88f7c3a00a5fc3920f305094bf381798">executeFCMP_OLT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a35b4530505dca524726752e6a20883e1">executeFCMP_OGT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#adc7da546e2638a58b40f8236f43e91c0">executeFCMP_UEQ</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a42019dfdf44962124bfc3ed1e7dda826">executeFCMP_UNE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a1ca29b39b2e1fbf95a750c13d2035f61">executeFCMP_ULE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a03c3b9faab810a8a847dee1c1024db92">executeFCMP_UGE</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a8f7dd1881517874a4850e4d1cb970a66">executeFCMP_ULT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#aed4e397ad7ab2921318cf474e0b8320e">executeFCMP_UGT</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a9a1b97d63e55b8f92d4d2e5468fb7cf6">executeFCMP_ORD</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a4ecb49f4c2b5b1041e0ad44dc213f5b0">executeFCMP_UNO</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a2b9d0fb162de974f5529828bfa910125">executeCmpInst</a> (<a class="el" href="classunsigned.html">unsigned</a> predicate, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a54f39250e9795032088dbf5d5ba4e860">executeSelectInst</a> (<a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src1, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src2, <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> Src3)</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a>< <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="Execution_8cpp.html#a0339a81073d8163a4438ff8158a8e581">PrintVolatile</a> ("interpreter-print-volatile", cl::Hidden, <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("make the interpreter print every volatile load and store"))</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="Execution.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "interpreter"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00014">14</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3949efc1d5bca1a86dcf300cf11536ee"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_BINARY_OPERATOR" ref="a3949efc1d5bca1a86dcf300cf11536ee" args="(OP, TY)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_BINARY_OPERATOR</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">OP, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">TY </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">case</span> Type::TY##TyID: \
+     Dest.TY##Val = Src1.TY##Val <a class="code" href="regex2_8h.html#af4408501bd0122c5686327ce657853de">OP</a> Src2.TY##Val; \
+     break
+</pre></div>
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00048">48</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00053">executeFAddInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00086">executeFDivInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00075">executeFMulInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00064">executeFSubInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac86dae43d05947074538335c136d8286"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_FCMP" ref="ac86dae43d05947074538335c136d8286" args="(OP, TY)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_FCMP</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">OP, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">TY </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">case</span> Type::TY##TyID: \
+     Dest.IntVal = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(1,Src1.TY##Val <a class="code" href="regex2_8h.html#af4408501bd0122c5686327ce657853de">OP</a> Src2.TY##Val); \
+     break
+</pre></div>
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00283">283</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00288">executeFCMP_OEQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00328">executeFCMP_OGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00354">executeFCMP_OGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00315">executeFCMP_OLE()</a>, <a class="el" href="Execution_8cpp_source.html#l00341">executeFCMP_OLT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00301">executeFCMP_ONE()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac4e06ed051f3a169ce69957401c35978"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_INTEGER_ICMP" ref="ac4e06ed051f3a169ce69957401c35978" args="(OP, TY)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_INTEGER_ICMP</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">OP, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname">TY </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">case</span> Type::IntegerTyID:  \
+      Dest.IntVal = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(1,Src1.IntVal.OP(Src2.IntVal)); \
+      break;
+</pre></div>
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00112">112</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00127">executeICMP_EQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00140">executeICMP_NE()</a>, <a class="el" href="Execution_8cpp_source.html#l00244">executeICMP_SGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00192">executeICMP_SGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00218">executeICMP_SLE()</a>, <a class="el" href="Execution_8cpp_source.html#l00166">executeICMP_SLT()</a>, <a class="el" href="Execution_8cpp_source.html#l00231">executeICMP_UGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00179">executeICMP_UGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00205">executeICMP_ULE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00153">executeICMP_ULT()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a930b0c47dc8ca23c7c467b8818f9a6c6"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_POINTER_ICMP" ref="a930b0c47dc8ca23c7c467b8818f9a6c6" args="(OP)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_POINTER_ICMP</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">OP</td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">case</span> Type::PointerTyID: \
+      Dest.IntVal = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(1,(<span class="keywordtype">void</span>*)(<a class="code" href="classintptr__t.html">intptr_t</a>)Src1.PointerVal <a class="code" href="regex2_8h.html#af4408501bd0122c5686327ce657853de">OP</a> \
+                            (<span class="keywordtype">void</span>*)(<a class="code" href="classintptr__t.html">intptr_t</a>)Src2.PointerVal); \
+      break;
+</pre></div>
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00121">121</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00127">executeICMP_EQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00140">executeICMP_NE()</a>, <a class="el" href="Execution_8cpp_source.html#l00244">executeICMP_SGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00192">executeICMP_SGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00218">executeICMP_SLE()</a>, <a class="el" href="Execution_8cpp_source.html#l00166">executeICMP_SLT()</a>, <a class="el" href="Execution_8cpp_source.html#l00231">executeICMP_UGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00179">executeICMP_UGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00205">executeICMP_ULE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00153">executeICMP_ULT()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c13a70fc317a045485f7a12c8855609"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_UNORDERED" ref="a9c13a70fc317a045485f7a12c8855609" args="(TY, X, Y)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_UNORDERED</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">TY, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname"><a class="el" href="Hello_8cpp.html#a8c52190361e97ffdef605d3479a11551">X</a>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"> </td>
+          <td class="paramname"><a class="el" href="Hello_8cpp.html#af7a9e9117a5e3a101250445ff373b42a">Y</a> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (TY->isFloatTy()) {                                                 \
+    if (<a class="code" href="HexagonRemoveSZExtArgs_8cpp.html#a331f7c15469d94a407c753ba08ce3c76">X</a>.FloatVal != <a class="code" href="HexagonRemoveSZExtArgs_8cpp.html#a331f7c15469d94a407c753ba08ce3c76">X</a>.FloatVal || <a class="code" href="OcamlGCPrinter_8cpp.html#a1bdbcdc4205781eefd549946d40ff378">Y</a>.FloatVal != <a class="code" href="OcamlGCPrinter_8cpp.html#a1bdbcdc4205781eefd549946d40ff378">Y</a>.FloatVal) {          \
+      Dest.IntVal = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(1,<span class="keyword">true</span>);                                       \
+      return Dest;                                                       \
+    }                                                                    \
+  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="HexagonRemoveSZExtArgs_8cpp.html#a331f7c15469d94a407c753ba08ce3c76">X</a>.DoubleVal != <a class="code" href="HexagonRemoveSZExtArgs_8cpp.html#a331f7c15469d94a407c753ba08ce3c76">X</a>.DoubleVal || <a class="code" href="OcamlGCPrinter_8cpp.html#a1bdbcdc4205781eefd549946d40ff378">Y</a>.DoubleVal != <a class="code" href="OcamlGCPrinter_8cpp.html#a1bdbcdc4205781eefd549946d40ff378">Y</a>.DoubleVal) { \
+    Dest.IntVal = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(1,<span class="keyword">true</span>);                                         \
+    return Dest;                                                         \
+  }
+</pre></div>
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00367">367</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00379">executeFCMP_UEQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00400">executeFCMP_UGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00414">executeFCMP_UGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00393">executeFCMP_ULE()</a>, <a class="el" href="Execution_8cpp_source.html#l00407">executeFCMP_ULT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00386">executeFCMP_UNE()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab17082b5668396b9c47660397a72c0e6"></a><!-- doxytag: member="Execution.cpp::IMPLEMENT_VAARG" ref="ab17082b5668396b9c47660397a72c0e6" args="(TY)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define IMPLEMENT_VAARG</td>
+          <td>(</td>
+          <td class="paramtype"> </td>
+          <td class="paramname">TY</td><td>)</td>
+          <td>   case Type::TY##TyID: Dest.TY##Val = Src.TY##Val; break</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l01158">1158</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l01161">llvm::Interpreter::visitVAArgInst()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a2b9d0fb162de974f5529828bfa910125"></a><!-- doxytag: member="Execution.cpp::executeCmpInst" ref="a2b9d0fb162de974f5529828bfa910125" args="(unsigned predicate, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeCmpInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classunsigned.html">unsigned</a> </td>
+          <td class="paramname"><em>predicate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00477">477</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Execution_8cpp_source.html#l00288">executeFCMP_OEQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00328">executeFCMP_OGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00354">executeFCMP_OGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00315">executeFCMP_OLE()</a>, <a class="el" href="Execution_8cpp_source.html#l00341">executeFCMP_OLT()</a>, <a class="el" href="Execution_8cpp_source.html#l00301">executeFCMP_ONE()</a>, <a class="el" href="Execution_8cpp_source.html#l00421">executeFCMP_ORD()</a>, <a class="el" href="Execution_8cpp_source.html#l00379">executeFCMP_UEQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00400">executeFCMP_UGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00414">executeFCMP_UGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00393">executeFCMP_ULE()</a>, <a class="el" href="Execution_8cpp_source.html#l
 00407">executeFCMP_ULT()</a>, <a class="el" href="Execution_8cpp_source.html#l00386">executeFCMP_UNE()</a>, <a class="el" href="Execution_8cpp_source.html#l00433">executeFCMP_UNO()</a>, <a class="el" href="Execution_8cpp_source.html#l00127">executeICMP_EQ()</a>, <a class="el" href="Execution_8cpp_source.html#l00140">executeICMP_NE()</a>, <a class="el" href="Execution_8cpp_source.html#l00244">executeICMP_SGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00192">executeICMP_SGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00218">executeICMP_SLE()</a>, <a class="el" href="Execution_8cpp_source.html#l00166">executeICMP_SLT()</a>, <a class="el" href="Execution_8cpp_source.html#l00231">executeICMP_UGE()</a>, <a class="el" href="Execution_8cpp_source.html#l00179">executeICMP_UGT()</a>, <a class="el" href="Execution_8cpp_source.html#l00205">executeICMP_ULE()</a>, <a class="el" href="Execution_8cpp_source.html#l00153">executeICMP_ULT()</a>, <a class="el" href="Instr
 Types_8h_source.html#l00647">llvm::CmpInst::FCMP_FALSE</a>, <a class="el" href="InstrTypes_8h_source.html#l00648">llvm::CmpInst::FCMP_OEQ</a>, <a class="el" href="InstrTypes_8h_source.html#l00650">llvm::CmpInst::FCMP_OGE</a>, <a class="el" href="InstrTypes_8h_source.html#l00649">llvm::CmpInst::FCMP_OGT</a>, <a class="el" href="InstrTypes_8h_source.html#l00652">llvm::CmpInst::FCMP_OLE</a>, <a class="el" href="InstrTypes_8h_source.html#l00651">llvm::CmpInst::FCMP_OLT</a>, <a class="el" href="InstrTypes_8h_source.html#l00653">llvm::CmpInst::FCMP_ONE</a>, <a class="el" href="InstrTypes_8h_source.html#l00654">llvm::CmpInst::FCMP_ORD</a>, <a class="el" href="InstrTypes_8h_source.html#l00662">llvm::CmpInst::FCMP_TRUE</a>, <a class="el" href="InstrTypes_8h_source.html#l00656">llvm::CmpInst::FCMP_UEQ</a>, <a class="el" href="InstrTypes_8h_source.html#l00658">llvm::CmpInst::FCMP_UGE</a>, <a class="el" href="InstrTypes_8h_source.html#l00657">llvm::CmpInst::FCMP_UGT</a>, <a class="el" h
 ref="InstrTypes_8h_source.html#l00660">llvm::CmpInst::FCMP_ULE</a>, <a class="el" href="InstrTypes_8h_source.html#l00659">llvm::CmpInst::FCMP_ULT</a>, <a class="el" href="InstrTypes_8h_source.html#l00661">llvm::CmpInst::FCMP_UNE</a>, <a class="el" href="InstrTypes_8h_source.html#l00655">llvm::CmpInst::FCMP_UNO</a>, <a class="el" href="InstrTypes_8h_source.html#l00666">llvm::CmpInst::ICMP_EQ</a>, <a class="el" href="InstrTypes_8h_source.html#l00667">llvm::CmpInst::ICMP_NE</a>, <a class="el" href="InstrTypes_8h_source.html#l00673">llvm::CmpInst::ICMP_SGE</a>, <a class="el" href="InstrTypes_8h_source.html#l00672">llvm::CmpInst::ICMP_SGT</a>, <a class="el" href="InstrTypes_8h_source.html#l00675">llvm::CmpInst::ICMP_SLE</a>, <a class="el" href="InstrTypes_8h_source.html#l00674">llvm::CmpInst::ICMP_SLT</a>, <a class="el" href="InstrTypes_8h_source.html#l00669">llvm::CmpInst::ICMP_UGE</a>, <a class="el" href="InstrTypes_8h_source.html#l00668">llvm::CmpInst::ICMP_UGT</a>, <a class="
 el" href="InstrTypes_8h_source.html#l00671">llvm::CmpInst::ICMP_ULE</a>, <a class="el" href="InstrTypes_8h_source.html#l00670">llvm::CmpInst::ICMP_ULT</a>, <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a46d49ce365aa2b814bb9b25f332757df"></a><!-- doxytag: member="Execution.cpp::executeFAddInst" ref="a46d49ce365aa2b814bb9b25f332757df" args="(GenericValue &Dest, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void executeFAddInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> & </td>
+          <td class="paramname"><em>Dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00053">53</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00048">IMPLEMENT_BINARY_OPERATOR</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53a0f3f250d2ad3ab79b96b2d7b12527"></a><!-- doxytag: member="Execution.cpp::executeFCMP_OEQ" ref="a53a0f3f250d2ad3ab79b96b2d7b12527" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_OEQ </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00288">288</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00379">executeFCMP_UEQ()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0473b23318c3e81617e969e5d34b6c65"></a><!-- doxytag: member="Execution.cpp::executeFCMP_OGE" ref="a0473b23318c3e81617e969e5d34b6c65" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_OGE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00328">328</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00400">executeFCMP_UGE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a35b4530505dca524726752e6a20883e1"></a><!-- doxytag: member="Execution.cpp::executeFCMP_OGT" ref="a35b4530505dca524726752e6a20883e1" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_OGT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00354">354</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00414">executeFCMP_UGT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a687130dc367d99c69d3c7c611169d6b6"></a><!-- doxytag: member="Execution.cpp::executeFCMP_OLE" ref="a687130dc367d99c69d3c7c611169d6b6" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_OLE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00315">315</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00393">executeFCMP_ULE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a88f7c3a00a5fc3920f305094bf381798"></a><!-- doxytag: member="Execution.cpp::executeFCMP_OLT" ref="a88f7c3a00a5fc3920f305094bf381798" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_OLT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00341">341</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00407">executeFCMP_ULT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad84c8e547a3add8cc581d6fbec1ea5cb"></a><!-- doxytag: member="Execution.cpp::executeFCMP_ONE" ref="ad84c8e547a3add8cc581d6fbec1ea5cb" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_ONE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00301">301</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00283">IMPLEMENT_FCMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00386">executeFCMP_UNE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9a1b97d63e55b8f92d4d2e5468fb7cf6"></a><!-- doxytag: member="Execution.cpp::executeFCMP_ORD" ref="a9a1b97d63e55b8f92d4d2e5468fb7cf6" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_ORD </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00421">421</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="GenericValue_8h_source.html#l00028">llvm::GenericValue::DoubleVal</a>, <a class="el" href="GenericValue_8h_source.html#l00029">llvm::GenericValue::FloatVal</a>, <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>, and <a class="el" href="Type_8h_source.html#l00142">llvm::Type::isFloatTy()</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adc7da546e2638a58b40f8236f43e91c0"></a><!-- doxytag: member="Execution.cpp::executeFCMP_UEQ" ref="adc7da546e2638a58b40f8236f43e91c0" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_UEQ </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00379">379</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00288">executeFCMP_OEQ()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03c3b9faab810a8a847dee1c1024db92"></a><!-- doxytag: member="Execution.cpp::executeFCMP_UGE" ref="a03c3b9faab810a8a847dee1c1024db92" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_UGE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00400">400</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00328">executeFCMP_OGE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aed4e397ad7ab2921318cf474e0b8320e"></a><!-- doxytag: member="Execution.cpp::executeFCMP_UGT" ref="aed4e397ad7ab2921318cf474e0b8320e" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_UGT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00414">414</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00354">executeFCMP_OGT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1ca29b39b2e1fbf95a750c13d2035f61"></a><!-- doxytag: member="Execution.cpp::executeFCMP_ULE" ref="a1ca29b39b2e1fbf95a750c13d2035f61" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_ULE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00393">393</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00315">executeFCMP_OLE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f7dd1881517874a4850e4d1cb970a66"></a><!-- doxytag: member="Execution.cpp::executeFCMP_ULT" ref="a8f7dd1881517874a4850e4d1cb970a66" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_ULT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00407">407</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00341">executeFCMP_OLT()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a42019dfdf44962124bfc3ed1e7dda826"></a><!-- doxytag: member="Execution.cpp::executeFCMP_UNE" ref="a42019dfdf44962124bfc3ed1e7dda826" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_UNE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00386">386</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00301">executeFCMP_ONE()</a>, and <a class="el" href="Execution_8cpp_source.html#l00367">IMPLEMENT_UNORDERED</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ecb49f4c2b5b1041e0ad44dc213f5b0"></a><!-- doxytag: member="Execution.cpp::executeFCMP_UNO" ref="a4ecb49f4c2b5b1041e0ad44dc213f5b0" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeFCMP_UNO </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00433">433</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="GenericValue_8h_source.html#l00028">llvm::GenericValue::DoubleVal</a>, <a class="el" href="GenericValue_8h_source.html#l00029">llvm::GenericValue::FloatVal</a>, <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>, and <a class="el" href="Type_8h_source.html#l00142">llvm::Type::isFloatTy()</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2dcd6bdc8271cf5a7a963933e7a18c66"></a><!-- doxytag: member="Execution.cpp::executeFDivInst" ref="a2dcd6bdc8271cf5a7a963933e7a18c66" args="(GenericValue &Dest, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void executeFDivInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> & </td>
+          <td class="paramname"><em>Dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00086">86</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00048">IMPLEMENT_BINARY_OPERATOR</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af8cce347f31a3057d0d8a61a4ade64e4"></a><!-- doxytag: member="Execution.cpp::executeFMulInst" ref="af8cce347f31a3057d0d8a61a4ade64e4" args="(GenericValue &Dest, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void executeFMulInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> & </td>
+          <td class="paramname"><em>Dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00075">75</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00048">IMPLEMENT_BINARY_OPERATOR</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab2b2089ccf34571233f731db1c299b85"></a><!-- doxytag: member="Execution.cpp::executeFRemInst" ref="ab2b2089ccf34571233f731db1c299b85" args="(GenericValue &Dest, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void executeFRemInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> & </td>
+          <td class="paramname"><em>Dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00097">97</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00054">llvm::Type::DoubleTyID</a>, <a class="el" href="GenericValue_8h_source.html#l00028">llvm::GenericValue::DoubleVal</a>, <a class="el" href="Type_8h_source.html#l00053">llvm::Type::FloatTyID</a>, <a class="el" href="GenericValue_8h_source.html#l00029">llvm::GenericValue::FloatVal</a>, <a class="el" href="TargetLibraryInfo_8h_source.html#l00165">llvm::LibFunc::fmod</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1ba822e8185395389ff297d86335506b"></a><!-- doxytag: member="Execution.cpp::executeFSubInst" ref="a1ba822e8185395389ff297d86335506b" args="(GenericValue &Dest, GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void executeFSubInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> & </td>
+          <td class="paramname"><em>Dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00064">64</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="NVPTX_8h_source.html#l00117">llvm::NVPTX::PTXLdStInstCode::Float</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00048">IMPLEMENT_BINARY_OPERATOR</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae7670586abfe3aed532c70997b0d4424"></a><!-- doxytag: member="Execution.cpp::executeICMP_EQ" ref="ae7670586abfe3aed532c70997b0d4424" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_EQ </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00127">127</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00645">llvm::Interpreter::visitSwitchInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a908bbe72c94bd551dcbd394a8817c2d7"></a><!-- doxytag: member="Execution.cpp::executeICMP_NE" ref="a908bbe72c94bd551dcbd394a8817c2d7" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_NE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00140">140</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a34085170841ce0d5eb1687c8cefd9234"></a><!-- doxytag: member="Execution.cpp::executeICMP_SGE" ref="a34085170841ce0d5eb1687c8cefd9234" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_SGE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00244">244</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2d592b5002f3855f9fa9f486a55087b2"></a><!-- doxytag: member="Execution.cpp::executeICMP_SGT" ref="a2d592b5002f3855f9fa9f486a55087b2" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_SGT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00192">192</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2f5002419dfa68ad8a3be90f9e591a1d"></a><!-- doxytag: member="Execution.cpp::executeICMP_SLE" ref="a2f5002419dfa68ad8a3be90f9e591a1d" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_SLE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00218">218</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0b809b83b0c40ad9dcb8bbd8ea4591a7"></a><!-- doxytag: member="Execution.cpp::executeICMP_SLT" ref="a0b809b83b0c40ad9dcb8bbd8ea4591a7" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_SLT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00166">166</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c84af3c90fae95a8ea40029ddceb3b0"></a><!-- doxytag: member="Execution.cpp::executeICMP_UGE" ref="a0c84af3c90fae95a8ea40029ddceb3b0" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_UGE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00231">231</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a072f11ea1ef8304f96662d1f385f5ad3"></a><!-- doxytag: member="Execution.cpp::executeICMP_UGT" ref="a072f11ea1ef8304f96662d1f385f5ad3" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_UGT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00179">179</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a826efd0d1d8bbe269183e89ea5514e2f"></a><!-- doxytag: member="Execution.cpp::executeICMP_ULE" ref="a826efd0d1d8bbe269183e89ea5514e2f" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_ULE </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00205">205</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00645">llvm::Interpreter::visitSwitchInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af9477a1cada9e071e78a65a75f09247b"></a><!-- doxytag: member="Execution.cpp::executeICMP_ULT" ref="af9477a1cada9e071e78a65a75f09247b" args="(GenericValue Src1, GenericValue Src2, Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeICMP_ULT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00153">153</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Execution_8cpp_source.html#l00112">IMPLEMENT_INTEGER_ICMP</a>, <a class="el" href="Execution_8cpp_source.html#l00121">IMPLEMENT_POINTER_ICMP</a>, and <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00477">executeCmpInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a54f39250e9795032088dbf5d5ba4e860"></a><!-- doxytag: member="Execution.cpp::executeSelectInst" ref="a54f39250e9795032088dbf5d5ba4e860" args="(GenericValue Src1, GenericValue Src2, GenericValue Src3)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> executeSelectInst </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Src3</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00552">552</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00557">llvm::Interpreter::visitSelectInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa43f5ded794bbaa78a7d7b3b72caed8b"></a><!-- doxytag: member="Execution.cpp::SetValue" ref="aa43f5ded794bbaa78a7d7b3b72caed8b" args="(Value *V, GenericValue Val, ExecutionContext &SF)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void SetValue </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Value.html">Value</a> * </td>
+          <td class="paramname"><em>V</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td>
+          <td class="paramname"><em>Val</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structllvm_1_1ExecutionContext.html">ExecutionContext</a> & </td>
+          <td class="paramname"><em>SF</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="Execution_8cpp_source.html#l00040">40</a> of file <a class="el" href="Execution_8cpp_source.html">Execution.cpp</a>.</p>
+
+<p>References <a class="el" href="lib_2ExecutionEngine_2Interpreter_2Interpreter_8h_source.html#l00074">llvm::ExecutionContext::Values</a>.</p>
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l01289">llvm::Interpreter::callFunction()</a>, <a class="el" href="Execution_8cpp_source.html#l00742">llvm::Interpreter::visitAllocaInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00931">llvm::Interpreter::visitAShr()</a>, <a class="el" href="Execution_8cpp_source.html#l00521">llvm::Interpreter::visitBinaryOperator()</a>, <a class="el" href="Execution_8cpp_source.html#l01153">llvm::Interpreter::visitBitCastInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00844">llvm::Interpreter::visitCallSite()</a>, <a class="el" href="Execution_8cpp_source.html#l00445">llvm::Interpreter::visitFCmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01118">llvm::Interpreter::visitFPExtInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01138">llvm::Interpreter::visitFPToSIInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01133">llvm::Interpreter::visitFPToUIInst()</a>, <a class="e
 l" href="Execution_8cpp_source.html#l01113">llvm::Interpreter::visitFPTruncInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00813">llvm::Interpreter::visitGetElementPtrInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00257">llvm::Interpreter::visitICmpInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01148">llvm::Interpreter::visitIntToPtrInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00819">llvm::Interpreter::visitLoadInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00918">llvm::Interpreter::visitLShr()</a>, <a class="el" href="Execution_8cpp_source.html#l01143">llvm::Interpreter::visitPtrToIntInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00557">llvm::Interpreter::visitSelectInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01103">llvm::Interpreter::visitSExtInst()</a>, <a class="el" href="Execution_8cpp_source.html#l00905">llvm::Interpreter::visitShl()</a>, <a class="el" href="Execution_8cpp_so
 urce.html#l01128">llvm::Interpreter::visitSIToFPInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01098">llvm::Interpreter::visitTruncInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01123">llvm::Interpreter::visitUIToFPInst()</a>, <a class="el" href="Execution_8cpp_source.html#l01161">llvm::Interpreter::visitVAArgInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l01108">llvm::Interpreter::visitZExtInst()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c0fece9ed3c5502437724591ea00b98"></a><!-- doxytag: member="Execution.cpp::STATISTIC" ref="a0c0fece9ed3c5502437724591ea00b98" args="(NumDynamicInsts,"Number of dynamic instructions executed")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumDynamicInsts </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of dynamic <a class="el" href="SimplifyInstructions_8cpp.html#afbf38da490ab8cea559fee0c9081db06">instructions</a> executed" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a0339a81073d8163a4438ff8158a8e581"></a><!-- doxytag: member="Execution.cpp::PrintVolatile" ref="a0339a81073d8163a4438ff8158a8e581" args="("interpreter-print-volatile", cl::Hidden, cl::desc("make the interpreter print every volatile load and store"))" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a><<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a>> <a class="el" href="Execution_8cpp.html#a0339a81073d8163a4438ff8158a8e581">PrintVolatile</a>("interpreter-print-volatile", cl::Hidden, <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("make the interpreter print every volatile load and store"))<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="Execution_8cpp_source.html#l00819">llvm::Interpreter::visitLoadInst()</a>, and <a class="el" href="Execution_8cpp_source.html#l00830">llvm::Interpreter::visitStoreInst()</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,36 @@
+<map id="G" name="G">
+<area shape="rect" href="$Constants_8h.html" title="llvm/Constants.h" alt="" coords="1113,316,1241,343"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="1877,548,2083,575"/>
+<area shape="rect" href="$APInt_8h.html" title="llvm/ADT/APInt.h" alt="" coords="1119,471,1244,497"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="1411,548,1600,575"/>
+<area shape="rect" href="$DerivedTypes_8h.html" title="llvm/DerivedTypes.h" alt="" coords="531,393,677,420"/>
+<area shape="rect" href="$Instructions_8h.html" title="llvm/Instructions.h" alt="" coords="885,84,1021,111"/>
+<area shape="rect" href="$IntrinsicLowering_8h.html" title="llvm/CodeGen/IntrinsicLowering.h" alt="" coords="1525,239,1757,265"/>
+<area shape="rect" href="$GetElementPtrTypeIterator_8h.html" title="llvm/Support/GetElementPtrTypeIterator.h" alt="" coords="1373,316,1659,343"/>
+<area shape="rect" href="$Statistic_8h.html" title="llvm/ADT/Statistic.h" alt="" coords="204,548,348,575"/>
+<area shape="rect" href="$CommandLine_8h.html" title="llvm/Support/CommandLine.h" alt="" coords="1424,393,1635,420"/>
+<area shape="rect" href="$Debug_8h.html" title="llvm/Support/Debug.h" alt="" coords="2336,84,2496,111"/>
+<area shape="rect" href="$Constant_8h.html" title="llvm/Constant.h" alt="" coords="1659,393,1779,420"/>
+<area shape="rect" href="$OperandTraits_8h.html" title="llvm/OperandTraits.h" alt="" coords="1904,393,2056,420"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="1005,548,1149,575"/>
+<area shape="rect" href="$APFloat_8h.html" title="llvm/ADT/APFloat.h" alt="" coords="1107,393,1248,420"/>
+<area shape="rect" href="$User_8h.html" title="llvm/User.h" alt="" coords="1935,471,2025,497"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="652,703,825,729"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="1877,625,2027,652"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="1696,703,1883,729"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="764,780,948,807"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="816,625,984,652"/>
+<area shape="rect" href="$SwapByteOrder_8h.html" title="llvm/Support/SwapByteOrder.h" alt="" coords="1245,625,1461,652"/>
+<area shape="rect" href="$Type_8h.html" title="llvm/Type.h" alt="" coords="587,548,677,575"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="1485,625,1651,652"/>
+<area shape="rect" href="$InstrTypes_8h.html" title="llvm/InstrTypes.h" alt="" coords="1933,316,2059,343"/>
+<area shape="rect" href="$Attributes_8h.html" title="llvm/Attributes.h" alt="" coords="1268,471,1393,497"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="1112,161,1248,188"/>
+<area shape="rect" href="$IntegersSubset_8h.html" title="llvm/Support/IntegersSubset.h" alt="" coords="768,239,984,265"/>
+<area shape="rect" href="$IntegersSubsetMapping_8h.html" title="llvm/Support/IntegersSubsetMapping.h" alt="" coords="819,161,1088,188"/>
+<area shape="rect" href="$Instruction_8h.html" title="llvm/Instruction.h" alt="" coords="2080,393,2211,420"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="2255,471,2380,497"/>
+<area shape="rect" href="$Intrinsics_8h.html" title="llvm/Intrinsics.h" alt="" coords="1417,471,1537,497"/>
+<area shape="rect" href="$Atomic_8h.html" title="llvm/Support/Atomic.h" alt="" coords="5,625,168,652"/>
+<area shape="rect" href="$Valgrind_8h.html" title="llvm/Support/Valgrind.h" alt="" coords="192,625,360,652"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Execution_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+8f2bb7afdd422a1c3d91ee61da46302e
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/ExpandISelPseudos_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ExpandISelPseudos_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/ExpandISelPseudos_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,486 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: ExternalFunctions.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_c92c51dc3debf4668a549c62f98ec4ab.html">ExecutionEngine</a>      </li>
+      <li class="navelem"><a class="el" href="dir_67e5f5b4ec08fa66f6c096161f4e9853.html">Interpreter</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">ExternalFunctions.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "Interpreter.h"</code><br/>
+<code>#include "<a class="el" href="DerivedTypes_8h_source.html">llvm/DerivedTypes.h</a>"</code><br/>
+<code>#include "<a class="el" href="Module_8h_source.html">llvm/Module.h</a>"</code><br/>
+<code>#include "<a class="el" href="config_8h_source.html">llvm/Config/config.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include "<a class="el" href="DynamicLibrary_8h_source.html">llvm/Support/DynamicLibrary.h</a>"</code><br/>
+<code>#include "<a class="el" href="DataLayout_8h_source.html">llvm/DataLayout.h</a>"</code><br/>
+<code>#include "<a class="el" href="ManagedStatic_8h_source.html">llvm/Support/ManagedStatic.h</a>"</code><br/>
+<code>#include "<a class="el" href="Mutex_8h_source.html">llvm/Support/Mutex.h</a>"</code><br/>
+<code>#include <csignal></code><br/>
+<code>#include <cstdio></code><br/>
+<code>#include <map></code><br/>
+<code>#include <cmath></code><br/>
+<code>#include <cstring></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for ExternalFunctions.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="ExternalFunctions_8cpp__incl.png" border="0" usemap="#ExternalFunctions_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="ExternalFunctions_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a>(* </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> )(<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &)</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classchar.html">char</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a62734f5491c71583869b1da8d274dc45">getTypeID</a> (<a class="el" href="classllvm_1_1Type.html">Type</a> *Ty)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a290f71a162bc8e8fd0bc72b222c029fc">lookupFunction</a> (const <a class="el" href="classllvm_1_1Function.html">Function</a> *F)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a113fb88c25adefeda1e1a388596b0c30">lle_X_atexit</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a252f1ae1f834b54ea53d92e7fb4b0f54">lle_X_exit</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#aa5190c029512359c3cb7c974c921df27">lle_X_abort</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">lle_X_sprintf</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a26aaf8a0f90debea73d98bbe83656696">lle_X_printf</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a01d4fa08c448cf946e92117e4b529695">lle_X_sscanf</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a41aca42649628091ca41dfe6c54434db">lle_X_scanf</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &args)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#adae6786de87c20e153376d8cf21dce45">lle_X_fprintf</a> (<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &Args)</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1ManagedStatic.html">ManagedStatic</a>< <a class="el" href="namespacellvm_1_1sys.html#a52d48084c5b60251870b6118e4670fee">sys::Mutex</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1ManagedStatic.html">ManagedStatic</a>< std::map<br class="typebreak"/>
+< const <a class="el" href="classllvm_1_1Function.html">Function</a> *, <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static std::map< std::string, <br class="typebreak"/>
+<a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1Interpreter.html">Interpreter</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a></td></tr>
+</table>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="add1fc594dd1967228ba9806235d6bd54"></a><!-- doxytag: member="ExternalFunctions.cpp::ExFunc" ref="add1fc594dd1967228ba9806235d6bd54" args=")(FunctionType *, const std::vector< GenericValue > &)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a>(* <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a>)(<a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> *, const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > &)</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00051">51</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a62734f5491c71583869b1da8d274dc45"></a><!-- doxytag: member="ExternalFunctions.cpp::getTypeID" ref="a62734f5491c71583869b1da8d274dc45" args="(Type *Ty)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="classchar.html">char</a> getTypeID </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1Type.html">Type</a> * </td>
+          <td class="paramname"><em>Ty</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00063">63</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="Type_8h_source.html#l00067">llvm::Type::ArrayTyID</a>, <a class="el" href="Type_8h_source.html#l00054">llvm::Type::DoubleTyID</a>, <a class="el" href="Type_8h_source.html#l00053">llvm::Type::FloatTyID</a>, <a class="el" href="Type_8h_source.html#l00065">llvm::Type::FunctionTyID</a>, <a class="el" href="Type_8h_source.html#l00133">llvm::Type::getTypeID()</a>, <a class="el" href="Type_8h_source.html#l00064">llvm::Type::IntegerTyID</a>, <a class="el" href="Type_8h_source.html#l00068">llvm::Type::PointerTyID</a>, <a class="el" href="Type_8h_source.html#l00066">llvm::Type::StructTyID</a>, and <a class="el" href="Type_8h_source.html#l00051">llvm::Type::VoidTyID</a>.</p>
+
+<p>Referenced by <a class="el" href="Constants_8cpp_source.html#l02385">llvm::ConstantDataSequential::getElementAsAPFloat()</a>, <a class="el" href="ExecutionEngineBindings_8cpp_source.html#l00039">LLVMCreateGenericValueOfFloat()</a>, <a class="el" href="ExecutionEngineBindings_8cpp_source.html#l00071">LLVMGenericValueToFloat()</a>, <a class="el" href="Core_8cpp_source.html#l00153">LLVMGetTypeKind()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00090">lookupFunction()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5190c029512359c3cb7c974c921df27"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_abort" ref="aa5190c029512359c3cb7c974c921df27" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00321">321</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a113fb88c25adefeda1e1a388596b0c30"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_atexit" ref="a113fb88c25adefeda1e1a388596b0c30" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_atexit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00302">302</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="lib_2ExecutionEngine_2Interpreter_2Interpreter_8h_source.html#l00190">llvm::Interpreter::addAtExitHandler()</a>, <a class="el" href="GenericValue_8h_source.html#l00041">llvm::GVTOP()</a>, <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00061">TheInterpreter</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a252f1ae1f834b54ea53d92e7fb4b0f54"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_exit" ref="a252f1ae1f834b54ea53d92e7fb4b0f54" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_exit </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00313">313</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="Execution_8cpp_source.html#l00571">llvm::Interpreter::exitCalled()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00061">TheInterpreter</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adae6786de87c20e153376d8cf21dce45"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_fprintf" ref="adae6786de87c20e153376d8cf21dce45" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_fprintf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00460">460</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="TargetLibraryInfo_8h_source.html#l00173">llvm::LibFunc::fputs</a>, <a class="el" href="GenericValue_8h_source.html#l00041">llvm::GVTOP()</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00332">lle_X_sprintf()</a>, and <a class="el" href="GenericValue_8h_source.html#l00040">llvm::PTOGV()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a26aaf8a0f90debea73d98bbe83656696"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_printf" ref="a26aaf8a0f90debea73d98bbe83656696" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_printf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00414">414</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="ExternalFunctions_8cpp_source.html#l00332">lle_X_sprintf()</a>, <a class="el" href="raw__ostream_8cpp_source.html#l00664">llvm::outs()</a>, and <a class="el" href="GenericValue_8h_source.html#l00040">llvm::PTOGV()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a41aca42649628091ca41dfe6c54434db"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_scanf" ref="a41aca42649628091ca41dfe6c54434db" args="(FunctionType *FT, const std::vector< GenericValue > &args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_scanf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00443">443</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="GenericValue_8h_source.html#l00041">llvm::GVTOP()</a>, and <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0745eac6295f1d69a7c42e6686548459"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_sprintf" ref="a0745eac6295f1d69a7c42e6686548459" args="(FunctionType *FT, const std::vector< GenericValue > &Args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_sprintf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>Args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00332">332</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="raw__ostream_8cpp_source.html#l00674">llvm::errs()</a>, <a class="el" href="ExecutionEngine_2ExecutionEngine_8h_source.html#l00216">llvm::ExecutionEngine::getDataLayout()</a>, <a class="el" href="DataLayout_8h_source.html#l00266">llvm::DataLayout::getPointerSizeInBits()</a>, <a class="el" href="GenericValue_8h_source.html#l00041">llvm::GVTOP()</a>, <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>, <a class="el" href="TGLexer_8h_source.html#l00053">llvm::tgtok::IntVal</a>, <a class="el" href="TargetLibraryInfo_8h_source.html#l00218">llvm::LibFunc::memcpy</a>, <a class="el" href="TargetLibraryInfo_8h_source.html#l00294">llvm::LibFunc::strlen</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00061">TheInterpreter</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00460">lle_X_fprintf()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00414">lle_X_printf()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a01d4fa08c448cf946e92117e4b529695"></a><!-- doxytag: member="ExternalFunctions.cpp::lle_X_sscanf" ref="a01d4fa08c448cf946e92117e4b529695" args="(FunctionType *FT, const std::vector< GenericValue > &args)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> lle_X_sscanf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1FunctionType.html">FunctionType</a> * </td>
+          <td class="paramname"><em>FT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector< <a class="el" href="structllvm_1_1GenericValue.html">GenericValue</a> > & </td>
+          <td class="paramname"><em>args</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00427">427</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="GenericValue_8h_source.html#l00041">llvm::GVTOP()</a>, and <a class="el" href="GenericValue_8h_source.html#l00034">llvm::GenericValue::IntVal</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a290f71a162bc8e8fd0bc72b222c029fc"></a><!-- doxytag: member="ExternalFunctions.cpp::lookupFunction" ref="a290f71a162bc8e8fd0bc72b222c029fc" args="(const Function *F)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> lookupFunction </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1Function.html">Function</a> * </td>
+          <td class="paramname"><em>F</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00090">90</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>References <a class="el" href="ExternalFunctions_8cpp_source.html#l00053">ExportedFunctions</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00054">FuncNames</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00049">FunctionsLock</a>, <a class="el" href="Type_8h_source.html#l00315">llvm::Type::getContainedType()</a>, <a class="el" href="Function_8cpp_source.html#l00144">llvm::Function::getFunctionType()</a>, <a class="el" href="Value_8cpp_source.html#l00164">llvm::Value::getName()</a>, <a class="el" href="Type_8h_source.html#l00322">llvm::Type::getNumContainedTypes()</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00063">getTypeID()</a>, <a class="el" href="DynamicLibrary_8cpp_source.html#l00128">llvm::sys::DynamicLibrary::SearchForAddressOfSymbol()</a>, and <a class="el" href="StringRef_8h_source.html#l00182">llvm::StringRef::str()</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00247">llvm::Interpreter::callExternalFunction()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a49f5da3fdbd44a088da5bf6c9208245e"></a><!-- doxytag: member="ExternalFunctions.cpp::ExportedFunctions" ref="a49f5da3fdbd44a088da5bf6c9208245e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1ManagedStatic.html">ManagedStatic</a><std::map<const <a class="el" href="classllvm_1_1Function.html">Function</a> *, <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a>> > <a class="el" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00053">53</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00247">llvm::Interpreter::callExternalFunction()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00090">lookupFunction()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1bad47210ee634cb8cf2d28a402fc576"></a><!-- doxytag: member="ExternalFunctions.cpp::FuncNames" ref="a1bad47210ee634cb8cf2d28a402fc576" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::map<std::string, <a class="el" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a>> <a class="el" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00054">54</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00090">lookupFunction()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acedc6c5a16aa8ddac39477baac1e2408"></a><!-- doxytag: member="ExternalFunctions.cpp::FunctionsLock" ref="acedc6c5a16aa8ddac39477baac1e2408" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1ManagedStatic.html">ManagedStatic</a><<a class="el" href="namespacellvm_1_1sys.html#a52d48084c5b60251870b6118e4670fee">sys::Mutex</a>> <a class="el" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00049">49</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00247">llvm::Interpreter::callExternalFunction()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00090">lookupFunction()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5f422dfbc738ed5acebbbff28996ba95"></a><!-- doxytag: member="ExternalFunctions.cpp::TheInterpreter" ref="a5f422dfbc738ed5acebbbff28996ba95" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1Interpreter.html">Interpreter</a>* <a class="el" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ExternalFunctions_8cpp_source.html#l00061">61</a> of file <a class="el" href="ExternalFunctions_8cpp_source.html">ExternalFunctions.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="ExternalFunctions_8cpp_source.html#l00247">llvm::Interpreter::callExternalFunction()</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00302">lle_X_atexit()</a>, <a class="el" href="ExternalFunctions_8cpp_source.html#l00313">lle_X_exit()</a>, and <a class="el" href="ExternalFunctions_8cpp_source.html#l00332">lle_X_sprintf()</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,158 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="ExternalFunctions.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="Interpreter.h",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Type.h",height=0.2,width=0.4,color="black",URL="$Type_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="red",URL="$Casting_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/Function.h",height=0.2,width=0.4,color="black",URL="$Function_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node14 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node19 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node22 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Argument.h",height=0.2,width=0.4,color="black",URL="$Argument_8h.html"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Value.h",height=0.2,width=0.4,color="red",URL="$Value_8h.html"];
+  Node24 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node27 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node27 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node23 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="black",URL="$GlobalVariable_8h.html"];
+  Node31 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="red",URL="$OperandTraits_8h.html"];
+  Node31 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="black",URL="$GlobalAlias_8h.html"];
+  Node33 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Metadata.h",height=0.2,width=0.4,color="black",URL="$Metadata_8h.html"];
+  Node34 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/FoldingSet.h",height=0.2,width=0.4,color="black",URL="$FoldingSet_8h.html"];
+  Node35 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Config/config.h",height=0.2,width=0.4,color="black",URL="$config_8h.html"];
+  Node1 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/DynamicLibrary.h",height=0.2,width=0.4,color="black",URL="$DynamicLibrary_8h.html"];
+  Node38 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/DataLayout.h",height=0.2,width=0.4,color="black",URL="$DataLayout_8h.html"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node40 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node41 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/ManagedStatic.h",height=0.2,width=0.4,color="black",URL="$ManagedStatic_8h.html"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node43 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Support/Threading.h",height=0.2,width=0.4,color="black",URL="$Threading_8h.html"];
+  Node42 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node45 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/Mutex.h",height=0.2,width=0.4,color="black",URL="$Mutex_8h.html"];
+  Node46 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="csignal",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="cmath",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ExternalFunctions_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,540 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: ExternalFunctions.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_c92c51dc3debf4668a549c62f98ec4ab.html">ExecutionEngine</a>      </li>
+      <li class="navelem"><a class="el" href="dir_67e5f5b4ec08fa66f6c096161f4e9853.html">Interpreter</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">ExternalFunctions.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="ExternalFunctions_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- ExternalFunctions.cpp - Implement External Functions --------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">//  This file contains both code to deal with invoking "external" functions, but</span>
+<a name="l00011"></a>00011 <span class="comment">//  also contains code that implements "exported" external functions.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//  There are currently two mechanisms for handling external functions in the</span>
+<a name="l00014"></a>00014 <span class="comment">//  Interpreter.  The first is to implement lle_* wrapper functions that are</span>
+<a name="l00015"></a>00015 <span class="comment">//  specific to well-known library functions which manually translate the</span>
+<a name="l00016"></a>00016 <span class="comment">//  arguments from GenericValues and make the call.  If such a wrapper does</span>
+<a name="l00017"></a>00017 <span class="comment">//  not exist, and libffi is available, then the Interpreter will attempt to</span>
+<a name="l00018"></a>00018 <span class="comment">//  invoke the function using libffi, after finding its address.</span>
+<a name="l00019"></a>00019 <span class="comment">//</span>
+<a name="l00020"></a>00020 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="preprocessor">#include "Interpreter.h"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="DerivedTypes_8h.html">llvm/DerivedTypes.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="Module_8h.html">llvm/Module.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="config_8h.html">llvm/Config/config.h</a>"</span>     <span class="comment">// Detect libffi</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="DynamicLibrary_8h.html">llvm/Support/DynamicLibrary.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="DataLayout_8h.html">llvm/DataLayout.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="ManagedStatic_8h.html">llvm/Support/ManagedStatic.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="Mutex_8h.html">llvm/Support/Mutex.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include <csignal></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include <cstdio></span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include <map></span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include <cmath></span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include <cstring></span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifdef HAVE_FFI_CALL</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#ifdef HAVE_FFI_H</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#include <ffi.h></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#define USE_LIBFFI</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#elif HAVE_FFI_FFI_H</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#include <ffi/ffi.h></span>
+<a name="l00043"></a>00043 <span class="preprocessor">#define USE_LIBFFI</span>
+<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="keyword">using namespace </span>llvm;
+<a name="l00048"></a>00048 
+<a name="l00049"></a><a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">00049</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1ManagedStatic.html">ManagedStatic<sys::Mutex></a> <a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>;
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">00051</a> <span class="keyword">typedef</span> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> (*<a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a>)(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *,
+<a name="l00052"></a>00052                                <span class="keyword">const</span> std::vector<GenericValue> &);
+<a name="l00053"></a><a class="code" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">00053</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1ManagedStatic.html">ManagedStatic<std::map<const Function *, ExFunc></a> > <a class="code" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a>;
+<a name="l00054"></a><a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">00054</a> <span class="keyword">static</span> std::map<std::string, ExFunc> <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>;
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056 <span class="preprocessor">#ifdef USE_LIBFFI</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="keyword">typedef</span> void (*RawFunc)();
+<a name="l00058"></a>00058 <span class="keyword">static</span> <a class="code" href="classllvm_1_1ManagedStatic.html">ManagedStatic<std::map<const Function *, RawFunc></a> > RawFunctions;
+<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span>
+<a name="l00061"></a><a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">00061</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1Interpreter.html">Interpreter</a> *<a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a>;
+<a name="l00062"></a>00062 
+<a name="l00063"></a><a class="code" href="ExternalFunctions_8cpp.html#a62734f5491c71583869b1da8d274dc45">00063</a> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="ExternalFunctions_8cpp.html#a62734f5491c71583869b1da8d274dc45">getTypeID</a>(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty) {
+<a name="l00064"></a>00064   <span class="keywordflow">switch</span> (Ty-><a class="code" href="classllvm_1_1Type.html#a8e08dfcb75ff1b4b38c352bc0d9db223">getTypeID</a>()) {
+<a name="l00065"></a>00065   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa567ac2c7944f770cfb2c2cffc94b3520" title="0: type with no size">Type::VoidTyID</a>:    <span class="keywordflow">return</span> <span class="charliteral">'V'</span>;
+<a name="l00066"></a>00066   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa8e724092b0496fe3d16e29863b46c249" title="10: Arbitrary bit width integers">Type::IntegerTyID</a>:
+<a name="l00067"></a>00067     <span class="keywordflow">switch</span> (cast<IntegerType>(Ty)->getBitWidth()) {
+<a name="l00068"></a>00068       <span class="keywordflow">case</span> 1:  <span class="keywordflow">return</span> <span class="charliteral">'o'</span>;
+<a name="l00069"></a>00069       <span class="keywordflow">case</span> 8:  <span class="keywordflow">return</span> <span class="charliteral">'B'</span>;
+<a name="l00070"></a>00070       <span class="keywordflow">case</span> 16: <span class="keywordflow">return</span> <span class="charliteral">'S'</span>;
+<a name="l00071"></a>00071       <span class="keywordflow">case</span> 32: <span class="keywordflow">return</span> <span class="charliteral">'I'</span>;
+<a name="l00072"></a>00072       <span class="keywordflow">case</span> 64: <span class="keywordflow">return</span> <span class="charliteral">'L'</span>;
+<a name="l00073"></a>00073       <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <span class="charliteral">'N'</span>;
+<a name="l00074"></a>00074     }
+<a name="l00075"></a>00075   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa6a5dd38c5c337ac6ce6d5847b1ca7f15" title="2: 32-bit floating point type">Type::FloatTyID</a>:   <span class="keywordflow">return</span> <span class="charliteral">'F'</span>;
+<a name="l00076"></a>00076   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaabc549945f13bb5d5f5b80c550d2b92f5" title="3: 64-bit floating point type">Type::DoubleTyID</a>:  <span class="keywordflow">return</span> <span class="charliteral">'D'</span>;
+<a name="l00077"></a>00077   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaae68df805bc15b023748c2a78b80563ff" title="14: Pointers">Type::PointerTyID</a>: <span class="keywordflow">return</span> <span class="charliteral">'P'</span>;
+<a name="l00078"></a>00078   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa0ec130d9ce9883b3e9c6071ee19a4b16" title="11: Functions">Type::FunctionTyID</a>:<span class="keywordflow">return</span> <span class="charliteral">'M'</span>;
+<a name="l00079"></a>00079   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa812a573d23fbb37aacd025e2a0588156" title="12: Structures">Type::StructTyID</a>:  <span class="keywordflow">return</span> <span class="charliteral">'T'</span>;
+<a name="l00080"></a>00080   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa2989d3024a84b4dda9d77419b1648554" title="13: Arrays">Type::ArrayTyID</a>:   <span class="keywordflow">return</span> <span class="charliteral">'A'</span>;
+<a name="l00081"></a>00081   <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <span class="charliteral">'U'</span>;
+<a name="l00082"></a>00082   }
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="comment">// Try to find address of external function given a Function object.</span>
+<a name="l00086"></a>00086 <span class="comment">// Please note, that interpreter doesn't know how to assemble a</span>
+<a name="l00087"></a>00087 <span class="comment">// real call in general case (this is JIT job), that's why it assumes,</span>
+<a name="l00088"></a>00088 <span class="comment">// that all external functions has the same (and pretty "general") signature.</span>
+<a name="l00089"></a>00089 <span class="comment">// The typical example of such functions are "lle_X_" ones.</span>
+<a name="l00090"></a><a class="code" href="ExternalFunctions_8cpp.html#a290f71a162bc8e8fd0bc72b222c029fc">00090</a> <span class="keyword">static</span> <a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> <a class="code" href="ExternalFunctions_8cpp.html#a290f71a162bc8e8fd0bc72b222c029fc">lookupFunction</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a> *<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00091"></a>00091   <span class="comment">// Function not found, look it up... start by figuring out what the</span>
+<a name="l00092"></a>00092   <span class="comment">// composite function name should be.</span>
+<a name="l00093"></a>00093   std::string ExtName = <span class="stringliteral">"lle_"</span>;
+<a name="l00094"></a>00094   <a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT = F-><a class="code" href="classllvm_1_1Function.html#adf66d58e85fb4e46e9c1ae55186a6930">getFunctionType</a>();
+<a name="l00095"></a>00095   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = FT-><a class="code" href="classllvm_1_1Type.html#ad083201ba4e1f8217bdc1f1ab05bd83d">getNumContainedTypes</a>(); i != e; ++i)
+<a name="l00096"></a>00096     ExtName += <a class="code" href="ExternalFunctions_8cpp.html#a62734f5491c71583869b1da8d274dc45">getTypeID</a>(FT-><a class="code" href="classllvm_1_1Type.html#a1e2a8dc174c34596e7e8efc7ab7e08a0">getContainedType</a>(i));
+<a name="l00097"></a>00097   ExtName += <span class="stringliteral">"_"</span> + F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>().<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>();
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099   <a class="code" href="classllvm_1_1sys_1_1SmartScopedLock.html">sys::ScopedLock</a> Writer(*<a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>);
+<a name="l00100"></a>00100   <a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> FnPtr = <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[ExtName];
+<a name="l00101"></a>00101   <span class="keywordflow">if</span> (FnPtr == 0)
+<a name="l00102"></a>00102     FnPtr = <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_"</span> + F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>().<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>()];
+<a name="l00103"></a>00103   <span class="keywordflow">if</span> (FnPtr == 0)  <span class="comment">// Try calling a generic function... if it exists...</span>
+<a name="l00104"></a>00104     FnPtr = (<a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a>)(<a class="code" href="classintptr__t.html">intptr_t</a>)
+<a name="l00105"></a>00105       <a class="code" href="classllvm_1_1sys_1_1DynamicLibrary.html#ae003d16a33e81b88943d3e3aa179fcc4" title="Search through libraries for address of a symbol.">sys::DynamicLibrary::SearchForAddressOfSymbol</a>(<span class="stringliteral">"lle_X_"</span> +
+<a name="l00106"></a>00106                                                     F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>().<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>());
+<a name="l00107"></a>00107   <span class="keywordflow">if</span> (FnPtr != 0)
+<a name="l00108"></a>00108     <a class="code" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a>->insert(std::make_pair(F, FnPtr));  <span class="comment">// Cache for later</span>
+<a name="l00109"></a>00109   <span class="keywordflow">return</span> FnPtr;
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111 
+<a name="l00112"></a>00112 <span class="preprocessor">#ifdef USE_LIBFFI</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="keyword">static</span> ffi_type *ffiTypeFor(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty) {
+<a name="l00114"></a>00114   <span class="keywordflow">switch</span> (Ty-><a class="code" href="classllvm_1_1Type.html#a8e08dfcb75ff1b4b38c352bc0d9db223">getTypeID</a>()) {
+<a name="l00115"></a>00115     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa567ac2c7944f770cfb2c2cffc94b3520" title="0: type with no size">Type::VoidTyID</a>: <span class="keywordflow">return</span> &ffi_type_void;
+<a name="l00116"></a>00116     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa8e724092b0496fe3d16e29863b46c249" title="10: Arbitrary bit width integers">Type::IntegerTyID</a>:
+<a name="l00117"></a>00117       <span class="keywordflow">switch</span> (cast<IntegerType>(Ty)->getBitWidth()) {
+<a name="l00118"></a>00118         <span class="keywordflow">case</span> 8:  <span class="keywordflow">return</span> &ffi_type_sint8;
+<a name="l00119"></a>00119         <span class="keywordflow">case</span> 16: <span class="keywordflow">return</span> &ffi_type_sint16;
+<a name="l00120"></a>00120         <span class="keywordflow">case</span> 32: <span class="keywordflow">return</span> &ffi_type_sint32;
+<a name="l00121"></a>00121         <span class="keywordflow">case</span> 64: <span class="keywordflow">return</span> &ffi_type_sint64;
+<a name="l00122"></a>00122       }
+<a name="l00123"></a>00123     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa6a5dd38c5c337ac6ce6d5847b1ca7f15" title="2: 32-bit floating point type">Type::FloatTyID</a>:   <span class="keywordflow">return</span> &ffi_type_float;
+<a name="l00124"></a>00124     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaabc549945f13bb5d5f5b80c550d2b92f5" title="3: 64-bit floating point type">Type::DoubleTyID</a>:  <span class="keywordflow">return</span> &ffi_type_double;
+<a name="l00125"></a>00125     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaae68df805bc15b023748c2a78b80563ff" title="14: Pointers">Type::PointerTyID</a>: <span class="keywordflow">return</span> &ffi_type_pointer;
+<a name="l00126"></a>00126     <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;
+<a name="l00127"></a>00127   }
+<a name="l00128"></a>00128   <span class="comment">// TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc.</span>
+<a name="l00129"></a>00129   <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Type could not be mapped for use with libffi."</span>);
+<a name="l00130"></a>00130   <span class="keywordflow">return</span> NULL;
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133 <span class="keyword">static</span> <span class="keywordtype">void</span> *ffiValueFor(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty, <span class="keyword">const</span> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> &AV,
+<a name="l00134"></a>00134                          <span class="keywordtype">void</span> *ArgDataPtr) {
+<a name="l00135"></a>00135   <span class="keywordflow">switch</span> (Ty-><a class="code" href="classllvm_1_1Type.html#a8e08dfcb75ff1b4b38c352bc0d9db223">getTypeID</a>()) {
+<a name="l00136"></a>00136     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa8e724092b0496fe3d16e29863b46c249" title="10: Arbitrary bit width integers">Type::IntegerTyID</a>:
+<a name="l00137"></a>00137       <span class="keywordflow">switch</span> (cast<IntegerType>(Ty)->getBitWidth()) {
+<a name="l00138"></a>00138         <span class="keywordflow">case</span> 8: {
+<a name="l00139"></a>00139           <a class="code" href="classint8__t.html">int8_t</a> *I8Ptr = (<a class="code" href="classint8__t.html">int8_t</a> *) ArgDataPtr;
+<a name="l00140"></a>00140           *I8Ptr = (<a class="code" href="classint8__t.html">int8_t</a>) AV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a>.<a class="code" href="classllvm_1_1APInt.html#a7dc983ebf0eb2d255fa90a67063c72e2" title="Get zero extended value.">getZExtValue</a>();
+<a name="l00141"></a>00141           <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00142"></a>00142         }
+<a name="l00143"></a>00143         <span class="keywordflow">case</span> 16: {
+<a name="l00144"></a>00144           int16_t *I16Ptr = (int16_t *) ArgDataPtr;
+<a name="l00145"></a>00145           *I16Ptr = (int16_t) AV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a>.<a class="code" href="classllvm_1_1APInt.html#a7dc983ebf0eb2d255fa90a67063c72e2" title="Get zero extended value.">getZExtValue</a>();
+<a name="l00146"></a>00146           <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00147"></a>00147         }
+<a name="l00148"></a>00148         <span class="keywordflow">case</span> 32: {
+<a name="l00149"></a>00149           int32_t *I32Ptr = (int32_t *) ArgDataPtr;
+<a name="l00150"></a>00150           *I32Ptr = (int32_t) AV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a>.<a class="code" href="classllvm_1_1APInt.html#a7dc983ebf0eb2d255fa90a67063c72e2" title="Get zero extended value.">getZExtValue</a>();
+<a name="l00151"></a>00151           <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00152"></a>00152         }
+<a name="l00153"></a>00153         <span class="keywordflow">case</span> 64: {
+<a name="l00154"></a>00154           <a class="code" href="classint64__t.html">int64_t</a> *I64Ptr = (<a class="code" href="classint64__t.html">int64_t</a> *) ArgDataPtr;
+<a name="l00155"></a>00155           *I64Ptr = (<a class="code" href="classint64__t.html">int64_t</a>) AV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a>.<a class="code" href="classllvm_1_1APInt.html#a7dc983ebf0eb2d255fa90a67063c72e2" title="Get zero extended value.">getZExtValue</a>();
+<a name="l00156"></a>00156           <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00157"></a>00157         }
+<a name="l00158"></a>00158       }
+<a name="l00159"></a>00159     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa6a5dd38c5c337ac6ce6d5847b1ca7f15" title="2: 32-bit floating point type">Type::FloatTyID</a>: {
+<a name="l00160"></a>00160       <span class="keywordtype">float</span> *FloatPtr = (<span class="keywordtype">float</span> *) ArgDataPtr;
+<a name="l00161"></a>00161       *FloatPtr = AV.<a class="code" href="structllvm_1_1GenericValue.html#a5160197592bd1fc5c8cc81cd803e0629">FloatVal</a>;
+<a name="l00162"></a>00162       <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00163"></a>00163     }
+<a name="l00164"></a>00164     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaabc549945f13bb5d5f5b80c550d2b92f5" title="3: 64-bit floating point type">Type::DoubleTyID</a>: {
+<a name="l00165"></a>00165       <span class="keywordtype">double</span> *DoublePtr = (<span class="keywordtype">double</span> *) ArgDataPtr;
+<a name="l00166"></a>00166       *DoublePtr = AV.<a class="code" href="structllvm_1_1GenericValue.html#a9810b36b4c4c17901d491f5aac030623">DoubleVal</a>;
+<a name="l00167"></a>00167       <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00168"></a>00168     }
+<a name="l00169"></a>00169     <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaae68df805bc15b023748c2a78b80563ff" title="14: Pointers">Type::PointerTyID</a>: {
+<a name="l00170"></a>00170       <span class="keywordtype">void</span> **PtrPtr = (<span class="keywordtype">void</span> **) ArgDataPtr;
+<a name="l00171"></a>00171       *PtrPtr = <a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(AV);
+<a name="l00172"></a>00172       <span class="keywordflow">return</span> ArgDataPtr;
+<a name="l00173"></a>00173     }
+<a name="l00174"></a>00174     <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;
+<a name="l00175"></a>00175   }
+<a name="l00176"></a>00176   <span class="comment">// TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc.</span>
+<a name="l00177"></a>00177   <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Type value could not be mapped for use with libffi."</span>);
+<a name="l00178"></a>00178   <span class="keywordflow">return</span> NULL;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a>00181 <span class="keyword">static</span> <span class="keywordtype">bool</span> ffiInvoke(RawFunc Fn, <a class="code" href="classllvm_1_1Function.html">Function</a> *<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>,
+<a name="l00182"></a>00182                       <span class="keyword">const</span> std::vector<GenericValue> &ArgVals,
+<a name="l00183"></a>00183                       <span class="keyword">const</span> <a class="code" href="classllvm_1_1DataLayout.html">DataLayout</a> *TD, <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> &Result) {
+<a name="l00184"></a>00184   ffi_cif cif;
+<a name="l00185"></a>00185   <a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FTy = F-><a class="code" href="classllvm_1_1Function.html#adf66d58e85fb4e46e9c1ae55186a6930">getFunctionType</a>();
+<a name="l00186"></a>00186   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> NumArgs = F-><a class="code" href="classllvm_1_1Function.html#aef89c402976e04c0abe4b10a963d35e3">arg_size</a>();
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188   <span class="comment">// TODO: We don't have type information about the remaining arguments, because</span>
+<a name="l00189"></a>00189   <span class="comment">// this information is never passed into ExecutionEngine::runFunction().</span>
+<a name="l00190"></a>00190   <span class="keywordflow">if</span> (ArgVals.size() > NumArgs && F-><a class="code" href="classllvm_1_1Function.html#ae0466120bfdf5b97b25aa06f3015cd51">isVarArg</a>()) {
+<a name="l00191"></a>00191     <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Calling external var arg function '"</span> + F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>()
+<a name="l00192"></a>00192                       + <span class="stringliteral">"' is not supported by the Interpreter."</span>);
+<a name="l00193"></a>00193   }
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195   <span class="keywordtype">unsigned</span> ArgBytes = 0;
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197   std::vector<ffi_type*> args(NumArgs);
+<a name="l00198"></a>00198   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::const_arg_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> = F-><a class="code" href="classllvm_1_1Function.html#a8bf193a781a92cae52d7f9216d0824f8">arg_begin</a>(), E = F-><a class="code" href="classllvm_1_1Function.html#a8300ac1ef141b8a7c63c13fa9369d976">arg_end</a>();
+<a name="l00199"></a>00199        <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) {
+<a name="l00200"></a>00200     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ArgNo = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->getArgNo();
+<a name="l00201"></a>00201     <a class="code" href="classllvm_1_1Type.html">Type</a> *ArgTy = FTy-><a class="code" href="classllvm_1_1FunctionType.html#a176b84b12bc19326444728c6404dd068">getParamType</a>(ArgNo);
+<a name="l00202"></a>00202     args[ArgNo] = ffiTypeFor(ArgTy);
+<a name="l00203"></a>00203     ArgBytes += TD-><a class="code" href="classllvm_1_1DataLayout.html#a4b979cd93852fd44c48851c94ee00758">getTypeStoreSize</a>(ArgTy);
+<a name="l00204"></a>00204   }
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<uint8_t, 128></a> ArgData;
+<a name="l00207"></a>00207   ArgData.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a102d0ad36060677286c3aefb812e5512">resize</a>(ArgBytes);
+<a name="l00208"></a>00208   uint8_t *ArgDataPtr = ArgData.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>();
+<a name="l00209"></a>00209   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<void*, 16></a> <a class="code" href="namespacellvm_1_1cl.html#a27a0bf90e37db96939e0b5e1daffb0a6">values</a>(NumArgs);
+<a name="l00210"></a>00210   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::const_arg_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> = F-><a class="code" href="classllvm_1_1Function.html#a8bf193a781a92cae52d7f9216d0824f8">arg_begin</a>(), E = F-><a class="code" href="classllvm_1_1Function.html#a8300ac1ef141b8a7c63c13fa9369d976">arg_end</a>();
+<a name="l00211"></a>00211        <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) {
+<a name="l00212"></a>00212     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ArgNo = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->getArgNo();
+<a name="l00213"></a>00213     <a class="code" href="classllvm_1_1Type.html">Type</a> *ArgTy = FTy-><a class="code" href="classllvm_1_1FunctionType.html#a176b84b12bc19326444728c6404dd068">getParamType</a>(ArgNo);
+<a name="l00214"></a>00214     <a class="code" href="namespacellvm_1_1cl.html#a27a0bf90e37db96939e0b5e1daffb0a6">values</a>[ArgNo] = ffiValueFor(ArgTy, ArgVals[ArgNo], ArgDataPtr);
+<a name="l00215"></a>00215     ArgDataPtr += TD-><a class="code" href="classllvm_1_1DataLayout.html#a4b979cd93852fd44c48851c94ee00758">getTypeStoreSize</a>(ArgTy);
+<a name="l00216"></a>00216   }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218   <a class="code" href="classllvm_1_1Type.html">Type</a> *<a class="code" href="namespacellvm.html#ab83a048107217f63353d29f525d4794b">RetTy</a> = FTy-><a class="code" href="classllvm_1_1FunctionType.html#a9eda832d6e80bc19b98f22f4ec714e3f">getReturnType</a>();
+<a name="l00219"></a>00219   ffi_type *rtype = ffiTypeFor(RetTy);
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221   <span class="keywordflow">if</span> (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, NumArgs, rtype, &args[0]) == FFI_OK) {
+<a name="l00222"></a>00222     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<uint8_t, 128></a> ret;
+<a name="l00223"></a>00223     <span class="keywordflow">if</span> (RetTy-><a class="code" href="classllvm_1_1Type.html#a8e08dfcb75ff1b4b38c352bc0d9db223">getTypeID</a>() != <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa567ac2c7944f770cfb2c2cffc94b3520" title="0: type with no size">Type::VoidTyID</a>)
+<a name="l00224"></a>00224       ret.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a102d0ad36060677286c3aefb812e5512">resize</a>(TD-><a class="code" href="classllvm_1_1DataLayout.html#a4b979cd93852fd44c48851c94ee00758">getTypeStoreSize</a>(RetTy));
+<a name="l00225"></a>00225     ffi_call(&cif, Fn, ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>(), <a class="code" href="namespacellvm_1_1cl.html#a27a0bf90e37db96939e0b5e1daffb0a6">values</a>.data());
+<a name="l00226"></a>00226     <span class="keywordflow">switch</span> (RetTy-><a class="code" href="classllvm_1_1Type.html#a8e08dfcb75ff1b4b38c352bc0d9db223">getTypeID</a>()) {
+<a name="l00227"></a>00227       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa8e724092b0496fe3d16e29863b46c249" title="10: Arbitrary bit width integers">Type::IntegerTyID</a>:
+<a name="l00228"></a>00228         <span class="keywordflow">switch</span> (cast<IntegerType>(RetTy)->getBitWidth()) {
+<a name="l00229"></a>00229           <span class="keywordflow">case</span> 8:  Result.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(8 , *(<a class="code" href="classint8__t.html">int8_t</a> *) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>()); <span class="keywordflow">break</span>;
+<a name="l00230"></a>00230           <span class="keywordflow">case</span> 16: Result.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(16, *(int16_t*) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>()); <span class="keywordflow">break</span>;
+<a name="l00231"></a>00231           <span class="keywordflow">case</span> 32: Result.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(32, *(int32_t*) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>()); <span class="keywordflow">break</span>;
+<a name="l00232"></a>00232           <span class="keywordflow">case</span> 64: Result.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(64, *(<a class="code" href="classint64__t.html">int64_t</a>*) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>()); <span class="keywordflow">break</span>;
+<a name="l00233"></a>00233         }
+<a name="l00234"></a>00234         <span class="keywordflow">break</span>;
+<a name="l00235"></a>00235       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaa6a5dd38c5c337ac6ce6d5847b1ca7f15" title="2: 32-bit floating point type">Type::FloatTyID</a>:   Result.<a class="code" href="structllvm_1_1GenericValue.html#a5160197592bd1fc5c8cc81cd803e0629">FloatVal</a>   = *(<span class="keywordtype">float</span> *) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>(); <span class="keywordflow">break</span>;
+<a name="l00236"></a>00236       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaabc549945f13bb5d5f5b80c550d2b92f5" title="3: 64-bit floating point type">Type::DoubleTyID</a>:  Result.<a class="code" href="structllvm_1_1GenericValue.html#a9810b36b4c4c17901d491f5aac030623">DoubleVal</a>  = *(<span class="keywordtype">double</span>*) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>(); <span class="keywordflow">break</span>;
+<a name="l00237"></a>00237       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1Type.html#a5e9e1c0dd93557be1b4ad72860f3cbdaae68df805bc15b023748c2a78b80563ff" title="14: Pointers">Type::PointerTyID</a>: Result.<a class="code" href="structllvm_1_1GenericValue.html#a23f8c75218aea0cfcfe0f3e4223d3b02">PointerVal</a> = *(<span class="keywordtype">void</span> **) ret.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a7b68be12c974b6b70bc86062f221a344" title="data - Return a pointer to the vector's buffer, even if empty().">data</a>(); <span class="keywordflow">break</span>;
+<a name="l00238"></a>00238       <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;
+<a name="l00239"></a>00239     }
+<a name="l00240"></a>00240     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00241"></a>00241   }
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00244"></a>00244 }
+<a name="l00245"></a>00245 <span class="preprocessor">#endif // USE_LIBFFI</span>
+<a name="l00246"></a>00246 <span class="preprocessor"></span>
+<a name="l00247"></a><a class="code" href="classllvm_1_1Interpreter.html#aa9a07a325a74cd2043037529d39ebcc6">00247</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="classllvm_1_1Interpreter.html#aa9a07a325a74cd2043037529d39ebcc6">Interpreter::callExternalFunction</a>(<a class="code" href="classllvm_1_1Function.html">Function</a> *F,
+<a name="l00248"></a>00248                                      <span class="keyword">const</span> std::vector<GenericValue> &ArgVals) {
+<a name="l00249"></a>00249   <a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a> = <span class="keyword">this</span>;
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251   <a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>->acquire();
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253   <span class="comment">// Do a lookup to see if the function is in our cache... this should just be a</span>
+<a name="l00254"></a>00254   <span class="comment">// deferred annotation!</span>
+<a name="l00255"></a>00255   std::map<const Function *, ExFunc>::iterator FI = <a class="code" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a>->find(F);
+<a name="l00256"></a>00256   <span class="keywordflow">if</span> (<a class="code" href="ExternalFunctions_8cpp.html#add1fc594dd1967228ba9806235d6bd54">ExFunc</a> Fn = (FI == <a class="code" href="ExternalFunctions_8cpp.html#a49f5da3fdbd44a088da5bf6c9208245e">ExportedFunctions</a>->end()) ? <a class="code" href="ExternalFunctions_8cpp.html#a290f71a162bc8e8fd0bc72b222c029fc">lookupFunction</a>(F)
+<a name="l00257"></a>00257                                                    : FI->second) {
+<a name="l00258"></a>00258     <a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>->release();
+<a name="l00259"></a>00259     <span class="keywordflow">return</span> Fn(F-><a class="code" href="classllvm_1_1Function.html#adf66d58e85fb4e46e9c1ae55186a6930">getFunctionType</a>(), ArgVals);
+<a name="l00260"></a>00260   }
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262 <span class="preprocessor">#ifdef USE_LIBFFI</span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span>  std::map<const Function *, RawFunc>::iterator RF = RawFunctions->find(F);
+<a name="l00264"></a>00264   RawFunc RawFn;
+<a name="l00265"></a>00265   <span class="keywordflow">if</span> (RF == RawFunctions->end()) {
+<a name="l00266"></a>00266     RawFn = (RawFunc)(<a class="code" href="classintptr__t.html">intptr_t</a>)
+<a name="l00267"></a>00267       <a class="code" href="classllvm_1_1sys_1_1DynamicLibrary.html#ae003d16a33e81b88943d3e3aa179fcc4" title="Search through libraries for address of a symbol.">sys::DynamicLibrary::SearchForAddressOfSymbol</a>(F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>());
+<a name="l00268"></a>00268     <span class="keywordflow">if</span> (!RawFn)
+<a name="l00269"></a>00269       RawFn = (RawFunc)(<a class="code" href="classintptr__t.html">intptr_t</a>)<a class="code" href="classllvm_1_1ExecutionEngine.html#aa5d335340f7ac093e81c965ba69a7aac">getPointerToGlobalIfAvailable</a>(F);
+<a name="l00270"></a>00270     <span class="keywordflow">if</span> (RawFn != 0)
+<a name="l00271"></a>00271       RawFunctions->insert(std::make_pair(F, RawFn));  <span class="comment">// Cache for later</span>
+<a name="l00272"></a>00272   } <span class="keywordflow">else</span> {
+<a name="l00273"></a>00273     RawFn = RF->second;
+<a name="l00274"></a>00274   }
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276   <a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>->release();
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> Result;
+<a name="l00279"></a>00279   <span class="keywordflow">if</span> (RawFn != 0 && ffiInvoke(RawFn, F, ArgVals, <a class="code" href="classllvm_1_1ExecutionEngine.html#acd4f28beede9d5dbb801c030a70a35ab">getDataLayout</a>(), Result))
+<a name="l00280"></a>00280     <span class="keywordflow">return</span> Result;
+<a name="l00281"></a>00281 <span class="preprocessor">#endif // USE_LIBFFI</span>
+<a name="l00282"></a>00282 <span class="preprocessor"></span>
+<a name="l00283"></a>00283   <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>() == <span class="stringliteral">"__main"</span>)
+<a name="l00284"></a>00284     <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Tried to execute an unknown external function: "</span>
+<a name="l00285"></a>00285       << *F-><a class="code" href="classllvm_1_1GlobalValue.html#ad60ec7475b0ffe7fc1f68a8019780643" title="getType - Global values are always pointers.">getType</a>() << <span class="stringliteral">" __main\n"</span>;
+<a name="l00286"></a>00286   <span class="keywordflow">else</span>
+<a name="l00287"></a>00287     <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Tried to execute an unknown external function: "</span> +
+<a name="l00288"></a>00288                        F-><a class="code" href="classllvm_1_1Value.html#ad452febc1ac0b394876e640ec03ffa38">getName</a>());
+<a name="l00289"></a>00289 <span class="preprocessor">#ifndef USE_LIBFFI</span>
+<a name="l00290"></a>00290 <span class="preprocessor"></span>  <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Recompiling LLVM with --enable-libffi might help.\n"</span>;
+<a name="l00291"></a>00291 <span class="preprocessor">#endif</span>
+<a name="l00292"></a>00292 <span class="preprocessor"></span>  <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a>();
+<a name="l00293"></a>00293 }
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00297"></a>00297 <span class="comment">//  Functions "exported" to the running application...</span>
+<a name="l00298"></a>00298 <span class="comment">//</span>
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300 <span class="comment">// void atexit(Function*)</span>
+<a name="l00301"></a>00301 <span class="keyword">static</span>
+<a name="l00302"></a><a class="code" href="ExternalFunctions_8cpp.html#a113fb88c25adefeda1e1a388596b0c30">00302</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a113fb88c25adefeda1e1a388596b0c30">lle_X_atexit</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00303"></a>00303                           <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00304"></a>00304   assert(Args.size() == 1);
+<a name="l00305"></a>00305   <a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a>-><a class="code" href="classllvm_1_1Interpreter.html#a14691519e5b8fc508cabd95ec94d98d2">addAtExitHandler</a>((<a class="code" href="classllvm_1_1Function.html">Function</a>*)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[0]));
+<a name="l00306"></a>00306   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV;
+<a name="l00307"></a>00307   GV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = 0;
+<a name="l00308"></a>00308   <span class="keywordflow">return</span> GV;
+<a name="l00309"></a>00309 }
+<a name="l00310"></a>00310 
+<a name="l00311"></a>00311 <span class="comment">// void exit(int)</span>
+<a name="l00312"></a>00312 <span class="keyword">static</span>
+<a name="l00313"></a><a class="code" href="ExternalFunctions_8cpp.html#a252f1ae1f834b54ea53d92e7fb4b0f54">00313</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a252f1ae1f834b54ea53d92e7fb4b0f54">lle_X_exit</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00314"></a>00314                         <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00315"></a>00315   <a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a>-><a class="code" href="classllvm_1_1Interpreter.html#a27a48d828a2227311270264ae0e78f8c">exitCalled</a>(Args[0]);
+<a name="l00316"></a>00316   <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a>();
+<a name="l00317"></a>00317 }
+<a name="l00318"></a>00318 
+<a name="l00319"></a>00319 <span class="comment">// void abort(void)</span>
+<a name="l00320"></a>00320 <span class="keyword">static</span>
+<a name="l00321"></a><a class="code" href="ExternalFunctions_8cpp.html#aa5190c029512359c3cb7c974c921df27">00321</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#aa5190c029512359c3cb7c974c921df27">lle_X_abort</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00322"></a>00322                          <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00323"></a>00323   <span class="comment">//FIXME: should we report or raise here?</span>
+<a name="l00324"></a>00324   <span class="comment">//report_fatal_error("Interpreted program raised SIGABRT");</span>
+<a name="l00325"></a>00325   <span class="keyword">raise</span> (SIGABRT);
+<a name="l00326"></a>00326   <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a>();
+<a name="l00327"></a>00327 }
+<a name="l00328"></a>00328 
+<a name="l00329"></a>00329 <span class="comment">// int sprintf(char *, const char *, ...) - a very rough implementation to make</span>
+<a name="l00330"></a>00330 <span class="comment">// output useful.</span>
+<a name="l00331"></a>00331 <span class="keyword">static</span>
+<a name="l00332"></a><a class="code" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">00332</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">lle_X_sprintf</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00333"></a>00333                            <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00334"></a>00334   <span class="keywordtype">char</span> *<a class="code" href="classllvm_1_1OutputBuffer.html">OutputBuffer</a> = (<span class="keywordtype">char</span> *)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[0]);
+<a name="l00335"></a>00335   <span class="keyword">const</span> <span class="keywordtype">char</span> *FmtStr = (<span class="keyword">const</span> <span class="keywordtype">char</span> *)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[1]);
+<a name="l00336"></a>00336   <span class="keywordtype">unsigned</span> ArgNo = 2;
+<a name="l00337"></a>00337 
+<a name="l00338"></a>00338   <span class="comment">// printf should return # chars printed.  This is completely incorrect, but</span>
+<a name="l00339"></a>00339   <span class="comment">// close enough for now.</span>
+<a name="l00340"></a>00340   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV;
+<a name="l00341"></a>00341   GV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(32, <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa0b976adf6aef24ee68598686784f3d66" title="size_t strlen(const char *s);">strlen</a>(FmtStr));
+<a name="l00342"></a>00342   <span class="keywordflow">while</span> (1) {
+<a name="l00343"></a>00343     <span class="keywordflow">switch</span> (*FmtStr) {
+<a name="l00344"></a>00344     <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> GV;             <span class="comment">// Null terminator...</span>
+<a name="l00345"></a>00345     <span class="keywordflow">default</span>:                       <span class="comment">// Normal nonspecial character</span>
+<a name="l00346"></a>00346       sprintf(OutputBuffer++, <span class="stringliteral">"%c"</span>, *FmtStr++);
+<a name="l00347"></a>00347       <span class="keywordflow">break</span>;
+<a name="l00348"></a>00348     <span class="keywordflow">case</span> <span class="charliteral">'\\'</span>: {                   <span class="comment">// Handle escape codes</span>
+<a name="l00349"></a>00349       sprintf(OutputBuffer, <span class="stringliteral">"%c%c"</span>, *FmtStr, *(FmtStr+1));
+<a name="l00350"></a>00350       FmtStr += 2; OutputBuffer += 2;
+<a name="l00351"></a>00351       <span class="keywordflow">break</span>;
+<a name="l00352"></a>00352     }
+<a name="l00353"></a>00353     <span class="keywordflow">case</span> <span class="charliteral">'%'</span>: {                    <span class="comment">// Handle format specifiers</span>
+<a name="l00354"></a>00354       <span class="keywordtype">char</span> FmtBuf[100] = <span class="stringliteral">""</span>, Buffer[1000] = <span class="stringliteral">""</span>;
+<a name="l00355"></a>00355       <span class="keywordtype">char</span> *FB = FmtBuf;
+<a name="l00356"></a>00356       *FB++ = *FmtStr++;
+<a name="l00357"></a>00357       <span class="keywordtype">char</span> Last = *FB++ = *FmtStr++;
+<a name="l00358"></a>00358       <span class="keywordtype">unsigned</span> HowLong = 0;
+<a name="l00359"></a>00359       <span class="keywordflow">while</span> (Last != <span class="charliteral">'c'</span> && Last != <span class="charliteral">'d'</span> && Last != <span class="charliteral">'i'</span> && Last != <span class="charliteral">'u'</span> &&
+<a name="l00360"></a>00360              Last != <span class="charliteral">'o'</span> && Last != <span class="charliteral">'x'</span> && Last != <span class="charliteral">'X'</span> && Last != <span class="charliteral">'e'</span> &&
+<a name="l00361"></a>00361              Last != <span class="charliteral">'E'</span> && Last != <span class="charliteral">'g'</span> && Last != <span class="charliteral">'G'</span> && Last != <span class="charliteral">'f'</span> &&
+<a name="l00362"></a>00362              Last != <span class="charliteral">'p'</span> && Last != <span class="charliteral">'s'</span> && Last != <span class="charliteral">'%'</span>) {
+<a name="l00363"></a>00363         <span class="keywordflow">if</span> (Last == <span class="charliteral">'l'</span> || Last == <span class="charliteral">'L'</span>) HowLong++;  <span class="comment">// Keep track of l's</span>
+<a name="l00364"></a>00364         Last = *FB++ = *FmtStr++;
+<a name="l00365"></a>00365       }
+<a name="l00366"></a>00366       *FB = 0;
+<a name="l00367"></a>00367 
+<a name="l00368"></a>00368       <span class="keywordflow">switch</span> (Last) {
+<a name="l00369"></a>00369       <span class="keywordflow">case</span> <span class="charliteral">'%'</span>:
+<a name="l00370"></a>00370         <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fad5203242bc89eaa644dc7b7ba2371c1d" title="void *memcpy(void *s1, const void *s2, size_t n);">memcpy</a>(Buffer, <span class="stringliteral">"%"</span>, 2); <span class="keywordflow">break</span>;
+<a name="l00371"></a>00371       <span class="keywordflow">case</span> <span class="charliteral">'c'</span>:
+<a name="l00372"></a>00372         sprintf(Buffer, FmtBuf, uint32_t(Args[ArgNo++].<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3a7597ca475c0fcf10856ef36351d1ac">IntVal</a>.getZExtValue()));
+<a name="l00373"></a>00373         <span class="keywordflow">break</span>;
+<a name="l00374"></a>00374       <span class="keywordflow">case</span> <span class="charliteral">'d'</span>: <span class="keywordflow">case</span> <span class="charliteral">'i'</span>:
+<a name="l00375"></a>00375       <span class="keywordflow">case</span> <span class="charliteral">'u'</span>: <span class="keywordflow">case</span> <span class="charliteral">'o'</span>:
+<a name="l00376"></a>00376       <span class="keywordflow">case</span> <span class="charliteral">'x'</span>: <span class="keywordflow">case</span> <span class="charliteral">'X'</span>:
+<a name="l00377"></a>00377         <span class="keywordflow">if</span> (HowLong >= 1) {
+<a name="l00378"></a>00378           <span class="keywordflow">if</span> (HowLong == 1 &&
+<a name="l00379"></a>00379               <a class="code" href="ExternalFunctions_8cpp.html#a5f422dfbc738ed5acebbbff28996ba95">TheInterpreter</a>-><a class="code" href="classllvm_1_1ExecutionEngine.html#acd4f28beede9d5dbb801c030a70a35ab">getDataLayout</a>()-><a class="code" href="classllvm_1_1DataLayout.html#a9cb015699ac01dfa6ebb3cc4ce5a6a93">getPointerSizeInBits</a>() == 64 &&
+<a name="l00380"></a>00380               <span class="keyword">sizeof</span>(long) < <span class="keyword">sizeof</span>(<a class="code" href="classint64__t.html">int64_t</a>)) {
+<a name="l00381"></a>00381             <span class="comment">// Make sure we use %lld with a 64 bit argument because we might be</span>
+<a name="l00382"></a>00382             <span class="comment">// compiling LLI on a 32 bit compiler.</span>
+<a name="l00383"></a>00383             <span class="keywordtype">unsigned</span> Size = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa0b976adf6aef24ee68598686784f3d66" title="size_t strlen(const char *s);">strlen</a>(FmtBuf);
+<a name="l00384"></a>00384             FmtBuf[Size] = FmtBuf[Size-1];
+<a name="l00385"></a>00385             FmtBuf[Size+1] = 0;
+<a name="l00386"></a>00386             FmtBuf[Size-1] = <span class="charliteral">'l'</span>;
+<a name="l00387"></a>00387           }
+<a name="l00388"></a>00388           sprintf(Buffer, FmtBuf, Args[ArgNo++].<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3a7597ca475c0fcf10856ef36351d1ac">IntVal</a>.getZExtValue());
+<a name="l00389"></a>00389         } <span class="keywordflow">else</span>
+<a name="l00390"></a>00390           sprintf(Buffer, FmtBuf,uint32_t(Args[ArgNo++].<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3a7597ca475c0fcf10856ef36351d1ac">IntVal</a>.getZExtValue()));
+<a name="l00391"></a>00391         <span class="keywordflow">break</span>;
+<a name="l00392"></a>00392       <span class="keywordflow">case</span> <span class="charliteral">'e'</span>: <span class="keywordflow">case</span> <span class="charliteral">'E'</span>: <span class="keywordflow">case</span> <span class="charliteral">'g'</span>: <span class="keywordflow">case</span> <span class="charliteral">'G'</span>: <span class="keywordflow">case</span> <span class="charliteral">'f'</span>:
+<a name="l00393"></a>00393         sprintf(Buffer, FmtBuf, Args[ArgNo++].DoubleVal); <span class="keywordflow">break</span>;
+<a name="l00394"></a>00394       <span class="keywordflow">case</span> <span class="charliteral">'p'</span>:
+<a name="l00395"></a>00395         sprintf(Buffer, FmtBuf, (<span class="keywordtype">void</span>*)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[ArgNo++])); <span class="keywordflow">break</span>;
+<a name="l00396"></a>00396       <span class="keywordflow">case</span> <span class="charliteral">'s'</span>:
+<a name="l00397"></a>00397         sprintf(Buffer, FmtBuf, (<span class="keywordtype">char</span>*)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[ArgNo++])); <span class="keywordflow">break</span>;
+<a name="l00398"></a>00398       <span class="keywordflow">default</span>:
+<a name="l00399"></a>00399         <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"<unknown printf code '"</span> << *FmtStr << <span class="stringliteral">"'!>"</span>;
+<a name="l00400"></a>00400         ArgNo++; <span class="keywordflow">break</span>;
+<a name="l00401"></a>00401       }
+<a name="l00402"></a>00402       <span class="keywordtype">size_t</span> Len = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa0b976adf6aef24ee68598686784f3d66" title="size_t strlen(const char *s);">strlen</a>(Buffer);
+<a name="l00403"></a>00403       <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fad5203242bc89eaa644dc7b7ba2371c1d" title="void *memcpy(void *s1, const void *s2, size_t n);">memcpy</a>(OutputBuffer, Buffer, Len + 1);
+<a name="l00404"></a>00404       OutputBuffer += Len;
+<a name="l00405"></a>00405       }
+<a name="l00406"></a>00406       <span class="keywordflow">break</span>;
+<a name="l00407"></a>00407     }
+<a name="l00408"></a>00408   }
+<a name="l00409"></a>00409 }
+<a name="l00410"></a>00410 
+<a name="l00411"></a>00411 <span class="comment">// int printf(const char *, ...) - a very rough implementation to make output</span>
+<a name="l00412"></a>00412 <span class="comment">// useful.</span>
+<a name="l00413"></a>00413 <span class="keyword">static</span>
+<a name="l00414"></a><a class="code" href="ExternalFunctions_8cpp.html#a26aaf8a0f90debea73d98bbe83656696">00414</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a26aaf8a0f90debea73d98bbe83656696">lle_X_printf</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00415"></a>00415                           <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00416"></a>00416   <span class="keywordtype">char</span> Buffer[10000];
+<a name="l00417"></a>00417   std::vector<GenericValue> NewArgs;
+<a name="l00418"></a>00418   NewArgs.push_back(<a class="code" href="namespacellvm.html#a77905b5e34e8754df1ed4051e0ad9d1a">PTOGV</a>((<span class="keywordtype">void</span>*)&Buffer[0]));
+<a name="l00419"></a>00419   NewArgs.insert(NewArgs.end(), Args.begin(), Args.end());
+<a name="l00420"></a>00420   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV = <a class="code" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">lle_X_sprintf</a>(FT, NewArgs);
+<a name="l00421"></a>00421   <a class="code" href="namespacellvm.html#a9d0b331739faa402bc2644494b5310c3">outs</a>() << Buffer;
+<a name="l00422"></a>00422   <span class="keywordflow">return</span> GV;
+<a name="l00423"></a>00423 }
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425 <span class="comment">// int sscanf(const char *format, ...);</span>
+<a name="l00426"></a>00426 <span class="keyword">static</span>
+<a name="l00427"></a><a class="code" href="ExternalFunctions_8cpp.html#a01d4fa08c448cf946e92117e4b529695">00427</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a01d4fa08c448cf946e92117e4b529695">lle_X_sscanf</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00428"></a>00428                           <span class="keyword">const</span> std::vector<GenericValue> &args) {
+<a name="l00429"></a>00429   assert(args.size() < 10 && <span class="stringliteral">"Only handle up to 10 args to sscanf right now!"</span>);
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431   <span class="keywordtype">char</span> *Args[10];
+<a name="l00432"></a>00432   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < args.size(); ++i)
+<a name="l00433"></a>00433     Args[i] = (<span class="keywordtype">char</span>*)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(args[i]);
+<a name="l00434"></a>00434 
+<a name="l00435"></a>00435   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV;
+<a name="l00436"></a>00436   GV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(32, sscanf(Args[0], Args[1], Args[2], Args[3], Args[4],
+<a name="l00437"></a>00437                         Args[5], Args[6], Args[7], Args[8], Args[9]));
+<a name="l00438"></a>00438   <span class="keywordflow">return</span> GV;
+<a name="l00439"></a>00439 }
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441 <span class="comment">// int scanf(const char *format, ...);</span>
+<a name="l00442"></a>00442 <span class="keyword">static</span>
+<a name="l00443"></a><a class="code" href="ExternalFunctions_8cpp.html#a41aca42649628091ca41dfe6c54434db">00443</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#a41aca42649628091ca41dfe6c54434db">lle_X_scanf</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00444"></a>00444                          <span class="keyword">const</span> std::vector<GenericValue> &args) {
+<a name="l00445"></a>00445   assert(args.size() < 10 && <span class="stringliteral">"Only handle up to 10 args to scanf right now!"</span>);
+<a name="l00446"></a>00446 
+<a name="l00447"></a>00447   <span class="keywordtype">char</span> *Args[10];
+<a name="l00448"></a>00448   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < args.size(); ++i)
+<a name="l00449"></a>00449     Args[i] = (<span class="keywordtype">char</span>*)<a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(args[i]);
+<a name="l00450"></a>00450 
+<a name="l00451"></a>00451   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV;
+<a name="l00452"></a>00452   GV.<a class="code" href="structllvm_1_1GenericValue.html#adc1cecb2e860959165c8ad83d0d26023">IntVal</a> = <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a>(32, scanf( Args[0], Args[1], Args[2], Args[3], Args[4],
+<a name="l00453"></a>00453                         Args[5], Args[6], Args[7], Args[8], Args[9]));
+<a name="l00454"></a>00454   <span class="keywordflow">return</span> GV;
+<a name="l00455"></a>00455 }
+<a name="l00456"></a>00456 
+<a name="l00457"></a>00457 <span class="comment">// int fprintf(FILE *, const char *, ...) - a very rough implementation to make</span>
+<a name="l00458"></a>00458 <span class="comment">// output useful.</span>
+<a name="l00459"></a>00459 <span class="keyword">static</span>
+<a name="l00460"></a><a class="code" href="ExternalFunctions_8cpp.html#adae6786de87c20e153376d8cf21dce45">00460</a> <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> <a class="code" href="ExternalFunctions_8cpp.html#adae6786de87c20e153376d8cf21dce45">lle_X_fprintf</a>(<a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT,
+<a name="l00461"></a>00461                            <span class="keyword">const</span> std::vector<GenericValue> &Args) {
+<a name="l00462"></a>00462   assert(Args.size() >= 2);
+<a name="l00463"></a>00463   <span class="keywordtype">char</span> Buffer[10000];
+<a name="l00464"></a>00464   std::vector<GenericValue> NewArgs;
+<a name="l00465"></a>00465   NewArgs.push_back(<a class="code" href="namespacellvm.html#a77905b5e34e8754df1ed4051e0ad9d1a">PTOGV</a>(Buffer));
+<a name="l00466"></a>00466   NewArgs.insert(NewArgs.end(), Args.begin()+1, Args.end());
+<a name="l00467"></a>00467   <a class="code" href="structllvm_1_1GenericValue.html">GenericValue</a> GV = <a class="code" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">lle_X_sprintf</a>(FT, NewArgs);
+<a name="l00468"></a>00468 
+<a name="l00469"></a>00469   <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa4a8c8d091f5ba42ce62053cb01c157d5" title="int fputs(const char *s, FILE *stream);">fputs</a>(Buffer, (FILE *) <a class="code" href="namespacellvm.html#a7f09b8c588531603bac440b5fecc85bc">GVTOP</a>(Args[0]));
+<a name="l00470"></a>00470   <span class="keywordflow">return</span> GV;
+<a name="l00471"></a>00471 }
+<a name="l00472"></a>00472 
+<a name="l00473"></a>00473 <span class="keywordtype">void</span> Interpreter::initializeExternalFunctions() {
+<a name="l00474"></a>00474   <a class="code" href="classllvm_1_1sys_1_1SmartScopedLock.html">sys::ScopedLock</a> Writer(*<a class="code" href="ExternalFunctions_8cpp.html#acedc6c5a16aa8ddac39477baac1e2408">FunctionsLock</a>);
+<a name="l00475"></a>00475   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_atexit"</span>]       = <a class="code" href="ExternalFunctions_8cpp.html#a113fb88c25adefeda1e1a388596b0c30">lle_X_atexit</a>;
+<a name="l00476"></a>00476   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_exit"</span>]         = <a class="code" href="ExternalFunctions_8cpp.html#a252f1ae1f834b54ea53d92e7fb4b0f54">lle_X_exit</a>;
+<a name="l00477"></a>00477   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_abort"</span>]        = <a class="code" href="ExternalFunctions_8cpp.html#aa5190c029512359c3cb7c974c921df27">lle_X_abort</a>;
+<a name="l00478"></a>00478 
+<a name="l00479"></a>00479   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_printf"</span>]       = <a class="code" href="ExternalFunctions_8cpp.html#a26aaf8a0f90debea73d98bbe83656696">lle_X_printf</a>;
+<a name="l00480"></a>00480   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_sprintf"</span>]      = <a class="code" href="ExternalFunctions_8cpp.html#a0745eac6295f1d69a7c42e6686548459">lle_X_sprintf</a>;
+<a name="l00481"></a>00481   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_sscanf"</span>]       = <a class="code" href="ExternalFunctions_8cpp.html#a01d4fa08c448cf946e92117e4b529695">lle_X_sscanf</a>;
+<a name="l00482"></a>00482   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_scanf"</span>]        = <a class="code" href="ExternalFunctions_8cpp.html#a41aca42649628091ca41dfe6c54434db">lle_X_scanf</a>;
+<a name="l00483"></a>00483   <a class="code" href="ExternalFunctions_8cpp.html#a1bad47210ee634cb8cf2d28a402fc576">FuncNames</a>[<span class="stringliteral">"lle_X_fprintf"</span>]      = <a class="code" href="ExternalFunctions_8cpp.html#adae6786de87c20e153376d8cf21dce45">lle_X_fprintf</a>;
+<a name="l00484"></a>00484 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:41 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FEnv.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_b423301f639fc46b24b2c9f122fcaff7.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">FEnv.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="config_8h_source.html">llvm/Config/config.h</a>"</code><br/>
+<code>#include <cerrno></code><br/>
+<code>#include <fenv.h></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for FEnv.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="FEnv_8h__incl.png" border="0" usemap="#FEnv_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="FEnv_8h__dep__incl.png" border="0" usemap="#FEnv_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="FEnv_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm_1_1sys.html">llvm::sys</a></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm_1_1sys.html#a58837baef5566816fb09a436bf8f6185">llvm::sys::llvm_fenv_clearexcept</a> ()</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">llvm_fenv_clearexcept - Clear the floating-point exception state.  <a href="#a58837baef5566816fb09a436bf8f6185"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm_1_1sys.html#a6b3e39f5f28fbc2504f4dbc1cf991644">llvm::sys::llvm_fenv_testexcept</a> ()</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">llvm_fenv_testexcept - Test if a floating-point exception was raised.  <a href="#a6b3e39f5f28fbc2504f4dbc1cf991644"></a><br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FEnv_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,13 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FEnv.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Config/config.h",height=0.2,width=0.4,color="black",URL="$config_8h.html"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="cerrno",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="fenv.h",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,33 @@
+<map id="G" name="G">
+<area shape="rect" href="$FastISel_8cpp.html" title="FastISel.cpp" alt="" coords="143,84,239,111"/>
+<area shape="rect" href="$SelectionDAGBuilder_8cpp.html" title="SelectionDAGBuilder.cpp" alt="" coords="263,84,441,111"/>
+<area shape="rect" href="$SelectionDAGISel_8cpp.html" title="SelectionDAGISel.cpp" alt="" coords="465,84,625,111"/>
+<area shape="rect" href="$ARMISelLowering_8h.html" title="ARMISelLowering.h" alt="" coords="707,84,845,111"/>
+<area shape="rect" href="$ARMFastISel_8cpp.html" title="ARMFastISel.cpp" alt="" coords="5,239,131,265"/>
+<area shape="rect" href="$X86ISelLowering_8h.html" title="X86ISelLowering.h" alt="" coords="1995,84,2131,111"/>
+<area shape="rect" href="$X86FastISel_8cpp.html" title="X86FastISel.cpp" alt="" coords="1467,239,1587,265"/>
+<area shape="rect" href="$ARMTargetMachine_8h.html" title="ARMTargetMachine.h" alt="" coords="700,161,852,188"/>
+<area shape="rect" href="$ARMISelLowering_8cpp.html" title="ARMISelLowering.cpp" alt="" coords="1288,239,1443,265"/>
+<area shape="rect" href="$ARMAsmPrinter_8h.html" title="ARMAsmPrinter.h" alt="" coords="205,239,336,265"/>
+<area shape="rect" href="$ARMAsmPrinter_8cpp.html" title="ARMAsmPrinter.cpp" alt="" coords="95,316,241,343"/>
+<area shape="rect" href="$ARMCodeEmitter_8cpp.html" title="ARMCodeEmitter.cpp" alt="" coords="360,239,515,265"/>
+<area shape="rect" href="$ARMInstrInfo_8cpp.html" title="ARMInstrInfo.cpp" alt="" coords="539,239,667,265"/>
+<area shape="rect" href="$ARMISelDAGToDAG_8cpp.html" title="ARMISelDAGToDAG.cpp" alt="" coords="691,239,861,265"/>
+<area shape="rect" href="$ARMSelectionDAGInfo_8cpp.html" title="ARMSelectionDAGInfo.cpp" alt="" coords="885,239,1072,265"/>
+<area shape="rect" href="$ARMTargetMachine_8cpp.html" title="ARMTargetMachine.cpp" alt="" coords="1096,239,1264,265"/>
+<area shape="rect" href="$ARMMCInstLower_8cpp.html" title="ARMMCInstLower.cpp" alt="" coords="265,316,420,343"/>
+<area shape="rect" href="$X86TargetMachine_8h.html" title="X86TargetMachine.h" alt="" coords="2252,161,2401,188"/>
+<area shape="rect" href="$X86ISelLowering_8cpp.html" title="X86ISelLowering.cpp" alt="" coords="3408,239,3560,265"/>
+<area shape="rect" href="$X86AsmPrinter_8h.html" title="X86AsmPrinter.h" alt="" coords="1661,239,1789,265"/>
+<area shape="rect" href="$X86AsmPrinter_8cpp.html" title="X86AsmPrinter.cpp" alt="" coords="1553,316,1695,343"/>
+<area shape="rect" href="$X86CodeEmitter_8cpp.html" title="X86CodeEmitter.cpp" alt="" coords="1813,239,1965,265"/>
+<area shape="rect" href="$X86FrameLowering_8cpp.html" title="X86FrameLowering.cpp" alt="" coords="1989,239,2157,265"/>
+<area shape="rect" href="$X86InstrInfo_8cpp.html" title="X86InstrInfo.cpp" alt="" coords="2181,239,2304,265"/>
+<area shape="rect" href="$X86ISelDAGToDAG_8cpp.html" title="X86ISelDAGToDAG.cpp" alt="" coords="2328,239,2493,265"/>
+<area shape="rect" href="$X86JITInfo_8cpp.html" title="X86JITInfo.cpp" alt="" coords="2517,239,2624,265"/>
+<area shape="rect" href="$X86RegisterInfo_8cpp.html" title="X86RegisterInfo.cpp" alt="" coords="2648,239,2795,265"/>
+<area shape="rect" href="$X86SelectionDAGInfo_8cpp.html" title="X86SelectionDAGInfo.cpp" alt="" coords="2819,239,3003,265"/>
+<area shape="rect" href="$X86TargetMachine_8cpp.html" title="X86TargetMachine.cpp" alt="" coords="3027,239,3189,265"/>
+<area shape="rect" href="$X86TargetObjectFile_8cpp.html" title="X86TargetObjectFile.cpp" alt="" coords="3213,239,3384,265"/>
+<area shape="rect" href="$X86MCInstLower_8cpp.html" title="X86MCInstLower.cpp" alt="" coords="1719,316,1871,343"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+4a73224206dd45bf5e40bdddb74ef0ec
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/FastISel_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,115 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FileOutputBuffer.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Support/FileOutputBuffer.h",height=0.2,width=0.4,color="black",URL="$FileOutputBuffer_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/SmallString.h",height=0.2,width=0.4,color="black",URL="$SmallString_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node21 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node24 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/FileSystem.h",height=0.2,width=0.4,color="black",URL="$FileSystem_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/IntrusiveRefCntPtr.h",height=0.2,width=0.4,color="black",URL="$IntrusiveRefCntPtr_8h.html"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="black",URL="$Casting_8h.html"];
+  Node27 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node28 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node29 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/system_error.h",height=0.2,width=0.4,color="black",URL="$system__error_8h.html"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node30 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="cerrno",height=0.2,width=0.4,color="grey75"];
+  Node30 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="ctime",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="stack",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node36 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FileOutputBuffer_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,59 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FileOutputBuffer.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/ADT/SmallString.h",height=0.2,width=0.4,color="black",URL="$SmallString_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node20 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FileUtilities.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_3927ff15cdce1d22d8dcb33a29894069.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">FileUtilities.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="FileUtilities_8h_source.html">llvm/Support/FileUtilities.h</a>"</code><br/>
+<code>#include "<a class="el" href="MemoryBuffer_8h_source.html">llvm/Support/MemoryBuffer.h</a>"</code><br/>
+<code>#include "<a class="el" href="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include "<a class="el" href="Path_8h_source.html">llvm/Support/Path.h</a>"</code><br/>
+<code>#include "<a class="el" href="system__error_8h_source.html">llvm/Support/system_error.h</a>"</code><br/>
+<code>#include "<a class="el" href="OwningPtr_8h_source.html">llvm/ADT/OwningPtr.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallString_8h_source.html">llvm/ADT/SmallString.h</a>"</code><br/>
+<code>#include <cstdlib></code><br/>
+<code>#include <cstring></code><br/>
+<code>#include <cctype></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for FileUtilities.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="FileUtilities_8cpp__incl.png" border="0" usemap="#FileUtilities_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="FileUtilities_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#a555e3bc93b050f6dd930421f91a40941">isSignedChar</a> (<a class="el" href="classchar.html">char</a> C)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#a4e74c040b7102445fcf9213cd5ef92d4">isExponentChar</a> (<a class="el" href="classchar.html">char</a> C)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a> (<a class="el" href="classchar.html">char</a> C)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classchar.html">char</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a> (const <a class="el" href="classchar.html">char</a> *Pos, const <a class="el" href="classchar.html">char</a> *FirstChar)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classchar.html">char</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#a75d85cb3a96bad5f824f1cc2290d6532">EndOfNumber</a> (const <a class="el" href="classchar.html">char</a> *Pos)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="FileUtilities_8cpp.html#ad284d03503e7fc4f8dba0aa7b10da106">CompareNumbers</a> (const <a class="el" href="classchar.html">char</a> *&F1P, const <a class="el" href="classchar.html">char</a> *&F2P, const <a class="el" href="classchar.html">char</a> *F1End, const <a class="el" href="classchar.html">char</a> *F2End, double AbsTolerance, double RelTolerance, std::string *ErrorMsg)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">CompareNumbers - compare two numbers, returning true if they are different.  <a href="#ad284d03503e7fc4f8dba0aa7b10da106"></a><br/></td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a7112219ad7ea9b651d7bc772350f1f19"></a><!-- doxytag: member="FileUtilities.cpp::BackupNumber" ref="a7112219ad7ea9b651d7bc772350f1f19" args="(const char *Pos, const char *FirstChar)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="classchar.html">char</a>* BackupNumber </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> * </td>
+          <td class="paramname"><em>Pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> * </td>
+          <td class="paramname"><em>FirstChar</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00050">50</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>References <a class="el" href="FileUtilities_8cpp_source.html#l00031">isExponentChar()</a>, <a class="el" href="FileUtilities_8cpp_source.html#l00041">isNumberChar()</a>, and <a class="el" href="FileUtilities_8cpp_source.html#l00027">isSignedChar()</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00174">llvm::DiffFilesWithTolerance()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad284d03503e7fc4f8dba0aa7b10da106"></a><!-- doxytag: member="FileUtilities.cpp::CompareNumbers" ref="ad284d03503e7fc4f8dba0aa7b10da106" args="(const char *&F1P, const char *&F2P, const char *F1End, const char *F2End, double AbsTolerance, double RelTolerance, std::string *ErrorMsg)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> CompareNumbers </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> *& </td>
+          <td class="paramname"><em>F1P</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> *& </td>
+          <td class="paramname"><em>F2P</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> * </td>
+          <td class="paramname"><em>F1End</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> * </td>
+          <td class="paramname"><em>F2End</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double </td>
+          <td class="paramname"><em>AbsTolerance</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double </td>
+          <td class="paramname"><em>RelTolerance</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::string * </td>
+          <td class="paramname"><em>ErrorMsg</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>CompareNumbers - compare two numbers, returning true if they are different. </p>
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00081">81</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>References <a class="el" href="FileUtilities_8cpp_source.html#l00074">EndOfNumber()</a>, <a class="el" href="FileUtilities_8cpp_source.html#l00041">isNumberChar()</a>, <a class="el" href="TargetLibraryInfo_8h_source.html#l00314">llvm::LibFunc::strtod</a>, and <a class="el" href="NVPTX_8h_source.html#l00121">llvm::NVPTX::PTXLdStInstCode::V2</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00174">llvm::DiffFilesWithTolerance()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75d85cb3a96bad5f824f1cc2290d6532"></a><!-- doxytag: member="FileUtilities.cpp::EndOfNumber" ref="a75d85cb3a96bad5f824f1cc2290d6532" args="(const char *Pos)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="classchar.html">char</a>* EndOfNumber </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classchar.html">char</a> * </td>
+          <td class="paramname"><em>Pos</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>EndOfNumber - Return the first character that is not part of the specified number. This assumes that the buffer is null terminated, so it won't fall off the end. </p>
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00074">74</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>References <a class="el" href="FileUtilities_8cpp_source.html#l00041">isNumberChar()</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00081">CompareNumbers()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4e74c040b7102445fcf9213cd5ef92d4"></a><!-- doxytag: member="FileUtilities.cpp::isExponentChar" ref="a4e74c040b7102445fcf9213cd5ef92d4" args="(char C)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isExponentChar </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classchar.html">char</a> </td>
+          <td class="paramname"><em>C</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00031">31</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00050">BackupNumber()</a>, and <a class="el" href="FileUtilities_8cpp_source.html#l00041">isNumberChar()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8156d08864b8327047e16efcbd80f247"></a><!-- doxytag: member="FileUtilities.cpp::isNumberChar" ref="a8156d08864b8327047e16efcbd80f247" args="(char C)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isNumberChar </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classchar.html">char</a> </td>
+          <td class="paramname"><em>C</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00041">41</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>References <a class="el" href="FileUtilities_8cpp_source.html#l00031">isExponentChar()</a>, and <a class="el" href="FileUtilities_8cpp_source.html#l00027">isSignedChar()</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00050">BackupNumber()</a>, <a class="el" href="FileUtilities_8cpp_source.html#l00081">CompareNumbers()</a>, <a class="el" href="FileUtilities_8cpp_source.html#l00174">llvm::DiffFilesWithTolerance()</a>, and <a class="el" href="FileUtilities_8cpp_source.html#l00074">EndOfNumber()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a555e3bc93b050f6dd930421f91a40941"></a><!-- doxytag: member="FileUtilities.cpp::isSignedChar" ref="a555e3bc93b050f6dd930421f91a40941" args="(char C)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> isSignedChar </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classchar.html">char</a> </td>
+          <td class="paramname"><em>C</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="FileUtilities_8cpp_source.html#l00027">27</a> of file <a class="el" href="FileUtilities_8cpp_source.html">FileUtilities.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FileUtilities_8cpp_source.html#l00050">BackupNumber()</a>, and <a class="el" href="FileUtilities_8cpp_source.html#l00041">isNumberChar()</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FileUtilities.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_3927ff15cdce1d22d8dcb33a29894069.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FileUtilities.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="FileUtilities_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- Support/FileUtilities.cpp - File System Utilities ------------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements a family of utility functions which are useful for doing</span>
+<a name="l00011"></a>00011 <span class="comment">// various things with files.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="FileUtilities_8h.html">llvm/Support/FileUtilities.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="MemoryBuffer_8h.html">llvm/Support/MemoryBuffer.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="Path_8h.html">llvm/Support/Path.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="system__error_8h.html">llvm/Support/system_error.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="OwningPtr_8h.html">llvm/ADT/OwningPtr.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="SmallString_8h.html">llvm/ADT/SmallString.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include <cstdlib></span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include <cstring></span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include <cctype></span>
+<a name="l00025"></a>00025 <span class="keyword">using namespace </span>llvm;
+<a name="l00026"></a>00026 
+<a name="l00027"></a><a class="code" href="FileUtilities_8cpp.html#a555e3bc93b050f6dd930421f91a40941">00027</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="FileUtilities_8cpp.html#a555e3bc93b050f6dd930421f91a40941">isSignedChar</a>(<span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>) {
+<a name="l00028"></a>00028   <span class="keywordflow">return</span> (C == <span class="charliteral">'+'</span> || C == <span class="charliteral">'-'</span>);
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 
+<a name="l00031"></a><a class="code" href="FileUtilities_8cpp.html#a4e74c040b7102445fcf9213cd5ef92d4">00031</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="FileUtilities_8cpp.html#a4e74c040b7102445fcf9213cd5ef92d4">isExponentChar</a>(<span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>) {
+<a name="l00032"></a>00032   <span class="keywordflow">switch</span> (C) {
+<a name="l00033"></a>00033   <span class="keywordflow">case</span> <span class="charliteral">'D'</span>:  <span class="comment">// Strange exponential notation.</span>
+<a name="l00034"></a>00034   <span class="keywordflow">case</span> <span class="charliteral">'d'</span>:  <span class="comment">// Strange exponential notation.</span>
+<a name="l00035"></a>00035   <span class="keywordflow">case</span> <span class="charliteral">'e'</span>:
+<a name="l00036"></a>00036   <span class="keywordflow">case</span> <span class="charliteral">'E'</span>: <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00037"></a>00037   <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00038"></a>00038   }
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 
+<a name="l00041"></a><a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">00041</a> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(<span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>) {
+<a name="l00042"></a>00042   <span class="keywordflow">switch</span> (C) {
+<a name="l00043"></a>00043   <span class="keywordflow">case</span> <span class="charliteral">'0'</span>: <span class="keywordflow">case</span> <span class="charliteral">'1'</span>: <span class="keywordflow">case</span> <span class="charliteral">'2'</span>: <span class="keywordflow">case</span> <span class="charliteral">'3'</span>: <span class="keywordflow">case</span> <span class="charliteral">'4'</span>:
+<a name="l00044"></a>00044   <span class="keywordflow">case</span> <span class="charliteral">'5'</span>: <span class="keywordflow">case</span> <span class="charliteral">'6'</span>: <span class="keywordflow">case</span> <span class="charliteral">'7'</span>: <span class="keywordflow">case</span> <span class="charliteral">'8'</span>: <span class="keywordflow">case</span> <span class="charliteral">'9'</span>:
+<a name="l00045"></a>00045   <span class="keywordflow">case</span> <span class="charliteral">'.'</span>: <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00046"></a>00046   <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <a class="code" href="FileUtilities_8cpp.html#a555e3bc93b050f6dd930421f91a40941">isSignedChar</a>(C) || <a class="code" href="FileUtilities_8cpp.html#a4e74c040b7102445fcf9213cd5ef92d4">isExponentChar</a>(C);
+<a name="l00047"></a>00047   }
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a><a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">00050</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Pos, <span class="keyword">const</span> <span class="keywordtype">char</span> *FirstChar) {
+<a name="l00051"></a>00051   <span class="comment">// If we didn't stop in the middle of a number, don't backup.</span>
+<a name="l00052"></a>00052   <span class="keywordflow">if</span> (!<a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(*Pos)) <span class="keywordflow">return</span> Pos;
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054   <span class="comment">// Otherwise, return to the start of the number.</span>
+<a name="l00055"></a>00055   <span class="keywordtype">bool</span> HasPeriod = <span class="keyword">false</span>;
+<a name="l00056"></a>00056   <span class="keywordflow">while</span> (Pos > FirstChar && <a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(Pos[-1])) {
+<a name="l00057"></a>00057     <span class="comment">// Backup over at most one period.</span>
+<a name="l00058"></a>00058     <span class="keywordflow">if</span> (Pos[-1] == <span class="charliteral">'.'</span>) {
+<a name="l00059"></a>00059       <span class="keywordflow">if</span> (HasPeriod)
+<a name="l00060"></a>00060         <span class="keywordflow">break</span>;
+<a name="l00061"></a>00061       HasPeriod = <span class="keyword">true</span>;
+<a name="l00062"></a>00062     }
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064     --Pos;
+<a name="l00065"></a>00065     <span class="keywordflow">if</span> (Pos > FirstChar && <a class="code" href="FileUtilities_8cpp.html#a555e3bc93b050f6dd930421f91a40941">isSignedChar</a>(Pos[0]) && !<a class="code" href="FileUtilities_8cpp.html#a4e74c040b7102445fcf9213cd5ef92d4">isExponentChar</a>(Pos[-1]))
+<a name="l00066"></a>00066       <span class="keywordflow">break</span>;
+<a name="l00067"></a>00067   }
+<a name="l00068"></a>00068   <span class="keywordflow">return</span> Pos;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 <span class="comment"></span>
+<a name="l00071"></a>00071 <span class="comment">/// EndOfNumber - Return the first character that is not part of the specified</span>
+<a name="l00072"></a>00072 <span class="comment">/// number.  This assumes that the buffer is null terminated, so it won't fall</span>
+<a name="l00073"></a>00073 <span class="comment">/// off the end.</span>
+<a name="l00074"></a><a class="code" href="FileUtilities_8cpp.html#a75d85cb3a96bad5f824f1cc2290d6532">00074</a> <span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="FileUtilities_8cpp.html#a75d85cb3a96bad5f824f1cc2290d6532">EndOfNumber</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Pos) {
+<a name="l00075"></a>00075   <span class="keywordflow">while</span> (<a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(*Pos))
+<a name="l00076"></a>00076     ++Pos;
+<a name="l00077"></a>00077   <span class="keywordflow">return</span> Pos;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 <span class="comment"></span>
+<a name="l00080"></a>00080 <span class="comment">/// CompareNumbers - compare two numbers, returning true if they are different.</span>
+<a name="l00081"></a><a class="code" href="FileUtilities_8cpp.html#ad284d03503e7fc4f8dba0aa7b10da106">00081</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="FileUtilities_8cpp.html#ad284d03503e7fc4f8dba0aa7b10da106" title="CompareNumbers - compare two numbers, returning true if they are different.">CompareNumbers</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *&F1P, <span class="keyword">const</span> <span class="keywordtype">char</span> *&F2P,
+<a name="l00082"></a>00082                            <span class="keyword">const</span> <span class="keywordtype">char</span> *F1End, <span class="keyword">const</span> <span class="keywordtype">char</span> *F2End,
+<a name="l00083"></a>00083                            <span class="keywordtype">double</span> AbsTolerance, <span class="keywordtype">double</span> RelTolerance,
+<a name="l00084"></a>00084                            std::string *ErrorMsg) {
+<a name="l00085"></a>00085   <span class="keyword">const</span> <span class="keywordtype">char</span> *F1NumEnd, *F2NumEnd;
+<a name="l00086"></a>00086   <span class="keywordtype">double</span> V1 = 0.0, <a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a> = 0.0;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088   <span class="comment">// If one of the positions is at a space and the other isn't, chomp up 'til</span>
+<a name="l00089"></a>00089   <span class="comment">// the end of the space.</span>
+<a name="l00090"></a>00090   <span class="keywordflow">while</span> (isspace(*F1P) && F1P != F1End)
+<a name="l00091"></a>00091     ++F1P;
+<a name="l00092"></a>00092   <span class="keywordflow">while</span> (isspace(*F2P) && F2P != F2End)
+<a name="l00093"></a>00093     ++F2P;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095   <span class="comment">// If we stop on numbers, compare their difference.</span>
+<a name="l00096"></a>00096   <span class="keywordflow">if</span> (!<a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(*F1P) || !<a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(*F2P)) {
+<a name="l00097"></a>00097     <span class="comment">// The diff failed.</span>
+<a name="l00098"></a>00098     F1NumEnd = F1P;
+<a name="l00099"></a>00099     F2NumEnd = F2P;
+<a name="l00100"></a>00100   } <span class="keywordflow">else</span> {
+<a name="l00101"></a>00101     <span class="comment">// Note that some ugliness is built into this to permit support for numbers</span>
+<a name="l00102"></a>00102     <span class="comment">// that use "D" or "d" as their exponential marker, e.g. "1.234D45".  This</span>
+<a name="l00103"></a>00103     <span class="comment">// occurs in 200.sixtrack in spec2k.</span>
+<a name="l00104"></a>00104     V1 = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa7d1e83ebe72db5ad7c189b5434562030" title="double strtod(const char *nptr, char **endptr);">strtod</a>(F1P, const_cast<char**>(&F1NumEnd));
+<a name="l00105"></a>00105     <a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a> = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa7d1e83ebe72db5ad7c189b5434562030" title="double strtod(const char *nptr, char **endptr);">strtod</a>(F2P, const_cast<char**>(&F2NumEnd));
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107     <span class="keywordflow">if</span> (*F1NumEnd == <span class="charliteral">'D'</span> || *F1NumEnd == <span class="charliteral">'d'</span>) {
+<a name="l00108"></a>00108       <span class="comment">// Copy string into tmp buffer to replace the 'D' with an 'e'.</span>
+<a name="l00109"></a>00109       <a class="code" href="classllvm_1_1SmallString.html">SmallString<200></a> StrTmp(F1P, <a class="code" href="FileUtilities_8cpp.html#a75d85cb3a96bad5f824f1cc2290d6532">EndOfNumber</a>(F1NumEnd)+1);
+<a name="l00110"></a>00110       <span class="comment">// Strange exponential notation!</span>
+<a name="l00111"></a>00111       StrTmp[<span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(F1NumEnd-F1P)] = <span class="charliteral">'e'</span>;
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113       V1 = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa7d1e83ebe72db5ad7c189b5434562030" title="double strtod(const char *nptr, char **endptr);">strtod</a>(&StrTmp[0], const_cast<char**>(&F1NumEnd));
+<a name="l00114"></a>00114       F1NumEnd = F1P + (F1NumEnd-&StrTmp[0]);
+<a name="l00115"></a>00115     }
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117     <span class="keywordflow">if</span> (*F2NumEnd == <span class="charliteral">'D'</span> || *F2NumEnd == <span class="charliteral">'d'</span>) {
+<a name="l00118"></a>00118       <span class="comment">// Copy string into tmp buffer to replace the 'D' with an 'e'.</span>
+<a name="l00119"></a>00119       <a class="code" href="classllvm_1_1SmallString.html">SmallString<200></a> StrTmp(F2P, <a class="code" href="FileUtilities_8cpp.html#a75d85cb3a96bad5f824f1cc2290d6532">EndOfNumber</a>(F2NumEnd)+1);
+<a name="l00120"></a>00120       <span class="comment">// Strange exponential notation!</span>
+<a name="l00121"></a>00121       StrTmp[<span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(F2NumEnd-F2P)] = <span class="charliteral">'e'</span>;
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123       <a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a> = <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa7d1e83ebe72db5ad7c189b5434562030" title="double strtod(const char *nptr, char **endptr);">strtod</a>(&StrTmp[0], const_cast<char**>(&F2NumEnd));
+<a name="l00124"></a>00124       F2NumEnd = F2P + (F2NumEnd-&StrTmp[0]);
+<a name="l00125"></a>00125     }
+<a name="l00126"></a>00126   }
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128   <span class="keywordflow">if</span> (F1NumEnd == F1P || F2NumEnd == F2P) {
+<a name="l00129"></a>00129     <span class="keywordflow">if</span> (ErrorMsg) {
+<a name="l00130"></a>00130       *ErrorMsg = <span class="stringliteral">"FP Comparison failed, not a numeric difference between '"</span>;
+<a name="l00131"></a>00131       *ErrorMsg += F1P[0];
+<a name="l00132"></a>00132       *ErrorMsg += <span class="stringliteral">"' and '"</span>;
+<a name="l00133"></a>00133       *ErrorMsg += F2P[0];
+<a name="l00134"></a>00134       *ErrorMsg += <span class="stringliteral">"'"</span>;
+<a name="l00135"></a>00135     }
+<a name="l00136"></a>00136     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00137"></a>00137   }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139   <span class="comment">// Check to see if these are inside the absolute tolerance</span>
+<a name="l00140"></a>00140   <span class="keywordflow">if</span> (AbsTolerance < std::abs(V1-<a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a>)) {
+<a name="l00141"></a>00141     <span class="comment">// Nope, check the relative tolerance...</span>
+<a name="l00142"></a>00142     <span class="keywordtype">double</span> Diff;
+<a name="l00143"></a>00143     <span class="keywordflow">if</span> (<a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a>)
+<a name="l00144"></a>00144       Diff = std::abs(V1/<a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a> - 1.0);
+<a name="l00145"></a>00145     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (V1)
+<a name="l00146"></a>00146       Diff = std::abs(<a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a>/V1 - 1.0);
+<a name="l00147"></a>00147     <span class="keywordflow">else</span>
+<a name="l00148"></a>00148       Diff = 0;  <span class="comment">// Both zero.</span>
+<a name="l00149"></a>00149     <span class="keywordflow">if</span> (Diff > RelTolerance) {
+<a name="l00150"></a>00150       <span class="keywordflow">if</span> (ErrorMsg) {
+<a name="l00151"></a>00151         <a class="code" href="classllvm_1_1raw__string__ostream.html">raw_string_ostream</a>(*ErrorMsg)
+<a name="l00152"></a>00152           << <span class="stringliteral">"Compared: "</span> << V1 << <span class="stringliteral">" and "</span> << <a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a> << <span class="charliteral">'\n'</span>
+<a name="l00153"></a>00153           << <span class="stringliteral">"abs. diff = "</span> << std::abs(V1-<a class="code" href="namespacellvm_1_1NVPTX_1_1PTXLdStInstCode.html#a91119cbee2be000c528a690252aee07ca24244a27b634ef3e256ab3c64c6fecd4">V2</a>) << <span class="stringliteral">" rel.diff = "</span> << Diff << <span class="charliteral">'\n'</span>
+<a name="l00154"></a>00154           << <span class="stringliteral">"Out of tolerance: rel/abs: "</span> << RelTolerance << <span class="charliteral">'/'</span>
+<a name="l00155"></a>00155           << AbsTolerance;
+<a name="l00156"></a>00156       }
+<a name="l00157"></a>00157       <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00158"></a>00158     }
+<a name="l00159"></a>00159   }
+<a name="l00160"></a>00160 
+<a name="l00161"></a>00161   <span class="comment">// Otherwise, advance our read pointers to the end of the numbers.</span>
+<a name="l00162"></a>00162   F1P = F1NumEnd;  F2P = F2NumEnd;
+<a name="l00163"></a>00163   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00164"></a>00164 }
+<a name="l00165"></a>00165 <span class="comment"></span>
+<a name="l00166"></a>00166 <span class="comment">/// DiffFilesWithTolerance - Compare the two files specified, returning 0 if the</span>
+<a name="l00167"></a>00167 <span class="comment">/// files match, 1 if they are different, and 2 if there is a file error.  This</span>
+<a name="l00168"></a>00168 <span class="comment">/// function differs from DiffFiles in that you can specify an absolete and</span>
+<a name="l00169"></a>00169 <span class="comment">/// relative FP error that is allowed to exist.  If you specify a string to fill</span>
+<a name="l00170"></a>00170 <span class="comment">/// in for the error option, it will set the string to an error message if an</span>
+<a name="l00171"></a>00171 <span class="comment">/// error occurs, allowing the caller to distinguish between a failed diff and a</span>
+<a name="l00172"></a>00172 <span class="comment">/// file system error.</span>
+<a name="l00173"></a>00173 <span class="comment">///</span>
+<a name="l00174"></a><a class="code" href="namespacellvm.html#a45ab2cfcf3e2fcb4f3feb3adb1fcb2fc">00174</a> <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="namespacellvm.html#a45ab2cfcf3e2fcb4f3feb3adb1fcb2fc">llvm::DiffFilesWithTolerance</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1PathWithStatus.html" title="Path with file status class.">sys::PathWithStatus</a> &FileA,
+<a name="l00175"></a>00175                                  <span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1PathWithStatus.html" title="Path with file status class.">sys::PathWithStatus</a> &FileB,
+<a name="l00176"></a>00176                                  <span class="keywordtype">double</span> AbsTol, <span class="keywordtype">double</span> RelTol,
+<a name="l00177"></a>00177                                  std::string *<a class="code" href="namespacellvm_1_1lltok.html#af353621f14cb4b4b3af5ffaff84076b1a3766a4dce43f4efc7208a749cc7ac605">Error</a>) {
+<a name="l00178"></a>00178   <span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1FileStatus.html" title="File status structure.">sys::FileStatus</a> *FileAStat = FileA.<a class="code" href="classllvm_1_1sys_1_1PathWithStatus.html#a0309c357f952a671e7b379e796cd8a2a" title="Get file status.">getFileStatus</a>(<span class="keyword">false</span>, Error);
+<a name="l00179"></a>00179   <span class="keywordflow">if</span> (!FileAStat)
+<a name="l00180"></a>00180     <span class="keywordflow">return</span> 2;
+<a name="l00181"></a>00181   <span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1FileStatus.html" title="File status structure.">sys::FileStatus</a> *FileBStat = FileB.<a class="code" href="classllvm_1_1sys_1_1PathWithStatus.html#a0309c357f952a671e7b379e796cd8a2a" title="Get file status.">getFileStatus</a>(<span class="keyword">false</span>, Error);
+<a name="l00182"></a>00182   <span class="keywordflow">if</span> (!FileBStat)
+<a name="l00183"></a>00183     <span class="keywordflow">return</span> 2;
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185   <span class="comment">// Check for zero length files because some systems croak when you try to</span>
+<a name="l00186"></a>00186   <span class="comment">// mmap an empty file.</span>
+<a name="l00187"></a>00187   <span class="keywordtype">size_t</span> A_size = FileAStat-><a class="code" href="classllvm_1_1sys_1_1FileStatus.html#a96ffe3fd897012baa9f5dee744abe5ce">getSize</a>();
+<a name="l00188"></a>00188   <span class="keywordtype">size_t</span> B_size = FileBStat-><a class="code" href="classllvm_1_1sys_1_1FileStatus.html#a96ffe3fd897012baa9f5dee744abe5ce">getSize</a>();
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190   <span class="comment">// If they are both zero sized then they're the same</span>
+<a name="l00191"></a>00191   <span class="keywordflow">if</span> (A_size == 0 && B_size == 0)
+<a name="l00192"></a>00192     <span class="keywordflow">return</span> 0;
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194   <span class="comment">// If only one of them is zero sized then they can't be the same</span>
+<a name="l00195"></a>00195   <span class="keywordflow">if</span> ((A_size == 0 || B_size == 0)) {
+<a name="l00196"></a>00196     <span class="keywordflow">if</span> (Error)
+<a name="l00197"></a>00197       *Error = <span class="stringliteral">"Files differ: one is zero-sized, the other isn't"</span>;
+<a name="l00198"></a>00198     <span class="keywordflow">return</span> 1;
+<a name="l00199"></a>00199   }
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201   <span class="comment">// Now its safe to mmap the files into memory because both files</span>
+<a name="l00202"></a>00202   <span class="comment">// have a non-zero size.</span>
+<a name="l00203"></a>00203   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<MemoryBuffer></a> F1;
+<a name="l00204"></a>00204   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1error__code.html">error_code</a> ec = <a class="code" href="classllvm_1_1MemoryBuffer.html#ac56ed9cc173c06abecd73d74abe21ef7">MemoryBuffer::getFile</a>(FileA.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>(), F1)) {
+<a name="l00205"></a>00205     <span class="keywordflow">if</span> (Error)
+<a name="l00206"></a>00206       *Error = ec.message();
+<a name="l00207"></a>00207     <span class="keywordflow">return</span> 2;
+<a name="l00208"></a>00208   }
+<a name="l00209"></a>00209   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<MemoryBuffer></a> F2;
+<a name="l00210"></a>00210   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1error__code.html">error_code</a> ec = <a class="code" href="classllvm_1_1MemoryBuffer.html#ac56ed9cc173c06abecd73d74abe21ef7">MemoryBuffer::getFile</a>(FileB.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>(), F2)) {
+<a name="l00211"></a>00211     <span class="keywordflow">if</span> (Error)
+<a name="l00212"></a>00212       *Error = ec.message();
+<a name="l00213"></a>00213     <span class="keywordflow">return</span> 2;
+<a name="l00214"></a>00214   }
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216   <span class="comment">// Okay, now that we opened the files, scan them for the first difference.</span>
+<a name="l00217"></a>00217   <span class="keyword">const</span> <span class="keywordtype">char</span> *File1Start = F1->getBufferStart();
+<a name="l00218"></a>00218   <span class="keyword">const</span> <span class="keywordtype">char</span> *File2Start = F2->getBufferStart();
+<a name="l00219"></a>00219   <span class="keyword">const</span> <span class="keywordtype">char</span> *File1End = F1->getBufferEnd();
+<a name="l00220"></a>00220   <span class="keyword">const</span> <span class="keywordtype">char</span> *File2End = F2->getBufferEnd();
+<a name="l00221"></a>00221   <span class="keyword">const</span> <span class="keywordtype">char</span> *F1P = File1Start;
+<a name="l00222"></a>00222   <span class="keyword">const</span> <span class="keywordtype">char</span> *F2P = File2Start;
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224   <span class="comment">// Are the buffers identical?  Common case: Handle this efficiently.</span>
+<a name="l00225"></a>00225   <span class="keywordflow">if</span> (A_size == B_size &&
+<a name="l00226"></a>00226       <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa3ac509b06abcd9a75f6676d6a65b0251" title="int memcmp(const void *s1, const void *s2, size_t n);">std::memcmp</a>(File1Start, File2Start, A_size) == 0)
+<a name="l00227"></a>00227     <span class="keywordflow">return</span> 0;
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229   <span class="comment">// Otherwise, we are done a tolerances are set.</span>
+<a name="l00230"></a>00230   <span class="keywordflow">if</span> (AbsTol == 0 && RelTol == 0) {
+<a name="l00231"></a>00231     <span class="keywordflow">if</span> (Error)
+<a name="l00232"></a>00232       *Error = <span class="stringliteral">"Files differ without tolerance allowance"</span>;
+<a name="l00233"></a>00233     <span class="keywordflow">return</span> 1;   <span class="comment">// Files different!</span>
+<a name="l00234"></a>00234   }
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236   <span class="keywordtype">bool</span> CompareFailed = <span class="keyword">false</span>;
+<a name="l00237"></a>00237   <span class="keywordflow">while</span> (1) {
+<a name="l00238"></a>00238     <span class="comment">// Scan for the end of file or next difference.</span>
+<a name="l00239"></a>00239     <span class="keywordflow">while</span> (F1P < File1End && F2P < File2End && *F1P == *F2P)
+<a name="l00240"></a>00240       ++F1P, ++F2P;
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242     <span class="keywordflow">if</span> (F1P >= File1End || F2P >= File2End) <span class="keywordflow">break</span>;
+<a name="l00243"></a>00243 
+<a name="l00244"></a>00244     <span class="comment">// Okay, we must have found a difference.  Backup to the start of the</span>
+<a name="l00245"></a>00245     <span class="comment">// current number each stream is at so that we can compare from the</span>
+<a name="l00246"></a>00246     <span class="comment">// beginning.</span>
+<a name="l00247"></a>00247     F1P = <a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a>(F1P, File1Start);
+<a name="l00248"></a>00248     F2P = <a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a>(F2P, File2Start);
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250     <span class="comment">// Now that we are at the start of the numbers, compare them, exiting if</span>
+<a name="l00251"></a>00251     <span class="comment">// they don't match.</span>
+<a name="l00252"></a>00252     <span class="keywordflow">if</span> (<a class="code" href="FileUtilities_8cpp.html#ad284d03503e7fc4f8dba0aa7b10da106" title="CompareNumbers - compare two numbers, returning true if they are different.">CompareNumbers</a>(F1P, F2P, File1End, File2End, AbsTol, RelTol, Error)) {
+<a name="l00253"></a>00253       CompareFailed = <span class="keyword">true</span>;
+<a name="l00254"></a>00254       <span class="keywordflow">break</span>;
+<a name="l00255"></a>00255     }
+<a name="l00256"></a>00256   }
+<a name="l00257"></a>00257 
+<a name="l00258"></a>00258   <span class="comment">// Okay, we reached the end of file.  If both files are at the end, we</span>
+<a name="l00259"></a>00259   <span class="comment">// succeeded.</span>
+<a name="l00260"></a>00260   <span class="keywordtype">bool</span> F1AtEnd = F1P >= File1End;
+<a name="l00261"></a>00261   <span class="keywordtype">bool</span> F2AtEnd = F2P >= File2End;
+<a name="l00262"></a>00262   <span class="keywordflow">if</span> (!CompareFailed && (!F1AtEnd || !F2AtEnd)) {
+<a name="l00263"></a>00263     <span class="comment">// Else, we might have run off the end due to a number: backup and retry.</span>
+<a name="l00264"></a>00264     <span class="keywordflow">if</span> (F1AtEnd && <a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(F1P[-1])) --F1P;
+<a name="l00265"></a>00265     <span class="keywordflow">if</span> (F2AtEnd && <a class="code" href="FileUtilities_8cpp.html#a8156d08864b8327047e16efcbd80f247">isNumberChar</a>(F2P[-1])) --F2P;
+<a name="l00266"></a>00266     F1P = <a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a>(F1P, File1Start);
+<a name="l00267"></a>00267     F2P = <a class="code" href="FileUtilities_8cpp.html#a7112219ad7ea9b651d7bc772350f1f19">BackupNumber</a>(F2P, File2Start);
+<a name="l00268"></a>00268 
+<a name="l00269"></a>00269     <span class="comment">// Now that we are at the start of the numbers, compare them, exiting if</span>
+<a name="l00270"></a>00270     <span class="comment">// they don't match.</span>
+<a name="l00271"></a>00271     <span class="keywordflow">if</span> (<a class="code" href="FileUtilities_8cpp.html#ad284d03503e7fc4f8dba0aa7b10da106" title="CompareNumbers - compare two numbers, returning true if they are different.">CompareNumbers</a>(F1P, F2P, File1End, File2End, AbsTol, RelTol, Error))
+<a name="l00272"></a>00272       CompareFailed = <span class="keyword">true</span>;
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274     <span class="comment">// If we found the end, we succeeded.</span>
+<a name="l00275"></a>00275     <span class="keywordflow">if</span> (F1P < File1End || F2P < File2End)
+<a name="l00276"></a>00276       CompareFailed = <span class="keyword">true</span>;
+<a name="l00277"></a>00277   }
+<a name="l00278"></a>00278 
+<a name="l00279"></a>00279   <span class="keywordflow">return</span> CompareFailed;
+<a name="l00280"></a>00280 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:42 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FileUtilities_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FileUtilities.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_b423301f639fc46b24b2c9f122fcaff7.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FileUtilities.h</div>  </div>
+</div>
+<div class="contents">
+<a href="FileUtilities_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- llvm/Support/FileUtilities.h - File System Utilities -----*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file defines a family of utility functions which are useful for doing</span>
+<a name="l00011"></a>00011 <span class="comment">// various things with files.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="preprocessor">#ifndef LLVM_SUPPORT_FILEUTILITIES_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_SUPPORT_FILEUTILITIES_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="FileSystem_8h.html">llvm/Support/FileSystem.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="Path_8h.html">llvm/Support/Path.h</a>"</span>
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>llvm {
+<a name="l00022"></a>00022 <span class="comment"></span>
+<a name="l00023"></a>00023 <span class="comment">  /// DiffFilesWithTolerance - Compare the two files specified, returning 0 if</span>
+<a name="l00024"></a>00024 <span class="comment">  /// the files match, 1 if they are different, and 2 if there is a file error.</span>
+<a name="l00025"></a>00025 <span class="comment">  /// This function allows you to specify an absolute and relative FP error that</span>
+<a name="l00026"></a>00026 <span class="comment">  /// is allowed to exist.  If you specify a string to fill in for the error</span>
+<a name="l00027"></a>00027 <span class="comment">  /// option, it will set the string to an error message if an error occurs, or</span>
+<a name="l00028"></a>00028 <span class="comment">  /// if the files are different.</span>
+<a name="l00029"></a>00029 <span class="comment">  ///</span>
+<a name="l00030"></a>00030 <span class="comment"></span>  <span class="keywordtype">int</span> <a class="code" href="namespacellvm.html#a45ab2cfcf3e2fcb4f3feb3adb1fcb2fc">DiffFilesWithTolerance</a>(<span class="keyword">const</span> sys::PathWithStatus &FileA,
+<a name="l00031"></a>00031                              <span class="keyword">const</span> sys::PathWithStatus &FileB,
+<a name="l00032"></a>00032                              <span class="keywordtype">double</span> AbsTol, <span class="keywordtype">double</span> RelTol,
+<a name="l00033"></a>00033                              std::string *<a class="code" href="namespacellvm_1_1lltok.html#af353621f14cb4b4b3af5ffaff84076b1a3766a4dce43f4efc7208a749cc7ac605">Error</a> = 0);
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 <span class="comment"></span>
+<a name="l00036"></a>00036 <span class="comment">  /// FileRemover - This class is a simple object meant to be stack allocated.</span>
+<a name="l00037"></a>00037 <span class="comment">  /// If an exception is thrown from a region, the object removes the filename</span>
+<a name="l00038"></a>00038 <span class="comment">  /// specified (if deleteIt is true).</span>
+<a name="l00039"></a>00039 <span class="comment">  ///</span>
+<a name="l00040"></a><a class="code" href="classllvm_1_1FileRemover.html">00040</a> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classllvm_1_1FileRemover.html">FileRemover</a> {
+<a name="l00041"></a>00041     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Filename;
+<a name="l00042"></a>00042     <span class="keywordtype">bool</span> DeleteIt;
+<a name="l00043"></a>00043   <span class="keyword">public</span>:
+<a name="l00044"></a><a class="code" href="classllvm_1_1FileRemover.html#a56a2ea2d80cdbc553558417cdace25b2">00044</a>     <a class="code" href="classllvm_1_1FileRemover.html#a56a2ea2d80cdbc553558417cdace25b2">FileRemover</a>() : DeleteIt(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>) {}
+<a name="l00045"></a>00045 
+<a name="l00046"></a><a class="code" href="classllvm_1_1FileRemover.html#a4471d72090d6d1d7905ebb55fe4c75e9">00046</a>     <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1FileRemover.html#a56a2ea2d80cdbc553558417cdace25b2">FileRemover</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Twine.html">Twine</a>& <a class="code" href="namespacellvm_1_1sys_1_1path.html#a9cce53905fbbc275717b2c2539a89ac1" title="Get filename.">filename</a>, <span class="keywordtype">bool</span> deleteIt = <span class="keyword">true</span>)
+<a name="l00047"></a>00047       : DeleteIt(deleteIt) {
+<a name="l00048"></a>00048       filename.<a class="code" href="classllvm_1_1Twine.html#a9fe2d882764d8dc5b12df7a77233ae2e">toVector</a>(Filename);
+<a name="l00049"></a>00049     }
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="classllvm_1_1FileRemover.html#aeb6376f0da638eba2ca37f75c158642a">00051</a>     <a class="code" href="classllvm_1_1FileRemover.html#aeb6376f0da638eba2ca37f75c158642a">~FileRemover</a>() {
+<a name="l00052"></a>00052       <span class="keywordflow">if</span> (DeleteIt) {
+<a name="l00053"></a>00053         <span class="comment">// Ignore problems deleting the file.</span>
+<a name="l00054"></a>00054         <span class="keywordtype">bool</span> existed;
+<a name="l00055"></a>00055         <a class="code" href="namespacellvm_1_1sys_1_1fs.html#ac15deda0837e2db86daf672a10cb7ccb" title="Remove path. Equivalent to POSIX remove().">sys::fs::remove</a>(Filename.<a class="code" href="classllvm_1_1SmallString.html#a9926a62dd0ca26ed856052335091a54d" title="Explicit conversion to StringRef.">str</a>(), existed);
+<a name="l00056"></a>00056       }
+<a name="l00057"></a>00057     }
+<a name="l00058"></a>00058 <span class="comment"></span>
+<a name="l00059"></a>00059 <span class="comment">    /// setFile - Give ownership of the file to the FileRemover so it will</span>
+<a name="l00060"></a>00060 <span class="comment">    /// be removed when the object is destroyed.  If the FileRemover already</span>
+<a name="l00061"></a>00061 <span class="comment">    /// had ownership of a file, remove it first.</span>
+<a name="l00062"></a><a class="code" href="classllvm_1_1FileRemover.html#a91b648ac32666327622edeae85b28e31">00062</a> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FileRemover.html#a91b648ac32666327622edeae85b28e31">setFile</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Twine.html">Twine</a>& <a class="code" href="namespacellvm_1_1sys_1_1path.html#a9cce53905fbbc275717b2c2539a89ac1" title="Get filename.">filename</a>, <span class="keywordtype">bool</span> deleteIt = <span class="keyword">true</span>) {
+<a name="l00063"></a>00063       <span class="keywordflow">if</span> (DeleteIt) {
+<a name="l00064"></a>00064         <span class="comment">// Ignore problems deleting the file.</span>
+<a name="l00065"></a>00065         <span class="keywordtype">bool</span> existed;
+<a name="l00066"></a>00066         <a class="code" href="namespacellvm_1_1sys_1_1fs.html#ac15deda0837e2db86daf672a10cb7ccb" title="Remove path. Equivalent to POSIX remove().">sys::fs::remove</a>(Filename.<a class="code" href="classllvm_1_1SmallString.html#a9926a62dd0ca26ed856052335091a54d" title="Explicit conversion to StringRef.">str</a>(), existed);
+<a name="l00067"></a>00067       }
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069       Filename.<a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l00070"></a>00070       filename.<a class="code" href="classllvm_1_1Twine.html#a9fe2d882764d8dc5b12df7a77233ae2e">toVector</a>(Filename);
+<a name="l00071"></a>00071       DeleteIt = deleteIt;
+<a name="l00072"></a>00072     }
+<a name="l00073"></a>00073 <span class="comment"></span>
+<a name="l00074"></a>00074 <span class="comment">    /// releaseFile - Take ownership of the file away from the FileRemover so it</span>
+<a name="l00075"></a>00075 <span class="comment">    /// will not be removed when the object is destroyed.</span>
+<a name="l00076"></a><a class="code" href="classllvm_1_1FileRemover.html#ac22fb24ad5b08dc2a8a399063940026e">00076</a> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FileRemover.html#ac22fb24ad5b08dc2a8a399063940026e">releaseFile</a>() { DeleteIt = <span class="keyword">false</span>; }
+<a name="l00077"></a>00077   };
+<a name="l00078"></a>00078 } <span class="comment">// End llvm namespace</span>
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:42 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,41 @@
+<map id="G" name="G">
+<area shape="rect" href="$FindUsedTypes_8h.html" title="llvm/Analysis/FindUsedTypes.h" alt="" coords="5,239,216,265"/>
+<area shape="rect" href="$Constants_8h.html" title="llvm/Constants.h" alt="" coords="1193,161,1321,188"/>
+<area shape="rect" href="$DerivedTypes_8h.html" title="llvm/DerivedTypes.h" alt="" coords="2703,239,2849,265"/>
+<area shape="rect" href="$Module_8h.html" title="llvm/Module.h" alt="" coords="1995,84,2104,111"/>
+<area shape="rect" href="$Writer_8h.html" title="llvm/Assembly/Writer.h" alt="" coords="2915,84,3077,111"/>
+<area shape="rect" href="$InstIterator_8h.html" title="llvm/Support/InstIterator.h" alt="" coords="2128,84,2315,111"/>
+<area shape="rect" href="$raw__ostream_8h.html" title="llvm/Support/raw_ostream.h" alt="" coords="1613,316,1813,343"/>
+<area shape="rect" href="$SetVector_8h.html" title="llvm/ADT/SetVector.h" alt="" coords="47,316,201,343"/>
+<area shape="rect" href="$Pass_8h.html" title="llvm/Pass.h" alt="" coords="827,316,917,343"/>
+<area shape="rect" href="$SmallSet_8h.html" title="llvm/ADT/SmallSet.h" alt="" coords="263,393,415,420"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="788,471,956,497"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="1776,548,1949,575"/>
+<area shape="rect" href="$PassSupport_8h.html" title="llvm/PassSupport.h" alt="" coords="439,393,583,420"/>
+<area shape="rect" href="$PassAnalysisSupport_8h.html" title="llvm/PassAnalysisSupport.h" alt="" coords="775,393,969,420"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="1081,471,1231,497"/>
+<area shape="rect" href="$Constant_8h.html" title="llvm/Constant.h" alt="" coords="1989,316,2109,343"/>
+<area shape="rect" href="$OperandTraits_8h.html" title="llvm/OperandTraits.h" alt="" coords="1804,239,1956,265"/>
+<area shape="rect" href="$APInt_8h.html" title="llvm/ADT/APInt.h" alt="" coords="1131,316,1256,343"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="607,393,751,420"/>
+<area shape="rect" href="$APFloat_8h.html" title="llvm/ADT/APFloat.h" alt="" coords="1079,239,1220,265"/>
+<area shape="rect" href="$User_8h.html" title="llvm/User.h" alt="" coords="2004,393,2095,420"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="2001,471,2100,497"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="1973,548,2139,575"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="1383,393,1572,420"/>
+<area shape="rect" href="$Type_8h.html" title="llvm/Type.h" alt="" coords="2741,316,2832,343"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="2467,393,2651,420"/>
+<area shape="rect" href="$Function_8h.html" title="llvm/Function.h" alt="" coords="1913,161,2028,188"/>
+<area shape="rect" href="$GlobalVariable_8h.html" title="llvm/GlobalVariable.h" alt="" coords="2052,161,2207,188"/>
+<area shape="rect" href="$GlobalAlias_8h.html" title="llvm/GlobalAlias.h" alt="" coords="2231,161,2364,188"/>
+<area shape="rect" href="$Metadata_8h.html" title="llvm/Metadata.h" alt="" coords="1396,239,1519,265"/>
+<area shape="rect" href="$OwningPtr_8h.html" title="llvm/ADT/OwningPtr.h" alt="" coords="2809,471,2964,497"/>
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="1980,239,2119,265"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="1593,239,1729,265"/>
+<area shape="rect" href="$BasicBlock_8h.html" title="llvm/BasicBlock.h" alt="" coords="2497,239,2628,265"/>
+<area shape="rect" href="$Argument_8h.html" title="llvm/Argument.h" alt="" coords="2143,239,2271,265"/>
+<area shape="rect" href="$Attributes_8h.html" title="llvm/Attributes.h" alt="" coords="1280,316,1405,343"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="2360,316,2485,343"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="2184,316,2336,343"/>
+<area shape="rect" href="$FoldingSet_8h.html" title="llvm/ADT/FoldingSet.h" alt="" coords="1429,316,1589,343"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+3e6b8dcd108ebbc9979435897b4bc55b
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,11 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FindUsedTypes.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="LinkAllPasses.h",height=0.2,width=0.4,color="black",URL="$LinkAllPasses_8h.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="FindUsedTypes.cpp",height=0.2,width=0.4,color="black",URL="$FindUsedTypes_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FindUsedTypes_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FindUsedTypes.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_a884da034f1b4859d4f2a35ae0ac2045.html">Analysis</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FindUsedTypes.h</div>  </div>
+</div>
+<div class="contents">
+<a href="FindUsedTypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- llvm/Analysis/FindUsedTypes.h - Find all Types in use ----*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This pass is used to seek out all of the types in use by the program.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#ifndef LLVM_ANALYSIS_FINDUSEDTYPES_H</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_ANALYSIS_FINDUSEDTYPES_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="SetVector_8h.html">llvm/ADT/SetVector.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="Pass_8h.html">llvm/Pass.h</a>"</span>
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>llvm {
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="keyword">class </span><a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>;
+<a name="l00023"></a>00023 <span class="keyword">class </span>Value;
+<a name="l00024"></a>00024 
+<a name="l00025"></a><a class="code" href="classllvm_1_1FindUsedTypes.html">00025</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1FindUsedTypes.html">FindUsedTypes</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1ModulePass.html">ModulePass</a> {
+<a name="l00026"></a>00026   <a class="code" href="classllvm_1_1SetVector.html">SetVector<Type *></a> UsedTypes;
+<a name="l00027"></a>00027 <span class="keyword">public</span>:
+<a name="l00028"></a><a class="code" href="classllvm_1_1FindUsedTypes.html#adc1a01e66bdeb325c4d494aefb8cfe37">00028</a>   <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="classllvm_1_1FindUsedTypes.html#adc1a01e66bdeb325c4d494aefb8cfe37">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l00029"></a><a class="code" href="classllvm_1_1FindUsedTypes.html#accdaa2b155229a7c030011b20ccbb772">00029</a>   <a class="code" href="classllvm_1_1FindUsedTypes.html#accdaa2b155229a7c030011b20ccbb772">FindUsedTypes</a>() : <a class="code" href="classllvm_1_1ModulePass.html">ModulePass</a>(<a class="code" href="classllvm_1_1FindUsedTypes.html#adc1a01e66bdeb325c4d494aefb8cfe37">ID</a>) {
+<a name="l00030"></a>00030     <a class="code" href="namespacellvm.html#a01463bb9065548f216be9ad3b01ba52d">initializeFindUsedTypesPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00031"></a>00031   }
+<a name="l00032"></a>00032 <span class="comment"></span>
+<a name="l00033"></a>00033 <span class="comment">  /// getTypes - After the pass has been run, return the set containing all of</span>
+<a name="l00034"></a>00034 <span class="comment">  /// the types used in the module.</span>
+<a name="l00035"></a>00035 <span class="comment">  ///</span>
+<a name="l00036"></a><a class="code" href="classllvm_1_1FindUsedTypes.html#a1e828467709b71d3dcab612b5cf9c7aa">00036</a> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1SetVector.html">SetVector<Type *></a> &<a class="code" href="classllvm_1_1FindUsedTypes.html#a1e828467709b71d3dcab612b5cf9c7aa">getTypes</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> UsedTypes; }
+<a name="l00037"></a>00037 <span class="comment"></span>
+<a name="l00038"></a>00038 <span class="comment">  /// Print the types found in the module.  If the optional Module parameter is</span>
+<a name="l00039"></a>00039 <span class="comment">  /// passed in, then the types are printed symbolically if possible, using the</span>
+<a name="l00040"></a>00040 <span class="comment">  /// symbol table from the module.</span>
+<a name="l00041"></a>00041 <span class="comment">  ///</span>
+<a name="l00042"></a>00042 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FindUsedTypes.html#a07028b6921e5a1ee0c8c034b7b929621">print</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &o, <span class="keyword">const</span> <a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> *M) <span class="keyword">const</span>;
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="keyword">private</span>:<span class="comment"></span>
+<a name="l00045"></a>00045 <span class="comment">  /// IncorporateType - Incorporate one type and all of its subtypes into the</span>
+<a name="l00046"></a>00046 <span class="comment">  /// collection of used types.</span>
+<a name="l00047"></a>00047 <span class="comment">  ///</span>
+<a name="l00048"></a>00048 <span class="comment"></span>  <span class="keywordtype">void</span> IncorporateType(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty);
+<a name="l00049"></a>00049 <span class="comment"></span>
+<a name="l00050"></a>00050 <span class="comment">  /// IncorporateValue - Incorporate all of the types used by this value.</span>
+<a name="l00051"></a>00051 <span class="comment">  ///</span>
+<a name="l00052"></a>00052 <span class="comment"></span>  <span class="keywordtype">void</span> IncorporateValue(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V);
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054 <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00055"></a>00055 <span class="comment">  /// run - This incorporates all types used by the specified module</span>
+<a name="l00056"></a>00056 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1FindUsedTypes.html#af5cfdfec0699690d0084cdc907b17e9f" title="run - This incorporates all types used by the specified module">runOnModule</a>(<a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> &M);
+<a name="l00057"></a>00057 <span class="comment"></span>
+<a name="l00058"></a>00058 <span class="comment">  /// getAnalysisUsage - We do not modify anything.</span>
+<a name="l00059"></a><a class="code" href="classllvm_1_1FindUsedTypes.html#a633d2457364e51e7f8e87401c30c0228">00059</a> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FindUsedTypes.html#a633d2457364e51e7f8e87401c30c0228" title="getAnalysisUsage - We do not modify anything.">getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00060"></a>00060     AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af22b06a6a4f9df80454071685a0d6a02">setPreservesAll</a>();
+<a name="l00061"></a>00061   }
+<a name="l00062"></a>00062 };
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 } <span class="comment">// End llvm namespace</span>
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:42 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,17 @@
+<map id="G" name="G">
+<area shape="rect" href="$FoldingSet_8h.html" title="llvm/ADT/FoldingSet.h" alt="" coords="740,239,900,265"/>
+<area shape="rect" href="$Hashing_8h.html" title="llvm/ADT/Hashing.h" alt="" coords="631,84,775,111"/>
+<area shape="rect" href="$Host_8h.html" title="llvm/Support/Host.h" alt="" coords="1127,161,1273,188"/>
+<area shape="rect" href="$Allocator_8h.html" title="llvm/Support/Allocator.h" alt="" coords="1300,316,1473,343"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="1795,393,1984,420"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="1208,239,1413,265"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="543,548,727,575"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="681,316,849,343"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="1076,316,1225,343"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="1235,393,1397,420"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="1111,471,1284,497"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="541,393,728,420"/>
+<area shape="rect" href="$STLExtras_8h.html" title="llvm/ADT/STLExtras.h" alt="" coords="163,316,317,343"/>
+<area shape="rect" href="$SwapByteOrder_8h.html" title="llvm/Support/SwapByteOrder.h" alt="" coords="1656,471,1872,497"/>
+<area shape="rect" href="$StringMap_8h.html" title="llvm/ADT/StringMap.h" alt="" coords="1027,239,1184,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+fab98a414143b1331eaf5c8277b5095f
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,51 @@
+<map id="G" name="G">
+<area shape="rect" href="$ImmutableSet_8h.html" title="ImmutableSet.h" alt="" coords="8,84,131,111"/>
+<area shape="rect" href="$ImmutableList_8h.html" title="ImmutableList.h" alt="" coords="155,84,277,111"/>
+<area shape="rect" href="$Metadata_8h.html" title="Metadata.h" alt="" coords="1827,84,1920,111"/>
+<area shape="rect" href="$MachineInstr_8cpp.html" title="MachineInstr.cpp" alt="" coords="501,239,629,265"/>
+<area shape="rect" href="$MergeFunctions_8cpp.html" title="MergeFunctions.cpp" alt="" coords="787,239,933,265"/>
+<area shape="rect" href="$Constants_8cpp.html" title="Constants.cpp" alt="" coords="211,239,323,265"/>
+<area shape="rect" href="$DwarfDebug_8h.html" title="DwarfDebug.h" alt="" coords="3387,239,3499,265"/>
+<area shape="rect" href="$LLVMContextImpl_8h.html" title="LLVMContextImpl.h" alt="" coords="453,161,597,188"/>
+<area shape="rect" href="$Attributes_8cpp.html" title="Attributes.cpp" alt="" coords="75,239,187,265"/>
+<area shape="rect" href="$ScalarEvolution_8h.html" title="ScalarEvolution.h" alt="" coords="2805,84,2936,111"/>
+<area shape="rect" href="$SelectionDAGNodes_8h.html" title="SelectionDAGNodes.h" alt="" coords="2960,84,3123,111"/>
+<area shape="rect" href="$Record_8h.html" title="Record.h" alt="" coords="3197,84,3272,111"/>
+<area shape="rect" href="$Record_8cpp.html" title="Record.cpp" alt="" coords="3835,161,3925,188"/>
+<area shape="rect" href="$DIE_8h.html" title="DIE.h" alt="" coords="2677,84,2731,111"/>
+<area shape="rect" href="$APFloat_8cpp.html" title="APFloat.cpp" alt="" coords="3296,84,3392,111"/>
+<area shape="rect" href="$APInt_8cpp.html" title="APInt.cpp" alt="" coords="3416,84,3496,111"/>
+<area shape="rect" href="$APSInt_8cpp.html" title="APSInt.cpp" alt="" coords="3520,84,3611,111"/>
+<area shape="rect" href="$FoldingSet_8cpp.html" title="FoldingSet.cpp" alt="" coords="3635,84,3749,111"/>
+<area shape="rect" href="$ARMConstantPoolValue_8cpp.html" title="ARMConstantPoolValue.cpp" alt="" coords="3773,84,3968,111"/>
+<area shape="rect" href="$AttributesImpl_8h.html" title="AttributesImpl.h" alt="" coords="464,84,587,111"/>
+<area shape="rect" href="$ImmutableMap_8h.html" title="ImmutableMap.h" alt="" coords="5,161,133,188"/>
+<area shape="rect" href="$Module_8h.html" title="Module.h" alt="" coords="1155,161,1235,188"/>
+<area shape="rect" href="$DbgInfoPrinter_8cpp.html" title="DbgInfoPrinter.cpp" alt="" coords="1379,239,1517,265"/>
+<area shape="rect" href="$MemoryBuiltins_8cpp.html" title="MemoryBuiltins.cpp" alt="" coords="1541,239,1688,265"/>
+<area shape="rect" href="$ProfileDataLoaderPass_8cpp.html" title="ProfileDataLoaderPass.cpp" alt="" coords="2131,239,2323,265"/>
+<area shape="rect" href="$TypeBasedAliasAnalysis_8cpp.html" title="TypeBasedAliasAnalysis.cpp" alt="" coords="1712,239,1909,265"/>
+<area shape="rect" href="$ThreadSanitizer_8cpp.html" title="ThreadSanitizer.cpp" alt="" coords="957,239,1104,265"/>
+<area shape="rect" href="$SimplifyCFG_8cpp.html" title="SimplifyCFG.cpp" alt="" coords="2451,239,2573,265"/>
+<area shape="rect" href="$Metadata_8cpp.html" title="Metadata.cpp" alt="" coords="653,239,763,265"/>
+<area shape="rect" href="$TypeFinder_8cpp.html" title="TypeFinder.cpp" alt="" coords="1128,239,1240,265"/>
+<area shape="rect" href="$Verifier_8cpp.html" title="Verifier.cpp" alt="" coords="1264,239,1355,265"/>
+<area shape="rect" href="$LexicalScopes_8h.html" title="LexicalScopes.h" alt="" coords="3253,161,3376,188"/>
+<area shape="rect" href="$LiveDebugVariables_8cpp.html" title="LiveDebugVariables.cpp" alt="" coords="3159,239,3332,265"/>
+<area shape="rect" href="$MachineModuleInfo_8h.html" title="MachineModuleInfo.h" alt="" coords="723,161,877,188"/>
+<area shape="rect" href="$MDBuilder_8h.html" title="MDBuilder.h" alt="" coords="2179,161,2275,188"/>
+<area shape="rect" href="$Local_8cpp.html" title="Local.cpp" alt="" coords="2347,239,2427,265"/>
+<area shape="rect" href="$LowerExpectIntrinsic_8cpp.html" title="LowerExpectIntrinsic.cpp" alt="" coords="2793,239,2969,265"/>
+<area shape="rect" href="$BranchProbabilityInfo_8cpp.html" title="BranchProbabilityInfo.cpp" alt="" coords="1512,161,1693,188"/>
+<area shape="rect" href="$ValueTracking_8cpp.html" title="ValueTracking.cpp" alt="" coords="1717,161,1851,188"/>
+<area shape="rect" href="$EventListenerCommon_8h.html" title="EventListenerCommon.h" alt="" coords="1875,161,2053,188"/>
+<area shape="rect" href="$IntelJITEventListener_8cpp.html" title="IntelJITEventListener.cpp" alt="" coords="1933,239,2107,265"/>
+<area shape="rect" href="$GVN_8cpp.html" title="GVN.cpp" alt="" coords="2349,161,2427,188"/>
+<area shape="rect" href="$CloneFunction_8cpp.html" title="CloneFunction.cpp" alt="" coords="2451,161,2587,188"/>
+<area shape="rect" href="$PromoteMemoryToRegister_8cpp.html" title="PromoteMemoryToRegister.cpp" alt="" coords="2611,161,2829,188"/>
+<area shape="rect" href="$ValueMapper_8cpp.html" title="ValueMapper.cpp" alt="" coords="2853,161,2984,188"/>
+<area shape="rect" href="$BBVectorize_8cpp.html" title="BBVectorize.cpp" alt="" coords="3523,239,3648,265"/>
+<area shape="rect" href="$LLVMContext_8cpp.html" title="LLVMContext.cpp" alt="" coords="347,239,477,265"/>
+<area shape="rect" href="$IntrinsicInst_8cpp.html" title="IntrinsicInst.cpp" alt="" coords="3059,161,3179,188"/>
+<area shape="rect" href="$ScalarEvolutionExpressions_8h.html" title="ScalarEvolutionExpressions.h" alt="" coords="3603,161,3811,188"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+6a7b40c4fe3b7f6a1ccd0509e6136ca0
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FoldingSet_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,56 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FoldingSet.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node11 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/Format_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Format_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Format_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Format_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: Format.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_b423301f639fc46b24b2c9f122fcaff7.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Format.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include <cassert></code><br/>
+<code>#include <cstdio></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for Format.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="Format_8h__incl.png" border="0" usemap="#Format_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="Format_8h__dep__incl.png" border="0" usemap="#Format_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="Format_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object__base.html">llvm::format_object_base</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object1.html">llvm::format_object1< T ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object2.html">llvm::format_object2< T1, T2 ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object3.html">llvm::format_object3< T1, T2, T3 ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object4.html">llvm::format_object4< T1, T2, T3, T4 ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1format__object5.html">llvm::format_object5< T1, T2, T3, T4, T5 ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">format_object1< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">llvm::format</a> (const <a class="el" href="classchar.html">char</a> *Fmt, const T &Val)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T1 , typename T2 > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">format_object2< T1, T2 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacellvm.html#ad1300200dcd2d78dd73e94794d17d7b9">llvm::format</a> (const <a class="el" href="classchar.html">char</a> *Fmt, const T1 &Val1, const T2 &Val2)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T1 , typename T2 , typename T3 > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">format_object3< T1, T2, T3 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a98693979b07746b44dbea622d07d2535">llvm::format</a> (const <a class="el" href="classchar.html">char</a> *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T1 , typename T2 , typename T3 , typename T4 > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">format_object4< T1, T2, T3, T4 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacellvm.html#abe63a0f9624ad5ed0447a8ecb66de861">llvm::format</a> (const <a class="el" href="classchar.html">char</a> *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3, const T4 &Val4)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">format_object5< T1, T2, T3, T4, <br class="typebreak"/>
+T5 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a585aabe2d520b067edd232ba16d80d7c">llvm::format</a> (const <a class="el" href="classchar.html">char</a> *Fmt, const T1 &Val1, const T2 &Val2, const T3 &Val3, const T4 &Val4, const T5 &Val5)</td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/Format_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Format_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/Format_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/Format_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Format_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Format_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Format_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,11 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="Format.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/Format_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Format_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Format_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Format_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: Format.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_b423301f639fc46b24b2c9f122fcaff7.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">Format.h</div>  </div>
+</div>
+<div class="contents">
+<a href="Format_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- Format.h - Efficient printf-style formatting for streams -*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements the format() function, which can be used with other</span>
+<a name="l00011"></a>00011 <span class="comment">// LLVM subsystems to provide printf-style formatting.  This gives all the power</span>
+<a name="l00012"></a>00012 <span class="comment">// and risk of printf.  This can be used like this (with raw_ostreams as an</span>
+<a name="l00013"></a>00013 <span class="comment">// example):</span>
+<a name="l00014"></a>00014 <span class="comment">//</span>
+<a name="l00015"></a>00015 <span class="comment">//    OS << "mynumber: " << format("%4.5f", 1234.412) << '\n';</span>
+<a name="l00016"></a>00016 <span class="comment">//</span>
+<a name="l00017"></a>00017 <span class="comment">// Or if you prefer:</span>
+<a name="l00018"></a>00018 <span class="comment">//</span>
+<a name="l00019"></a>00019 <span class="comment">//  OS << format("mynumber: %4.5f\n", 1234.412);</span>
+<a name="l00020"></a>00020 <span class="comment">//</span>
+<a name="l00021"></a>00021 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="preprocessor">#ifndef LLVM_SUPPORT_FORMAT_H</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_SUPPORT_FORMAT_H</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include <cassert></span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include <cstdio></span>
+<a name="l00028"></a>00028 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="comment">// FIXME: This define is wrong:</span>
+<a name="l00030"></a>00030 <span class="comment">//  - _snprintf does not guarantee that trailing null is always added - if</span>
+<a name="l00031"></a>00031 <span class="comment">//    there is no space for null, it does not report any error.</span>
+<a name="l00032"></a>00032 <span class="comment">//  - According to C++ standard, snprintf should be visible in the 'std' </span>
+<a name="l00033"></a>00033 <span class="comment">//    namespace - this define makes this impossible.</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#define snprintf _snprintf</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span>
+<a name="l00037"></a>00037 <span class="keyword">namespace </span>llvm {
+<a name="l00038"></a>00038 <span class="comment"></span>
+<a name="l00039"></a>00039 <span class="comment">/// format_object_base - This is a helper class used for handling formatted</span>
+<a name="l00040"></a>00040 <span class="comment">/// output.  It is the abstract base class of a templated derived class.</span>
+<a name="l00041"></a><a class="code" href="classllvm_1_1format__object__base.html">00041</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00042"></a>00042 <span class="keyword">protected</span>:
+<a name="l00043"></a><a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">00043</a>   <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>;
+<a name="l00044"></a>00044   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1format__object__base.html#a02c2a912bce624c2820e21605f06f05e">home</a>(); <span class="comment">// Out of line virtual method.</span>
+<a name="l00045"></a>00045 <span class="comment"></span>
+<a name="l00046"></a>00046 <span class="comment">  /// snprint - Call snprintf() for this object, on the given buffer and size.</span>
+<a name="l00047"></a>00047 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object__base.html#a789f7450181672840fed198baa12638a" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize) <span class="keyword">const</span> = 0;
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00050"></a><a class="code" href="classllvm_1_1format__object__base.html#a0fd11bc8b4da2c9b51582814460bbc6d">00050</a>   <a class="code" href="classllvm_1_1format__object__base.html#a0fd11bc8b4da2c9b51582814460bbc6d">format_object_base</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt) : <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>(fmt) {}
+<a name="l00051"></a><a class="code" href="classllvm_1_1format__object__base.html#ad123710253bd45269d0facbf002eec12">00051</a>   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1format__object__base.html#ad123710253bd45269d0facbf002eec12">~format_object_base</a>() {}
+<a name="l00052"></a>00052 <span class="comment"></span>
+<a name="l00053"></a>00053 <span class="comment">  /// print - Format the object into the specified buffer.  On success, this</span>
+<a name="l00054"></a>00054 <span class="comment">  /// returns the length of the formatted string.  If the buffer is too small,</span>
+<a name="l00055"></a>00055 <span class="comment">  /// this returns a length to retry with, which will be larger than BufferSize.</span>
+<a name="l00056"></a><a class="code" href="classllvm_1_1format__object__base.html#a442162a5f1b1a57121b4a7467b29a0d8">00056</a> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1format__object__base.html#a442162a5f1b1a57121b4a7467b29a0d8">print</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00057"></a>00057     assert(BufferSize && <span class="stringliteral">"Invalid buffer size!"</span>);
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     <span class="comment">// Print the string, leaving room for the terminating null.</span>
+<a name="l00060"></a>00060     <span class="keywordtype">int</span> <a class="code" href="regcomp_8c.html#a0240ac851181b84ac374872dc5434ee4">N</a> = <a class="code" href="classllvm_1_1format__object__base.html#a789f7450181672840fed198baa12638a" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(Buffer, BufferSize);
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="comment">// VC++ and old GlibC return negative on overflow, just double the size.</span>
+<a name="l00063"></a>00063     <span class="keywordflow">if</span> (N < 0)
+<a name="l00064"></a>00064       <span class="keywordflow">return</span> BufferSize*2;
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066     <span class="comment">// Other impls yield number of bytes needed, not including the final '\0'.</span>
+<a name="l00067"></a>00067     <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span>(N) >= BufferSize)
+<a name="l00068"></a>00068       <span class="keywordflow">return</span> N+1;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     <span class="comment">// Otherwise N is the length of output (not including the final '\0').</span>
+<a name="l00071"></a>00071     <span class="keywordflow">return</span> N;
+<a name="l00072"></a>00072   }
+<a name="l00073"></a>00073 };
+<a name="l00074"></a>00074 <span class="comment"></span>
+<a name="l00075"></a>00075 <span class="comment">/// format_object1 - This is a templated helper class used by the format</span>
+<a name="l00076"></a>00076 <span class="comment">/// function that captures the object to be formated and the format string. When</span>
+<a name="l00077"></a>00077 <span class="comment">/// actually printed, this synthesizes the string into a temporary buffer</span>
+<a name="l00078"></a>00078 <span class="comment">/// provided and returns whether or not it is big enough.</span>
+<a name="l00079"></a>00079 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00080"></a><a class="code" href="classllvm_1_1format__object1.html">00080</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1format__object1.html">format_object1</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00081"></a>00081   T Val;
+<a name="l00082"></a>00082 <span class="keyword">public</span>:
+<a name="l00083"></a><a class="code" href="classllvm_1_1format__object1.html#abaff6ccdfba63e45635bf089d0c1b96d">00083</a>   <a class="code" href="classllvm_1_1format__object1.html#abaff6ccdfba63e45635bf089d0c1b96d">format_object1</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keyword">const</span> T &val)
+<a name="l00084"></a>00084     : <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a>(fmt), Val(val) {
+<a name="l00085"></a>00085   }
+<a name="l00086"></a>00086 
+<a name="l00087"></a><a class="code" href="classllvm_1_1format__object1.html#a86f02d707a9c7b9cdd8929473a8f4cab">00087</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object1.html#a86f02d707a9c7b9cdd8929473a8f4cab" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00088"></a>00088     <span class="keywordflow">return</span> snprintf(Buffer, BufferSize, <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>, Val);
+<a name="l00089"></a>00089   }
+<a name="l00090"></a>00090 };
+<a name="l00091"></a>00091 <span class="comment"></span>
+<a name="l00092"></a>00092 <span class="comment">/// format_object2 - This is a templated helper class used by the format</span>
+<a name="l00093"></a>00093 <span class="comment">/// function that captures the object to be formated and the format string. When</span>
+<a name="l00094"></a>00094 <span class="comment">/// actually printed, this synthesizes the string into a temporary buffer</span>
+<a name="l00095"></a>00095 <span class="comment">/// provided and returns whether or not it is big enough.</span>
+<a name="l00096"></a>00096 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2>
+<a name="l00097"></a><a class="code" href="classllvm_1_1format__object2.html">00097</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1format__object2.html">format_object2</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00098"></a>00098   T1 Val1;
+<a name="l00099"></a>00099   T2 Val2;
+<a name="l00100"></a>00100 <span class="keyword">public</span>:
+<a name="l00101"></a><a class="code" href="classllvm_1_1format__object2.html#afb84cb07d0041a3ea30fed990b0b1545">00101</a>   <a class="code" href="classllvm_1_1format__object2.html#afb84cb07d0041a3ea30fed990b0b1545">format_object2</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keyword">const</span> T1 &val1, <span class="keyword">const</span> T2 &val2)
+<a name="l00102"></a>00102   : <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a>(fmt), Val1(val1), Val2(val2) {
+<a name="l00103"></a>00103   }
+<a name="l00104"></a>00104 
+<a name="l00105"></a><a class="code" href="classllvm_1_1format__object2.html#a33d5e88cbe7187f91417d24df4e6b903">00105</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object2.html#a33d5e88cbe7187f91417d24df4e6b903" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00106"></a>00106     <span class="keywordflow">return</span> snprintf(Buffer, BufferSize, <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>, Val1, Val2);
+<a name="l00107"></a>00107   }
+<a name="l00108"></a>00108 };
+<a name="l00109"></a>00109 <span class="comment"></span>
+<a name="l00110"></a>00110 <span class="comment">/// format_object3 - This is a templated helper class used by the format</span>
+<a name="l00111"></a>00111 <span class="comment">/// function that captures the object to be formated and the format string. When</span>
+<a name="l00112"></a>00112 <span class="comment">/// actually printed, this synthesizes the string into a temporary buffer</span>
+<a name="l00113"></a>00113 <span class="comment">/// provided and returns whether or not it is big enough.</span>
+<a name="l00114"></a>00114 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3>
+<a name="l00115"></a><a class="code" href="classllvm_1_1format__object3.html">00115</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1format__object3.html">format_object3</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00116"></a>00116   T1 Val1;
+<a name="l00117"></a>00117   T2 Val2;
+<a name="l00118"></a>00118   T3 Val3;
+<a name="l00119"></a>00119 <span class="keyword">public</span>:
+<a name="l00120"></a><a class="code" href="classllvm_1_1format__object3.html#a622463bf8108c6970fed181f1c7cd1cc">00120</a>   <a class="code" href="classllvm_1_1format__object3.html#a622463bf8108c6970fed181f1c7cd1cc">format_object3</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keyword">const</span> T1 &val1, <span class="keyword">const</span> T2 &val2,<span class="keyword">const</span> T3 &val3)
+<a name="l00121"></a>00121     : <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a>(fmt), Val1(val1), Val2(val2), Val3(val3) {
+<a name="l00122"></a>00122   }
+<a name="l00123"></a>00123 
+<a name="l00124"></a><a class="code" href="classllvm_1_1format__object3.html#ada445249476d69def6d6f7b86473fb1c">00124</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object3.html#ada445249476d69def6d6f7b86473fb1c" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00125"></a>00125     <span class="keywordflow">return</span> snprintf(Buffer, BufferSize, <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>, Val1, Val2, Val3);
+<a name="l00126"></a>00126   }
+<a name="l00127"></a>00127 };
+<a name="l00128"></a>00128 <span class="comment"></span>
+<a name="l00129"></a>00129 <span class="comment">/// format_object4 - This is a templated helper class used by the format</span>
+<a name="l00130"></a>00130 <span class="comment">/// function that captures the object to be formated and the format string. When</span>
+<a name="l00131"></a>00131 <span class="comment">/// actually printed, this synthesizes the string into a temporary buffer</span>
+<a name="l00132"></a>00132 <span class="comment">/// provided and returns whether or not it is big enough.</span>
+<a name="l00133"></a>00133 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3, <span class="keyword">typename</span> T4>
+<a name="l00134"></a><a class="code" href="classllvm_1_1format__object4.html">00134</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1format__object4.html">format_object4</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00135"></a>00135   T1 Val1;
+<a name="l00136"></a>00136   T2 Val2;
+<a name="l00137"></a>00137   T3 Val3;
+<a name="l00138"></a>00138   T4 Val4;
+<a name="l00139"></a>00139 <span class="keyword">public</span>:
+<a name="l00140"></a><a class="code" href="classllvm_1_1format__object4.html#a92b988db71a79d9a113e0e2b16196b82">00140</a>   <a class="code" href="classllvm_1_1format__object4.html#a92b988db71a79d9a113e0e2b16196b82">format_object4</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keyword">const</span> T1 &val1, <span class="keyword">const</span> T2 &val2,
+<a name="l00141"></a>00141                  <span class="keyword">const</span> T3 &val3, <span class="keyword">const</span> T4 &val4)
+<a name="l00142"></a>00142     : <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a>(fmt), Val1(val1), Val2(val2), Val3(val3), Val4(val4) {
+<a name="l00143"></a>00143   }
+<a name="l00144"></a>00144 
+<a name="l00145"></a><a class="code" href="classllvm_1_1format__object4.html#a752e8e91695aceab71a21e6e65b11a49">00145</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object4.html#a752e8e91695aceab71a21e6e65b11a49" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00146"></a>00146     <span class="keywordflow">return</span> snprintf(Buffer, BufferSize, <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>, Val1, Val2, Val3, Val4);
+<a name="l00147"></a>00147   }
+<a name="l00148"></a>00148 };
+<a name="l00149"></a>00149 <span class="comment"></span>
+<a name="l00150"></a>00150 <span class="comment">/// format_object5 - This is a templated helper class used by the format</span>
+<a name="l00151"></a>00151 <span class="comment">/// function that captures the object to be formated and the format string. When</span>
+<a name="l00152"></a>00152 <span class="comment">/// actually printed, this synthesizes the string into a temporary buffer</span>
+<a name="l00153"></a>00153 <span class="comment">/// provided and returns whether or not it is big enough.</span>
+<a name="l00154"></a>00154 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3, <span class="keyword">typename</span> T4, <span class="keyword">typename</span> T5>
+<a name="l00155"></a><a class="code" href="classllvm_1_1format__object5.html">00155</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1format__object5.html">format_object5</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a> {
+<a name="l00156"></a>00156   T1 Val1;
+<a name="l00157"></a>00157   T2 Val2;
+<a name="l00158"></a>00158   T3 Val3;
+<a name="l00159"></a>00159   T4 Val4;
+<a name="l00160"></a>00160   T5 Val5;
+<a name="l00161"></a>00161 <span class="keyword">public</span>:
+<a name="l00162"></a><a class="code" href="classllvm_1_1format__object5.html#a7cfbb55ca40568367c997ae04d0727d8">00162</a>   <a class="code" href="classllvm_1_1format__object5.html#a7cfbb55ca40568367c997ae04d0727d8">format_object5</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keyword">const</span> T1 &val1, <span class="keyword">const</span> T2 &val2,
+<a name="l00163"></a>00163                  <span class="keyword">const</span> T3 &val3, <span class="keyword">const</span> T4 &val4, <span class="keyword">const</span> T5 &val5)
+<a name="l00164"></a>00164     : <a class="code" href="classllvm_1_1format__object__base.html">format_object_base</a>(fmt), Val1(val1), Val2(val2), Val3(val3), Val4(val4),
+<a name="l00165"></a>00165       Val5(val5) {
+<a name="l00166"></a>00166   }
+<a name="l00167"></a>00167 
+<a name="l00168"></a><a class="code" href="classllvm_1_1format__object5.html#ae55b0328cb53f0562f4d11638112d432">00168</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1format__object5.html#ae55b0328cb53f0562f4d11638112d432" title="snprint - Call snprintf() for this object, on the given buffer and size.">snprint</a>(<span class="keywordtype">char</span> *Buffer, <span class="keywordtype">unsigned</span> BufferSize)<span class="keyword"> const </span>{
+<a name="l00169"></a>00169     <span class="keywordflow">return</span> snprintf(Buffer, BufferSize, <a class="code" href="classllvm_1_1format__object__base.html#a71f7af37239e179194ec911277d87997">Fmt</a>, Val1, Val2, Val3, Val4, Val5);
+<a name="l00170"></a>00170   }
+<a name="l00171"></a>00171 };
+<a name="l00172"></a>00172 <span class="comment"></span>
+<a name="l00173"></a>00173 <span class="comment">/// This is a helper function that is used to produce formatted output.</span>
+<a name="l00174"></a>00174 <span class="comment">///</span>
+<a name="l00175"></a>00175 <span class="comment">/// This is typically used like:</span>
+<a name="l00176"></a>00176 <span class="comment">/// \code</span>
+<a name="l00177"></a>00177 <span class="comment">///   OS << format("%0.4f", myfloat) << '\n';</span>
+<a name="l00178"></a>00178 <span class="comment">/// \endcode</span>
+<a name="l00179"></a>00179 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T>
+<a name="l00180"></a><a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">00180</a> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1format__object1.html">format_object1<T></a> <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fmt, <span class="keyword">const</span> T &Val) {
+<a name="l00181"></a>00181   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1format__object1.html">format_object1<T></a>(Fmt, Val);
+<a name="l00182"></a>00182 }
+<a name="l00183"></a>00183 <span class="comment"></span>
+<a name="l00184"></a>00184 <span class="comment">/// This is a helper function that is used to produce formatted output.</span>
+<a name="l00185"></a>00185 <span class="comment">///</span>
+<a name="l00186"></a>00186 <span class="comment">/// This is typically used like:</span>
+<a name="l00187"></a>00187 <span class="comment">/// \code</span>
+<a name="l00188"></a>00188 <span class="comment">///   OS << format("%0.4f", myfloat) << '\n';</span>
+<a name="l00189"></a>00189 <span class="comment">/// \endcode</span>
+<a name="l00190"></a>00190 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2>
+<a name="l00191"></a><a class="code" href="namespacellvm.html#ad1300200dcd2d78dd73e94794d17d7b9">00191</a> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1format__object2.html">format_object2<T1, T2></a> <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fmt, <span class="keyword">const</span> T1 &Val1,
+<a name="l00192"></a>00192                                      <span class="keyword">const</span> T2 &Val2) {
+<a name="l00193"></a>00193   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1format__object2.html">format_object2<T1, T2></a>(Fmt, Val1, Val2);
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195 <span class="comment"></span>
+<a name="l00196"></a>00196 <span class="comment">/// This is a helper function that is used to produce formatted output.</span>
+<a name="l00197"></a>00197 <span class="comment">///</span>
+<a name="l00198"></a>00198 <span class="comment">/// This is typically used like:</span>
+<a name="l00199"></a>00199 <span class="comment">/// \code</span>
+<a name="l00200"></a>00200 <span class="comment">///   OS << format("%0.4f", myfloat) << '\n';</span>
+<a name="l00201"></a>00201 <span class="comment">/// \endcode</span>
+<a name="l00202"></a>00202 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3>
+<a name="l00203"></a><a class="code" href="namespacellvm.html#a98693979b07746b44dbea622d07d2535">00203</a>   <span class="keyword">inline</span> <a class="code" href="classllvm_1_1format__object3.html">format_object3<T1, T2, T3></a> <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fmt, <span class="keyword">const</span> T1 &Val1,
+<a name="l00204"></a>00204                                            <span class="keyword">const</span> T2 &Val2, <span class="keyword">const</span> T3 &Val3) {
+<a name="l00205"></a>00205   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1format__object3.html">format_object3<T1, T2, T3></a>(Fmt, Val1, Val2, Val3);
+<a name="l00206"></a>00206 }
+<a name="l00207"></a>00207 <span class="comment"></span>
+<a name="l00208"></a>00208 <span class="comment">/// This is a helper function that is used to produce formatted output.</span>
+<a name="l00209"></a>00209 <span class="comment">///</span>
+<a name="l00210"></a>00210 <span class="comment">/// This is typically used like:</span>
+<a name="l00211"></a>00211 <span class="comment">/// \code</span>
+<a name="l00212"></a>00212 <span class="comment">///   OS << format("%0.4f", myfloat) << '\n';</span>
+<a name="l00213"></a>00213 <span class="comment">/// \endcode</span>
+<a name="l00214"></a>00214 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3, <span class="keyword">typename</span> T4>
+<a name="l00215"></a><a class="code" href="namespacellvm.html#abe63a0f9624ad5ed0447a8ecb66de861">00215</a> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1format__object4.html">format_object4<T1, T2, T3, T4></a> <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fmt, <span class="keyword">const</span> T1 &Val1,
+<a name="l00216"></a>00216                                              <span class="keyword">const</span> T2 &Val2, <span class="keyword">const</span> T3 &Val3,
+<a name="l00217"></a>00217                                              <span class="keyword">const</span> T4 &Val4) {
+<a name="l00218"></a>00218   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1format__object4.html">format_object4<T1, T2, T3, T4></a>(Fmt, Val1, Val2, Val3, Val4);
+<a name="l00219"></a>00219 }
+<a name="l00220"></a>00220 <span class="comment"></span>
+<a name="l00221"></a>00221 <span class="comment">/// This is a helper function that is used to produce formatted output.</span>
+<a name="l00222"></a>00222 <span class="comment">///</span>
+<a name="l00223"></a>00223 <span class="comment">/// This is typically used like:</span>
+<a name="l00224"></a>00224 <span class="comment">/// \code</span>
+<a name="l00225"></a>00225 <span class="comment">///   OS << format("%0.4f", myfloat) << '\n';</span>
+<a name="l00226"></a>00226 <span class="comment">/// \endcode</span>
+<a name="l00227"></a>00227 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keyword">typename</span> T3, <span class="keyword">typename</span> T4, <span class="keyword">typename</span> T5>
+<a name="l00228"></a><a class="code" href="namespacellvm.html#a585aabe2d520b067edd232ba16d80d7c">00228</a> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1format__object5.html">format_object5<T1, T2, T3, T4, T5></a> <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Fmt,<span class="keyword">const</span> T1 &Val1,
+<a name="l00229"></a>00229                                              <span class="keyword">const</span> T2 &Val2, <span class="keyword">const</span> T3 &Val3,
+<a name="l00230"></a>00230                                              <span class="keyword">const</span> T4 &Val4, <span class="keyword">const</span> T5 &Val5) {
+<a name="l00231"></a>00231   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1format__object5.html">format_object5<T1, T2, T3, T4, T5></a>(Fmt, Val1, Val2, Val3, Val4, Val5);
+<a name="l00232"></a>00232 }
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234 } <span class="comment">// end namespace llvm</span>
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:42 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,7 @@
+<map id="G" name="G">
+<area shape="rect" href="$raw__ostream_8h.html" title="llvm/Support/raw_ostream.h" alt="" coords="587,84,787,111"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="215,161,364,188"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="595,316,779,343"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="724,161,897,188"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="463,239,649,265"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+234dafea8f0a3d0afdfd136576205bee
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FormattedStream_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FormattedStream.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_b423301f639fc46b24b2c9f122fcaff7.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FormattedStream.h</div>  </div>
+</div>
+<div class="contents">
+<a href="FormattedStream_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- llvm/Support/FormattedStream.h - Formatted streams ------*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file contains raw_ostream implementations for streams to do</span>
+<a name="l00011"></a>00011 <span class="comment">// things like pretty-print comments.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="preprocessor">#ifndef LLVM_SUPPORT_FORMATTEDSTREAM_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_SUPPORT_FORMATTEDSTREAM_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>llvm 
+<a name="l00021"></a>00021 {<span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">  /// formatted_raw_ostream - Formatted raw_fd_ostream to handle</span>
+<a name="l00023"></a>00023 <span class="comment">  /// asm-specific constructs.</span>
+<a name="l00024"></a>00024 <span class="comment">  ///</span>
+<a name="l00025"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html">00025</a> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classllvm_1_1formatted__raw__ostream.html">formatted_raw_ostream</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> {
+<a name="l00026"></a>00026   <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00027"></a>00027 <span class="comment">    /// DELETE_STREAM - Tell the destructor to delete the held stream.</span>
+<a name="l00028"></a>00028 <span class="comment">    ///</span>
+<a name="l00029"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#a49c0299185df1d8644c9fe73d91c4d43">00029</a> <span class="comment"></span>    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1formatted__raw__ostream.html#a49c0299185df1d8644c9fe73d91c4d43">DELETE_STREAM</a> = <span class="keyword">true</span>;
+<a name="l00030"></a>00030 <span class="comment"></span>
+<a name="l00031"></a>00031 <span class="comment">    /// PRESERVE_STREAM - Tell the destructor to not delete the held</span>
+<a name="l00032"></a>00032 <span class="comment">    /// stream.</span>
+<a name="l00033"></a>00033 <span class="comment">    ///</span>
+<a name="l00034"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#a30223df381a62b807bdc09684bb4effe">00034</a> <span class="comment"></span>    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1formatted__raw__ostream.html#a30223df381a62b807bdc09684bb4effe">PRESERVE_STREAM</a> = <span class="keyword">false</span>;
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036   <span class="keyword">private</span>:<span class="comment"></span>
+<a name="l00037"></a>00037 <span class="comment">    /// TheStream - The real stream we output to. We set it to be</span>
+<a name="l00038"></a>00038 <span class="comment">    /// unbuffered, since we're already doing our own buffering.</span>
+<a name="l00039"></a>00039 <span class="comment">    ///</span>
+<a name="l00040"></a>00040 <span class="comment"></span>    <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> *TheStream;
+<a name="l00041"></a>00041 <span class="comment"></span>
+<a name="l00042"></a>00042 <span class="comment">    /// DeleteStream - Do we need to delete TheStream in the</span>
+<a name="l00043"></a>00043 <span class="comment">    /// destructor?</span>
+<a name="l00044"></a>00044 <span class="comment">    ///</span>
+<a name="l00045"></a>00045 <span class="comment"></span>    <span class="keywordtype">bool</span> DeleteStream;
+<a name="l00046"></a>00046 <span class="comment"></span>
+<a name="l00047"></a>00047 <span class="comment">    /// ColumnScanned - The current output column of the data that's</span>
+<a name="l00048"></a>00048 <span class="comment">    /// been flushed and the portion of the buffer that's been</span>
+<a name="l00049"></a>00049 <span class="comment">    /// scanned.  The column scheme is zero-based.</span>
+<a name="l00050"></a>00050 <span class="comment">    ///</span>
+<a name="l00051"></a>00051 <span class="comment"></span>    <span class="keywordtype">unsigned</span> ColumnScanned;
+<a name="l00052"></a>00052 <span class="comment"></span>
+<a name="l00053"></a>00053 <span class="comment">    /// Scanned - This points to one past the last character in the</span>
+<a name="l00054"></a>00054 <span class="comment">    /// buffer we've scanned.</span>
+<a name="l00055"></a>00055 <span class="comment">    ///</span>
+<a name="l00056"></a>00056 <span class="comment"></span>    <span class="keyword">const</span> <span class="keywordtype">char</span> *Scanned;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     <span class="keyword">virtual</span> <span class="keywordtype">void</span> write_impl(<span class="keyword">const</span> <span class="keywordtype">char</span> *Ptr, <span class="keywordtype">size_t</span> Size) <a class="code" href="Compiler_8h.html#a68c26c4a3531dcda6b04ab5ca7955947">LLVM_OVERRIDE</a>;
+<a name="l00059"></a>00059 <span class="comment"></span>
+<a name="l00060"></a>00060 <span class="comment">    /// current_pos - Return the current position within the stream,</span>
+<a name="l00061"></a>00061 <span class="comment">    /// not counting the bytes currently in the buffer.</span>
+<a name="l00062"></a>00062 <span class="comment"></span>    <span class="keyword">virtual</span> uint64_t current_pos() const <a class="code" href="Compiler_8h.html#a68c26c4a3531dcda6b04ab5ca7955947">LLVM_OVERRIDE</a> {
+<a name="l00063"></a>00063       <span class="comment">// Our current position in the stream is all the contents which have been</span>
+<a name="l00064"></a>00064       <span class="comment">// written to the underlying stream (*not* the current position of the</span>
+<a name="l00065"></a>00065       <span class="comment">// underlying stream).</span>
+<a name="l00066"></a>00066       <span class="keywordflow">return</span> TheStream-><a class="code" href="classllvm_1_1raw__ostream.html#a1d3d57b3c65f3bcf65546f7c008d7b13" title="tell - Return the current offset with the file.">tell</a>();
+<a name="l00067"></a>00067     }
+<a name="l00068"></a>00068 <span class="comment"></span>
+<a name="l00069"></a>00069 <span class="comment">    /// ComputeColumn - Examine the given output buffer and figure out which</span>
+<a name="l00070"></a>00070 <span class="comment">    /// column we end up in after output.</span>
+<a name="l00071"></a>00071 <span class="comment">    ///</span>
+<a name="l00072"></a>00072 <span class="comment"></span>    <span class="keywordtype">void</span> ComputeColumn(<span class="keyword">const</span> <span class="keywordtype">char</span> *Ptr, <span class="keywordtype">size_t</span> size);
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074   <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00075"></a>00075 <span class="comment">    /// formatted_raw_ostream - Open the specified file for</span>
+<a name="l00076"></a>00076 <span class="comment">    /// writing. If an error occurs, information about the error is</span>
+<a name="l00077"></a>00077 <span class="comment">    /// put into ErrorInfo, and the stream should be immediately</span>
+<a name="l00078"></a>00078 <span class="comment">    /// destroyed; the string will be empty if no error occurred.</span>
+<a name="l00079"></a>00079 <span class="comment">    ///</span>
+<a name="l00080"></a>00080 <span class="comment">    /// As a side effect, the given Stream is set to be Unbuffered.</span>
+<a name="l00081"></a>00081 <span class="comment">    /// This is because formatted_raw_ostream does its own buffering,</span>
+<a name="l00082"></a>00082 <span class="comment">    /// so it doesn't want another layer of buffering to be happening</span>
+<a name="l00083"></a>00083 <span class="comment">    /// underneath it.</span>
+<a name="l00084"></a>00084 <span class="comment">    ///</span>
+<a name="l00085"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#a195664cff3d99480d08178a8d5b89e62">00085</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1formatted__raw__ostream.html#a91b597f0ba8945f847b8df2ff00e5880">formatted_raw_ostream</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &Stream, <span class="keywordtype">bool</span> Delete = <span class="keyword">false</span>) 
+<a name="l00086"></a>00086       : <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a>(), TheStream(0), DeleteStream(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>), ColumnScanned(0) {
+<a name="l00087"></a>00087       <a class="code" href="classllvm_1_1formatted__raw__ostream.html#aebcfd458bea6a8061809e5a7fe3e42c5">setStream</a>(Stream, Delete);
+<a name="l00088"></a>00088     }
+<a name="l00089"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#a91b597f0ba8945f847b8df2ff00e5880">00089</a>     <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1formatted__raw__ostream.html#a91b597f0ba8945f847b8df2ff00e5880">formatted_raw_ostream</a>()
+<a name="l00090"></a>00090       : <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a>(), TheStream(0), DeleteStream(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>), ColumnScanned(0) {
+<a name="l00091"></a>00091       Scanned = 0;
+<a name="l00092"></a>00092     }
+<a name="l00093"></a>00093 
+<a name="l00094"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#a068a46e9a81a3882637e7985a096e6ee">00094</a>     <a class="code" href="classllvm_1_1formatted__raw__ostream.html#a068a46e9a81a3882637e7985a096e6ee">~formatted_raw_ostream</a>() {
+<a name="l00095"></a>00095       <a class="code" href="classllvm_1_1raw__ostream.html#a520bdf57dfe3e73abb53d482893f0a27">flush</a>();
+<a name="l00096"></a>00096       releaseStream();
+<a name="l00097"></a>00097     }
+<a name="l00098"></a>00098 
+<a name="l00099"></a><a class="code" href="classllvm_1_1formatted__raw__ostream.html#aebcfd458bea6a8061809e5a7fe3e42c5">00099</a>     <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1formatted__raw__ostream.html#aebcfd458bea6a8061809e5a7fe3e42c5">setStream</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &Stream, <span class="keywordtype">bool</span> Delete = <span class="keyword">false</span>) {
+<a name="l00100"></a>00100       releaseStream();
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102       TheStream = &Stream;
+<a name="l00103"></a>00103       DeleteStream = Delete;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105       <span class="comment">// This formatted_raw_ostream inherits from raw_ostream, so it'll do its</span>
+<a name="l00106"></a>00106       <span class="comment">// own buffering, and it doesn't need or want TheStream to do another</span>
+<a name="l00107"></a>00107       <span class="comment">// layer of buffering underneath. Resize the buffer to what TheStream</span>
+<a name="l00108"></a>00108       <span class="comment">// had been using, and tell TheStream not to do its own buffering.</span>
+<a name="l00109"></a>00109       <span class="keywordflow">if</span> (<span class="keywordtype">size_t</span> BufferSize = TheStream-><a class="code" href="classllvm_1_1raw__ostream.html#a1af0886c9c810b01afb3fb7beac1a33c">GetBufferSize</a>())
+<a name="l00110"></a>00110         <a class="code" href="classllvm_1_1raw__ostream.html#a1a59a3dce2d7cde8c5e6ef0e3a30b375">SetBufferSize</a>(BufferSize);
+<a name="l00111"></a>00111       <span class="keywordflow">else</span>
+<a name="l00112"></a>00112         <a class="code" href="classllvm_1_1raw__ostream.html#a75860636a752bc2592f6e4185e63efdc">SetUnbuffered</a>();
+<a name="l00113"></a>00113       TheStream-><a class="code" href="classllvm_1_1raw__ostream.html#a75860636a752bc2592f6e4185e63efdc">SetUnbuffered</a>();
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115       Scanned = 0;
+<a name="l00116"></a>00116     }
+<a name="l00117"></a>00117 <span class="comment"></span>
+<a name="l00118"></a>00118 <span class="comment">    /// PadToColumn - Align the output to some column number.  If the current</span>
+<a name="l00119"></a>00119 <span class="comment">    /// column is already equal to or more than NewCol, PadToColumn inserts one</span>
+<a name="l00120"></a>00120 <span class="comment">    /// space.</span>
+<a name="l00121"></a>00121 <span class="comment">    ///</span>
+<a name="l00122"></a>00122 <span class="comment">    /// \param NewCol - The column to move to.</span>
+<a name="l00123"></a>00123 <span class="comment"></span>    <a class="code" href="classllvm_1_1formatted__raw__ostream.html">formatted_raw_ostream</a> &<a class="code" href="classllvm_1_1formatted__raw__ostream.html#a1fc7f913807a21ba5a42df7cc2d2e748">PadToColumn</a>(<span class="keywordtype">unsigned</span> NewCol);
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125   <span class="keyword">private</span>:
+<a name="l00126"></a>00126     <span class="keywordtype">void</span> releaseStream() {
+<a name="l00127"></a>00127       <span class="comment">// Delete the stream if needed. Otherwise, transfer the buffer</span>
+<a name="l00128"></a>00128       <span class="comment">// settings from this raw_ostream back to the underlying stream.</span>
+<a name="l00129"></a>00129       <span class="keywordflow">if</span> (!TheStream)
+<a name="l00130"></a>00130         <span class="keywordflow">return</span>;
+<a name="l00131"></a>00131       <span class="keywordflow">if</span> (DeleteStream)
+<a name="l00132"></a>00132         <span class="keyword">delete</span> TheStream;
+<a name="l00133"></a>00133       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">size_t</span> BufferSize = <a class="code" href="classllvm_1_1raw__ostream.html#a1af0886c9c810b01afb3fb7beac1a33c">GetBufferSize</a>())
+<a name="l00134"></a>00134         TheStream-><a class="code" href="classllvm_1_1raw__ostream.html#a1a59a3dce2d7cde8c5e6ef0e3a30b375">SetBufferSize</a>(BufferSize);
+<a name="l00135"></a>00135       <span class="keywordflow">else</span>
+<a name="l00136"></a>00136         TheStream-><a class="code" href="classllvm_1_1raw__ostream.html#a75860636a752bc2592f6e4185e63efdc">SetUnbuffered</a>();
+<a name="l00137"></a>00137     }
+<a name="l00138"></a>00138   };
+<a name="l00139"></a>00139 <span class="comment"></span>
+<a name="l00140"></a>00140 <span class="comment">/// fouts() - This returns a reference to a formatted_raw_ostream for</span>
+<a name="l00141"></a>00141 <span class="comment">/// standard output.  Use it like: fouts() << "foo" << "bar";</span>
+<a name="l00142"></a>00142 <span class="comment"></span>formatted_raw_ostream &<a class="code" href="namespacellvm.html#a472f926a5e7fc7bb1f147eb4e383cd34">fouts</a>();
+<a name="l00143"></a>00143 <span class="comment"></span>
+<a name="l00144"></a>00144 <span class="comment">/// ferrs() - This returns a reference to a formatted_raw_ostream for</span>
+<a name="l00145"></a>00145 <span class="comment">/// standard error.  Use it like: ferrs() << "foo" << "bar";</span>
+<a name="l00146"></a>00146 <span class="comment"></span>formatted_raw_ostream &<a class="code" href="namespacellvm.html#afda981ec296fec6b640f6fcbdda8c980">ferrs</a>();
+<a name="l00147"></a>00147 <span class="comment"></span>
+<a name="l00148"></a>00148 <span class="comment">/// fdbgs() - This returns a reference to a formatted_raw_ostream for</span>
+<a name="l00149"></a>00149 <span class="comment">/// debug output.  Use it like: fdbgs() << "foo" << "bar";</span>
+<a name="l00150"></a>00150 <span class="comment"></span>formatted_raw_ostream &<a class="code" href="namespacellvm.html#a15e24b8be5cefb33e34f2d8c0124f6aa">fdbgs</a>();
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152 } <span class="comment">// end llvm namespace</span>
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:42 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FunctionAttrs_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FunctionAttrs_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FunctionAttrs_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FunctionAttrs_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,663 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FunctionAttrs.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_22ea62e2015f6a823fddac4ac38ba517.html">Transforms</a>      </li>
+      <li class="navelem"><a class="el" href="dir_a5a75fb0df8cea8d1a0a6c9d8a132571.html">IPO</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FunctionAttrs.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="FunctionAttrs_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- FunctionAttrs.cpp - Pass which marks functions readnone or readonly ===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements a simple interprocedural pass which walks the</span>
+<a name="l00011"></a>00011 <span class="comment">// call-graph, looking for functions which do not access or only read</span>
+<a name="l00012"></a>00012 <span class="comment">// non-local memory, and marking them readnone/readonly.  In addition,</span>
+<a name="l00013"></a>00013 <span class="comment">// it marks function arguments (of pointer type) 'nocapture' if a call</span>
+<a name="l00014"></a>00014 <span class="comment">// to the function does not create any copies of the pointer value that</span>
+<a name="l00015"></a>00015 <span class="comment">// outlive the call.  This more or less means that the pointer is only</span>
+<a name="l00016"></a>00016 <span class="comment">// dereferenced, and not returned from the function or stored in a global.</span>
+<a name="l00017"></a>00017 <span class="comment">// This pass is implemented as a bottom-up traversal of the call-graph.</span>
+<a name="l00018"></a>00018 <span class="comment">//</span>
+<a name="l00019"></a>00019 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00020"></a>00020 
+<a name="l00021"></a><a class="code" href="FunctionAttrs_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00021</a> <span class="preprocessor">#define DEBUG_TYPE "functionattrs"</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="Transforms_2IPO_8h.html">llvm/Transforms/IPO.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="CallGraphSCCPass_8h.html">llvm/CallGraphSCCPass.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="GlobalVariable_8h.html">llvm/GlobalVariable.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="IntrinsicInst_8h.html">llvm/IntrinsicInst.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="LLVMContext_8h.html">llvm/LLVMContext.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="AliasAnalysis_8h.html">llvm/Analysis/AliasAnalysis.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="CallGraph_8h.html">llvm/Analysis/CallGraph.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="CaptureTracking_8h.html">llvm/Analysis/CaptureTracking.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="SCCIterator_8h.html">llvm/ADT/SCCIterator.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="SetVector_8h.html">llvm/ADT/SetVector.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="SmallSet_8h.html">llvm/ADT/SmallSet.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="Statistic_8h.html">llvm/ADT/Statistic.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="InstIterator_8h.html">llvm/Support/InstIterator.h</a>"</span>
+<a name="l00035"></a>00035 <span class="keyword">using namespace </span>llvm;
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumReadNone, <span class="stringliteral">"Number of functions marked readnone"</span>);
+<a name="l00038"></a>00038 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumReadOnly, <span class="stringliteral">"Number of functions marked readonly"</span>);
+<a name="l00039"></a>00039 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumNoCapture, <span class="stringliteral">"Number of arguments marked nocapture"</span>);
+<a name="l00040"></a>00040 <a class="code" href="Statistic_8h.html#ad6117415b93e5675d5a6c8e1855b3b2f">STATISTIC</a>(NumNoAlias, <span class="stringliteral">"Number of function returns marked noalias"</span>);
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 <span class="keyword">namespace </span>{
+<a name="l00043"></a>00043   <span class="keyword">struct </span>FunctionAttrs : <span class="keyword">public</span> <a class="code" href="classllvm_1_1CallGraphSCCPass.html">CallGraphSCCPass</a> {
+<a name="l00044"></a>00044     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>; <span class="comment">// Pass identification, replacement for typeid</span>
+<a name="l00045"></a>00045     FunctionAttrs() : <a class="code" href="classllvm_1_1CallGraphSCCPass.html">CallGraphSCCPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>), AA(0) {
+<a name="l00046"></a>00046       <a class="code" href="namespacellvm.html#ad4ac61af70686d977aede99ebbbdec4f">initializeFunctionAttrsPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00047"></a>00047     }
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     <span class="comment">// runOnSCC - Analyze the SCC, performing the transformation if possible.</span>
+<a name="l00050"></a>00050     <span class="keywordtype">bool</span> runOnSCC(<a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC);
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052     <span class="comment">// AddReadAttrs - Deduce readonly/readnone attributes for the SCC.</span>
+<a name="l00053"></a>00053     <span class="keywordtype">bool</span> AddReadAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC);
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     <span class="comment">// AddNoCaptureAttrs - Deduce nocapture attributes for the SCC.</span>
+<a name="l00056"></a>00056     <span class="keywordtype">bool</span> AddNoCaptureAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC);
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     <span class="comment">// IsFunctionMallocLike - Does this function allocate new memory?</span>
+<a name="l00059"></a>00059     <span class="keywordtype">bool</span> IsFunctionMallocLike(<a class="code" href="classllvm_1_1Function.html">Function</a> *<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>,
+<a name="l00060"></a>00060                               <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> &) <span class="keyword">const</span>;
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="comment">// AddNoAliasAttrs - Deduce noalias attributes for the SCC.</span>
+<a name="l00063"></a>00063     <span class="keywordtype">bool</span> AddNoAliasAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC);
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <span class="keyword">virtual</span> <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00066"></a>00066       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af11a6ebf7ab3c388234cb6d5378439a3">setPreservesCFG</a>();
+<a name="l00067"></a>00067       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>>();
+<a name="l00068"></a>00068       <a class="code" href="classllvm_1_1CallGraphSCCPass.html#aafcbee837fed187a54b74f201a748160">CallGraphSCCPass::getAnalysisUsage</a>(AU);
+<a name="l00069"></a>00069     }
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071   <span class="keyword">private</span>:
+<a name="l00072"></a>00072     <a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a> *AA;
+<a name="l00073"></a>00073   };
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">FunctionAttrs::ID</a> = 0;
+<a name="l00077"></a>00077 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(FunctionAttrs, <span class="stringliteral">"functionattrs"</span>,
+<a name="l00078"></a>00078                 <span class="stringliteral">"Deduce function attributes"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00079"></a>00079 <a class="code" href="PassSupport_8h.html#af0564bcdde2dd4400c670ca278c6035f">INITIALIZE_AG_DEPENDENCY</a>(<a class="code" href="classllvm_1_1CallGraph.html">CallGraph</a>)
+<a name="l00080"></a><a class="code" href="FunctionAttrs_8cpp.html#a246a5fc53a74f042ec3b8067735e7e3b">00080</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(FunctionAttrs, "<a class="code" href="FunctionAttrs_8cpp.html#a246a5fc53a74f042ec3b8067735e7e3b">functionattrs</a>",
+<a name="l00081"></a>00081                 "Deduce <a class="code" href="MemDepPrinter_8cpp.html#a470d8721ad7c3b718e9daeabdaeb4700">function</a> <a class="code" href="FunctionAttrs_8cpp.html#a07522de877d8a6f09f42438dab01a434">attributes</a>", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, false)
+<a name="l00082"></a>00082 
+<a name="l00083"></a><a class="code" href="namespacellvm.html#a9aa5140290971faf01dea58161793bbe">00083</a> <a class="code" href="classllvm_1_1Pass.html">Pass</a> *llvm::<a class="code" href="namespacellvm.html#a9aa5140290971faf01dea58161793bbe">createFunctionAttrsPass</a>() { <span class="keywordflow">return</span> <span class="keyword">new</span> FunctionAttrs(); }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="comment"></span>
+<a name="l00086"></a>00086 <span class="comment">/// AddReadAttrs - Deduce readonly/readnone attributes for the SCC.</span>
+<a name="l00087"></a>00087 <span class="comment"></span><span class="keywordtype">bool</span> FunctionAttrs::AddReadAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC) {
+<a name="l00088"></a>00088   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> SCCNodes;
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090   <span class="comment">// Fill SCCNodes with the elements of the SCC.  Used for quickly</span>
+<a name="l00091"></a>00091   <span class="comment">// looking up whether a given CallGraphNode is in this SCC.</span>
+<a name="l00092"></a>00092   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00093"></a>00093     SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>((*I)->getFunction());
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095   <span class="comment">// Check if any of the functions in the SCC read or write memory.  If they</span>
+<a name="l00096"></a>00096   <span class="comment">// write memory then they can't be marked readnone or readonly.</span>
+<a name="l00097"></a>00097   <span class="keywordtype">bool</span> ReadsMemory = <span class="keyword">false</span>;
+<a name="l00098"></a>00098   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00099"></a>00099     <a class="code" href="classllvm_1_1Function.html">Function</a> *<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a> = (*I)->getFunction();
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101     <span class="keywordflow">if</span> (F == 0)
+<a name="l00102"></a>00102       <span class="comment">// External node - may write memory.  Just give up.</span>
+<a name="l00103"></a>00103       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105     <a class="code" href="classllvm_1_1AliasAnalysis.html#ae0276e687a2b2ddd7d0d549d98140f91">AliasAnalysis::ModRefBehavior</a> MRB = AA->getModRefBehavior(F);
+<a name="l00106"></a>00106     <span class="keywordflow">if</span> (MRB == <a class="code" href="classllvm_1_1AliasAnalysis.html#ae0276e687a2b2ddd7d0d549d98140f91ac95d44a1bdba08f55ba5c252532a39e6">AliasAnalysis::DoesNotAccessMemory</a>)
+<a name="l00107"></a>00107       <span class="comment">// Already perfect!</span>
+<a name="l00108"></a>00108       <span class="keywordflow">continue</span>;
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110     <span class="comment">// Definitions with weak linkage may be overridden at linktime with</span>
+<a name="l00111"></a>00111     <span class="comment">// something that writes memory, so treat them like declarations.</span>
+<a name="l00112"></a>00112     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1GlobalValue.html#a4640d98233102674ddb6d6efaf2b7f97">isDeclaration</a>() || F-><a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">mayBeOverridden</a>()) {
+<a name="l00113"></a>00113       <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1AliasAnalysis.html#a9568a7e6c44fd9d259f2949a401ece11">AliasAnalysis::onlyReadsMemory</a>(MRB))
+<a name="l00114"></a>00114         <span class="comment">// May write memory.  Just give up.</span>
+<a name="l00115"></a>00115         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117       ReadsMemory = <span class="keyword">true</span>;
+<a name="l00118"></a>00118       <span class="keywordflow">continue</span>;
+<a name="l00119"></a>00119     }
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121     <span class="comment">// Scan the function body for instructions that may read or write memory.</span>
+<a name="l00122"></a>00122     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1InstIterator.html">inst_iterator</a> II = <a class="code" href="namespacellvm.html#a49a219f3fe3d7a6cc07c49a1ea766d6d">inst_begin</a>(F), E = <a class="code" href="namespacellvm.html#a945cded5463e0ccd3cf5a6ac80542a94">inst_end</a>(F); II != E; ++II) {
+<a name="l00123"></a>00123       <a class="code" href="classllvm_1_1Instruction.html">Instruction</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = &*II;
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125       <span class="comment">// Some instructions can be ignored even if they read or write memory.</span>
+<a name="l00126"></a>00126       <span class="comment">// Detect these now, skipping to the next instruction if one is found.</span>
+<a name="l00127"></a>00127       <a class="code" href="classllvm_1_1CallSite.html">CallSite</a> CS(cast<Value>(I));
+<a name="l00128"></a>00128       <span class="keywordflow">if</span> (CS) {
+<a name="l00129"></a>00129         <span class="comment">// Ignore calls to functions in the same SCC.</span>
+<a name="l00130"></a>00130         <span class="keywordflow">if</span> (CS.getCalledFunction() && SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(CS.getCalledFunction()))
+<a name="l00131"></a>00131           <span class="keywordflow">continue</span>;
+<a name="l00132"></a>00132         <a class="code" href="classllvm_1_1AliasAnalysis.html#ae0276e687a2b2ddd7d0d549d98140f91">AliasAnalysis::ModRefBehavior</a> MRB = AA->getModRefBehavior(CS);
+<a name="l00133"></a>00133         <span class="comment">// If the call doesn't access arbitrary memory, we may be able to</span>
+<a name="l00134"></a>00134         <span class="comment">// figure out something.</span>
+<a name="l00135"></a>00135         <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1AliasAnalysis.html#afdd2a3d983ce02854ce2e52cc44fad57">AliasAnalysis::onlyAccessesArgPointees</a>(MRB)) {
+<a name="l00136"></a>00136           <span class="comment">// If the call does access argument pointees, check each argument.</span>
+<a name="l00137"></a>00137           <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1AliasAnalysis.html#a11d3d93fdfd225d7d8f96f470d96e978">AliasAnalysis::doesAccessArgPointees</a>(MRB))
+<a name="l00138"></a>00138             <span class="comment">// Check whether all pointer arguments point to local memory, and</span>
+<a name="l00139"></a>00139             <span class="comment">// ignore calls that only access local memory.</span>
+<a name="l00140"></a>00140             <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallSiteBase.html#a9c293af587813d72fdc976697dd07f23">CallSite::arg_iterator</a> CI = CS.arg_begin(), CE = CS.arg_end();
+<a name="l00141"></a>00141                  CI != CE; ++CI) {
+<a name="l00142"></a>00142               <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *Arg = *CI;
+<a name="l00143"></a>00143               <span class="keywordflow">if</span> (Arg-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>()-><a class="code" href="classllvm_1_1Type.html#a2eba483f5cc876e824aa6c085736086b">isPointerTy</a>()) {
+<a name="l00144"></a>00144                 <a class="code" href="structllvm_1_1AliasAnalysis_1_1Location.html" title="Location - A description of a memory location.">AliasAnalysis::Location</a> Loc(Arg,
+<a name="l00145"></a>00145                                             <a class="code" href="classllvm_1_1AliasAnalysis.html#a8d894818f6befa30ad9bb75085ed0a20">AliasAnalysis::UnknownSize</a>,
+<a name="l00146"></a>00146                                             I-><a class="code" href="classllvm_1_1Instruction.html#aafa29112cbe02e4adc9b36752c771991">getMetadata</a>(<a class="code" href="classllvm_1_1LLVMContext.html#a19d63434356844e2fd7116a9c0866ec9a66682b7e33233c8e51196bbf274726a2">LLVMContext::MD_tbaa</a>));
+<a name="l00147"></a>00147                 <span class="keywordflow">if</span> (!AA->pointsToConstantMemory(Loc, <span class="comment">/*OrLocal=*/</span><span class="keyword">true</span>)) {
+<a name="l00148"></a>00148                   <span class="keywordflow">if</span> (MRB & <a class="code" href="classllvm_1_1AliasAnalysis.html#a83d29c51155787c607268c2659559460ab9c7e2bf8dd3d89289b8a8cccefe4808">AliasAnalysis::Mod</a>)
+<a name="l00149"></a>00149                     <span class="comment">// Writes non-local memory.  Give up.</span>
+<a name="l00150"></a>00150                     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00151"></a>00151                   <span class="keywordflow">if</span> (MRB & <a class="code" href="classllvm_1_1AliasAnalysis.html#a83d29c51155787c607268c2659559460a20c70d6d2838a070cafe0b3f82b7aee5">AliasAnalysis::Ref</a>)
+<a name="l00152"></a>00152                     <span class="comment">// Ok, it reads non-local memory.</span>
+<a name="l00153"></a>00153                     ReadsMemory = <span class="keyword">true</span>;
+<a name="l00154"></a>00154                 }
+<a name="l00155"></a>00155               }
+<a name="l00156"></a>00156             }
+<a name="l00157"></a>00157           <span class="keywordflow">continue</span>;
+<a name="l00158"></a>00158         }
+<a name="l00159"></a>00159         <span class="comment">// The call could access any memory. If that includes writes, give up.</span>
+<a name="l00160"></a>00160         <span class="keywordflow">if</span> (MRB & <a class="code" href="classllvm_1_1AliasAnalysis.html#a83d29c51155787c607268c2659559460ab9c7e2bf8dd3d89289b8a8cccefe4808">AliasAnalysis::Mod</a>)
+<a name="l00161"></a>00161           <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00162"></a>00162         <span class="comment">// If it reads, note it.</span>
+<a name="l00163"></a>00163         <span class="keywordflow">if</span> (MRB & <a class="code" href="classllvm_1_1AliasAnalysis.html#a83d29c51155787c607268c2659559460a20c70d6d2838a070cafe0b3f82b7aee5">AliasAnalysis::Ref</a>)
+<a name="l00164"></a>00164           ReadsMemory = <span class="keyword">true</span>;
+<a name="l00165"></a>00165         <span class="keywordflow">continue</span>;
+<a name="l00166"></a>00166       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1LoadInst.html">LoadInst</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = dyn_cast<LoadInst>(I)) {
+<a name="l00167"></a>00167         <span class="comment">// Ignore non-volatile loads from local memory. (Atomic is okay here.)</span>
+<a name="l00168"></a>00168         <span class="keywordflow">if</span> (!<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>->isVolatile()) {
+<a name="l00169"></a>00169           <a class="code" href="structllvm_1_1AliasAnalysis_1_1Location.html" title="Location - A description of a memory location.">AliasAnalysis::Location</a> Loc = AA->getLocation(<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>);
+<a name="l00170"></a>00170           <span class="keywordflow">if</span> (AA->pointsToConstantMemory(Loc, <span class="comment">/*OrLocal=*/</span><span class="keyword">true</span>))
+<a name="l00171"></a>00171             <span class="keywordflow">continue</span>;
+<a name="l00172"></a>00172         }
+<a name="l00173"></a>00173       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StoreInst.html">StoreInst</a> *SI = dyn_cast<StoreInst>(I)) {
+<a name="l00174"></a>00174         <span class="comment">// Ignore non-volatile stores to local memory. (Atomic is okay here.)</span>
+<a name="l00175"></a>00175         <span class="keywordflow">if</span> (!SI->isVolatile()) {
+<a name="l00176"></a>00176           <a class="code" href="structllvm_1_1AliasAnalysis_1_1Location.html" title="Location - A description of a memory location.">AliasAnalysis::Location</a> Loc = AA->getLocation(SI);
+<a name="l00177"></a>00177           <span class="keywordflow">if</span> (AA->pointsToConstantMemory(Loc, <span class="comment">/*OrLocal=*/</span><span class="keyword">true</span>))
+<a name="l00178"></a>00178             <span class="keywordflow">continue</span>;
+<a name="l00179"></a>00179         }
+<a name="l00180"></a>00180       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1VAArgInst.html">VAArgInst</a> *VI = dyn_cast<VAArgInst>(I)) {
+<a name="l00181"></a>00181         <span class="comment">// Ignore vaargs on local memory.</span>
+<a name="l00182"></a>00182         <a class="code" href="structllvm_1_1AliasAnalysis_1_1Location.html" title="Location - A description of a memory location.">AliasAnalysis::Location</a> Loc = AA->getLocation(VI);
+<a name="l00183"></a>00183         <span class="keywordflow">if</span> (AA->pointsToConstantMemory(Loc, <span class="comment">/*OrLocal=*/</span><span class="keyword">true</span>))
+<a name="l00184"></a>00184           <span class="keywordflow">continue</span>;
+<a name="l00185"></a>00185       }
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187       <span class="comment">// Any remaining instructions need to be taken seriously!  Check if they</span>
+<a name="l00188"></a>00188       <span class="comment">// read or write memory.</span>
+<a name="l00189"></a>00189       <span class="keywordflow">if</span> (I-><a class="code" href="classllvm_1_1Instruction.html#aa26de3d6e38997b9041e824ea558c770">mayWriteToMemory</a>())
+<a name="l00190"></a>00190         <span class="comment">// Writes memory.  Just give up.</span>
+<a name="l00191"></a>00191         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193       <span class="comment">// If this instruction may read memory, remember that.</span>
+<a name="l00194"></a>00194       ReadsMemory |= I-><a class="code" href="classllvm_1_1Instruction.html#a0fd8d3c26bf5cd614b0e6a9b8886a5d0">mayReadFromMemory</a>();
+<a name="l00195"></a>00195     }
+<a name="l00196"></a>00196   }
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198   <span class="comment">// Success!  Functions in this SCC do not access memory, or only read memory.</span>
+<a name="l00199"></a>00199   <span class="comment">// Give them the appropriate attribute.</span>
+<a name="l00200"></a>00200   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00201"></a>00201   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00202"></a>00202     <a class="code" href="classllvm_1_1Function.html">Function</a> *F = (*I)->getFunction();
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Function.html#a5a2090e129aebfc961af01acff2033af" title="Determine if the function does not access memory.">doesNotAccessMemory</a>())
+<a name="l00205"></a>00205       <span class="comment">// Already perfect!</span>
+<a name="l00206"></a>00206       <span class="keywordflow">continue</span>;
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Function.html#a85df3357f7ec7e9610ee28f8d5613244" title="Determine if the function does not access or only reads memory.">onlyReadsMemory</a>() && ReadsMemory)
+<a name="l00209"></a>00209       <span class="comment">// No change.</span>
+<a name="l00210"></a>00210       <span class="keywordflow">continue</span>;
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212     MadeChange = <span class="keyword">true</span>;
+<a name="l00213"></a>00213 
+<a name="l00214"></a>00214     <span class="comment">// Clear out any existing attributes.</span>
+<a name="l00215"></a>00215     <a class="code" href="classllvm_1_1AttrBuilder.html">AttrBuilder</a> B;
+<a name="l00216"></a>00216     B.<a class="code" href="classllvm_1_1AttrBuilder.html#a0028c463debc1305cc07a85bdfcaeeb6" title="addAttribute - Add an attribute to the builder.">addAttribute</a>(<a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9a55dfb20c5a56dc2896f7b3b0653595d0" title="Function only reads from memory.">Attributes::ReadOnly</a>)
+<a name="l00217"></a>00217       .<a class="code" href="classllvm_1_1AttrBuilder.html#a0028c463debc1305cc07a85bdfcaeeb6" title="addAttribute - Add an attribute to the builder.">addAttribute</a>(<a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9a318cfdc45671bd9ab7291e7522eb5c68" title="Function does not access memory.">Attributes::ReadNone</a>);
+<a name="l00218"></a>00218     F-><a class="code" href="classllvm_1_1Function.html#a4fe76503af1e70240cbf194c0df83703" title="removeAttribute - removes the attribute from the list of attributes.">removeAttribute</a>(<a class="code" href="classllvm_1_1AttrListPtr.html#ae891c2fafc52690f5192fd14b7d92866aa0ca5b17b28c0c286bc17f82606d5129">AttrListPtr::FunctionIndex</a>,
+<a name="l00219"></a>00219                        <a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(F-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>(), B));
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221     <span class="comment">// Add in the new attribute.</span>
+<a name="l00222"></a>00222     B.<a class="code" href="classllvm_1_1AttrBuilder.html#a8fa071b4bd0c47ec59fc46f00c2ac3ad">clear</a>();
+<a name="l00223"></a>00223     B.<a class="code" href="classllvm_1_1AttrBuilder.html#a0028c463debc1305cc07a85bdfcaeeb6" title="addAttribute - Add an attribute to the builder.">addAttribute</a>(ReadsMemory ? <a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9a55dfb20c5a56dc2896f7b3b0653595d0" title="Function only reads from memory.">Attributes::ReadOnly</a> : <a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9a318cfdc45671bd9ab7291e7522eb5c68" title="Function does not access memory.">Attributes::ReadNone</a>);
+<a name="l00224"></a>00224     F-><a class="code" href="classllvm_1_1Function.html#a8fa04282737b55af4c2a70d882bc649f" title="addAttribute - adds the attribute to the list of attributes.">addAttribute</a>(<a class="code" href="classllvm_1_1AttrListPtr.html#ae891c2fafc52690f5192fd14b7d92866aa0ca5b17b28c0c286bc17f82606d5129">AttrListPtr::FunctionIndex</a>,
+<a name="l00225"></a>00225                     <a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(F-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>(), B));
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227     <span class="keywordflow">if</span> (ReadsMemory)
+<a name="l00228"></a>00228       ++NumReadOnly;
+<a name="l00229"></a>00229     <span class="keywordflow">else</span>
+<a name="l00230"></a>00230       ++NumReadNone;
+<a name="l00231"></a>00231   }
+<a name="l00232"></a>00232 
+<a name="l00233"></a>00233   <span class="keywordflow">return</span> MadeChange;
+<a name="l00234"></a>00234 }
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236 <span class="keyword">namespace </span>{
+<a name="l00237"></a>00237   <span class="comment">// For a given pointer Argument, this retains a list of Arguments of functions</span>
+<a name="l00238"></a>00238   <span class="comment">// in the same SCC that the pointer data flows into. We use this to build an</span>
+<a name="l00239"></a>00239   <span class="comment">// SCC of the arguments.</span>
+<a name="l00240"></a>00240   <span class="keyword">struct </span>ArgumentGraphNode {
+<a name="l00241"></a>00241     <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *Definition;
+<a name="l00242"></a>00242     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ArgumentGraphNode*, 4></a> Uses;
+<a name="l00243"></a>00243   };
+<a name="l00244"></a>00244 
+<a name="l00245"></a>00245   <span class="keyword">class </span>ArgumentGraph {
+<a name="l00246"></a>00246     <span class="comment">// We store pointers to ArgumentGraphNode objects, so it's important that</span>
+<a name="l00247"></a>00247     <span class="comment">// that they not move around upon insert.</span>
+<a name="l00248"></a>00248     <span class="keyword">typedef</span> std::map<Argument*, ArgumentGraphNode> ArgumentMapTy;
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250     ArgumentMapTy ArgumentMap;
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252     <span class="comment">// There is no root node for the argument graph, in fact:</span>
+<a name="l00253"></a>00253     <span class="comment">//   void f(int *x, int *y) { if (...) f(x, y); }</span>
+<a name="l00254"></a>00254     <span class="comment">// is an example where the graph is disconnected. The SCCIterator requires a</span>
+<a name="l00255"></a>00255     <span class="comment">// single entry point, so we maintain a fake ("synthetic") root node that</span>
+<a name="l00256"></a>00256     <span class="comment">// uses every node. Because the graph is directed and nothing points into</span>
+<a name="l00257"></a>00257     <span class="comment">// the root, it will not participate in any SCCs (except for its own).</span>
+<a name="l00258"></a>00258     ArgumentGraphNode SyntheticRoot;
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260   <span class="keyword">public</span>:
+<a name="l00261"></a>00261     ArgumentGraph() { SyntheticRoot.Definition = 0; }
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html#a16a72ecbc559627d140a2197d9f79445">SmallVectorImpl<ArgumentGraphNode*>::iterator</a> <a class="code" href="classstd_1_1iterator.html">iterator</a>;
+<a name="l00264"></a>00264 
+<a name="l00265"></a>00265     <a class="code" href="classstd_1_1iterator.html">iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>() { <span class="keywordflow">return</span> SyntheticRoot.Uses.begin(); }
+<a name="l00266"></a>00266     <a class="code" href="classstd_1_1iterator.html">iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>() { <span class="keywordflow">return</span> SyntheticRoot.Uses.end(); }
+<a name="l00267"></a>00267     ArgumentGraphNode *getEntryNode() { <span class="keywordflow">return</span> &SyntheticRoot; }
+<a name="l00268"></a>00268 
+<a name="l00269"></a>00269     ArgumentGraphNode *operator[](<a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) {
+<a name="l00270"></a>00270       ArgumentGraphNode &Node = ArgumentMap[<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>];
+<a name="l00271"></a>00271       Node.Definition = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>;
+<a name="l00272"></a>00272       SyntheticRoot.Uses.push_back(&Node);
+<a name="l00273"></a>00273       <span class="keywordflow">return</span> &Node;
+<a name="l00274"></a>00274     }
+<a name="l00275"></a>00275   };
+<a name="l00276"></a>00276 
+<a name="l00277"></a>00277   <span class="comment">// This tracker checks whether callees are in the SCC, and if so it does not</span>
+<a name="l00278"></a>00278   <span class="comment">// consider that a capture, instead adding it to the "Uses" list and</span>
+<a name="l00279"></a>00279   <span class="comment">// continuing with the analysis.</span>
+<a name="l00280"></a>00280   <span class="keyword">struct </span>ArgumentUsesTracker : <span class="keyword">public</span> <a class="code" href="structllvm_1_1CaptureTracker.html">CaptureTracker</a> {
+<a name="l00281"></a>00281     ArgumentUsesTracker(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> &SCCNodes)
+<a name="l00282"></a>00282       : Captured(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>), SCCNodes(SCCNodes) {}
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284     <span class="keywordtype">void</span> tooManyUses() { Captured = <span class="keyword">true</span>; }
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286     <span class="keywordtype">bool</span> captured(<a class="code" href="classllvm_1_1Use.html">Use</a> *U) {
+<a name="l00287"></a>00287       <a class="code" href="classllvm_1_1CallSite.html">CallSite</a> CS(U-><a class="code" href="classllvm_1_1Use.html#ac3564961c33fa9f636c6444db4c7fa85">getUser</a>());
+<a name="l00288"></a>00288       <span class="keywordflow">if</span> (!CS.getInstruction()) { Captured = <span class="keyword">true</span>; <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+<a name="l00289"></a>00289 
+<a name="l00290"></a>00290       <a class="code" href="classllvm_1_1Function.html">Function</a> *F = CS.getCalledFunction();
+<a name="l00291"></a>00291       <span class="keywordflow">if</span> (!F || !SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(F)) { Captured = <span class="keyword">true</span>; <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+<a name="l00292"></a>00292 
+<a name="l00293"></a>00293       <a class="code" href="classllvm_1_1ilist__iterator.html">Function::arg_iterator</a> AI = F-><a class="code" href="classllvm_1_1Function.html#a8bf193a781a92cae52d7f9216d0824f8">arg_begin</a>(), AE = F-><a class="code" href="classllvm_1_1Function.html#a8300ac1ef141b8a7c63c13fa9369d976">arg_end</a>();
+<a name="l00294"></a>00294       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallSiteBase.html#a9c293af587813d72fdc976697dd07f23">CallSite::arg_iterator</a> PI = CS.arg_begin(), PE = CS.arg_end();
+<a name="l00295"></a>00295            PI != PE; ++PI, ++AI) {
+<a name="l00296"></a>00296         <span class="keywordflow">if</span> (AI == AE) {
+<a name="l00297"></a>00297           assert(F-><a class="code" href="classllvm_1_1Function.html#ae0466120bfdf5b97b25aa06f3015cd51">isVarArg</a>() && <span class="stringliteral">"More params than args in non-varargs call"</span>);
+<a name="l00298"></a>00298           Captured = <span class="keyword">true</span>;
+<a name="l00299"></a>00299           <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00300"></a>00300         }
+<a name="l00301"></a>00301         <span class="keywordflow">if</span> (PI == U) {
+<a name="l00302"></a>00302           Uses.push_back(AI);
+<a name="l00303"></a>00303           <span class="keywordflow">break</span>;
+<a name="l00304"></a>00304         }
+<a name="l00305"></a>00305       }
+<a name="l00306"></a>00306       assert(!Uses.empty() && <span class="stringliteral">"Capturing call-site captured nothing?"</span>);
+<a name="l00307"></a>00307       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00308"></a>00308     }
+<a name="l00309"></a>00309 
+<a name="l00310"></a>00310     <span class="keywordtype">bool</span> Captured;  <span class="comment">// True only if certainly captured (used outside our SCC).</span>
+<a name="l00311"></a>00311     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Argument*, 4></a> Uses;  <span class="comment">// Uses within our SCC.</span>
+<a name="l00312"></a>00312 
+<a name="l00313"></a>00313     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> &SCCNodes;
+<a name="l00314"></a>00314   };
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316 
+<a name="l00317"></a>00317 <span class="keyword">namespace </span>llvm {
+<a name="l00318"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html">00318</a>   <span class="keyword">template</span><> <span class="keyword">struct </span><a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits</a><ArgumentGraphNode*> {
+<a name="l00319"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#af72b53be539b9a4977d8d522c6075212">00319</a>     <span class="keyword">typedef</span> ArgumentGraphNode <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#af72b53be539b9a4977d8d522c6075212">NodeType</a>;
+<a name="l00320"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afc06fb01f5134fe2ab16a19d9e96dcf5">00320</a>     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html#a16a72ecbc559627d140a2197d9f79445">SmallVectorImpl<ArgumentGraphNode*>::iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afc06fb01f5134fe2ab16a19d9e96dcf5">ChildIteratorType</a>;
+<a name="l00321"></a>00321 
+<a name="l00322"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#ab33c726967244160dc8509c9b5510b9f">00322</a>     <span class="keyword">static</span> <span class="keyword">inline</span> NodeType *<a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#ab33c726967244160dc8509c9b5510b9f">getEntryNode</a>(NodeType *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) { <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>; }
+<a name="l00323"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afd5bbf6ffe3a2a6e83a66dfbf8fc4808">00323</a>     <span class="keyword">static</span> <span class="keyword">inline</span> ChildIteratorType <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afd5bbf6ffe3a2a6e83a66dfbf8fc4808">child_begin</a>(NodeType *N) {
+<a name="l00324"></a>00324       <span class="keywordflow">return</span> N->Uses.begin();
+<a name="l00325"></a>00325     }
+<a name="l00326"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#a24afcdf4b9c508b3b2a75bdbd7730c5c">00326</a>     <span class="keyword">static</span> <span class="keyword">inline</span> ChildIteratorType <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#a24afcdf4b9c508b3b2a75bdbd7730c5c">child_end</a>(NodeType *N) {
+<a name="l00327"></a>00327       <span class="keywordflow">return</span> N->Uses.end();
+<a name="l00328"></a>00328     }
+<a name="l00329"></a>00329   };
+<a name="l00330"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html">00330</a>   <span class="keyword">template</span><> <span class="keyword">struct </span><a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits</a><ArgumentGraph*>
+<a name="l00331"></a>00331     : <span class="keyword">public</span> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html">GraphTraits<ArgumentGraphNode*></a> {
+<a name="l00332"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#a424bbd7116c1af3c420e2c3d04ba9973">00332</a>     <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#af72b53be539b9a4977d8d522c6075212">NodeType</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#a424bbd7116c1af3c420e2c3d04ba9973">getEntryNode</a>(ArgumentGraph *AG) {
+<a name="l00333"></a>00333       <span class="keywordflow">return</span> AG->getEntryNode();
+<a name="l00334"></a>00334     }
+<a name="l00335"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#abfef12e43b4eb2165bcd1e0b42cdf14b">00335</a>     <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afc06fb01f5134fe2ab16a19d9e96dcf5">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#abfef12e43b4eb2165bcd1e0b42cdf14b">nodes_begin</a>(ArgumentGraph *AG) {
+<a name="l00336"></a>00336       <span class="keywordflow">return</span> AG->begin();
+<a name="l00337"></a>00337     }
+<a name="l00338"></a><a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#a77f0b9307f18f69afc7c562c7c547183">00338</a>     <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraphNode_01_5_01_4.html#afc06fb01f5134fe2ab16a19d9e96dcf5">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01ArgumentGraph_01_5_01_4.html#a77f0b9307f18f69afc7c562c7c547183">nodes_end</a>(ArgumentGraph *AG) {
+<a name="l00339"></a>00339       <span class="keywordflow">return</span> AG->end();
+<a name="l00340"></a>00340     }
+<a name="l00341"></a>00341   };
+<a name="l00342"></a>00342 }
+<a name="l00343"></a>00343 <span class="comment"></span>
+<a name="l00344"></a>00344 <span class="comment">/// AddNoCaptureAttrs - Deduce nocapture attributes for the SCC.</span>
+<a name="l00345"></a>00345 <span class="comment"></span><span class="keywordtype">bool</span> FunctionAttrs::AddNoCaptureAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC) {
+<a name="l00346"></a>00346   <span class="keywordtype">bool</span> Changed = <span class="keyword">false</span>;
+<a name="l00347"></a>00347 
+<a name="l00348"></a>00348   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> SCCNodes;
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350   <span class="comment">// Fill SCCNodes with the elements of the SCC.  Used for quickly</span>
+<a name="l00351"></a>00351   <span class="comment">// looking up whether a given CallGraphNode is in this SCC.</span>
+<a name="l00352"></a>00352   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00353"></a>00353     <a class="code" href="classllvm_1_1Function.html">Function</a> *F = (*I)->getFunction();
+<a name="l00354"></a>00354     <span class="keywordflow">if</span> (F && !F-><a class="code" href="classllvm_1_1GlobalValue.html#a4640d98233102674ddb6d6efaf2b7f97">isDeclaration</a>() && !F-><a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">mayBeOverridden</a>())
+<a name="l00355"></a>00355       SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(F);
+<a name="l00356"></a>00356   }
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358   ArgumentGraph AG;
+<a name="l00359"></a>00359 
+<a name="l00360"></a>00360   <a class="code" href="classllvm_1_1AttrBuilder.html">AttrBuilder</a> B;
+<a name="l00361"></a>00361   B.<a class="code" href="classllvm_1_1AttrBuilder.html#a0028c463debc1305cc07a85bdfcaeeb6" title="addAttribute - Add an attribute to the builder.">addAttribute</a>(<a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9a9ebf4b6258b4eab33518a06a955df920" title="Function creates no aliases of pointer.">Attributes::NoCapture</a>);
+<a name="l00362"></a>00362 
+<a name="l00363"></a>00363   <span class="comment">// Check each function in turn, determining which pointer arguments are not</span>
+<a name="l00364"></a>00364   <span class="comment">// captured.</span>
+<a name="l00365"></a>00365   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00366"></a>00366     <a class="code" href="classllvm_1_1Function.html">Function</a> *F = (*I)->getFunction();
+<a name="l00367"></a>00367 
+<a name="l00368"></a>00368     <span class="keywordflow">if</span> (F == 0)
+<a name="l00369"></a>00369       <span class="comment">// External node - only a problem for arguments that we pass to it.</span>
+<a name="l00370"></a>00370       <span class="keywordflow">continue</span>;
+<a name="l00371"></a>00371 
+<a name="l00372"></a>00372     <span class="comment">// Definitions with weak linkage may be overridden at linktime with</span>
+<a name="l00373"></a>00373     <span class="comment">// something that captures pointers, so treat them like declarations.</span>
+<a name="l00374"></a>00374     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1GlobalValue.html#a4640d98233102674ddb6d6efaf2b7f97">isDeclaration</a>() || F-><a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">mayBeOverridden</a>())
+<a name="l00375"></a>00375       <span class="keywordflow">continue</span>;
+<a name="l00376"></a>00376 
+<a name="l00377"></a>00377     <span class="comment">// Functions that are readonly (or readnone) and nounwind and don't return</span>
+<a name="l00378"></a>00378     <span class="comment">// a value can't capture arguments. Don't analyze them.</span>
+<a name="l00379"></a>00379     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Function.html#a85df3357f7ec7e9610ee28f8d5613244" title="Determine if the function does not access or only reads memory.">onlyReadsMemory</a>() && F-><a class="code" href="classllvm_1_1Function.html#a3230e5e96b10019ecf64b8c8562c4da4" title="Determine if the function cannot unwind.">doesNotThrow</a>() &&
+<a name="l00380"></a>00380         F-><a class="code" href="classllvm_1_1Function.html#a26ccf11b81c01a45cb40137c775f7cad">getReturnType</a>()-><a class="code" href="classllvm_1_1Type.html#af5c7041df3ad5edffe5da17b5264c1fc" title="isVoidTy - Return true if this is 'void'.">isVoidTy</a>()) {
+<a name="l00381"></a>00381       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::arg_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> = F-><a class="code" href="classllvm_1_1Function.html#a8bf193a781a92cae52d7f9216d0824f8">arg_begin</a>(), E = F-><a class="code" href="classllvm_1_1Function.html#a8300ac1ef141b8a7c63c13fa9369d976">arg_end</a>();
+<a name="l00382"></a>00382            <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) {
+<a name="l00383"></a>00383         <span class="keywordflow">if</span> (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->getType()->isPointerTy() && !<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->hasNoCaptureAttr()) {
+<a name="l00384"></a>00384           <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->addAttr(<a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(F-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>(), B));
+<a name="l00385"></a>00385           ++NumNoCapture;
+<a name="l00386"></a>00386           Changed = <span class="keyword">true</span>;
+<a name="l00387"></a>00387         }
+<a name="l00388"></a>00388       }
+<a name="l00389"></a>00389       <span class="keywordflow">continue</span>;
+<a name="l00390"></a>00390     }
+<a name="l00391"></a>00391 
+<a name="l00392"></a>00392     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::arg_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> = F-><a class="code" href="classllvm_1_1Function.html#a8bf193a781a92cae52d7f9216d0824f8">arg_begin</a>(), E = F-><a class="code" href="classllvm_1_1Function.html#a8300ac1ef141b8a7c63c13fa9369d976">arg_end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>!=E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>)
+<a name="l00393"></a>00393       <span class="keywordflow">if</span> (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->getType()->isPointerTy() && !<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->hasNoCaptureAttr()) {
+<a name="l00394"></a>00394         ArgumentUsesTracker Tracker(SCCNodes);
+<a name="l00395"></a>00395         <a class="code" href="namespacellvm.html#a0b8531ebccf07d33408272bd51999962">PointerMayBeCaptured</a>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>, &Tracker);
+<a name="l00396"></a>00396         <span class="keywordflow">if</span> (!Tracker.Captured) {
+<a name="l00397"></a>00397           <span class="keywordflow">if</span> (Tracker.Uses.empty()) {
+<a name="l00398"></a>00398             <span class="comment">// If it's trivially not captured, mark it nocapture now.</span>
+<a name="l00399"></a>00399             <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>->addAttr(<a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(F-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>(), B));
+<a name="l00400"></a>00400             ++NumNoCapture;
+<a name="l00401"></a>00401             Changed = <span class="keyword">true</span>;
+<a name="l00402"></a>00402           } <span class="keywordflow">else</span> {
+<a name="l00403"></a>00403             <span class="comment">// If it's not trivially captured and not trivially not captured,</span>
+<a name="l00404"></a>00404             <span class="comment">// then it must be calling into another function in our SCC. Save</span>
+<a name="l00405"></a>00405             <span class="comment">// its particulars for Argument-SCC analysis later.</span>
+<a name="l00406"></a>00406             ArgumentGraphNode *Node = AG[<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>];
+<a name="l00407"></a>00407             <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html#a16a72ecbc559627d140a2197d9f79445">SmallVectorImpl<Argument*>::iterator</a> UI = Tracker.Uses.begin(),
+<a name="l00408"></a>00408                    UE = Tracker.Uses.end(); UI != UE; ++UI)
+<a name="l00409"></a>00409               Node->Uses.push_back(AG[*UI]);
+<a name="l00410"></a>00410           }
+<a name="l00411"></a>00411         }
+<a name="l00412"></a>00412         <span class="comment">// Otherwise, it's captured. Don't bother doing SCC analysis on it.</span>
+<a name="l00413"></a>00413       }
+<a name="l00414"></a>00414   }
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416   <span class="comment">// The graph we've collected is partial because we stopped scanning for</span>
+<a name="l00417"></a>00417   <span class="comment">// argument uses once we solved the argument trivially. These partial nodes</span>
+<a name="l00418"></a>00418   <span class="comment">// show up as ArgumentGraphNode objects with an empty Uses list, and for</span>
+<a name="l00419"></a>00419   <span class="comment">// these nodes the final decision about whether they capture has already been</span>
+<a name="l00420"></a>00420   <span class="comment">// made.  If the definition doesn't have a 'nocapture' attribute by now, it</span>
+<a name="l00421"></a>00421   <span class="comment">// captures.</span>
+<a name="l00422"></a>00422 
+<a name="l00423"></a>00423   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1scc__iterator.html">scc_iterator<ArgumentGraph*></a> I = <a class="code" href="namespacellvm.html#a71882a8257c58a4d9401db39622871a6">scc_begin</a>(&AG), E = <a class="code" href="namespacellvm.html#a221dd975c8835e667ee59a36d4d6cc92">scc_end</a>(&AG);
+<a name="l00424"></a>00424        I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00425"></a>00425     std::vector<ArgumentGraphNode*> &ArgumentSCC = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00426"></a>00426     <span class="keywordflow">if</span> (ArgumentSCC.size() == 1) {
+<a name="l00427"></a>00427       <span class="keywordflow">if</span> (!ArgumentSCC[0]->Definition) <span class="keywordflow">continue</span>;  <span class="comment">// synthetic root node</span>
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429       <span class="comment">// eg. "void f(int* x) { if (...) f(x); }"</span>
+<a name="l00430"></a>00430       <span class="keywordflow">if</span> (ArgumentSCC[0]->Uses.size() == 1 &&
+<a name="l00431"></a>00431           ArgumentSCC[0]->Uses[0] == ArgumentSCC[0]) {
+<a name="l00432"></a>00432         ArgumentSCC[0]->
+<a name="l00433"></a>00433           Definition->
+<a name="l00434"></a>00434           addAttr(<a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(ArgumentSCC[0]->Definition->getContext(), B));
+<a name="l00435"></a>00435         ++NumNoCapture;
+<a name="l00436"></a>00436         Changed = <span class="keyword">true</span>;
+<a name="l00437"></a>00437       }
+<a name="l00438"></a>00438       <span class="keywordflow">continue</span>;
+<a name="l00439"></a>00439     }
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441     <span class="keywordtype">bool</span> SCCCaptured = <span class="keyword">false</span>;
+<a name="l00442"></a>00442     <span class="keywordflow">for</span> (std::vector<ArgumentGraphNode*>::iterator I = ArgumentSCC.begin(),
+<a name="l00443"></a>00443            E = ArgumentSCC.end(); I != E && !SCCCaptured; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00444"></a>00444       ArgumentGraphNode *Node = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00445"></a>00445       <span class="keywordflow">if</span> (Node->Uses.empty()) {
+<a name="l00446"></a>00446         <span class="keywordflow">if</span> (!Node->Definition->hasNoCaptureAttr())
+<a name="l00447"></a>00447           SCCCaptured = <span class="keyword">true</span>;
+<a name="l00448"></a>00448       }
+<a name="l00449"></a>00449     }
+<a name="l00450"></a>00450     <span class="keywordflow">if</span> (SCCCaptured) <span class="keywordflow">continue</span>;
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452     <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Argument*, 8></a> ArgumentSCCNodes;
+<a name="l00453"></a>00453     <span class="comment">// Fill ArgumentSCCNodes with the elements of the ArgumentSCC.  Used for</span>
+<a name="l00454"></a>00454     <span class="comment">// quickly looking up whether a given Argument is in this ArgumentSCC.</span>
+<a name="l00455"></a>00455     <span class="keywordflow">for</span> (std::vector<ArgumentGraphNode*>::iterator I = ArgumentSCC.begin(),
+<a name="l00456"></a>00456            E = ArgumentSCC.end(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00457"></a>00457       ArgumentSCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>((*I)->Definition);
+<a name="l00458"></a>00458     }
+<a name="l00459"></a>00459 
+<a name="l00460"></a>00460     <span class="keywordflow">for</span> (std::vector<ArgumentGraphNode*>::iterator I = ArgumentSCC.begin(),
+<a name="l00461"></a>00461            E = ArgumentSCC.end(); I != E && !SCCCaptured; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00462"></a>00462       ArgumentGraphNode *<a class="code" href="regcomp_8c.html#a0240ac851181b84ac374872dc5434ee4">N</a> = *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00463"></a>00463       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html#a16a72ecbc559627d140a2197d9f79445">SmallVectorImpl<ArgumentGraphNode*>::iterator</a> UI = N->Uses.begin(),
+<a name="l00464"></a>00464              UE = N->Uses.end(); UI != UE; ++UI) {
+<a name="l00465"></a>00465         <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a> = (*UI)->Definition;
+<a name="l00466"></a>00466         <span class="keywordflow">if</span> (A-><a class="code" href="classllvm_1_1Argument.html#a30db77d0b993c5ff5acb0e7c7df54afe">hasNoCaptureAttr</a>() || ArgumentSCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(A))
+<a name="l00467"></a>00467           <span class="keywordflow">continue</span>;
+<a name="l00468"></a>00468         SCCCaptured = <span class="keyword">true</span>;
+<a name="l00469"></a>00469         <span class="keywordflow">break</span>;
+<a name="l00470"></a>00470       }
+<a name="l00471"></a>00471     }
+<a name="l00472"></a>00472     <span class="keywordflow">if</span> (SCCCaptured) <span class="keywordflow">continue</span>;
+<a name="l00473"></a>00473 
+<a name="l00474"></a>00474     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = ArgumentSCC.size(); i != e; ++i) {
+<a name="l00475"></a>00475       <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *A = ArgumentSCC[i]->Definition;
+<a name="l00476"></a>00476       A-><a class="code" href="classllvm_1_1Argument.html#aec942b7eb123a2fecef442587728f896" title="addAttr - Add a Attribute to an argument">addAttr</a>(<a class="code" href="classllvm_1_1Attributes.html#ad65c1e9ddb0cbc60da3fe67a0c695e32">Attributes::get</a>(A-><a class="code" href="classllvm_1_1Value.html#af85a4828b6b5a8de7fc0a55cc0e5b52f" title="All values hold a context through their type.">getContext</a>(), B));
+<a name="l00477"></a>00477       ++NumNoCapture;
+<a name="l00478"></a>00478       Changed = <span class="keyword">true</span>;
+<a name="l00479"></a>00479     }
+<a name="l00480"></a>00480   }
+<a name="l00481"></a>00481 
+<a name="l00482"></a>00482   <span class="keywordflow">return</span> Changed;
+<a name="l00483"></a>00483 }
+<a name="l00484"></a>00484 <span class="comment"></span>
+<a name="l00485"></a>00485 <span class="comment">/// IsFunctionMallocLike - A function is malloc-like if it returns either null</span>
+<a name="l00486"></a>00486 <span class="comment">/// or a pointer that doesn't alias any other pointer visible to the caller.</span>
+<a name="l00487"></a>00487 <span class="comment"></span><span class="keywordtype">bool</span> FunctionAttrs::IsFunctionMallocLike(<a class="code" href="classllvm_1_1Function.html">Function</a> *F,
+<a name="l00488"></a>00488                               <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> &SCCNodes)<span class="keyword"> const </span>{
+<a name="l00489"></a>00489   <a class="code" href="classllvm_1_1SmallSetVector.html" title="A SetVector that performs no allocations if smaller than a certain size.">SmallSetVector<Value *, 8></a> FlowsToReturn;
+<a name="l00490"></a>00490   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::iterator</a> I = F-><a class="code" href="classllvm_1_1Function.html#a88a5e60837674780a9d812d661897ac5">begin</a>(), E = F-><a class="code" href="classllvm_1_1Function.html#ae4ca2261b8b901e415fda7feac5051ea">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00491"></a>00491     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ReturnInst.html">ReturnInst</a> *<a class="code" href="namespacellvm_1_1MBlazeISD.html#a4cbef502356ec86269d324dc7be5cbf7a4e52b775450b88b95f31bae9c160fe01">Ret</a> = dyn_cast<ReturnInst>(I->getTerminator()))
+<a name="l00492"></a>00492       FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(<a class="code" href="namespacellvm_1_1MBlazeISD.html#a4cbef502356ec86269d324dc7be5cbf7a4e52b775450b88b95f31bae9c160fe01">Ret</a>->getReturnValue());
+<a name="l00493"></a>00493 
+<a name="l00494"></a>00494   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a95ea0587484ef2fc182e64dfd36a62c8" title="Determine the number of elements in the SetVector.">size</a>(); ++i) {
+<a name="l00495"></a>00495     <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *RetVal = FlowsToReturn[i];
+<a name="l00496"></a>00496 
+<a name="l00497"></a>00497     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Constant.html" title="LLVM Constant Representation.">Constant</a> *<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a> = dyn_cast<Constant>(RetVal)) {
+<a name="l00498"></a>00498       <span class="keywordflow">if</span> (!<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>->isNullValue() && !isa<UndefValue>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>))
+<a name="l00499"></a>00499         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00500"></a>00500 
+<a name="l00501"></a>00501       <span class="keywordflow">continue</span>;
+<a name="l00502"></a>00502     }
+<a name="l00503"></a>00503 
+<a name="l00504"></a>00504     <span class="keywordflow">if</span> (isa<Argument>(RetVal))
+<a name="l00505"></a>00505       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Instruction.html">Instruction</a> *RVI = dyn_cast<Instruction>(RetVal))
+<a name="l00508"></a>00508       <span class="keywordflow">switch</span> (RVI->getOpcode()) {
+<a name="l00509"></a>00509         <span class="comment">// Extend the analysis by looking upwards.</span>
+<a name="l00510"></a>00510         <span class="keywordflow">case</span> Instruction::BitCast:
+<a name="l00511"></a>00511         <span class="keywordflow">case</span> Instruction::GetElementPtr:
+<a name="l00512"></a>00512           FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(RVI->getOperand(0));
+<a name="l00513"></a>00513           <span class="keywordflow">continue</span>;
+<a name="l00514"></a>00514         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a32dbd2c72a98eaee90e3ad5ef7b5af16">Instruction::Select</a>: {
+<a name="l00515"></a>00515           <a class="code" href="classllvm_1_1SelectInst.html">SelectInst</a> *SI = cast<SelectInst>(RVI);
+<a name="l00516"></a>00516           FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(SI-><a class="code" href="classllvm_1_1SelectInst.html#a67bf091383cd61e1225445e78b61d9f9">getTrueValue</a>());
+<a name="l00517"></a>00517           FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(SI-><a class="code" href="classllvm_1_1SelectInst.html#a29a16f32075ee4f23cd769701463952c">getFalseValue</a>());
+<a name="l00518"></a>00518           <span class="keywordflow">continue</span>;
+<a name="l00519"></a>00519         }
+<a name="l00520"></a>00520         <span class="keywordflow">case</span> <a class="code" href="namespacellvm.html#a332cde6eadc39e042b35937d137c83f6">Instruction::PHI</a>: {
+<a name="l00521"></a>00521           <a class="code" href="classllvm_1_1PHINode.html">PHINode</a> *PN = cast<PHINode>(RVI);
+<a name="l00522"></a>00522           <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = PN-><a class="code" href="classllvm_1_1PHINode.html#aa45f6c0433576e3858a6209a43750ad4">getNumIncomingValues</a>(); i != e; ++i)
+<a name="l00523"></a>00523             FlowsToReturn.<a class="code" href="classllvm_1_1SetVector.html#a72d928b7fc2c5f2d56c6ac0265fd9c6e" title="Insert a new element into the SetVector.">insert</a>(PN-><a class="code" href="classllvm_1_1PHINode.html#aba6a4cc4ed6d6fef3664b8d65ef04820">getIncomingValue</a>(i));
+<a name="l00524"></a>00524           <span class="keywordflow">continue</span>;
+<a name="l00525"></a>00525         }
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527         <span class="comment">// Check whether the pointer came from an allocation.</span>
+<a name="l00528"></a>00528         <span class="keywordflow">case</span> <a class="code" href="namespacellvm.html#a046d5352df590c864fee454e53ac31c6">Instruction::Alloca</a>:
+<a name="l00529"></a>00529           <span class="keywordflow">break</span>;
+<a name="l00530"></a>00530         <span class="keywordflow">case</span> <a class="code" href="namespacellvm.html#af6d6a791770bad2303c4399986979e3eae411369b2f0d8f484fec62c3291b1b51">Instruction::Call</a>:
+<a name="l00531"></a>00531         <span class="keywordflow">case</span> Instruction::Invoke: {
+<a name="l00532"></a>00532           <a class="code" href="classllvm_1_1CallSite.html">CallSite</a> CS(RVI);
+<a name="l00533"></a>00533           <span class="keywordflow">if</span> (CS.paramHasAttr(0, <a class="code" href="classllvm_1_1Attributes.html#a92f64dbb86772103c557c491dc1ebbe9ae50554f71b98d47d78a58d6ad1307e11" title="Considered to not alias after call.">Attributes::NoAlias</a>))
+<a name="l00534"></a>00534             <span class="keywordflow">break</span>;
+<a name="l00535"></a>00535           <span class="keywordflow">if</span> (CS.getCalledFunction() &&
+<a name="l00536"></a>00536               SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(CS.getCalledFunction()))
+<a name="l00537"></a>00537             <span class="keywordflow">break</span>;
+<a name="l00538"></a>00538         } <span class="comment">// fall-through</span>
+<a name="l00539"></a>00539         <span class="keywordflow">default</span>:
+<a name="l00540"></a>00540           <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Did not come from an allocation.</span>
+<a name="l00541"></a>00541       }
+<a name="l00542"></a>00542 
+<a name="l00543"></a>00543     <span class="keywordflow">if</span> (<a class="code" href="namespacellvm.html#a0b8531ebccf07d33408272bd51999962">PointerMayBeCaptured</a>(RetVal, <span class="keyword">false</span>, <span class="comment">/*StoreCaptures=*/</span><span class="keyword">false</span>))
+<a name="l00544"></a>00544       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00545"></a>00545   }
+<a name="l00546"></a>00546 
+<a name="l00547"></a>00547   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00548"></a>00548 }
+<a name="l00549"></a>00549 <span class="comment"></span>
+<a name="l00550"></a>00550 <span class="comment">/// AddNoAliasAttrs - Deduce noalias attributes for the SCC.</span>
+<a name="l00551"></a>00551 <span class="comment"></span><span class="keywordtype">bool</span> FunctionAttrs::AddNoAliasAttrs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC) {
+<a name="l00552"></a>00552   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<Function*, 8></a> SCCNodes;
+<a name="l00553"></a>00553 
+<a name="l00554"></a>00554   <span class="comment">// Fill SCCNodes with the elements of the SCC.  Used for quickly</span>
+<a name="l00555"></a>00555   <span class="comment">// looking up whether a given CallGraphNode is in this SCC.</span>
+<a name="l00556"></a>00556   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00557"></a>00557     SCCNodes.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>((*I)->getFunction());
+<a name="l00558"></a>00558 
+<a name="l00559"></a>00559   <span class="comment">// Check each function in turn, determining which functions return noalias</span>
+<a name="l00560"></a>00560   <span class="comment">// pointers.</span>
+<a name="l00561"></a>00561   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00562"></a>00562     <a class="code" href="classllvm_1_1Function.html">Function</a> *F = (*I)->getFunction();
+<a name="l00563"></a>00563 
+<a name="l00564"></a>00564     <span class="keywordflow">if</span> (F == 0)
+<a name="l00565"></a>00565       <span class="comment">// External node - skip it;</span>
+<a name="l00566"></a>00566       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00567"></a>00567 
+<a name="l00568"></a>00568     <span class="comment">// Already noalias.</span>
+<a name="l00569"></a>00569     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Function.html#aaebf54a11162c00fd114e8543a2875c1" title="Determine if the parameter does not alias other parameters.">doesNotAlias</a>(0))
+<a name="l00570"></a>00570       <span class="keywordflow">continue</span>;
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572     <span class="comment">// Definitions with weak linkage may be overridden at linktime, so</span>
+<a name="l00573"></a>00573     <span class="comment">// treat them like declarations.</span>
+<a name="l00574"></a>00574     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1GlobalValue.html#a4640d98233102674ddb6d6efaf2b7f97">isDeclaration</a>() || F-><a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">mayBeOverridden</a>())
+<a name="l00575"></a>00575       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00576"></a>00576 
+<a name="l00577"></a>00577     <span class="comment">// We annotate noalias return values, which are only applicable to </span>
+<a name="l00578"></a>00578     <span class="comment">// pointer types.</span>
+<a name="l00579"></a>00579     <span class="keywordflow">if</span> (!F-><a class="code" href="classllvm_1_1Function.html#a26ccf11b81c01a45cb40137c775f7cad">getReturnType</a>()-><a class="code" href="classllvm_1_1Type.html#a2eba483f5cc876e824aa6c085736086b">isPointerTy</a>())
+<a name="l00580"></a>00580       <span class="keywordflow">continue</span>;
+<a name="l00581"></a>00581 
+<a name="l00582"></a>00582     <span class="keywordflow">if</span> (!IsFunctionMallocLike(F, SCCNodes))
+<a name="l00583"></a>00583       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00584"></a>00584   }
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00587"></a>00587   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1CallGraphSCC.html#a5dc6f41d85a83e036bf7f9a25797e2ec">CallGraphSCC::iterator</a> I = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#aa262134562bc5f5df6c3f536162469b6">begin</a>(), E = SCC.<a class="code" href="classllvm_1_1CallGraphSCC.html#a6699d964429a39e8f78b348cb2535bf2">end</a>(); I != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00588"></a>00588     <a class="code" href="classllvm_1_1Function.html">Function</a> *F = (*I)->getFunction();
+<a name="l00589"></a>00589     <span class="keywordflow">if</span> (F-><a class="code" href="classllvm_1_1Function.html#aaebf54a11162c00fd114e8543a2875c1" title="Determine if the parameter does not alias other parameters.">doesNotAlias</a>(0) || !F-><a class="code" href="classllvm_1_1Function.html#a26ccf11b81c01a45cb40137c775f7cad">getReturnType</a>()-><a class="code" href="classllvm_1_1Type.html#a2eba483f5cc876e824aa6c085736086b">isPointerTy</a>())
+<a name="l00590"></a>00590       <span class="keywordflow">continue</span>;
+<a name="l00591"></a>00591 
+<a name="l00592"></a>00592     F-><a class="code" href="classllvm_1_1Function.html#a760eb64cd1c081d90189ff8be2449822">setDoesNotAlias</a>(0);
+<a name="l00593"></a>00593     ++NumNoAlias;
+<a name="l00594"></a>00594     MadeChange = <span class="keyword">true</span>;
+<a name="l00595"></a>00595   }
+<a name="l00596"></a>00596 
+<a name="l00597"></a>00597   <span class="keywordflow">return</span> MadeChange;
+<a name="l00598"></a>00598 }
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600 <span class="keywordtype">bool</span> FunctionAttrs::runOnSCC(<a class="code" href="classllvm_1_1CallGraphSCC.html" title="CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.">CallGraphSCC</a> &SCC) {
+<a name="l00601"></a>00601   AA = &getAnalysis<AliasAnalysis>();
+<a name="l00602"></a>00602 
+<a name="l00603"></a>00603   <span class="keywordtype">bool</span> Changed = AddReadAttrs(SCC);
+<a name="l00604"></a>00604   Changed |= AddNoCaptureAttrs(SCC);
+<a name="l00605"></a>00605   Changed |= AddNoAliasAttrs(SCC);
+<a name="l00606"></a>00606   <span class="keywordflow">return</span> Changed;
+<a name="l00607"></a>00607 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:46 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,540 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FunctionLoweringInfo.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+      <li class="navelem"><a class="el" href="dir_43253d775e33d5158290be54cbed80db.html">SelectionDAG</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FunctionLoweringInfo.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="FunctionLoweringInfo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- FunctionLoweringInfo.cpp ------------------------------------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This implements routines for translating functions from LLVM IR into</span>
+<a name="l00011"></a>00011 <span class="comment">// Machine IR.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a><a class="code" href="FunctionLoweringInfo_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00015</a> <span class="preprocessor">#define DEBUG_TYPE "function-lowering-info"</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="PostOrderIterator_8h.html">llvm/ADT/PostOrderIterator.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="FunctionLoweringInfo_8h.html">llvm/CodeGen/FunctionLoweringInfo.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="DebugInfo_8h.html">llvm/DebugInfo.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="DerivedTypes_8h.html">llvm/DerivedTypes.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="Function_8h.html">llvm/Function.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Instructions_8h.html">llvm/Instructions.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="IntrinsicInst_8h.html">llvm/IntrinsicInst.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="LLVMContext_8h.html">llvm/LLVMContext.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="Module_8h.html">llvm/Module.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Analysis_8h.html">llvm/CodeGen/Analysis.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="MachineFunction_8h.html">llvm/CodeGen/MachineFunction.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="MachineFrameInfo_8h.html">llvm/CodeGen/MachineFrameInfo.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="MachineInstrBuilder_8h.html">llvm/CodeGen/MachineInstrBuilder.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="MachineModuleInfo_8h.html">llvm/CodeGen/MachineModuleInfo.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="MachineRegisterInfo_8h.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="DataLayout_8h.html">llvm/DataLayout.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="TargetInstrInfo_8h.html">llvm/Target/TargetInstrInfo.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="TargetLowering_8h.html">llvm/Target/TargetLowering.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="TargetOptions_8h.html">llvm/Target/TargetOptions.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="MathExtras_8h.html">llvm/Support/MathExtras.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include <algorithm></span>
+<a name="l00040"></a>00040 <span class="keyword">using namespace </span>llvm;
+<a name="l00041"></a>00041 <span class="comment"></span>
+<a name="l00042"></a>00042 <span class="comment">/// isUsedOutsideOfDefiningBlock - Return true if this instruction is used by</span>
+<a name="l00043"></a>00043 <span class="comment">/// PHI nodes or outside of the basic block that defines it, or used by a</span>
+<a name="l00044"></a>00044 <span class="comment">/// switch or atomic instruction, which may expand to multiple basic blocks.</span>
+<a name="l00045"></a><a class="code" href="FunctionLoweringInfo_8cpp.html#aec1de31cd4bfbbbf00d2903ecae5cbba">00045</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="FunctionLoweringInfo_8cpp.html#aec1de31cd4bfbbbf00d2903ecae5cbba">isUsedOutsideOfDefiningBlock</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Instruction.html">Instruction</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00046"></a>00046   <span class="keywordflow">if</span> (I-><a class="code" href="classllvm_1_1Value.html#ac38c53f76ef532f91f1666c8a87370e9">use_empty</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00047"></a>00047   <span class="keywordflow">if</span> (isa<PHINode>(I)) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00048"></a>00048   <span class="keyword">const</span> <a class="code" href="classllvm_1_1BasicBlock.html" title="LLVM Basic Block Representation.">BasicBlock</a> *BB = I-><a class="code" href="classllvm_1_1Instruction.html#a9cd49851904f15060edb782ef4dd1b2d">getParent</a>();
+<a name="l00049"></a>00049   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1value__use__iterator.html">Value::const_use_iterator</a> UI = I-><a class="code" href="classllvm_1_1Value.html#a413abcab8dbc3900fc2fde96a5d8fca6">use_begin</a>(), E = I-><a class="code" href="classllvm_1_1Value.html#ad86469939d2a8bdd4169be9403b89f5a">use_end</a>();
+<a name="l00050"></a>00050         UI != E; ++UI) {
+<a name="l00051"></a>00051     <span class="keyword">const</span> <a class="code" href="classllvm_1_1User.html">User</a> *U = *UI;
+<a name="l00052"></a>00052     <span class="keywordflow">if</span> (cast<Instruction>(U)->getParent() != BB || isa<PHINode>(U))
+<a name="l00053"></a>00053       <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00054"></a>00054   }
+<a name="l00055"></a>00055   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057 
+<a name="l00058"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#af15d8f962ecb055047fa256d051d28d3">00058</a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#af15d8f962ecb055047fa256d051d28d3">FunctionLoweringInfo::FunctionLoweringInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetLowering.html">TargetLowering</a> &tli)
+<a name="l00059"></a>00059   : TLI(tli) {
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061 
+<a name="l00062"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8ab5bf80d0bf28b785191c8033f4065e">00062</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8ab5bf80d0bf28b785191c8033f4065e">FunctionLoweringInfo::set</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a> &fn, <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &mf) {
+<a name="l00063"></a>00063   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a> = &fn;
+<a name="l00064"></a>00064   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a> = &mf;
+<a name="l00065"></a>00065   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#adda780c93aae358f7ee00c01081ee840">RegInfo</a> = &<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>-><a class="code" href="classllvm_1_1MachineFunction.html#ab4a6ca428289b667dd691a00e9f7e334">getRegInfo</a>();
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067   <span class="comment">// Check whether the function can return without sret-demotion.</span>
+<a name="l00068"></a>00068   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ISD::OutputArg, 4></a> Outs;
+<a name="l00069"></a>00069   <a class="code" href="namespacellvm.html#afc89dc54e5c954bb82d26ac2edf0e0a8">GetReturnInfo</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a26ccf11b81c01a45cb40137c775f7cad">getReturnType</a>(),
+<a name="l00070"></a>00070                 <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a04b883953d9706a93075c90c09fe1059">getAttributes</a>().<a class="code" href="classllvm_1_1AttrListPtr.html#a3e0d7269de82cafcae2596985b1e6fc9">getRetAttributes</a>(), Outs, <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>);
+<a name="l00071"></a>00071   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ade69181df61b7b2bc7287062cf0847ce">CanLowerReturn</a> = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#a2935c22c9eb25e9c7eaad81a58af9a84">CanLowerReturn</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#af4d5ada526cdf057f5f29047e058187d">getCallingConv</a>(), *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>,
+<a name="l00072"></a>00072                                       <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#ae0466120bfdf5b97b25aa06f3015cd51">isVarArg</a>(),
+<a name="l00073"></a>00073                                       Outs, <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>());
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075   <span class="comment">// Initialize the mapping of values to registers.  This is only set up for</span>
+<a name="l00076"></a>00076   <span class="comment">// instruction values that are used outside of the block that defines</span>
+<a name="l00077"></a>00077   <span class="comment">// them.</span>
+<a name="l00078"></a>00078   <a class="code" href="classllvm_1_1ilist__iterator.html">Function::const_iterator</a> BB = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a88a5e60837674780a9d812d661897ac5">begin</a>(), EB = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#ae4ca2261b8b901e415fda7feac5051ea">end</a>();
+<a name="l00079"></a>00079   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">BasicBlock::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = BB->begin(), E = BB->end(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00080"></a>00080     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> *AI = dyn_cast<AllocaInst>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>))
+<a name="l00081"></a>00081       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1ConstantInt.html" title="Class for constant integers.">ConstantInt</a> *CUI = dyn_cast<ConstantInt>(AI->getArraySize())) {
+<a name="l00082"></a>00082         <a class="code" href="classllvm_1_1Type.html">Type</a> *Ty = AI->getAllocatedType();
+<a name="l00083"></a>00083         uint64_t TySize = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#a0fe41e2de0ccd3e95c6645b52175c838">getDataLayout</a>()-><a class="code" href="classllvm_1_1DataLayout.html#a1d6fcc02e91ba24510aba42660c90e29">getTypeAllocSize</a>(Ty);
+<a name="l00084"></a>00084         <span class="keywordtype">unsigned</span> Align =
+<a name="l00085"></a>00085           std::max((<span class="keywordtype">unsigned</span>)<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#a0fe41e2de0ccd3e95c6645b52175c838">getDataLayout</a>()-><a class="code" href="classllvm_1_1DataLayout.html#adfb7610cbc23430a7d4077a3cf9c22d3">getPrefTypeAlignment</a>(Ty),
+<a name="l00086"></a>00086                    AI->getAlignment());
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088         TySize *= CUI->getZExtValue();   <span class="comment">// Get total allocated size.</span>
+<a name="l00089"></a>00089         <span class="keywordflow">if</span> (TySize == 0) TySize = 1; <span class="comment">// Don't create zero-sized stack objects.</span>
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091         <span class="comment">// The object may need to be placed onto the stack near the stack</span>
+<a name="l00092"></a>00092         <span class="comment">// protector if one exists. Determine here if this object is a suitable</span>
+<a name="l00093"></a>00093         <span class="comment">// candidate. I.e., it would trigger the creation of a stack protector.</span>
+<a name="l00094"></a>00094         <span class="keywordtype">bool</span> MayNeedSP =
+<a name="l00095"></a>00095           (AI->isArrayAllocation() ||
+<a name="l00096"></a>00096            (TySize >= 8 && isa<ArrayType>(Ty) &&
+<a name="l00097"></a>00097             cast<ArrayType>(Ty)->getElementType()->isIntegerTy(8)));
+<a name="l00098"></a>00098         <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>[AI] =
+<a name="l00099"></a>00099           <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>-><a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>()-><a class="code" href="classllvm_1_1MachineFrameInfo.html#acd4dd34a1fe2579c4e2a349aacd76bcb">CreateStackObject</a>(TySize, Align, <span class="keyword">false</span>,
+<a name="l00100"></a>00100                                                 MayNeedSP, AI);
+<a name="l00101"></a>00101       }
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103   <span class="keywordflow">for</span> (; BB != EB; ++BB)
+<a name="l00104"></a>00104     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">BasicBlock::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = BB->begin(), E = BB->end();
+<a name="l00105"></a>00105          <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00106"></a>00106       <span class="comment">// Mark values used outside their block as exported, by allocating</span>
+<a name="l00107"></a>00107       <span class="comment">// a virtual register for them.</span>
+<a name="l00108"></a>00108       <span class="keywordflow">if</span> (<a class="code" href="FunctionLoweringInfo_8cpp.html#aec1de31cd4bfbbbf00d2903ecae5cbba">isUsedOutsideOfDefiningBlock</a>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>))
+<a name="l00109"></a>00109         <span class="keywordflow">if</span> (!isa<AllocaInst>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) ||
+<a name="l00110"></a>00110             !<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a4efb46d4834f6f750ae0649ed89ce44c" title="count - Return true if the specified key is in the map.">count</a>(cast<AllocaInst>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)))
+<a name="l00111"></a>00111           <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac1199c6e77ae7972d0fa0f7435b0d266">InitializeRegForValue</a>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113       <span class="comment">// Collect llvm.dbg.declare information. This is done now instead of</span>
+<a name="l00114"></a>00114       <span class="comment">// during the initial isel pass through the IR so that it is done</span>
+<a name="l00115"></a>00115       <span class="comment">// in a predictable order.</span>
+<a name="l00116"></a>00116       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1DbgDeclareInst.html">DbgDeclareInst</a> *DI = dyn_cast<DbgDeclareInst>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)) {
+<a name="l00117"></a>00117         <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> &MMI = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>-><a class="code" href="classllvm_1_1MachineFunction.html#aaaa58853344cccb2ae6dcecea4ee54ad">getMMI</a>();
+<a name="l00118"></a>00118         <span class="keywordflow">if</span> (MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#af1cb1572271c30b402591e2b3d832ca6">hasDebugInfo</a>() &&
+<a name="l00119"></a>00119             <a class="code" href="classllvm_1_1DIVariable.html">DIVariable</a>(DI->getVariable()).Verify() &&
+<a name="l00120"></a>00120             !DI->getDebugLoc().isUnknown()) {
+<a name="l00121"></a>00121           <span class="comment">// Don't handle byval struct arguments or VLAs, for example.</span>
+<a name="l00122"></a>00122           <span class="comment">// Non-byval arguments are handled here (they refer to the stack</span>
+<a name="l00123"></a>00123           <span class="comment">// temporary alloca at this point).</span>
+<a name="l00124"></a>00124           <span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *Address = DI->getAddress();
+<a name="l00125"></a>00125           <span class="keywordflow">if</span> (Address) {
+<a name="l00126"></a>00126             <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1BitCastInst.html" title="This class represents a no-op cast from one type to another.">BitCastInst</a> *BCI = dyn_cast<BitCastInst>(Address))
+<a name="l00127"></a>00127               Address = BCI->getOperand(0);
+<a name="l00128"></a>00128             <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> *AI = dyn_cast<AllocaInst>(Address)) {
+<a name="l00129"></a>00129               <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const AllocaInst *, int>::iterator</a> SI =
+<a name="l00130"></a>00130                 <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(AI);
+<a name="l00131"></a>00131               <span class="keywordflow">if</span> (SI != <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>()) { <span class="comment">// Check for VLAs.</span>
+<a name="l00132"></a>00132                 <span class="keywordtype">int</span> FI = SI->second;
+<a name="l00133"></a>00133                 MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#ae9169dda1b52bd431e67dd39919f58fa">setVariableDbgInfo</a>(DI->getVariable(),
+<a name="l00134"></a>00134                                        FI, DI->getDebugLoc());
+<a name="l00135"></a>00135               }
+<a name="l00136"></a>00136             }
+<a name="l00137"></a>00137           }
+<a name="l00138"></a>00138         }
+<a name="l00139"></a>00139       }
+<a name="l00140"></a>00140     }
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142   <span class="comment">// Create an initial MachineBasicBlock for each LLVM BasicBlock in F.  This</span>
+<a name="l00143"></a>00143   <span class="comment">// also creates the initial PHI MachineInstrs, though none of the input</span>
+<a name="l00144"></a>00144   <span class="comment">// operands are populated.</span>
+<a name="l00145"></a>00145   <span class="keywordflow">for</span> (BB = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a88a5e60837674780a9d812d661897ac5">begin</a>(); BB != EB; ++BB) {
+<a name="l00146"></a>00146     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9893077f1825192ca0f3d173afefb573" title="MBB - The current block.">MBB</a> = mf.<a class="code" href="classllvm_1_1MachineFunction.html#ab2a56feb4fe943ae2362d61f3a43acca">CreateMachineBasicBlock</a>(BB);
+<a name="l00147"></a>00147     <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4c53c37d30d9482f565f78751a3797d3" title="MBBMap - A mapping from LLVM basic blocks to their machine code entry.">MBBMap</a>[BB] = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9893077f1825192ca0f3d173afefb573" title="MBB - The current block.">MBB</a>;
+<a name="l00148"></a>00148     <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>-><a class="code" href="classllvm_1_1MachineFunction.html#a70b0525ecc6022336feb019ff63c934c">push_back</a>(MBB);
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150     <span class="comment">// Transfer the address-taken flag. This is necessary because there could</span>
+<a name="l00151"></a>00151     <span class="comment">// be multiple MachineBasicBlocks corresponding to one BasicBlock, and only</span>
+<a name="l00152"></a>00152     <span class="comment">// the first one should be marked.</span>
+<a name="l00153"></a>00153     <span class="keywordflow">if</span> (BB->hasAddressTaken())
+<a name="l00154"></a>00154       MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#a6d180825b3dcc1bd2b8e415160207335">setHasAddressTaken</a>();
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156     <span class="comment">// Create Machine PHI nodes for LLVM PHI nodes, lowering them as</span>
+<a name="l00157"></a>00157     <span class="comment">// appropriate.</span>
+<a name="l00158"></a>00158     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">BasicBlock::const_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = BB->begin();
+<a name="l00159"></a>00159          <span class="keyword">const</span> <a class="code" href="classllvm_1_1PHINode.html">PHINode</a> *PN = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1PHINode.html">PHINode</a>>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>); ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00160"></a>00160       <span class="keywordflow">if</span> (PN-><a class="code" href="classllvm_1_1Value.html#ac38c53f76ef532f91f1666c8a87370e9">use_empty</a>()) <span class="keywordflow">continue</span>;
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162       <span class="comment">// Skip empty types</span>
+<a name="l00163"></a>00163       <span class="keywordflow">if</span> (PN-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>()-><a class="code" href="classllvm_1_1Type.html#a33cb3169b378c66ae5333063f9604828">isEmptyTy</a>())
+<a name="l00164"></a>00164         <span class="keywordflow">continue</span>;
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166       <a class="code" href="classllvm_1_1DebugLoc.html">DebugLoc</a> DL = PN-><a class="code" href="classllvm_1_1Instruction.html#aab8e16a35183ce39aad394714087bcff" title="getDebugLoc - Return the debug location for this node as a DebugLoc.">getDebugLoc</a>();
+<a name="l00167"></a>00167       <span class="keywordtype">unsigned</span> PHIReg = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>[PN];
+<a name="l00168"></a>00168       assert(PHIReg && <span class="stringliteral">"PHI node does not have an assigned virtual register!"</span>);
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<EVT, 4></a> ValueVTs;
+<a name="l00171"></a>00171       <a class="code" href="namespacellvm.html#ad601c9cc2a3c83bea2aec0f6d8b8639a">ComputeValueVTs</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>, PN-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>(), ValueVTs);
+<a name="l00172"></a>00172       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> vti = 0, vte = ValueVTs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); vti != vte; ++vti) {
+<a name="l00173"></a>00173         <a class="code" href="structllvm_1_1EVT.html">EVT</a> VT = ValueVTs[vti];
+<a name="l00174"></a>00174         <span class="keywordtype">unsigned</span> NumRegisters = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#aac210d2319967dba9f8c079c0b2e2a21">getNumRegisters</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a2da53ac53516a3f16191f4c8a8eaa3e5">getContext</a>(), VT);
+<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *TII = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>-><a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#ac13d0f6f2c915757013b101ef6e8afbc">getInstrInfo</a>();
+<a name="l00176"></a>00176         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumRegisters; ++i)
+<a name="l00177"></a>00177           <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MBB, DL, TII-><a class="code" href="classllvm_1_1MCInstrInfo.html#ab16f5a81fccfe4b7f645ba5a74ffad02">get</a>(<a class="code" href="namespacellvm_1_1TargetOpcode.html#aa2b3629c9319f86eee5a2c0e8c75ebfaae41f9ca68ba5e8b9613cea03652ebd72">TargetOpcode::PHI</a>), PHIReg + i);
+<a name="l00178"></a>00178         PHIReg += NumRegisters;
+<a name="l00179"></a>00179       }
+<a name="l00180"></a>00180     }
+<a name="l00181"></a>00181   }
+<a name="l00182"></a>00182 
+<a name="l00183"></a>00183   <span class="comment">// Mark landing pad blocks.</span>
+<a name="l00184"></a>00184   <span class="keywordflow">for</span> (BB = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>-><a class="code" href="classllvm_1_1Function.html#a88a5e60837674780a9d812d661897ac5">begin</a>(); BB != EB; ++BB)
+<a name="l00185"></a>00185     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1InvokeInst.html">InvokeInst</a> *Invoke = dyn_cast<InvokeInst>(BB->getTerminator()))
+<a name="l00186"></a>00186       <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4c53c37d30d9482f565f78751a3797d3" title="MBBMap - A mapping from LLVM basic blocks to their machine code entry.">MBBMap</a>[Invoke->getSuccessor(1)]->setIsLandingPad();
+<a name="l00187"></a>00187 }
+<a name="l00188"></a>00188 <span class="comment"></span>
+<a name="l00189"></a>00189 <span class="comment">/// clear - Clear out all the function-specific state. This returns this</span>
+<a name="l00190"></a>00190 <span class="comment">/// FunctionLoweringInfo to an empty state, ready to be used for a</span>
+<a name="l00191"></a>00191 <span class="comment">/// different function.</span>
+<a name="l00192"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a1281235664d14beac83662b9f943e6d1">00192</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a1281235664d14beac83662b9f943e6d1">FunctionLoweringInfo::clear</a>() {
+<a name="l00193"></a>00193   assert(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa25c3eb5064d59cd09dd2bca024ae003">CatchInfoFound</a>.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#a41c201584742f7eb45b2be8cd54e3bcb">size</a>() == <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a059dd4fdaf222d24e23cf1249256dafa">CatchInfoLost</a>.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#a41c201584742f7eb45b2be8cd54e3bcb">size</a>() &&
+<a name="l00194"></a>00194          <span class="stringliteral">"Not all catch info was assigned to a landing pad!"</span>);
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4c53c37d30d9482f565f78751a3797d3" title="MBBMap - A mapping from LLVM basic blocks to their machine code entry.">MBBMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00197"></a>00197   <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#a49dc44e6a66de10991ee34e1df0d8065">clear</a>();
+<a name="l00198"></a>00198   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00199"></a>00199 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00200"></a>00200 <span class="preprocessor"></span>  <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a059dd4fdaf222d24e23cf1249256dafa">CatchInfoLost</a>.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#aa72472422d95c7052d62432ec279ff85">clear</a>();
+<a name="l00201"></a>00201   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa25c3eb5064d59cd09dd2bca024ae003">CatchInfoFound</a>.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#aa72472422d95c7052d62432ec279ff85">clear</a>();
+<a name="l00202"></a>00202 <span class="preprocessor">#endif</span>
+<a name="l00203"></a>00203 <span class="preprocessor"></span>  LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#ac835fc191baf29fc0fd54d1c41146868">clear</a>();
+<a name="l00204"></a>00204   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a451ef41c10474698faf84831057575a1">VisitedBBs</a>.<a class="code" href="classllvm_1_1SmallPtrSetImpl.html#aa72472422d95c7052d62432ec279ff85">clear</a>();
+<a name="l00205"></a>00205   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa7855aa1fdda952bb8b25a41df0cf976">ArgDbgValues</a>.<a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l00206"></a>00206   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6" title="ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.">ByValArgFrameIndexMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00207"></a>00207   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3f52fcf27ea6164f41a5568fb5a781e8" title="RegFixups - Registers which need to be replaced after isel is done.">RegFixups</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a6467bd6bb128c8b69a478548fc17351c">clear</a>();
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209 <span class="comment"></span>
+<a name="l00210"></a>00210 <span class="comment">/// CreateReg - Allocate a single virtual register for the given type.</span>
+<a name="l00211"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa83c7fcfd17c20035ca2645697ce7f34">00211</a> <span class="comment"></span><span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa83c7fcfd17c20035ca2645697ce7f34" title="CreateReg - Allocate a single virtual register for the given type.">FunctionLoweringInfo::CreateReg</a>(<a class="code" href="structllvm_1_1EVT.html">EVT</a> VT) {
+<a name="l00212"></a>00212   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#adda780c93aae358f7ee00c01081ee840">RegInfo</a>-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a76c3c7e3d4f11b4cfad37fc0449c9635">createVirtualRegister</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#ad59f32d23720de374ff78d8aee781b79">getRegClassFor</a>(VT));
+<a name="l00213"></a>00213 }
+<a name="l00214"></a>00214 <span class="comment"></span>
+<a name="l00215"></a>00215 <span class="comment">/// CreateRegs - Allocate the appropriate number of virtual registers of</span>
+<a name="l00216"></a>00216 <span class="comment">/// the correctly promoted or expanded types.  Assign these registers</span>
+<a name="l00217"></a>00217 <span class="comment">/// consecutive vreg numbers and return the first assigned number.</span>
+<a name="l00218"></a>00218 <span class="comment">///</span>
+<a name="l00219"></a>00219 <span class="comment">/// In the case that the given value has struct or array type, this function</span>
+<a name="l00220"></a>00220 <span class="comment">/// will assign registers for each member or element.</span>
+<a name="l00221"></a>00221 <span class="comment">///</span>
+<a name="l00222"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2d6bdc7bcc1f94fb003f83533c11819c">00222</a> <span class="comment"></span><span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2d6bdc7bcc1f94fb003f83533c11819c">FunctionLoweringInfo::CreateRegs</a>(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty) {
+<a name="l00223"></a>00223   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<EVT, 4></a> ValueVTs;
+<a name="l00224"></a>00224   <a class="code" href="namespacellvm.html#ad601c9cc2a3c83bea2aec0f6d8b8639a">ComputeValueVTs</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>, Ty, ValueVTs);
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226   <span class="keywordtype">unsigned</span> FirstReg = 0;
+<a name="l00227"></a>00227   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = 0, e = ValueVTs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> != e; ++<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>) {
+<a name="l00228"></a>00228     <a class="code" href="structllvm_1_1EVT.html">EVT</a> ValueVT = ValueVTs[<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>];
+<a name="l00229"></a>00229     <a class="code" href="structllvm_1_1EVT.html">EVT</a> RegisterVT = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#a0695a51330536a298c80546b1b72608d">getRegisterType</a>(Ty-><a class="code" href="classllvm_1_1Type.html#af348d5ea83429d08ba891ca3dd0e92b2" title="getContext - Return the LLVMContext in which this type was uniqued.">getContext</a>(), ValueVT);
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231     <span class="keywordtype">unsigned</span> NumRegs = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#aac210d2319967dba9f8c079c0b2e2a21">getNumRegisters</a>(Ty-><a class="code" href="classllvm_1_1Type.html#af348d5ea83429d08ba891ca3dd0e92b2" title="getContext - Return the LLVMContext in which this type was uniqued.">getContext</a>(), ValueVT);
+<a name="l00232"></a>00232     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumRegs; ++i) {
+<a name="l00233"></a>00233       <span class="keywordtype">unsigned</span> R = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa83c7fcfd17c20035ca2645697ce7f34" title="CreateReg - Allocate a single virtual register for the given type.">CreateReg</a>(RegisterVT);
+<a name="l00234"></a>00234       <span class="keywordflow">if</span> (!FirstReg) FirstReg = R;
+<a name="l00235"></a>00235     }
+<a name="l00236"></a>00236   }
+<a name="l00237"></a>00237   <span class="keywordflow">return</span> FirstReg;
+<a name="l00238"></a>00238 }
+<a name="l00239"></a>00239 <span class="comment"></span>
+<a name="l00240"></a>00240 <span class="comment">/// GetLiveOutRegInfo - Gets LiveOutInfo for a register, returning NULL if the</span>
+<a name="l00241"></a>00241 <span class="comment">/// register is a PHI destination and the PHI's LiveOutInfo is not valid. If</span>
+<a name="l00242"></a>00242 <span class="comment">/// the register's LiveOutInfo is for a smaller bit width, it is extended to</span>
+<a name="l00243"></a>00243 <span class="comment">/// the larger bit width by zero extension. The bit width must be no smaller</span>
+<a name="l00244"></a>00244 <span class="comment">/// than the LiveOutInfo's existing bit width.</span>
+<a name="l00245"></a>00245 <span class="comment"></span><span class="keyword">const</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">FunctionLoweringInfo::LiveOutInfo</a> *
+<a name="l00246"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a5b1be69255bb4270084adce9f3f5ef97">00246</a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">FunctionLoweringInfo::GetLiveOutRegInfo</a>(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>, <span class="keywordtype">unsigned</span> BitWidth) {
+<a name="l00247"></a>00247   <span class="keywordflow">if</span> (!LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#a4f6616201a89f276cfb638222b8b24fa">inBounds</a>(Reg))
+<a name="l00248"></a>00248     <span class="keywordflow">return</span> NULL;
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250   <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> *LOI = &LiveOutRegInfo[<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>];
+<a name="l00251"></a>00251   <span class="keywordflow">if</span> (!LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a>)
+<a name="l00252"></a>00252     <span class="keywordflow">return</span> NULL;
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254   <span class="keywordflow">if</span> (BitWidth > LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>.<a class="code" href="classllvm_1_1APInt.html#ad081689e23a8f5dea78dedd623d6a8f8">getBitWidth</a>()) {
+<a name="l00255"></a>00255     LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = 1;
+<a name="l00256"></a>00256     LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> = LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>.<a class="code" href="classllvm_1_1APInt.html#a7fe47410bb825eccb20f010dab13c72f" title="Zero extend or truncate to width.">zextOrTrunc</a>(BitWidth);
+<a name="l00257"></a>00257     LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> = LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a>.<a class="code" href="classllvm_1_1APInt.html#a7fe47410bb825eccb20f010dab13c72f" title="Zero extend or truncate to width.">zextOrTrunc</a>(BitWidth);
+<a name="l00258"></a>00258   }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260   <span class="keywordflow">return</span> LOI;
+<a name="l00261"></a>00261 }
+<a name="l00262"></a>00262 <span class="comment"></span>
+<a name="l00263"></a>00263 <span class="comment">/// ComputePHILiveOutRegInfo - Compute LiveOutInfo for a PHI's destination</span>
+<a name="l00264"></a>00264 <span class="comment">/// register based on the LiveOutInfo of its operands.</span>
+<a name="l00265"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#acada979e9424b6f61142bbca85a0fea0">00265</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#acada979e9424b6f61142bbca85a0fea0">FunctionLoweringInfo::ComputePHILiveOutRegInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1PHINode.html">PHINode</a> *PN) {
+<a name="l00266"></a>00266   <a class="code" href="classllvm_1_1Type.html">Type</a> *Ty = PN-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>();
+<a name="l00267"></a>00267   <span class="keywordflow">if</span> (!Ty-><a class="code" href="classllvm_1_1Type.html#a6e328feb83afa5cf1c966d6704e43fc1">isIntegerTy</a>() || Ty-><a class="code" href="classllvm_1_1Type.html#a6f725580f7834e2ca90762965866dad4">isVectorTy</a>())
+<a name="l00268"></a>00268     <span class="keywordflow">return</span>;
+<a name="l00269"></a>00269 
+<a name="l00270"></a>00270   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<EVT, 1></a> ValueVTs;
+<a name="l00271"></a>00271   <a class="code" href="namespacellvm.html#ad601c9cc2a3c83bea2aec0f6d8b8639a">ComputeValueVTs</a>(<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>, Ty, ValueVTs);
+<a name="l00272"></a>00272   assert(ValueVTs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() == 1 &&
+<a name="l00273"></a>00273          <span class="stringliteral">"PHIs with non-vector integer types should have a single VT."</span>);
+<a name="l00274"></a>00274   <a class="code" href="structllvm_1_1EVT.html">EVT</a> IntVT = ValueVTs[0];
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#aac210d2319967dba9f8c079c0b2e2a21">getNumRegisters</a>(PN-><a class="code" href="classllvm_1_1Value.html#af85a4828b6b5a8de7fc0a55cc0e5b52f" title="All values hold a context through their type.">getContext</a>(), IntVT) != 1)
+<a name="l00277"></a>00277     <span class="keywordflow">return</span>;
+<a name="l00278"></a>00278   IntVT = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>.<a class="code" href="classllvm_1_1TargetLowering.html#a5d823192663ba80b7a8eabd8ecb98f57">getTypeToTransformTo</a>(PN-><a class="code" href="classllvm_1_1Value.html#af85a4828b6b5a8de7fc0a55cc0e5b52f" title="All values hold a context through their type.">getContext</a>(), IntVT);
+<a name="l00279"></a>00279   <span class="keywordtype">unsigned</span> BitWidth = IntVT.<a class="code" href="structllvm_1_1EVT.html#a8cca25ddb3be86ad23567dc8d36dacd3" title="getSizeInBits - Return the size of the specified value type in bits.">getSizeInBits</a>();
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281   <span class="keywordtype">unsigned</span> DestReg = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>[PN];
+<a name="l00282"></a>00282   <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(DestReg))
+<a name="l00283"></a>00283     <span class="keywordflow">return</span>;
+<a name="l00284"></a>00284   LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#a5e822b0690502a04b87125e63dbc8316">grow</a>(DestReg);
+<a name="l00285"></a>00285   <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> &DestLOI = LiveOutRegInfo[DestReg];
+<a name="l00286"></a>00286 
+<a name="l00287"></a>00287   <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V = PN-><a class="code" href="classllvm_1_1PHINode.html#aba6a4cc4ed6d6fef3664b8d65ef04820">getIncomingValue</a>(0);
+<a name="l00288"></a>00288   <span class="keywordflow">if</span> (isa<UndefValue>(V) || isa<ConstantExpr>(V)) {
+<a name="l00289"></a>00289     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = 1;
+<a name="l00290"></a>00290     <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> Zero(BitWidth, 0);
+<a name="l00291"></a>00291     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> = Zero;
+<a name="l00292"></a>00292     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> = Zero;
+<a name="l00293"></a>00293     <span class="keywordflow">return</span>;
+<a name="l00294"></a>00294   }
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ConstantInt.html" title="Class for constant integers.">ConstantInt</a> *CI = dyn_cast<ConstantInt>(V)) {
+<a name="l00297"></a>00297     <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> Val = CI->getValue().<a class="code" href="classllvm_1_1APInt.html#a7fe47410bb825eccb20f010dab13c72f" title="Zero extend or truncate to width.">zextOrTrunc</a>(BitWidth);
+<a name="l00298"></a>00298     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = Val.<a class="code" href="classllvm_1_1APInt.html#a62befbcd05a300c41cd1e515a145e5a4">getNumSignBits</a>();
+<a name="l00299"></a>00299     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> = ~Val;
+<a name="l00300"></a>00300     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> = Val;
+<a name="l00301"></a>00301   } <span class="keywordflow">else</span> {
+<a name="l00302"></a>00302     assert(<a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#a786c962deec79715db211967c2c66573" title="count - Return true if the specified key is in the map.">count</a>(V) && <span class="stringliteral">"V should have been placed in ValueMap when its"</span>
+<a name="l00303"></a>00303                                 <span class="stringliteral">"CopyToReg node was created."</span>);
+<a name="l00304"></a>00304     <span class="keywordtype">unsigned</span> SrcReg = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>[V];
+<a name="l00305"></a>00305     <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(SrcReg)) {
+<a name="l00306"></a>00306       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a> = <span class="keyword">false</span>;
+<a name="l00307"></a>00307       <span class="keywordflow">return</span>;
+<a name="l00308"></a>00308     }
+<a name="l00309"></a>00309     <span class="keyword">const</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> *SrcLOI = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">GetLiveOutRegInfo</a>(SrcReg, BitWidth);
+<a name="l00310"></a>00310     <span class="keywordflow">if</span> (!SrcLOI) {
+<a name="l00311"></a>00311       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a> = <span class="keyword">false</span>;
+<a name="l00312"></a>00312       <span class="keywordflow">return</span>;
+<a name="l00313"></a>00313     }
+<a name="l00314"></a>00314     DestLOI = *SrcLOI;
+<a name="l00315"></a>00315   }
+<a name="l00316"></a>00316 
+<a name="l00317"></a>00317   assert(DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>.<a class="code" href="classllvm_1_1APInt.html#ad081689e23a8f5dea78dedd623d6a8f8">getBitWidth</a>() == BitWidth &&
+<a name="l00318"></a>00318          DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a>.<a class="code" href="classllvm_1_1APInt.html#ad081689e23a8f5dea78dedd623d6a8f8">getBitWidth</a>() == BitWidth &&
+<a name="l00319"></a>00319          <span class="stringliteral">"Masks should have the same bit width as the type."</span>);
+<a name="l00320"></a>00320 
+<a name="l00321"></a>00321   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 1, e = PN-><a class="code" href="classllvm_1_1PHINode.html#aa45f6c0433576e3858a6209a43750ad4">getNumIncomingValues</a>(); i != e; ++i) {
+<a name="l00322"></a>00322     <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V = PN-><a class="code" href="classllvm_1_1PHINode.html#aba6a4cc4ed6d6fef3664b8d65ef04820">getIncomingValue</a>(i);
+<a name="l00323"></a>00323     <span class="keywordflow">if</span> (isa<UndefValue>(V) || isa<ConstantExpr>(V)) {
+<a name="l00324"></a>00324       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = 1;
+<a name="l00325"></a>00325       <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> Zero(BitWidth, 0);
+<a name="l00326"></a>00326       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> = Zero;
+<a name="l00327"></a>00327       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> = Zero;
+<a name="l00328"></a>00328       <span class="keywordflow">return</span>;
+<a name="l00329"></a>00329     }
+<a name="l00330"></a>00330 
+<a name="l00331"></a>00331     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ConstantInt.html" title="Class for constant integers.">ConstantInt</a> *CI = dyn_cast<ConstantInt>(V)) {
+<a name="l00332"></a>00332       <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> Val = CI->getValue().<a class="code" href="classllvm_1_1APInt.html#a7fe47410bb825eccb20f010dab13c72f" title="Zero extend or truncate to width.">zextOrTrunc</a>(BitWidth);
+<a name="l00333"></a>00333       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = std::min(DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a>, Val.<a class="code" href="classllvm_1_1APInt.html#a62befbcd05a300c41cd1e515a145e5a4">getNumSignBits</a>());
+<a name="l00334"></a>00334       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> &= ~Val;
+<a name="l00335"></a>00335       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> &= Val;
+<a name="l00336"></a>00336       <span class="keywordflow">continue</span>;
+<a name="l00337"></a>00337     }
+<a name="l00338"></a>00338 
+<a name="l00339"></a>00339     assert(<a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#a786c962deec79715db211967c2c66573" title="count - Return true if the specified key is in the map.">count</a>(V) && <span class="stringliteral">"V should have been placed in ValueMap when "</span>
+<a name="l00340"></a>00340                                 <span class="stringliteral">"its CopyToReg node was created."</span>);
+<a name="l00341"></a>00341     <span class="keywordtype">unsigned</span> SrcReg = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>[V];
+<a name="l00342"></a>00342     <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1TargetRegisterInfo.html#ae62c5ea35b71f9020caa94340bc78f37">TargetRegisterInfo::isVirtualRegister</a>(SrcReg)) {
+<a name="l00343"></a>00343       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a> = <span class="keyword">false</span>;
+<a name="l00344"></a>00344       <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345     }
+<a name="l00346"></a>00346     <span class="keyword">const</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> *SrcLOI = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">GetLiveOutRegInfo</a>(SrcReg, BitWidth);
+<a name="l00347"></a>00347     <span class="keywordflow">if</span> (!SrcLOI) {
+<a name="l00348"></a>00348       DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a> = <span class="keyword">false</span>;
+<a name="l00349"></a>00349       <span class="keywordflow">return</span>;
+<a name="l00350"></a>00350     }
+<a name="l00351"></a>00351     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = std::min(DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a>, SrcLOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a>);
+<a name="l00352"></a>00352     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> &= SrcLOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>;
+<a name="l00353"></a>00353     DestLOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> &= SrcLOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a>;
+<a name="l00354"></a>00354   }
+<a name="l00355"></a>00355 }
+<a name="l00356"></a>00356 <span class="comment"></span>
+<a name="l00357"></a>00357 <span class="comment">/// setArgumentFrameIndex - Record frame index for the byval</span>
+<a name="l00358"></a>00358 <span class="comment">/// argument. This overrides previous frame index entry for this argument,</span>
+<a name="l00359"></a>00359 <span class="comment">/// if any.</span>
+<a name="l00360"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2752e8fd3a00aa8c955da610c36b90a3">00360</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2752e8fd3a00aa8c955da610c36b90a3">FunctionLoweringInfo::setArgumentFrameIndex</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>,
+<a name="l00361"></a>00361                                                  <span class="keywordtype">int</span> FI) {
+<a name="l00362"></a>00362   <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6" title="ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.">ByValArgFrameIndexMap</a>[<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>] = FI;
+<a name="l00363"></a>00363 }
+<a name="l00364"></a>00364 <span class="comment"></span>
+<a name="l00365"></a>00365 <span class="comment">/// getArgumentFrameIndex - Get frame index for the byval argument.</span>
+<a name="l00366"></a>00366 <span class="comment">/// If the argument does not have any assigned frame index then 0 is</span>
+<a name="l00367"></a>00367 <span class="comment">/// returned.</span>
+<a name="l00368"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4adbd2ebdab9c844ce0443c43c3ee16d">00368</a> <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4adbd2ebdab9c844ce0443c43c3ee16d" title="getArgumentFrameIndex - Get frame index for the byval argument.">FunctionLoweringInfo::getArgumentFrameIndex</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>) {
+<a name="l00369"></a>00369   <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const Argument *, int>::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> =
+<a name="l00370"></a>00370     <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6" title="ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.">ByValArgFrameIndexMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(A);
+<a name="l00371"></a>00371   <span class="keywordflow">if</span> (I != <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6" title="ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.">ByValArgFrameIndexMap</a>.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>())
+<a name="l00372"></a>00372     <span class="keywordflow">return</span> I->second;
+<a name="l00373"></a>00373   <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(<a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Argument does not have assigned frame index!\n"</span>);
+<a name="l00374"></a>00374   <span class="keywordflow">return</span> 0;
+<a name="l00375"></a>00375 }
+<a name="l00376"></a>00376 <span class="comment"></span>
+<a name="l00377"></a>00377 <span class="comment">/// ComputeUsesVAFloatArgument - Determine if any floating-point values are</span>
+<a name="l00378"></a>00378 <span class="comment">/// being passed to this variadic function, and set the MachineModuleInfo's</span>
+<a name="l00379"></a>00379 <span class="comment">/// usesVAFloatArgument flag if so. This flag is used to emit an undefined</span>
+<a name="l00380"></a>00380 <span class="comment">/// reference to _fltused on Windows, which will link in MSVCRT's</span>
+<a name="l00381"></a>00381 <span class="comment">/// floating-point support.</span>
+<a name="l00382"></a><a class="code" href="namespacellvm.html#aad90fd0bc31af06003b2a69ff29458b7">00382</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#aad90fd0bc31af06003b2a69ff29458b7">llvm::ComputeUsesVAFloatArgument</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallInst.html">CallInst</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>,
+<a name="l00383"></a>00383                                       <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> *MMI)
+<a name="l00384"></a>00384 {
+<a name="l00385"></a>00385   <a class="code" href="classllvm_1_1FunctionType.html">FunctionType</a> *FT = cast<FunctionType>(
+<a name="l00386"></a>00386     I.<a class="code" href="classllvm_1_1CallInst.html#a6917dcd78ac6655e9640ac3a96175e39">getCalledValue</a>()-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>()-><a class="code" href="classllvm_1_1Type.html#a1e2a8dc174c34596e7e8efc7ab7e08a0">getContainedType</a>(0));
+<a name="l00387"></a>00387   <span class="keywordflow">if</span> (FT-><a class="code" href="classllvm_1_1FunctionType.html#ab9b67f93a2231970abb3d95636660ffc">isVarArg</a>() && !MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a521c1eeb79878ec8e168546c23b116d5">usesVAFloatArgument</a>()) {
+<a name="l00388"></a>00388     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = I.<a class="code" href="classllvm_1_1CallInst.html#ac88b95273e6c753188f6a54d65548579">getNumArgOperands</a>(); i != e; ++i) {
+<a name="l00389"></a>00389       <a class="code" href="classllvm_1_1Type.html">Type</a>* T = I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(i)-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>();
+<a name="l00390"></a>00390       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1po__iterator.html">po_iterator<Type*></a> i = <a class="code" href="namespacellvm.html#a8a736f0023b19d73f205d93fec7094a8">po_begin</a>(T), e = <a class="code" href="namespacellvm.html#a31c465b4d456accd132c6dc332316b92">po_end</a>(T);
+<a name="l00391"></a>00391            i != e; ++i) {
+<a name="l00392"></a>00392         <span class="keywordflow">if</span> (i->isFloatingPointTy()) {
+<a name="l00393"></a>00393           MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#aed0b339126eaa04d1253d2981781783b">setUsesVAFloatArgument</a>(<span class="keyword">true</span>);
+<a name="l00394"></a>00394           <span class="keywordflow">return</span>;
+<a name="l00395"></a>00395         }
+<a name="l00396"></a>00396       }
+<a name="l00397"></a>00397     }
+<a name="l00398"></a>00398   }
+<a name="l00399"></a>00399 }
+<a name="l00400"></a>00400 <span class="comment"></span>
+<a name="l00401"></a>00401 <span class="comment">/// AddCatchInfo - Extract the personality and type infos from an eh.selector</span>
+<a name="l00402"></a>00402 <span class="comment">/// call, and add them to the specified machine basic block.</span>
+<a name="l00403"></a><a class="code" href="namespacellvm.html#a15bdd4dbcc147a1cd20d5e6c5313c7b6">00403</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a15bdd4dbcc147a1cd20d5e6c5313c7b6">llvm::AddCatchInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallInst.html">CallInst</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> *MMI,
+<a name="l00404"></a>00404                         <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB) {
+<a name="l00405"></a>00405   <span class="comment">// Inform the MachineModuleInfo of the personality for this landing pad.</span>
+<a name="l00406"></a>00406   <span class="keyword">const</span> <a class="code" href="classllvm_1_1ConstantExpr.html">ConstantExpr</a> *CE = cast<ConstantExpr>(I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(1));
+<a name="l00407"></a>00407   assert(CE-><a class="code" href="classllvm_1_1ConstantExpr.html#a9c029996bf40f01fdebc1dfdf1cec4df" title="getOpcode - Return the opcode at the root of this constant expression">getOpcode</a>() == Instruction::BitCast &&
+<a name="l00408"></a>00408          isa<Function>(CE-><a class="code" href="classllvm_1_1User.html#a997ff6a1758bf732b9b263fc61011644">getOperand</a>(0)) &&
+<a name="l00409"></a>00409          <span class="stringliteral">"Personality should be a function"</span>);
+<a name="l00410"></a>00410   MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a04129f05b579afbe8dfb542550a514df">addPersonality</a>(MBB, cast<Function>(CE-><a class="code" href="classllvm_1_1User.html#a997ff6a1758bf732b9b263fc61011644">getOperand</a>(0)));
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412   <span class="comment">// Gather all the type infos for this landing pad and pass them along to</span>
+<a name="l00413"></a>00413   <span class="comment">// MachineModuleInfo.</span>
+<a name="l00414"></a>00414   std::vector<const GlobalVariable *> TyInfo;
+<a name="l00415"></a>00415   <span class="keywordtype">unsigned</span> <a class="code" href="regcomp_8c.html#a0240ac851181b84ac374872dc5434ee4">N</a> = I.<a class="code" href="classllvm_1_1CallInst.html#ac88b95273e6c753188f6a54d65548579">getNumArgOperands</a>();
+<a name="l00416"></a>00416 
+<a name="l00417"></a>00417   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = N - 1; i > 1; --i) {
+<a name="l00418"></a>00418     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1ConstantInt.html" title="Class for constant integers.">ConstantInt</a> *CI = dyn_cast<ConstantInt>(I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(i))) {
+<a name="l00419"></a>00419       <span class="keywordtype">unsigned</span> FilterLength = CI->getZExtValue();
+<a name="l00420"></a>00420       <span class="keywordtype">unsigned</span> FirstCatch = i + FilterLength + !FilterLength;
+<a name="l00421"></a>00421       assert(FirstCatch <= N && <span class="stringliteral">"Invalid filter length"</span>);
+<a name="l00422"></a>00422 
+<a name="l00423"></a>00423       <span class="keywordflow">if</span> (FirstCatch < N) {
+<a name="l00424"></a>00424         TyInfo.reserve(N - FirstCatch);
+<a name="l00425"></a>00425         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = FirstCatch; j < N; ++j)
+<a name="l00426"></a>00426           TyInfo.push_back(<a class="code" href="namespacellvm.html#a5d151c4350f6e340ec196d13807202c3" title="ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.">ExtractTypeInfo</a>(I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(j)));
+<a name="l00427"></a>00427         MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a1f2d862730db92c66efb1f497351b3ea">addCatchTypeInfo</a>(MBB, TyInfo);
+<a name="l00428"></a>00428         TyInfo.clear();
+<a name="l00429"></a>00429       }
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431       <span class="keywordflow">if</span> (!FilterLength) {
+<a name="l00432"></a>00432         <span class="comment">// Cleanup.</span>
+<a name="l00433"></a>00433         MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a8fd626638370506d5e500902ad56cdc5">addCleanup</a>(MBB);
+<a name="l00434"></a>00434       } <span class="keywordflow">else</span> {
+<a name="l00435"></a>00435         <span class="comment">// Filter.</span>
+<a name="l00436"></a>00436         TyInfo.reserve(FilterLength - 1);
+<a name="l00437"></a>00437         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = i + 1; j < FirstCatch; ++j)
+<a name="l00438"></a>00438           TyInfo.push_back(<a class="code" href="namespacellvm.html#a5d151c4350f6e340ec196d13807202c3" title="ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.">ExtractTypeInfo</a>(I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(j)));
+<a name="l00439"></a>00439         MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a4a3edd7e0e6c2d7e43e6779e400d7fa0">addFilterTypeInfo</a>(MBB, TyInfo);
+<a name="l00440"></a>00440         TyInfo.clear();
+<a name="l00441"></a>00441       }
+<a name="l00442"></a>00442 
+<a name="l00443"></a>00443       N = i;
+<a name="l00444"></a>00444     }
+<a name="l00445"></a>00445   }
+<a name="l00446"></a>00446 
+<a name="l00447"></a>00447   <span class="keywordflow">if</span> (N > 2) {
+<a name="l00448"></a>00448     TyInfo.reserve(N - 2);
+<a name="l00449"></a>00449     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = 2; j < N; ++j)
+<a name="l00450"></a>00450       TyInfo.push_back(<a class="code" href="namespacellvm.html#a5d151c4350f6e340ec196d13807202c3" title="ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.">ExtractTypeInfo</a>(I.<a class="code" href="classllvm_1_1CallInst.html#a150b33ecedbc8c7803c2db8040fbe3f8">getArgOperand</a>(j)));
+<a name="l00451"></a>00451     MMI-><a class="code" href="classllvm_1_1MachineModuleInfo.html#a1f2d862730db92c66efb1f497351b3ea">addCatchTypeInfo</a>(MBB, TyInfo);
+<a name="l00452"></a>00452   }
+<a name="l00453"></a>00453 }
+<a name="l00454"></a>00454 <span class="comment"></span>
+<a name="l00455"></a>00455 <span class="comment">/// AddLandingPadInfo - Extract the exception handling information from the</span>
+<a name="l00456"></a>00456 <span class="comment">/// landingpad instruction and add them to the specified machine module info.</span>
+<a name="l00457"></a><a class="code" href="namespacellvm.html#a1a6748afdf1d0fc16f52b11268d5962f">00457</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a1a6748afdf1d0fc16f52b11268d5962f">llvm::AddLandingPadInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1LandingPadInst.html">LandingPadInst</a> &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> &MMI,
+<a name="l00458"></a>00458                              <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB) {
+<a name="l00459"></a>00459   MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#a04129f05b579afbe8dfb542550a514df">addPersonality</a>(MBB,
+<a name="l00460"></a>00460                      cast<Function>(I.<a class="code" href="classllvm_1_1LandingPadInst.html#a7e36bd4ab20bc5b099513596126ff236">getPersonalityFn</a>()-><a class="code" href="classllvm_1_1Value.html#a38ea12c04523d63adda732b9c5d6da0a">stripPointerCasts</a>()));
+<a name="l00461"></a>00461 
+<a name="l00462"></a>00462   <span class="keywordflow">if</span> (I.<a class="code" href="classllvm_1_1LandingPadInst.html#a79bc76d95af0c68ea5d77c5a0743c930">isCleanup</a>())
+<a name="l00463"></a>00463     MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#a8fd626638370506d5e500902ad56cdc5">addCleanup</a>(MBB);
+<a name="l00464"></a>00464 
+<a name="l00465"></a>00465   <span class="comment">// FIXME: New EH - Add the clauses in reverse order. This isn't 100% correct,</span>
+<a name="l00466"></a>00466   <span class="comment">//        but we need to do it this way because of how the DWARF EH emitter</span>
+<a name="l00467"></a>00467   <span class="comment">//        processes the clauses.</span>
+<a name="l00468"></a>00468   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = I.<a class="code" href="classllvm_1_1LandingPadInst.html#a0996e256e9037e03a45d904b48c90aac" title="getNumClauses - Get the number of clauses for this landing pad.">getNumClauses</a>(); i != 0; --i) {
+<a name="l00469"></a>00469     <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *Val = I.<a class="code" href="classllvm_1_1LandingPadInst.html#ac32253b1954f4abfcbff519ab343f2b1">getClause</a>(i - 1);
+<a name="l00470"></a>00470     <span class="keywordflow">if</span> (I.<a class="code" href="classllvm_1_1LandingPadInst.html#aba66c0ac59ae4b9a08ae5ed04cc8e3db" title="isCatch - Return 'true' if the clause and index Idx is a catch clause.">isCatch</a>(i - 1)) {
+<a name="l00471"></a>00471       MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#a1f2d862730db92c66efb1f497351b3ea">addCatchTypeInfo</a>(MBB,
+<a name="l00472"></a>00472                            dyn_cast<GlobalVariable>(Val-><a class="code" href="classllvm_1_1Value.html#a38ea12c04523d63adda732b9c5d6da0a">stripPointerCasts</a>()));
+<a name="l00473"></a>00473     } <span class="keywordflow">else</span> {
+<a name="l00474"></a>00474       <span class="comment">// Add filters in a list.</span>
+<a name="l00475"></a>00475       <a class="code" href="classllvm_1_1Constant.html" title="LLVM Constant Representation.">Constant</a> *CVal = cast<Constant>(Val);
+<a name="l00476"></a>00476       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const GlobalVariable*, 4></a> FilterList;
+<a name="l00477"></a>00477       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1Use.html">User::op_iterator</a>
+<a name="l00478"></a>00478              II = CVal-><a class="code" href="classllvm_1_1User.html#a2eeb1c7ed1cfe403f2ae0470e36c07e2">op_begin</a>(), <a class="code" href="namespacellvm_1_1ARM__PROC.html#a1add7850fad3f66c140ecee871460ea4ae9d798593a4a6b5cc48486a453a59e5e">IE</a> = CVal-><a class="code" href="classllvm_1_1User.html#af41f58e730804d10b91fcff39b035f74">op_end</a>(); II != <a class="code" href="namespacellvm_1_1ARM__PROC.html#a1add7850fad3f66c140ecee871460ea4ae9d798593a4a6b5cc48486a453a59e5e">IE</a>; ++II)
+<a name="l00479"></a>00479         FilterList.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(cast<GlobalVariable>((*II)->stripPointerCasts()));
+<a name="l00480"></a>00480 
+<a name="l00481"></a>00481       MMI.<a class="code" href="classllvm_1_1MachineModuleInfo.html#a4a3edd7e0e6c2d7e43e6779e400d7fa0">addFilterTypeInfo</a>(MBB, FilterList);
+<a name="l00482"></a>00482     }
+<a name="l00483"></a>00483   }
+<a name="l00484"></a>00484 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:46 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,21 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FunctionLoweringInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="FastISel.cpp",height=0.2,width=0.4,color="black",URL="$FastISel_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="FunctionLoweringInfo.cpp",height=0.2,width=0.4,color="black",URL="$FunctionLoweringInfo_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="SelectionDAGBuilder.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAGBuilder_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="SelectionDAGISel.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAGISel_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="ARMFastISel.cpp",height=0.2,width=0.4,color="black",URL="$ARMFastISel_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="X86FastISel.cpp",height=0.2,width=0.4,color="black",URL="$X86FastISel_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="X86ISelDAGToDAG.cpp",height=0.2,width=0.4,color="black",URL="$X86ISelDAGToDAG_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,194 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="FunctionLoweringInfo.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="black",URL="$InlineAsm_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Value.h",height=0.2,width=0.4,color="red",URL="$Value_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Instructions.h",height=0.2,width=0.4,color="black",URL="$Instructions_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="red",URL="$InstrTypes_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="red",URL="$DerivedTypes_8h.html"];
+  Node17 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Attributes.h",height=0.2,width=0.4,color="black",URL="$Attributes_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node18 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node22 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node15 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/IntegersSubset.h",height=0.2,width=0.4,color="red",URL="$IntegersSubset_8h.html"];
+  Node27 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/IntegersSubsetMapping.h",height=0.2,width=0.4,color="red",URL="$IntegersSubsetMapping_8h.html"];
+  Node28 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node29 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/APInt.h",height=0.2,width=0.4,color="black",URL="$APInt_8h.html"];
+  Node30 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node30 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node32 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node33 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node34 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node32 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/ADT/DenseSet.h",height=0.2,width=0.4,color="black",URL="$DenseSet_8h.html"];
+  Node36 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/IndexedMap.h",height=0.2,width=0.4,color="black",URL="$IndexedMap_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node38 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node40 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Analysis/BranchProbabilityInfo.h",height=0.2,width=0.4,color="black",URL="$BranchProbabilityInfo_8h.html"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node41 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node43 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Support/BranchProbability.h",height=0.2,width=0.4,color="black",URL="$BranchProbability_8h.html"];
+  Node44 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="black",URL="$ValueTypes_8h.html"];
+  Node45 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/CodeGen/ISDOpcodes.h",height=0.2,width=0.4,color="black",URL="$ISDOpcodes_8h.html"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="red",URL="$MachineBasicBlock_8h.html"];
+  Node47 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node48 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="red",URL="$CallSite_8h.html"];
+  Node49 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node50 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/FunctionLoweringInfo_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: FunctionLoweringInfo.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">FunctionLoweringInfo.h</div>  </div>
+</div>
+<div class="contents">
+<a href="FunctionLoweringInfo_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- FunctionLoweringInfo.h - Lower functions from LLVM IR to CodeGen --===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This implements routines for translating functions from LLVM IR into</span>
+<a name="l00011"></a>00011 <span class="comment">// Machine IR.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="preprocessor">#ifndef LLVM_CODEGEN_FUNCTIONLOWERINGINFO_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CODEGEN_FUNCTIONLOWERINGINFO_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="InlineAsm_8h.html">llvm/InlineAsm.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="Instructions_8h.html">llvm/Instructions.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="APInt_8h.html">llvm/ADT/APInt.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="DenseSet_8h.html">llvm/ADT/DenseSet.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="IndexedMap_8h.html">llvm/ADT/IndexedMap.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="SmallPtrSet_8h.html">llvm/ADT/SmallPtrSet.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="SmallVector_8h.html">llvm/ADT/SmallVector.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="BranchProbabilityInfo_8h.html">llvm/Analysis/BranchProbabilityInfo.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ValueTypes_8h.html">llvm/CodeGen/ValueTypes.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="ISDOpcodes_8h.html">llvm/CodeGen/ISDOpcodes.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="MachineBasicBlock_8h.html">llvm/CodeGen/MachineBasicBlock.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="CallSite_8h.html">llvm/Support/CallSite.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include <vector></span>
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>llvm {
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="keyword">class </span>AllocaInst;
+<a name="l00037"></a>00037 <span class="keyword">class </span><a class="code" href="namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110a8472e46f9e4db168c5610ecdfb05dbaf" title="Various leaf nodes.">BasicBlock</a>;
+<a name="l00038"></a>00038 <span class="keyword">class </span>CallInst;
+<a name="l00039"></a>00039 <span class="keyword">class </span>Function;
+<a name="l00040"></a>00040 <span class="keyword">class </span>GlobalVariable;
+<a name="l00041"></a>00041 <span class="keyword">class </span>Instruction;
+<a name="l00042"></a>00042 <span class="keyword">class </span><a class="code" href="MBlazeMCCodeEmitter_8cpp.html#a620a0d6a5ef3ff7243ee978285a6f3db">MachineInstr</a>;
+<a name="l00043"></a>00043 <span class="keyword">class </span>MachineBasicBlock;
+<a name="l00044"></a>00044 <span class="keyword">class </span>MachineFunction;
+<a name="l00045"></a>00045 <span class="keyword">class </span>MachineModuleInfo;
+<a name="l00046"></a>00046 <span class="keyword">class </span>MachineRegisterInfo;
+<a name="l00047"></a>00047 <span class="keyword">class </span>TargetLowering;
+<a name="l00048"></a>00048 <span class="keyword">class </span>Value;
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 <span class="comment">//===--------------------------------------------------------------------===//</span><span class="comment"></span>
+<a name="l00051"></a>00051 <span class="comment">/// FunctionLoweringInfo - This contains information that is global to a</span>
+<a name="l00052"></a>00052 <span class="comment">/// function that is used when lowering a region of the function.</span>
+<a name="l00053"></a>00053 <span class="comment">///</span>
+<a name="l00054"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html">00054</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1FunctionLoweringInfo.html">FunctionLoweringInfo</a> {
+<a name="l00055"></a>00055 <span class="keyword">public</span>:
+<a name="l00056"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">00056</a>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetLowering.html">TargetLowering</a> &<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>;
+<a name="l00057"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">00057</a>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>;
+<a name="l00058"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">00058</a>   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>;
+<a name="l00059"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#adda780c93aae358f7ee00c01081ee840">00059</a>   <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#adda780c93aae358f7ee00c01081ee840">RegInfo</a>;
+<a name="l00060"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a021952a3b657f6321d050112563886c4">00060</a>   <a class="code" href="classllvm_1_1BranchProbabilityInfo.html" title="Analysis pass providing branch probability information.">BranchProbabilityInfo</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a021952a3b657f6321d050112563886c4">BPI</a>;<span class="comment"></span>
+<a name="l00061"></a>00061 <span class="comment">  /// CanLowerReturn - true iff the function's return value can be lowered to</span>
+<a name="l00062"></a>00062 <span class="comment">  /// registers.</span>
+<a name="l00063"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ade69181df61b7b2bc7287062cf0847ce">00063</a> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ade69181df61b7b2bc7287062cf0847ce">CanLowerReturn</a>;
+<a name="l00064"></a>00064 <span class="comment"></span>
+<a name="l00065"></a>00065 <span class="comment">  /// DemoteRegister - if CanLowerReturn is false, DemoteRegister is a vreg</span>
+<a name="l00066"></a>00066 <span class="comment">  /// allocated to hold a pointer to the hidden sret parameter.</span>
+<a name="l00067"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2135b3d546d4a00d5cf9b2d1cd3e42fb">00067</a> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2135b3d546d4a00d5cf9b2d1cd3e42fb">DemoteRegister</a>;
+<a name="l00068"></a>00068 <span class="comment"></span>
+<a name="l00069"></a>00069 <span class="comment">  /// MBBMap - A mapping from LLVM basic blocks to their machine code entry.</span>
+<a name="l00070"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4c53c37d30d9482f565f78751a3797d3">00070</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const BasicBlock*, MachineBasicBlock *></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4c53c37d30d9482f565f78751a3797d3" title="MBBMap - A mapping from LLVM basic blocks to their machine code entry.">MBBMap</a>;
+<a name="l00071"></a>00071 <span class="comment"></span>
+<a name="l00072"></a>00072 <span class="comment">  /// ValueMap - Since we emit code for the function a basic block at a time,</span>
+<a name="l00073"></a>00073 <span class="comment">  /// we must remember which virtual registers hold the values for</span>
+<a name="l00074"></a>00074 <span class="comment">  /// cross-basic-block values.</span>
+<a name="l00075"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a7465059e82380b0b0aa6f103ed28c8dc">00075</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const Value*, unsigned></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a7465059e82380b0b0aa6f103ed28c8dc">ValueMap</a>;
+<a name="l00076"></a>00076 <span class="comment"></span>
+<a name="l00077"></a>00077 <span class="comment">  /// StaticAllocaMap - Keep track of frame indices for fixed sized allocas in</span>
+<a name="l00078"></a>00078 <span class="comment">  /// the entry block.  This allows the allocas to be efficiently referenced</span>
+<a name="l00079"></a>00079 <span class="comment">  /// anywhere in the function.</span>
+<a name="l00080"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">00080</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const AllocaInst*, int></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3ec121cc6c5c5141f5ac46f101727e8a">StaticAllocaMap</a>;
+<a name="l00081"></a>00081 <span class="comment"></span>
+<a name="l00082"></a>00082 <span class="comment">  /// ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.</span>
+<a name="l00083"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6">00083</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const Argument*, int></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9ec33929a5691960c10bca5c8ec49fe6" title="ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.">ByValArgFrameIndexMap</a>;
+<a name="l00084"></a>00084 <span class="comment"></span>
+<a name="l00085"></a>00085 <span class="comment">  /// ArgDbgValues - A list of DBG_VALUE instructions created during isel for</span>
+<a name="l00086"></a>00086 <span class="comment">  /// function arguments that are inserted after scheduling is completed.</span>
+<a name="l00087"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa7855aa1fdda952bb8b25a41df0cf976">00087</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineInstr*, 8></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa7855aa1fdda952bb8b25a41df0cf976">ArgDbgValues</a>;
+<a name="l00088"></a>00088 <span class="comment"></span>
+<a name="l00089"></a>00089 <span class="comment">  /// RegFixups - Registers which need to be replaced after isel is done.</span>
+<a name="l00090"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3f52fcf27ea6164f41a5568fb5a781e8">00090</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<unsigned, unsigned></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a3f52fcf27ea6164f41a5568fb5a781e8" title="RegFixups - Registers which need to be replaced after isel is done.">RegFixups</a>;
+<a name="l00091"></a>00091 <span class="comment"></span>
+<a name="l00092"></a>00092 <span class="comment">  /// MBB - The current block.</span>
+<a name="l00093"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9893077f1825192ca0f3d173afefb573">00093</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a9893077f1825192ca0f3d173afefb573" title="MBB - The current block.">MBB</a>;
+<a name="l00094"></a>00094 <span class="comment"></span>
+<a name="l00095"></a>00095 <span class="comment">  /// MBB - The current insert position inside the current block.</span>
+<a name="l00096"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a90b6dd55afe6936ce5854c71baadbf92">00096</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a90b6dd55afe6936ce5854c71baadbf92" title="MBB - The current insert position inside the current block.">InsertPt</a>;
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00099"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a059dd4fdaf222d24e23cf1249256dafa">00099</a> <span class="preprocessor"></span>  <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<const Instruction *, 8></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a059dd4fdaf222d24e23cf1249256dafa">CatchInfoLost</a>;
+<a name="l00100"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa25c3eb5064d59cd09dd2bca024ae003">00100</a>   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<const Instruction *, 8></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa25c3eb5064d59cd09dd2bca024ae003">CatchInfoFound</a>;
+<a name="l00101"></a>00101 <span class="preprocessor">#endif</span>
+<a name="l00102"></a>00102 <span class="preprocessor"></span>
+<a name="l00103"></a><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">00103</a>   <span class="keyword">struct </span><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> {
+<a name="l00104"></a><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">00104</a>     <span class="keywordtype">unsigned</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> : 31;
+<a name="l00105"></a><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">00105</a>     <span class="keywordtype">bool</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a> : 1;
+<a name="l00106"></a><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">00106</a>     <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a>, <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>;
+<a name="l00107"></a><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aeab085bec726d772b2654028eb61fa05">00107</a>     <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aeab085bec726d772b2654028eb61fa05">LiveOutInfo</a>() : <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a>(0), <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a>(<a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>), <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a>(1, 0),
+<a name="l00108"></a>00108                     <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a>(1, 0) {}
+<a name="l00109"></a>00109   };
+<a name="l00110"></a>00110 <span class="comment"></span>
+<a name="l00111"></a>00111 <span class="comment">  /// VisitedBBs - The set of basic blocks visited thus far by instruction</span>
+<a name="l00112"></a>00112 <span class="comment">  /// selection.</span>
+<a name="l00113"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a451ef41c10474698faf84831057575a1">00113</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<const BasicBlock*, 4></a> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a451ef41c10474698faf84831057575a1">VisitedBBs</a>;
+<a name="l00114"></a>00114 <span class="comment"></span>
+<a name="l00115"></a>00115 <span class="comment">  /// PHINodesToUpdate - A list of phi instructions whose operand list will</span>
+<a name="l00116"></a>00116 <span class="comment">  /// be updated after processing the current basic block.</span>
+<a name="l00117"></a>00117 <span class="comment">  /// TODO: This isn't per-function state, it's per-basic-block state. But</span>
+<a name="l00118"></a>00118 <span class="comment">  /// there's no other convenient place for it to live right now.</span>
+<a name="l00119"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a99d5184cf5e487012782adccecbc2dd6">00119</a> <span class="comment"></span>  std::vector<std::pair<MachineInstr*, unsigned> > <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a99d5184cf5e487012782adccecbc2dd6">PHINodesToUpdate</a>;
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#af15d8f962ecb055047fa256d051d28d3">FunctionLoweringInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetLowering.html">TargetLowering</a> &<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a8a97e3747e049f160658a79bd6255080">TLI</a>);
+<a name="l00122"></a>00122 <span class="comment"></span>
+<a name="l00123"></a>00123 <span class="comment">  /// set - Initialize this FunctionLoweringInfo with the given Function</span>
+<a name="l00124"></a>00124 <span class="comment">  /// and its associated MachineFunction.</span>
+<a name="l00125"></a>00125 <span class="comment">  ///</span>
+<a name="l00126"></a>00126 <span class="comment"></span>  <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa6af88ef964b6f03824a35fa0081efa9">Fn</a>, <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac9287d39f216ac61b351d95a4f7e3df3">MF</a>);
+<a name="l00127"></a>00127 <span class="comment"></span>
+<a name="l00128"></a>00128 <span class="comment">  /// clear - Clear out all the function-specific state. This returns this</span>
+<a name="l00129"></a>00129 <span class="comment">  /// FunctionLoweringInfo to an empty state, ready to be used for a</span>
+<a name="l00130"></a>00130 <span class="comment">  /// different function.</span>
+<a name="l00131"></a>00131 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a1281235664d14beac83662b9f943e6d1">clear</a>();
+<a name="l00132"></a>00132 <span class="comment"></span>
+<a name="l00133"></a>00133 <span class="comment">  /// isExportedInst - Return true if the specified value is an instruction</span>
+<a name="l00134"></a>00134 <span class="comment">  /// exported from its block.</span>
+<a name="l00135"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a5001b6c031e4f880246c271fe3fb87ea">00135</a> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a5001b6c031e4f880246c271fe3fb87ea">isExportedInst</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V) {
+<a name="l00136"></a>00136     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#a786c962deec79715db211967c2c66573" title="count - Return true if the specified key is in the map.">count</a>(V);
+<a name="l00137"></a>00137   }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#aa83c7fcfd17c20035ca2645697ce7f34" title="CreateReg - Allocate a single virtual register for the given type.">CreateReg</a>(<a class="code" href="structllvm_1_1EVT.html">EVT</a> VT);
+<a name="l00140"></a>00140   
+<a name="l00141"></a>00141   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2d6bdc7bcc1f94fb003f83533c11819c">CreateRegs</a>(<a class="code" href="classllvm_1_1Type.html">Type</a> *Ty);
+<a name="l00142"></a>00142   
+<a name="l00143"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac1199c6e77ae7972d0fa0f7435b0d266">00143</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ac1199c6e77ae7972d0fa0f7435b0d266">InitializeRegForValue</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V) {
+<a name="l00144"></a>00144     <span class="keywordtype">unsigned</span> &R = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>[V];
+<a name="l00145"></a>00145     assert(R == 0 && <span class="stringliteral">"Already initialized this value register!"</span>);
+<a name="l00146"></a>00146     <span class="keywordflow">return</span> R = <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2d6bdc7bcc1f94fb003f83533c11819c">CreateRegs</a>(V-><a class="code" href="classllvm_1_1Value.html#a0cf3748dba54f931bb1241ae4adc76bc">getType</a>());
+<a name="l00147"></a>00147   }
+<a name="l00148"></a>00148 <span class="comment"></span>
+<a name="l00149"></a>00149 <span class="comment">  /// GetLiveOutRegInfo - Gets LiveOutInfo for a register, returning NULL if the</span>
+<a name="l00150"></a>00150 <span class="comment">  /// register is a PHI destination and the PHI's LiveOutInfo is not valid.</span>
+<a name="l00151"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">00151</a> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">GetLiveOutRegInfo</a>(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>) {
+<a name="l00152"></a>00152     <span class="keywordflow">if</span> (!LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#a4f6616201a89f276cfb638222b8b24fa">inBounds</a>(Reg))
+<a name="l00153"></a>00153       <span class="keywordflow">return</span> NULL;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155     <span class="keyword">const</span> <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> *LOI = &LiveOutRegInfo[<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>];
+<a name="l00156"></a>00156     <span class="keywordflow">if</span> (!LOI-><a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#aa66680fdd542aab740c67f47bd601f51">IsValid</a>)
+<a name="l00157"></a>00157       <span class="keywordflow">return</span> NULL;
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159     <span class="keywordflow">return</span> LOI;
+<a name="l00160"></a>00160   }
+<a name="l00161"></a>00161 <span class="comment"></span>
+<a name="l00162"></a>00162 <span class="comment">  /// GetLiveOutRegInfo - Gets LiveOutInfo for a register, returning NULL if the</span>
+<a name="l00163"></a>00163 <span class="comment">  /// register is a PHI destination and the PHI's LiveOutInfo is not valid. If</span>
+<a name="l00164"></a>00164 <span class="comment">  /// the register's LiveOutInfo is for a smaller bit width, it is extended to</span>
+<a name="l00165"></a>00165 <span class="comment">  /// the larger bit width by zero extension. The bit width must be no smaller</span>
+<a name="l00166"></a>00166 <span class="comment">  /// than the LiveOutInfo's existing bit width.</span>
+<a name="l00167"></a>00167 <span class="comment"></span>  <span class="keyword">const</span> LiveOutInfo *<a class="code" href="classllvm_1_1FunctionLoweringInfo.html#ae605aa854c8763e4c93d2acf94a9be5f">GetLiveOutRegInfo</a>(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>, <span class="keywordtype">unsigned</span> BitWidth);
+<a name="l00168"></a>00168 <span class="comment"></span>
+<a name="l00169"></a>00169 <span class="comment">  /// AddLiveOutRegInfo - Adds LiveOutInfo for a register.</span>
+<a name="l00170"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a5088979dc44f6c6dfc12edcb60cda08c">00170</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a5088979dc44f6c6dfc12edcb60cda08c" title="AddLiveOutRegInfo - Adds LiveOutInfo for a register.">AddLiveOutRegInfo</a>(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>, <span class="keywordtype">unsigned</span> NumSignBits,
+<a name="l00171"></a>00171                          <span class="keyword">const</span> <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> &KnownZero, <span class="keyword">const</span> <a class="code" href="classllvm_1_1APInt.html" title="Class for arbitrary precision integers.">APInt</a> &KnownOne) {
+<a name="l00172"></a>00172     <span class="comment">// Only install this information if it tells us something.</span>
+<a name="l00173"></a>00173     <span class="keywordflow">if</span> (NumSignBits == 1 && KnownZero == 0 && KnownOne == 0)
+<a name="l00174"></a>00174       <span class="keywordflow">return</span>;
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176     LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#a5e822b0690502a04b87125e63dbc8316">grow</a>(Reg);
+<a name="l00177"></a>00177     <a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html">LiveOutInfo</a> &LOI = LiveOutRegInfo[<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>];
+<a name="l00178"></a>00178     LOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a651904591143e71c02a94dca2659fc8e">NumSignBits</a> = NumSignBits;
+<a name="l00179"></a>00179     LOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#adcff7807b6decbd2fcb5b78ba28d117c">KnownOne</a> = KnownOne;
+<a name="l00180"></a>00180     LOI.<a class="code" href="structllvm_1_1FunctionLoweringInfo_1_1LiveOutInfo.html#a010cd268584d67539ad79eb80968f3eb">KnownZero</a> = KnownZero;
+<a name="l00181"></a>00181   }
+<a name="l00182"></a>00182 <span class="comment"></span>
+<a name="l00183"></a>00183 <span class="comment">  /// ComputePHILiveOutRegInfo - Compute LiveOutInfo for a PHI's destination</span>
+<a name="l00184"></a>00184 <span class="comment">  /// register based on the LiveOutInfo of its operands.</span>
+<a name="l00185"></a>00185 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#acada979e9424b6f61142bbca85a0fea0">ComputePHILiveOutRegInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1PHINode.html">PHINode</a>*);
+<a name="l00186"></a>00186 <span class="comment"></span>
+<a name="l00187"></a>00187 <span class="comment">  /// InvalidatePHILiveOutRegInfo - Invalidates a PHI's LiveOutInfo, to be</span>
+<a name="l00188"></a>00188 <span class="comment">  /// called when a block is visited before all of its predecessors.</span>
+<a name="l00189"></a><a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a39bc44baeb40615967a3ce797fb27900">00189</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a39bc44baeb40615967a3ce797fb27900">InvalidatePHILiveOutRegInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1PHINode.html">PHINode</a> *PN) {
+<a name="l00190"></a>00190     <span class="comment">// PHIs with no uses have no ValueMap entry.</span>
+<a name="l00191"></a>00191     <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<const Value*, unsigned>::const_iterator</a> It = <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#a7629b8c5f6a6802ee0fdc5c290769692">find</a>(PN);
+<a name="l00192"></a>00192     <span class="keywordflow">if</span> (It == <a class="code" href="classllvm_1_1ValueMap.html" title="See the file comment.">ValueMap</a>.<a class="code" href="classllvm_1_1ValueMap.html#ab871e2d0ebded563edfebd6766fc1a04">end</a>())
+<a name="l00193"></a>00193       <span class="keywordflow">return</span>;
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195     <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> = It->second;
+<a name="l00196"></a>00196     LiveOutRegInfo.<a class="code" href="classllvm_1_1IndexedMap.html#a5e822b0690502a04b87125e63dbc8316">grow</a>(Reg);
+<a name="l00197"></a>00197     LiveOutRegInfo[<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>].IsValid = <span class="keyword">false</span>;
+<a name="l00198"></a>00198   }
+<a name="l00199"></a>00199 <span class="comment"></span>
+<a name="l00200"></a>00200 <span class="comment">  /// setArgumentFrameIndex - Record frame index for the byval</span>
+<a name="l00201"></a>00201 <span class="comment">  /// argument.</span>
+<a name="l00202"></a>00202 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a2752e8fd3a00aa8c955da610c36b90a3">setArgumentFrameIndex</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>, <span class="keywordtype">int</span> FI);
+<a name="l00203"></a>00203 <span class="comment"></span>
+<a name="l00204"></a>00204 <span class="comment">  /// getArgumentFrameIndex - Get frame index for the byval argument.</span>
+<a name="l00205"></a>00205 <span class="comment"></span>  <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1FunctionLoweringInfo.html#a4adbd2ebdab9c844ce0443c43c3ee16d" title="getArgumentFrameIndex - Get frame index for the byval argument.">getArgumentFrameIndex</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Argument.html" title="LLVM Argument representation.">Argument</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207 <span class="keyword">private</span>:<span class="comment"></span>
+<a name="l00208"></a>00208 <span class="comment">  /// LiveOutRegInfo - Information about live out vregs.</span>
+<a name="l00209"></a>00209 <span class="comment"></span>  <a class="code" href="classllvm_1_1IndexedMap.html">IndexedMap<LiveOutInfo, VirtReg2IndexFunctor></a> LiveOutRegInfo;
+<a name="l00210"></a>00210 };
+<a name="l00211"></a>00211 <span class="comment"></span>
+<a name="l00212"></a>00212 <span class="comment">/// ComputeUsesVAFloatArgument - Determine if any floating-point values are</span>
+<a name="l00213"></a>00213 <span class="comment">/// being passed to this variadic function, and set the MachineModuleInfo's</span>
+<a name="l00214"></a>00214 <span class="comment">/// usesVAFloatArgument flag if so. This flag is used to emit an undefined</span>
+<a name="l00215"></a>00215 <span class="comment">/// reference to _fltused on Windows, which will link in MSVCRT's</span>
+<a name="l00216"></a>00216 <span class="comment">/// floating-point support.</span>
+<a name="l00217"></a>00217 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#aad90fd0bc31af06003b2a69ff29458b7">ComputeUsesVAFloatArgument</a>(<span class="keyword">const</span> CallInst &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, MachineModuleInfo *MMI);
+<a name="l00218"></a>00218 <span class="comment"></span>
+<a name="l00219"></a>00219 <span class="comment">/// AddCatchInfo - Extract the personality and type infos from an eh.selector</span>
+<a name="l00220"></a>00220 <span class="comment">/// call, and add them to the specified machine basic block.</span>
+<a name="l00221"></a>00221 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a15bdd4dbcc147a1cd20d5e6c5313c7b6">AddCatchInfo</a>(<span class="keyword">const</span> CallInst &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>,
+<a name="l00222"></a>00222                   MachineModuleInfo *MMI, MachineBasicBlock *MBB);
+<a name="l00223"></a>00223 <span class="comment"></span>
+<a name="l00224"></a>00224 <span class="comment">/// AddLandingPadInfo - Extract the exception handling information from the</span>
+<a name="l00225"></a>00225 <span class="comment">/// landingpad instruction and add them to the specified machine module info.</span>
+<a name="l00226"></a>00226 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a1a6748afdf1d0fc16f52b11268d5962f">AddLandingPadInfo</a>(<span class="keyword">const</span> LandingPadInst &<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, MachineModuleInfo &MMI,
+<a name="l00227"></a>00227                        MachineBasicBlock *MBB);
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229 } <span class="comment">// end namespace llvm</span>
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:46 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/Function_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Function_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Function_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Function_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,156 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="Function.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/SymbolTableListTraits.h",height=0.2,width=0.4,color="red",URL="$SymbolTableListTraits_8h.html"];
+  Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node2 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="red",URL="$GlobalVariable_8h.html"];
+  Node2 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="red",URL="$GlobalAlias_8h.html"];
+  Node2 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Metadata.h",height=0.2,width=0.4,color="red",URL="$Metadata_8h.html"];
+  Node2 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="red",URL="$OwningPtr_8h.html"];
+  Node16 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Type.h",height=0.2,width=0.4,color="red",URL="$Type_8h.html"];
+  Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/IntrinsicInst.h",height=0.2,width=0.4,color="black",URL="$IntrinsicInst_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Constants.h",height=0.2,width=0.4,color="red",URL="$Constants_8h.html"];
+  Node20 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Instructions.h",height=0.2,width=0.4,color="red",URL="$Instructions_8h.html"];
+  Node22 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="red",URL="$ErrorHandling_8h.html"];
+  Node23 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node20 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Intrinsics.h",height=0.2,width=0.4,color="red",URL="$Intrinsics_8h.html"];
+  Node25 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Intrinsics.gen",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/LLVMContext.h",height=0.2,width=0.4,color="black",URL="$LLVMContext_8h.html"];
+  Node27 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="black",URL="$ValueTypes_8h.html"];
+  Node28 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="black",URL="$CallSite_8h.html"];
+  Node29 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node31 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/InstIterator.h",height=0.2,width=0.4,color="black",URL="$InstIterator_8h.html"];
+  Node32 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/LeakDetector.h",height=0.2,width=0.4,color="black",URL="$LeakDetector_8h.html"];
+  Node33 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/ManagedStatic.h",height=0.2,width=0.4,color="black",URL="$ManagedStatic_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node35 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/Threading.h",height=0.2,width=0.4,color="black",URL="$Threading_8h.html"];
+  Node34 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node37 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/StringPool.h",height=0.2,width=0.4,color="black",URL="$StringPool_8h.html"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/StringMap.h",height=0.2,width=0.4,color="red",URL="$StringMap_8h.html"];
+  Node38 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node38 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/RWMutex.h",height=0.2,width=0.4,color="black",URL="$RWMutex_8h.html"];
+  Node41 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="SymbolTableListTraitsImpl.h",height=0.2,width=0.4,color="black",URL="$SymbolTableListTraitsImpl_8h.html"];
+  Node42 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ValueSymbolTable.h",height=0.2,width=0.4,color="red",URL="$ValueSymbolTable_8h.html"];
+  Node43 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node44 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="red",URL="$AlignOf_8h.html"];
+  Node45 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="red",URL="$type__traits_8h.html"];
+  Node46 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node47 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node44 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node49 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/ADT/StringExtras.h",height=0.2,width=0.4,color="red",URL="$StringExtras_8h.html"];
+  Node50 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,30 @@
+<map id="G" name="G">
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="1395,84,1533,111"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="2092,548,2265,575"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="849,84,985,111"/>
+<area shape="rect" href="$BasicBlock_8h.html" title="llvm/BasicBlock.h" alt="" coords="1009,84,1140,111"/>
+<area shape="rect" href="$Argument_8h.html" title="llvm/Argument.h" alt="" coords="748,161,876,188"/>
+<area shape="rect" href="$Attributes_8h.html" title="llvm/Attributes.h" alt="" coords="333,239,459,265"/>
+<area shape="rect" href="$Constant_8h.html" title="llvm/Constant.h" alt="" coords="1636,161,1756,188"/>
+<area shape="rect" href="$User_8h.html" title="llvm/User.h" alt="" coords="1471,239,1561,265"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="820,316,1025,343"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="1463,316,1561,343"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="797,393,947,420"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="981,471,1168,497"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="107,625,291,652"/>
+<area shape="rect" href="$Use_8h.html" title="llvm/Use.h" alt="" coords="1783,393,1871,420"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="1315,393,1480,420"/>
+<area shape="rect" href="$PointerIntPair_8h.html" title="llvm/ADT/PointerIntPair.h" alt="" coords="1864,471,2040,497"/>
+<area shape="rect" href="$PointerLikeTypeTraits_8h.html" title="llvm/Support/PointerLikeTypeTraits.h" alt="" coords="1723,548,1971,575"/>
+<area shape="rect" href="$Instruction_8h.html" title="llvm/Instruction.h" alt="" coords="1185,161,1316,188"/>
+<area shape="rect" href="$SymbolTableListTraits_8h.html" title="llvm/SymbolTableListTraits.h" alt="" coords="964,161,1161,188"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="1541,393,1656,420"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="673,239,799,265"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="873,239,1025,265"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="1265,239,1447,265"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="236,316,425,343"/>
+<area shape="rect" href="$ArrayRef_8h.html" title="llvm/ADT/ArrayRef.h" alt="" coords="551,316,695,343"/>
+<area shape="rect" href="$SwapByteOrder_8h.html" title="llvm/Support/SwapByteOrder.h" alt="" coords="236,393,452,420"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="991,393,1159,420"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="1485,471,1648,497"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Function_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+96ed4de0f20f9eb54616f49a06b0b929
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/GCMetadataPrinter_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCMetadataPrinter_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCMetadataPrinter_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCMetadataPrinter_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,167 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GCMetadataPrinter.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/GCMetadata.h",height=0.2,width=0.4,color="black",URL="$GCMetadata_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="black",URL="$PassSupport_8h.html"];
+  Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/PassRegistry.h",height=0.2,width=0.4,color="black",URL="$PassRegistry_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node10 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node8 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node6 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node20 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="black",URL="$Valgrind_8h.html"];
+  Node21 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="stddef.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node25 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node27 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node26 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node26 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node31 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node34 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node35 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/StringMap.h",height=0.2,width=0.4,color="black",URL="$StringMap_8h.html"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node39 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/CodeGen/GCStrategy.h",height=0.2,width=0.4,color="black",URL="$GCStrategy_8h.html"];
+  Node41 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="black",URL="$MachineFunction_8h.html"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node45 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node43 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node42 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node48 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node49 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/Registry.h",height=0.2,width=0.4,color="black",URL="$Registry_8h.html"];
+  Node41 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GCMetadata.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">GCMetadata.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="GCMetadata_8h_source.html">llvm/CodeGen/GCMetadata.h</a>"</code><br/>
+<code>#include "<a class="el" href="GCStrategy_8h_source.html">llvm/CodeGen/GCStrategy.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFrameInfo_8h_source.html">llvm/CodeGen/MachineFrameInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Pass_8h_source.html">llvm/Pass.h</a>"</code><br/>
+<code>#include "<a class="el" href="CodeGen_2Passes_8h_source.html">llvm/CodeGen/Passes.h</a>"</code><br/>
+<code>#include "<a class="el" href="Function_8h_source.html">llvm/Function.h</a>"</code><br/>
+<code>#include "<a class="el" href="MCSymbol_8h_source.html">llvm/MC/MCSymbol.h</a>"</code><br/>
+<code>#include "<a class="el" href="Debug_8h_source.html">llvm/Support/Debug.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include "<a class="el" href="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for GCMetadata.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="GCMetadata_8cpp__incl.png" border="0" usemap="#GCMetadata_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="GCMetadata_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="GCMetadata_8cpp.html#a9bac903e40e124abfb65a02afb5c33db">INITIALIZE_PASS</a> (<a class="el" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a>,"collector-metadata","Create Garbage Collector <a class="el" href="classllvm_1_1Module.html">Module</a> Metadata", false, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) <a class="el" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classchar.html">char</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="GCMetadata_8cpp.html#a9e8f594dea009b9e59bfea26aa8fd8f1">DescKind</a> (<a class="el" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213">GC::PointKind</a> Kind)</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a9e8f594dea009b9e59bfea26aa8fd8f1"></a><!-- doxytag: member="GCMetadata.cpp::DescKind" ref="a9e8f594dea009b9e59bfea26aa8fd8f1" args="(GC::PointKind Kind)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="classchar.html">char</a>* DescKind </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213">GC::PointKind</a> </td>
+          <td class="paramname"><em>Kind</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="GCMetadata_8cpp_source.html#l00144">144</a> of file <a class="el" href="GCMetadata_8cpp_source.html">GCMetadata.cpp</a>.</p>
+
+<p>References <a class="el" href="ErrorHandling_8h_source.html#l00098">llvm_unreachable</a>, <a class="el" href="GCMetadata_8h_source.html#l00051">llvm::GC::Loop</a>, <a class="el" href="GCMetadata_8h_source.html#l00054">llvm::GC::PostCall</a>, <a class="el" href="GCMetadata_8h_source.html#l00053">llvm::GC::PreCall</a>, and <a class="el" href="GCMetadata_8h_source.html#l00052">llvm::GC::Return</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9bac903e40e124abfb65a02afb5c33db"></a><!-- doxytag: member="GCMetadata.cpp::INITIALIZE_PASS" ref="a9bac903e40e124abfb65a02afb5c33db" args="(GCModuleInfo,"collector-metadata","Create Garbage Collector Module Metadata", false, false) GCFunctionInfo" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_PASS </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"collector-metadata" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Create Garbage Collector <a class="el" href="classllvm_1_1Module.html">Module</a> Metadata" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="GCMetadata_8cpp_source.html#l00057">57</a> of file <a class="el" href="GCMetadata_8cpp_source.html">GCMetadata.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,38 @@
+<map id="G" name="G">
+<area shape="rect" href="$GCMetadata_8h.html" title="llvm/CodeGen/GCMetadata.h" alt="" coords="1355,161,1560,188"/>
+<area shape="rect" href="$Pass_8h.html" title="llvm/Pass.h" alt="" coords="2549,239,2640,265"/>
+<area shape="rect" href="$GCStrategy_8h.html" title="llvm/CodeGen/GCStrategy.h" alt="" coords="1560,84,1757,111"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="2741,316,2947,343"/>
+<area shape="rect" href="$MachineFrameInfo_8h.html" title="llvm/CodeGen/MachineFrameInfo.h" alt="" coords="1976,316,2219,343"/>
+<area shape="rect" href="$CodeGen_2Passes_8h.html" title="llvm/CodeGen/Passes.h" alt="" coords="2663,84,2833,111"/>
+<area shape="rect" href="$Function_8h.html" title="llvm/Function.h" alt="" coords="3180,239,3295,265"/>
+<area shape="rect" href="$MCSymbol_8h.html" title="llvm/MC/MCSymbol.h" alt="" coords="2243,316,2397,343"/>
+<area shape="rect" href="$Debug_8h.html" title="llvm/Support/Debug.h" alt="" coords="2940,84,3100,111"/>
+<area shape="rect" href="$raw__ostream_8h.html" title="llvm/Support/raw_ostream.h" alt="" coords="1752,316,1952,343"/>
+<area shape="rect" href="$DenseMap_8h.html" title="llvm/ADT/DenseMap.h" alt="" coords="443,316,603,343"/>
+<area shape="rect" href="$StringMap_8h.html" title="llvm/ADT/StringMap.h" alt="" coords="1147,316,1304,343"/>
+<area shape="rect" href="$DebugLoc_8h.html" title="llvm/Support/DebugLoc.h" alt="" coords="996,239,1177,265"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="1957,548,2131,575"/>
+<area shape="rect" href="$PassSupport_8h.html" title="llvm/PassSupport.h" alt="" coords="2523,316,2667,343"/>
+<area shape="rect" href="$PassAnalysisSupport_8h.html" title="llvm/PassAnalysisSupport.h" alt="" coords="1379,316,1573,343"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="1071,393,1239,420"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="1705,393,1855,420"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="31,471,193,497"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="268,471,455,497"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="936,548,1120,575"/>
+<area shape="rect" href="$MathExtras_8h.html" title="llvm/Support/MathExtras.h" alt="" coords="801,471,991,497"/>
+<area shape="rect" href="$PointerLikeTypeTraits_8h.html" title="llvm/Support/PointerLikeTypeTraits.h" alt="" coords="479,471,727,497"/>
+<area shape="rect" href="$DenseMapInfo_8h.html" title="llvm/ADT/DenseMapInfo.h" alt="" coords="252,393,436,420"/>
+<area shape="rect" href="$Allocator_8h.html" title="llvm/Support/Allocator.h" alt="" coords="817,393,991,420"/>
+<area shape="rect" href="$MachineFunction_8h.html" title="llvm/CodeGen/MachineFunction.h" alt="" coords="907,161,1139,188"/>
+<area shape="rect" href="$Registry_8h.html" title="llvm/Support/Registry.h" alt="" coords="1584,161,1749,188"/>
+<area shape="rect" href="$MachineBasicBlock_8h.html" title="llvm/CodeGen/MachineBasicBlock.h" alt="" coords="673,239,921,265"/>
+<area shape="rect" href="$ilist_8h.html" title="llvm/ADT/ilist.h" alt="" coords="1465,393,1580,420"/>
+<area shape="rect" href="$Recycler_8h.html" title="llvm/Support/Recycler.h" alt="" coords="1252,239,1420,265"/>
+<area shape="rect" href="$Target_2TargetMachine_8h.html" title="llvm/Target/TargetMachine.h" alt="" coords="2391,161,2588,188"/>
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="3325,316,3464,343"/>
+<area shape="rect" href="$CallingConv_8h.html" title="llvm/CallingConv.h" alt="" coords="3488,316,3624,343"/>
+<area shape="rect" href="$BasicBlock_8h.html" title="llvm/BasicBlock.h" alt="" coords="1597,316,1728,343"/>
+<area shape="rect" href="$Argument_8h.html" title="llvm/Argument.h" alt="" coords="3173,316,3301,343"/>
+<area shape="rect" href="$Attributes_8h.html" title="llvm/Attributes.h" alt="" coords="2472,393,2597,420"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+c92f5ec196963482276093227a569af6
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCMetadata_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,37 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GCMetadata.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="GCMetadataPrinter.h",height=0.2,width=0.4,color="black",URL="$GCMetadataPrinter_8h.html"];
+  Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$AsmPrinter_8cpp.html"];
+  Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="OcamlGCPrinter.cpp",height=0.2,width=0.4,color="black",URL="$OcamlGCPrinter_8cpp.html"];
+  Node2 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="GCMetadataPrinter.cpp",height=0.2,width=0.4,color="black",URL="$GCMetadataPrinter_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="GCStrategy.h",height=0.2,width=0.4,color="black",URL="$GCStrategy_8h.html"];
+  Node6 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="GCMetadata.cpp",height=0.2,width=0.4,color="black",URL="$GCMetadata_8cpp.html"];
+  Node6 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="GCStrategy.cpp",height=0.2,width=0.4,color="black",URL="$GCStrategy_8cpp.html"];
+  Node6 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="OcamlGC.cpp",height=0.2,width=0.4,color="black",URL="$OcamlGC_8cpp.html"];
+  Node6 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="Passes.cpp",height=0.2,width=0.4,color="black",URL="$Passes_8cpp.html"];
+  Node6 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="SelectionDAGBuilder.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAGBuilder_8cpp.html"];
+  Node6 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="SelectionDAGISel.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAGISel_8cpp.html"];
+  Node6 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="ShadowStackGC.cpp",height=0.2,width=0.4,color="black",URL="$ShadowStackGC_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="MachineFunctionAnalysis.cpp",height=0.2,width=0.4,color="black",URL="$MachineFunctionAnalysis_8cpp.html"];
+  Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GCOV_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCOV_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCOV_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCOV_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,9 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GCOV.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="GCOV.cpp",height=0.2,width=0.4,color="black",URL="$GCOV_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,175 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GCStrategy.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/CodeGen/GCStrategy.h",height=0.2,width=0.4,color="black",URL="$GCStrategy_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/CodeGen/GCMetadata.h",height=0.2,width=0.4,color="red",URL="$GCMetadata_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="red",URL="$MachineFunction_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="red",URL="$MachineBasicBlock_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node11 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/Registry.h",height=0.2,width=0.4,color="black",URL="$Registry_8h.html"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node16 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node17 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/IntrinsicInst.h",height=0.2,width=0.4,color="black",URL="$IntrinsicInst_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Constants.h",height=0.2,width=0.4,color="red",URL="$Constants_8h.html"];
+  Node18 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node20 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Instructions.h",height=0.2,width=0.4,color="red",URL="$Instructions_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node23 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="red",URL="$ErrorHandling_8h.html"];
+  Node24 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Intrinsics.h",height=0.2,width=0.4,color="red",URL="$Intrinsics_8h.html"];
+  Node25 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node26 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="red",URL="$GlobalVariable_8h.html"];
+  Node27 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="red",URL="$GlobalAlias_8h.html"];
+  Node28 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Metadata.h",height=0.2,width=0.4,color="red",URL="$Metadata_8h.html"];
+  Node26 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="red",URL="$OwningPtr_8h.html"];
+  Node30 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="black",URL="$Dominators_8h.html"];
+  Node32 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="red",URL="$DepthFirstIterator_8h.html"];
+  Node33 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node34 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="red",URL="$PointerIntPair_8h.html"];
+  Node35 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="red",URL="$CFG_8h.html"];
+  Node36 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="red",URL="$raw__ostream_8h.html"];
+  Node37 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Analysis/DominatorInternals.h",height=0.2,width=0.4,color="black",URL="$DominatorInternals_8h.html"];
+  Node38 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/CodeGen/MachineFrameInfo.h",height=0.2,width=0.4,color="black",URL="$MachineFrameInfo_8h.html"];
+  Node39 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node40 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/CodeGen/MachineInstrBuilder.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBuilder_8h.html"];
+  Node41 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/CodeGen/MachineModuleInfo.h",height=0.2,width=0.4,color="black",URL="$MachineModuleInfo_8h.html"];
+  Node42 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/MC/MachineLocation.h",height=0.2,width=0.4,color="black",URL="$MachineLocation_8h.html"];
+  Node42 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/MC/MCContext.h",height=0.2,width=0.4,color="red",URL="$MCContext_8h.html"];
+  Node44 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Support/Dwarf.h",height=0.2,width=0.4,color="black",URL="$Dwarf_8h.html"];
+  Node42 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/ValueHandle.h",height=0.2,width=0.4,color="red",URL="$ValueHandle_8h.html"];
+  Node46 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Target/TargetFrameLowering.h",height=0.2,width=0.4,color="red",URL="$TargetFrameLowering_8h.html"];
+  Node47 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Target/TargetInstrInfo.h",height=0.2,width=0.4,color="red",URL="$TargetInstrInfo_8h.html"];
+  Node48 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node49 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,485 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GCStrategy.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_f2244d21cf8bec63d11bfc1ad661d96f.html">CodeGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">GCStrategy.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="GCStrategy_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- GCStrategy.cpp - Garbage collection infrastructure -----------------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements target- and collector-independent garbage collection</span>
+<a name="l00011"></a>00011 <span class="comment">// infrastructure.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">// GCMachineCodeAnalysis identifies the GC safe points in the machine code.</span>
+<a name="l00014"></a>00014 <span class="comment">// Roots are identified in SelectionDAGISel.</span>
+<a name="l00015"></a>00015 <span class="comment">//</span>
+<a name="l00016"></a>00016 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="GCStrategy_8h.html">llvm/CodeGen/GCStrategy.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="IntrinsicInst_8h.html">llvm/IntrinsicInst.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Module_8h.html">llvm/Module.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="Dominators_8h.html">llvm/Analysis/Dominators.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="DominatorInternals_8h.html">llvm/Analysis/DominatorInternals.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="MachineFrameInfo_8h.html">llvm/CodeGen/MachineFrameInfo.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="MachineInstrBuilder_8h.html">llvm/CodeGen/MachineInstrBuilder.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="MachineModuleInfo_8h.html">llvm/CodeGen/MachineModuleInfo.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="TargetFrameLowering_8h.html">llvm/Target/TargetFrameLowering.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="TargetInstrInfo_8h.html">llvm/Target/TargetInstrInfo.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="Target_2TargetMachine_8h.html">llvm/Target/TargetMachine.h</a>"</span>
+<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="keyword">using namespace </span>llvm;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="keyword">namespace </span>{
+<a name="l00039"></a>00039 <span class="comment"></span>
+<a name="l00040"></a>00040 <span class="comment">  /// LowerIntrinsics - This pass rewrites calls to the llvm.gcread or</span>
+<a name="l00041"></a>00041 <span class="comment">  /// llvm.gcwrite intrinsics, replacing them with simple loads and stores as</span>
+<a name="l00042"></a>00042 <span class="comment">  /// directed by the GCStrategy. It also performs automatic root initialization</span>
+<a name="l00043"></a>00043 <span class="comment">  /// and custom intrinsic lowering.</span>
+<a name="l00044"></a>00044 <span class="comment"></span>  <span class="keyword">class </span>LowerIntrinsics : <span class="keyword">public</span> <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a> {
+<a name="l00045"></a>00045     <span class="keyword">static</span> <span class="keywordtype">bool</span> NeedsDefaultLoweringPass(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>);
+<a name="l00046"></a>00046     <span class="keyword">static</span> <span class="keywordtype">bool</span> NeedsCustomLoweringPass(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>);
+<a name="l00047"></a>00047     <span class="keyword">static</span> <span class="keywordtype">bool</span> CouldBecomeSafePoint(<a class="code" href="classllvm_1_1Instruction.html">Instruction</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00048"></a>00048     <span class="keywordtype">bool</span> PerformDefaultLowering(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>, <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &Coll);
+<a name="l00049"></a>00049     <span class="keyword">static</span> <span class="keywordtype">bool</span> InsertRootInitializers(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>,
+<a name="l00050"></a>00050                                        <a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> **Roots, <span class="keywordtype">unsigned</span> Count);
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052   <span class="keyword">public</span>:
+<a name="l00053"></a>00053     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     LowerIntrinsics();
+<a name="l00056"></a>00056     <span class="keyword">const</span> <span class="keywordtype">char</span> *getPassName() <span class="keyword">const</span>;
+<a name="l00057"></a>00057     <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU) <span class="keyword">const</span>;
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     <span class="keywordtype">bool</span> doInitialization(<a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> &M);
+<a name="l00060"></a>00060     <span class="keywordtype">bool</span> runOnFunction(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>);
+<a name="l00061"></a>00061   };
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="comment"></span>
+<a name="l00064"></a>00064 <span class="comment">  /// GCMachineCodeAnalysis - This is a target-independent pass over the machine</span>
+<a name="l00065"></a>00065 <span class="comment">  /// function representation to identify safe points for the garbage collector</span>
+<a name="l00066"></a>00066 <span class="comment">  /// in the machine code. It inserts labels at safe points and populates a</span>
+<a name="l00067"></a>00067 <span class="comment">  /// GCMetadata record for each function.</span>
+<a name="l00068"></a>00068 <span class="comment"></span>  <span class="keyword">class </span>GCMachineCodeAnalysis : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {
+<a name="l00069"></a>00069     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetMachine.html">TargetMachine</a> *TM;
+<a name="l00070"></a>00070     <a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a> *FI;
+<a name="l00071"></a>00071     <a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a> *MMI;
+<a name="l00072"></a>00072     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *TII;
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074     <span class="keywordtype">void</span> FindSafePoints(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00075"></a>00075     <span class="keywordtype">void</span> VisitCallPoint(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>);
+<a name="l00076"></a>00076     <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *InsertLabel(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB,
+<a name="l00077"></a>00077                           <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>,
+<a name="l00078"></a>00078                           <a class="code" href="classllvm_1_1DebugLoc.html">DebugLoc</a> DL) <span class="keyword">const</span>;
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     <span class="keywordtype">void</span> FindStackOffsets(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082   <span class="keyword">public</span>:
+<a name="l00083"></a>00083     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085     GCMachineCodeAnalysis();
+<a name="l00086"></a>00086     <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU) <span class="keyword">const</span>;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088     <span class="keywordtype">bool</span> runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00089"></a>00089   };
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 <span class="comment">// -----------------------------------------------------------------------------</span>
+<a name="l00094"></a>00094 
+<a name="l00095"></a><a class="code" href="classllvm_1_1GCStrategy.html#abc5b7efa0f9360dac6bbd35ab553cb0d">00095</a> <a class="code" href="classllvm_1_1GCStrategy.html#abc5b7efa0f9360dac6bbd35ab553cb0d">GCStrategy::GCStrategy</a>() :
+<a name="l00096"></a>00096   NeededSafePoints(0),
+<a name="l00097"></a>00097   CustomReadBarriers(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>),
+<a name="l00098"></a>00098   CustomWriteBarriers(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>),
+<a name="l00099"></a>00099   CustomRoots(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>),
+<a name="l00100"></a>00100   CustomSafePoints(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>),
+<a name="l00101"></a>00101   InitRoots(<a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>),
+<a name="l00102"></a>00102   UsesMetadata(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>)
+<a name="l00103"></a>00103 {}
+<a name="l00104"></a>00104 
+<a name="l00105"></a><a class="code" href="classllvm_1_1GCStrategy.html#ab9a87fa1b8eeeb1dbf3169afc01143af">00105</a> <a class="code" href="classllvm_1_1GCStrategy.html#ab9a87fa1b8eeeb1dbf3169afc01143af">GCStrategy::~GCStrategy</a>() {
+<a name="l00106"></a>00106   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1GCStrategy.html#aa7011bf6fcf172beaa476cfcbc7c1c1c">iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="classllvm_1_1GCStrategy.html#a067cfe240b81c3042b5232c26acda857">begin</a>(), E = <a class="code" href="classllvm_1_1GCStrategy.html#ac60faa165774a2526ea074b02f609f5f">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00107"></a>00107     <span class="keyword">delete</span> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109   Functions.clear();
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111 
+<a name="l00112"></a><a class="code" href="classllvm_1_1GCStrategy.html#add012a0d4a24962085bc2abc1f1c961c">00112</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GCStrategy.html#add012a0d4a24962085bc2abc1f1c961c">GCStrategy::initializeCustomLowering</a>(<a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> &M) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00113"></a>00113 
+<a name="l00114"></a><a class="code" href="classllvm_1_1GCStrategy.html#a6ff06bdea19f4b8d400bfc70d69fe604">00114</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GCStrategy.html#a6ff06bdea19f4b8d400bfc70d69fe604">GCStrategy::performCustomLowering</a>(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00115"></a>00115   <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"gc "</span> << <a class="code" href="classllvm_1_1GCStrategy.html#a3d5ab747193eea5306e8c80b8097c18d">getName</a>() << <span class="stringliteral">" must override performCustomLowering.\n"</span>;
+<a name="l00116"></a>00116   <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(<span class="stringliteral">"must override performCustomLowering"</span>);
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119 
+<a name="l00120"></a><a class="code" href="classllvm_1_1GCStrategy.html#a9bf52e7759b7fc1fcc02f4b12a1d5383">00120</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GCStrategy.html#a9bf52e7759b7fc1fcc02f4b12a1d5383">GCStrategy::findCustomSafePoints</a>(<a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a>& FI, <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00121"></a>00121   <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"gc "</span> << <a class="code" href="classllvm_1_1GCStrategy.html#a3d5ab747193eea5306e8c80b8097c18d">getName</a>() << <span class="stringliteral">" must override findCustomSafePoints.\n"</span>;
+<a name="l00122"></a>00122   <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(0);
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 
+<a name="l00126"></a><a class="code" href="classllvm_1_1GCStrategy.html#a3bf9cdab14bd06c2ac63b3482768b6b0">00126</a> <a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a> *<a class="code" href="classllvm_1_1GCStrategy.html#a3bf9cdab14bd06c2ac63b3482768b6b0">GCStrategy::insertFunctionInfo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00127"></a>00127   <a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a> *FI = <span class="keyword">new</span> <a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a>(F, *<span class="keyword">this</span>);
+<a name="l00128"></a>00128   Functions.push_back(FI);
+<a name="l00129"></a>00129   <span class="keywordflow">return</span> FI;
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 <span class="comment">// -----------------------------------------------------------------------------</span>
+<a name="l00133"></a>00133 
+<a name="l00134"></a><a class="code" href="GCStrategy_8cpp.html#a0cdb8a4dca0c75a3db8adba7e4c85489">00134</a> <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(LowerIntrinsics, <span class="stringliteral">"gc-lowering"</span>, <span class="stringliteral">"GC Lowering"</span>,
+<a name="l00135"></a>00135                       <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00136"></a>00136 <a class="code" href="PassSupport_8h.html#a14724f1ccf528e73bb29bc9230737967">INITIALIZE_PASS_DEPENDENCY</a>(<a class="code" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a>)
+<a name="l00137"></a>00137 <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(LowerIntrinsics, "gc-lowering", "GC Lowering", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, false)
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139 <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a> *llvm::<a class="code" href="namespacellvm.html#ae47ac0c0b63d24a04d49654b3b219f2d">createGCLoweringPass</a>() {
+<a name="l00140"></a>00140   <span class="keywordflow">return</span> <span class="keyword">new</span> LowerIntrinsics();
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">LowerIntrinsics::ID</a> = 0;
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145 LowerIntrinsics::LowerIntrinsics()
+<a name="l00146"></a>00146   : <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>) {
+<a name="l00147"></a>00147     <a class="code" href="namespacellvm.html#ac2e6230f6c50554365ce6f17bde6f542">initializeLowerIntrinsicsPass</a>(*PassRegistry::getPassRegistry());
+<a name="l00148"></a>00148   }
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classllvm_1_1Pass.html#a6cc9e0287b99155d16b45d73bfbc156b">LowerIntrinsics::getPassName</a>()<span class="keyword"> const </span>{
+<a name="l00151"></a>00151   <span class="keywordflow">return</span> <span class="stringliteral">"Lower Garbage Collection Instructions"</span>;
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Pass.html#a048082a5be9ae0d8901ea64de59e5c8f">LowerIntrinsics::getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00155"></a>00155   FunctionPass::getAnalysisUsage(AU);
+<a name="l00156"></a>00156   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a>>();
+<a name="l00157"></a>00157   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1DominatorTree.html">DominatorTree</a>>();
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159 <span class="comment"></span>
+<a name="l00160"></a>00160 <span class="comment">/// doInitialization - If this module uses the GC intrinsics, find them now.</span>
+<a name="l00161"></a>00161 <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1FunctionPass.html#aa4613d011e6882e22330ee3c4a73b797">LowerIntrinsics::doInitialization</a>(<a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> &M) {
+<a name="l00162"></a>00162   <span class="comment">// FIXME: This is rather antisocial in the context of a JIT since it performs</span>
+<a name="l00163"></a>00163   <span class="comment">//        work against the entire module. But this cannot be done at</span>
+<a name="l00164"></a>00164   <span class="comment">//        runFunction time (initializeCustomLowering likely needs to change</span>
+<a name="l00165"></a>00165   <span class="comment">//        the module).</span>
+<a name="l00166"></a>00166   <a class="code" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a> *<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a> = getAnalysisIfAvailable<GCModuleInfo>();
+<a name="l00167"></a>00167   assert(MI && <span class="stringliteral">"LowerIntrinsics didn't require GCModuleInfo!?"</span>);
+<a name="l00168"></a>00168   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Module::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = M.<a class="code" href="classllvm_1_1Module.html#a279174d137c1ef32aa5b627f5e06620f">begin</a>(), E = M.<a class="code" href="classllvm_1_1Module.html#aa608a2d900dd6c15c18f4236b6548496">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00169"></a>00169     <span class="keywordflow">if</span> (!<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->isDeclaration() && <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->hasGC())
+<a name="l00170"></a>00170       MI-><a class="code" href="classllvm_1_1GCModuleInfo.html#a358e88db4412de1a07bf6714c545ce06">getFunctionInfo</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>); <span class="comment">// Instantiate the GC strategy.</span>
+<a name="l00171"></a>00171 
+<a name="l00172"></a>00172   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00173"></a>00173   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1GCModuleInfo.html#ace9253bf809e215fb60376910086ada1">GCModuleInfo::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = MI-><a class="code" href="classllvm_1_1GCModuleInfo.html#a96f4b6642db605068b95859a72c33a17">begin</a>(), E = MI-><a class="code" href="classllvm_1_1GCModuleInfo.html#a8414e0d61c9c814be7004ba14fa9ab1e">end</a>(); <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00174"></a>00174     <span class="keywordflow">if</span> (NeedsCustomLoweringPass(**<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>))
+<a name="l00175"></a>00175       <span class="keywordflow">if</span> ((*I)->initializeCustomLowering(M))
+<a name="l00176"></a>00176         MadeChange = <span class="keyword">true</span>;
+<a name="l00177"></a>00177 
+<a name="l00178"></a>00178   <span class="keywordflow">return</span> MadeChange;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a>00181 <span class="keywordtype">bool</span> LowerIntrinsics::InsertRootInitializers(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>, <a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> **Roots,
+<a name="l00182"></a>00182                                                           <span class="keywordtype">unsigned</span> Count) {
+<a name="l00183"></a>00183   <span class="comment">// Scroll past alloca instructions.</span>
+<a name="l00184"></a>00184   <a class="code" href="classllvm_1_1ilist__iterator.html">BasicBlock::iterator</a> IP = F.<a class="code" href="classllvm_1_1Function.html#a30f2c362631e3728d2f47a8203071ade">getEntryBlock</a>().<a class="code" href="classllvm_1_1BasicBlock.html#a0ed5f3ab3c2e4196ee0cffffa080c062">begin</a>();
+<a name="l00185"></a>00185   <span class="keywordflow">while</span> (isa<AllocaInst>(IP)) ++IP;
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187   <span class="comment">// Search for initializers in the initial BB.</span>
+<a name="l00188"></a>00188   <a class="code" href="classllvm_1_1SmallPtrSet.html">SmallPtrSet<AllocaInst*,16></a> InitedRoots;
+<a name="l00189"></a>00189   <span class="keywordflow">for</span> (; !CouldBecomeSafePoint(IP); ++IP)
+<a name="l00190"></a>00190     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StoreInst.html">StoreInst</a> *SI = dyn_cast<StoreInst>(IP))
+<a name="l00191"></a>00191       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> *AI =
+<a name="l00192"></a>00192           dyn_cast<AllocaInst>(SI->getOperand(1)->stripPointerCasts()))
+<a name="l00193"></a>00193         InitedRoots.<a class="code" href="classllvm_1_1SmallPtrSet.html#a9b6dd0fc7a648a939e571246045b673e">insert</a>(AI);
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195   <span class="comment">// Add root initializers.</span>
+<a name="l00196"></a>00196   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1AllocaInst.html">AllocaInst</a> **<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Roots, **E = Roots + Count; <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> != E; ++<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)
+<a name="l00199"></a>00199     <span class="keywordflow">if</span> (!InitedRoots.<a class="code" href="classllvm_1_1SmallPtrSet.html#a2ced6343b8ad006a757059554bbf9f37" title="count - Return true if the specified pointer is in the set.">count</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)) {
+<a name="l00200"></a>00200       <a class="code" href="classllvm_1_1StoreInst.html">StoreInst</a>* SI = <span class="keyword">new</span> <a class="code" href="classllvm_1_1StoreInst.html">StoreInst</a>(ConstantPointerNull::get(cast<PointerType>(
+<a name="l00201"></a>00201                         cast<PointerType>((*I)->getType())->getElementType())),
+<a name="l00202"></a>00202                         *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00203"></a>00203       SI-><a class="code" href="classllvm_1_1Instruction.html#af09e4096de244d2fb345891328714a63">insertAfter</a>(*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l00204"></a>00204       MadeChange = <span class="keyword">true</span>;
+<a name="l00205"></a>00205     }
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207   <span class="keywordflow">return</span> MadeChange;
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210 <span class="keywordtype">bool</span> LowerIntrinsics::NeedsDefaultLoweringPass(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974afd841a49aec1539bc88abc8ff9e170fb">C</a>) {
+<a name="l00211"></a>00211   <span class="comment">// Default lowering is necessary only if read or write barriers have a default</span>
+<a name="l00212"></a>00212   <span class="comment">// action. The default for roots is no action.</span>
+<a name="l00213"></a>00213   <span class="keywordflow">return</span> !C.<a class="code" href="classllvm_1_1GCStrategy.html#af9c8fcbabb31902cddd7947e58469934">customWriteBarrier</a>()
+<a name="l00214"></a>00214       || !C.<a class="code" href="classllvm_1_1GCStrategy.html#a95e22564793faddc2518653fb744e2b1">customReadBarrier</a>()
+<a name="l00215"></a>00215       || C.<a class="code" href="classllvm_1_1GCStrategy.html#a252f8440ceaf8f6d65468e2e7aae6983" title="initializeRoots - If set, gcroot intrinsics should initialize their">initializeRoots</a>();
+<a name="l00216"></a>00216 }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218 <span class="keywordtype">bool</span> LowerIntrinsics::NeedsCustomLoweringPass(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &C) {
+<a name="l00219"></a>00219   <span class="comment">// Custom lowering is only necessary if enabled for some action.</span>
+<a name="l00220"></a>00220   <span class="keywordflow">return</span> C.<a class="code" href="classllvm_1_1GCStrategy.html#af9c8fcbabb31902cddd7947e58469934">customWriteBarrier</a>()
+<a name="l00221"></a>00221       || C.<a class="code" href="classllvm_1_1GCStrategy.html#a95e22564793faddc2518653fb744e2b1">customReadBarrier</a>()
+<a name="l00222"></a>00222       || C.<a class="code" href="classllvm_1_1GCStrategy.html#afb91c565a6d9f86b53a63ca801b48622">customRoots</a>();
+<a name="l00223"></a>00223 }
+<a name="l00224"></a>00224 <span class="comment"></span>
+<a name="l00225"></a>00225 <span class="comment">/// CouldBecomeSafePoint - Predicate to conservatively determine whether the</span>
+<a name="l00226"></a>00226 <span class="comment">/// instruction could introduce a safe point.</span>
+<a name="l00227"></a>00227 <span class="comment"></span><span class="keywordtype">bool</span> LowerIntrinsics::CouldBecomeSafePoint(<a class="code" href="classllvm_1_1Instruction.html">Instruction</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00228"></a>00228   <span class="comment">// The natural definition of instructions which could introduce safe points</span>
+<a name="l00229"></a>00229   <span class="comment">// are:</span>
+<a name="l00230"></a>00230   <span class="comment">//</span>
+<a name="l00231"></a>00231   <span class="comment">//   - call, invoke (AfterCall, BeforeCall)</span>
+<a name="l00232"></a>00232   <span class="comment">//   - phis (Loops)</span>
+<a name="l00233"></a>00233   <span class="comment">//   - invoke, ret, unwind (Exit)</span>
+<a name="l00234"></a>00234   <span class="comment">//</span>
+<a name="l00235"></a>00235   <span class="comment">// However, instructions as seemingly inoccuous as arithmetic can become</span>
+<a name="l00236"></a>00236   <span class="comment">// libcalls upon lowering (e.g., div i64 on a 32-bit platform), so instead</span>
+<a name="l00237"></a>00237   <span class="comment">// it is necessary to take a conservative approach.</span>
+<a name="l00238"></a>00238 
+<a name="l00239"></a>00239   <span class="keywordflow">if</span> (isa<AllocaInst>(I) || isa<GetElementPtrInst>(I) ||
+<a name="l00240"></a>00240       isa<StoreInst>(I) || isa<LoadInst>(I))
+<a name="l00241"></a>00241     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243   <span class="comment">// llvm.gcroot is safe because it doesn't do anything at runtime.</span>
+<a name="l00244"></a>00244   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1CallInst.html">CallInst</a> *CI = dyn_cast<CallInst>(I))
+<a name="l00245"></a>00245     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Function.html">Function</a> *F = CI->getCalledFunction())
+<a name="l00246"></a>00246       <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span> IID = F-><a class="code" href="classllvm_1_1Function.html#a7e47131185becc5c96731a2e28441b77">getIntrinsicID</a>())
+<a name="l00247"></a>00247         <span class="keywordflow">if</span> (IID == Intrinsic::gcroot)
+<a name="l00248"></a>00248           <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252 <span class="comment"></span>
+<a name="l00253"></a>00253 <span class="comment">/// runOnFunction - Replace gcread/gcwrite intrinsics with loads and stores.</span>
+<a name="l00254"></a>00254 <span class="comment">/// Leave gcroot intrinsics; the code generator needs to see those.</span>
+<a name="l00255"></a>00255 <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1FunctionPass.html#a8b8e6ad43353cadea1dcea5d5f5f8e76">LowerIntrinsics::runOnFunction</a>(<a class="code" href="classllvm_1_1Function.html">Function</a> &F) {
+<a name="l00256"></a>00256   <span class="comment">// Quick exit for functions that do not use GC.</span>
+<a name="l00257"></a>00257   <span class="keywordflow">if</span> (!F.<a class="code" href="classllvm_1_1Function.html#a988441f676bbcc064697039950ab9e45">hasGC</a>())
+<a name="l00258"></a>00258     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260   <a class="code" href="classllvm_1_1GCFunctionInfo.html">GCFunctionInfo</a> &FI = getAnalysis<GCModuleInfo>().getFunctionInfo(F);
+<a name="l00261"></a>00261   <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &S = FI.<a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>();
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00264"></a>00264 
+<a name="l00265"></a>00265   <span class="keywordflow">if</span> (NeedsDefaultLoweringPass(S))
+<a name="l00266"></a>00266     MadeChange |= PerformDefaultLowering(F, S);
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268   <span class="keywordtype">bool</span> UseCustomLoweringPass = NeedsCustomLoweringPass(S);
+<a name="l00269"></a>00269   <span class="keywordflow">if</span> (UseCustomLoweringPass)
+<a name="l00270"></a>00270     MadeChange |= S.<a class="code" href="classllvm_1_1GCStrategy.html#a6ff06bdea19f4b8d400bfc70d69fe604">performCustomLowering</a>(F);
+<a name="l00271"></a>00271 
+<a name="l00272"></a>00272   <span class="comment">// Custom lowering may modify the CFG, so dominators must be recomputed.</span>
+<a name="l00273"></a>00273   <span class="keywordflow">if</span> (UseCustomLoweringPass) {
+<a name="l00274"></a>00274     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DominatorTree.html">DominatorTree</a> *DT = getAnalysisIfAvailable<DominatorTree>())
+<a name="l00275"></a>00275       DT->DT->recalculate(F);
+<a name="l00276"></a>00276   }
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278   <span class="keywordflow">return</span> MadeChange;
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281 <span class="keywordtype">bool</span> LowerIntrinsics::PerformDefaultLowering(<a class="code" href="classllvm_1_1Function.html">Function</a> &F, <a class="code" href="classllvm_1_1GCStrategy.html">GCStrategy</a> &S) {
+<a name="l00282"></a>00282   <span class="keywordtype">bool</span> LowerWr = !S.<a class="code" href="classllvm_1_1GCStrategy.html#af9c8fcbabb31902cddd7947e58469934">customWriteBarrier</a>();
+<a name="l00283"></a>00283   <span class="keywordtype">bool</span> LowerRd = !S.<a class="code" href="classllvm_1_1GCStrategy.html#a95e22564793faddc2518653fb744e2b1">customReadBarrier</a>();
+<a name="l00284"></a>00284   <span class="keywordtype">bool</span> InitRoots = S.<a class="code" href="classllvm_1_1GCStrategy.html#a252f8440ceaf8f6d65468e2e7aae6983" title="initializeRoots - If set, gcroot intrinsics should initialize their">initializeRoots</a>();
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<AllocaInst*, 32></a> Roots;
+<a name="l00287"></a>00287 
+<a name="l00288"></a>00288   <span class="keywordtype">bool</span> MadeChange = <span class="keyword">false</span>;
+<a name="l00289"></a>00289   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">Function::iterator</a> BB = F.<a class="code" href="classllvm_1_1Function.html#a88a5e60837674780a9d812d661897ac5">begin</a>(), E = F.<a class="code" href="classllvm_1_1Function.html#ae4ca2261b8b901e415fda7feac5051ea">end</a>(); BB != E; ++BB) {
+<a name="l00290"></a>00290     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">BasicBlock::iterator</a> II = BB->begin(), E = BB->end(); II != E;) {
+<a name="l00291"></a>00291       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1IntrinsicInst.html">IntrinsicInst</a> *CI = dyn_cast<IntrinsicInst>(II++)) {
+<a name="l00292"></a>00292         <a class="code" href="classllvm_1_1Function.html">Function</a> *F = CI->getCalledFunction();
+<a name="l00293"></a>00293         <span class="keywordflow">switch</span> (F-><a class="code" href="classllvm_1_1Function.html#a7e47131185becc5c96731a2e28441b77">getIntrinsicID</a>()) {
+<a name="l00294"></a>00294         <span class="keywordflow">case</span> Intrinsic::gcwrite:
+<a name="l00295"></a>00295           <span class="keywordflow">if</span> (LowerWr) {
+<a name="l00296"></a>00296             <span class="comment">// Replace a write barrier with a simple store.</span>
+<a name="l00297"></a>00297             <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *St = <span class="keyword">new</span> <a class="code" href="classllvm_1_1StoreInst.html">StoreInst</a>(CI->getArgOperand(0),
+<a name="l00298"></a>00298                                       CI->getArgOperand(2), CI);
+<a name="l00299"></a>00299             CI-><a class="code" href="classllvm_1_1Value.html#a3ab5fc45117b450e8bb04e564cb6e5f2">replaceAllUsesWith</a>(St);
+<a name="l00300"></a>00300             CI->eraseFromParent();
+<a name="l00301"></a>00301           }
+<a name="l00302"></a>00302           <span class="keywordflow">break</span>;
+<a name="l00303"></a>00303         <span class="keywordflow">case</span> Intrinsic::gcread:
+<a name="l00304"></a>00304           <span class="keywordflow">if</span> (LowerRd) {
+<a name="l00305"></a>00305             <span class="comment">// Replace a read barrier with a simple load.</span>
+<a name="l00306"></a>00306             <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *Ld = <span class="keyword">new</span> <a class="code" href="classllvm_1_1LoadInst.html">LoadInst</a>(CI->getArgOperand(1), <span class="stringliteral">""</span>, CI);
+<a name="l00307"></a>00307             Ld-><a class="code" href="classllvm_1_1Value.html#ae855357b6c5e6e7ed1869272708a3a84">takeName</a>(CI);
+<a name="l00308"></a>00308             CI->replaceAllUsesWith(Ld);
+<a name="l00309"></a>00309             CI->eraseFromParent();
+<a name="l00310"></a>00310           }
+<a name="l00311"></a>00311           <span class="keywordflow">break</span>;
+<a name="l00312"></a>00312         <span class="keywordflow">case</span> Intrinsic::gcroot:
+<a name="l00313"></a>00313           <span class="keywordflow">if</span> (InitRoots) {
+<a name="l00314"></a>00314             <span class="comment">// Initialize the GC root, but do not delete the intrinsic. The</span>
+<a name="l00315"></a>00315             <span class="comment">// backend needs the intrinsic to flag the stack slot.</span>
+<a name="l00316"></a>00316             Roots.<a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(cast<AllocaInst>(
+<a name="l00317"></a>00317                               CI->getArgOperand(0)->stripPointerCasts()));
+<a name="l00318"></a>00318           }
+<a name="l00319"></a>00319           <span class="keywordflow">break</span>;
+<a name="l00320"></a>00320         <span class="keywordflow">default</span>:
+<a name="l00321"></a>00321           <span class="keywordflow">continue</span>;
+<a name="l00322"></a>00322         }
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324         MadeChange = <span class="keyword">true</span>;
+<a name="l00325"></a>00325       }
+<a name="l00326"></a>00326     }
+<a name="l00327"></a>00327   }
+<a name="l00328"></a>00328 
+<a name="l00329"></a>00329   <span class="keywordflow">if</span> (Roots.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>())
+<a name="l00330"></a>00330     MadeChange |= InsertRootInitializers(F, Roots.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a8a045d250952c0867382a9840ee18fdf">begin</a>(), Roots.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>());
+<a name="l00331"></a>00331 
+<a name="l00332"></a>00332   <span class="keywordflow">return</span> MadeChange;
+<a name="l00333"></a>00333 }
+<a name="l00334"></a>00334 
+<a name="l00335"></a>00335 <span class="comment">// -----------------------------------------------------------------------------</span>
+<a name="l00336"></a>00336 
+<a name="l00337"></a>00337 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">GCMachineCodeAnalysis::ID</a> = 0;
+<a name="l00338"></a><a class="code" href="namespacellvm.html#a0a2ab38835f6c913bad8784f1b4670fb">00338</a> <span class="keywordtype">char</span> &<a class="code" href="namespacellvm.html#a0a2ab38835f6c913bad8784f1b4670fb">llvm::GCMachineCodeAnalysisID</a> = <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">GCMachineCodeAnalysis::ID</a>;
+<a name="l00339"></a>00339 
+<a name="l00340"></a><a class="code" href="GCStrategy_8cpp.html#ab3fa5df04454fe51f11f83c8792ec1dd">00340</a> <a class="code" href="PassSupport_8h.html#af807c9595d50b45c0008924c4679c85c">INITIALIZE_PASS</a>(GCMachineCodeAnalysis, <span class="stringliteral">"gc-analysis"</span>,
+<a name="l00341"></a>00341                 <span class="stringliteral">"Analyze Machine Code For Garbage Collection"</span>, <span class="keyword">false</span>, <span class="keyword">false</span>)
+<a name="l00342"></a>00342 
+<a name="l00343"></a>00343 GCMachineCodeAnalysis::GCMachineCodeAnalysis()
+<a name="l00344"></a>00344   : <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>) {}
+<a name="l00345"></a>00345 
+<a name="l00346"></a>00346 <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">GCMachineCodeAnalysis::getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00347"></a>00347   MachineFunctionPass::getAnalysisUsage(AU);
+<a name="l00348"></a>00348   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af22b06a6a4f9df80454071685a0d6a02">setPreservesAll</a>();
+<a name="l00349"></a>00349   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineModuleInfo.html">MachineModuleInfo</a>>();
+<a name="l00350"></a>00350   AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1GCModuleInfo.html">GCModuleInfo</a>>();
+<a name="l00351"></a>00351 }
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353 <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *GCMachineCodeAnalysis::InsertLabel(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> &MBB,
+<a name="l00354"></a>00354                                              <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> MI,
+<a name="l00355"></a>00355                                              <a class="code" href="classllvm_1_1DebugLoc.html">DebugLoc</a> DL)<span class="keyword"> const </span>{
+<a name="l00356"></a>00356   <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a> *Label = MBB.<a class="code" href="classllvm_1_1MachineBasicBlock.html#af2e482ff2a9253ec6bc2285491496bd6">getParent</a>()-><a class="code" href="classllvm_1_1MachineFunction.html#a64390a90af569a2437ea7ac3e7e1ea70">getContext</a>().<a class="code" href="classllvm_1_1MCContext.html#af0efba8326e35ce320f4d2fd346cea3f">CreateTempSymbol</a>();
+<a name="l00357"></a>00357   <a class="code" href="namespacellvm.html#a980570dc1410d4ef53806f82028ca381">BuildMI</a>(MBB, MI, DL, TII-><a class="code" href="classllvm_1_1DebugLoc.html#af63b4743ef1d470496c32ff88f4caa66">get</a>(<a class="code" href="namespacellvm_1_1TargetOpcode.html#aa2b3629c9319f86eee5a2c0e8c75ebfaa1b5f31cf7712b71a4307af166d7bab5e">TargetOpcode::GC_LABEL</a>)).addSym(Label);
+<a name="l00358"></a>00358   <span class="keywordflow">return</span> Label;
+<a name="l00359"></a>00359 }
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361 <span class="keywordtype">void</span> GCMachineCodeAnalysis::VisitCallPoint(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> CI) {
+<a name="l00362"></a>00362   <span class="comment">// Find the return address (next instruction), too, so as to bracket the call</span>
+<a name="l00363"></a>00363   <span class="comment">// instruction.</span>
+<a name="l00364"></a>00364   <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> RAI = CI;
+<a name="l00365"></a>00365   ++RAI;
+<a name="l00366"></a>00366 
+<a name="l00367"></a>00367   <span class="keywordflow">if</span> (FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>().<a class="code" href="classllvm_1_1GCStrategy.html#a6697be87257cb5059c217597cbf68167" title="needsSafePoint(Kind) - True if the given kind of safe point is">needsSafePoint</a>(<a class="code" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213ac5b4fed9bb4c83ebfab4c40a38d3d4bf" title="Instr is a call instruction.">GC::PreCall</a>)) {
+<a name="l00368"></a>00368     <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a>* Label = InsertLabel(*CI->getParent(), CI, CI->getDebugLoc());
+<a name="l00369"></a>00369     FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#a7e05d3d322867153fbc72c6c77e18116">addSafePoint</a>(<a class="code" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213ac5b4fed9bb4c83ebfab4c40a38d3d4bf" title="Instr is a call instruction.">GC::PreCall</a>, Label, CI->getDebugLoc());
+<a name="l00370"></a>00370   }
+<a name="l00371"></a>00371 
+<a name="l00372"></a>00372   <span class="keywordflow">if</span> (FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>().<a class="code" href="classllvm_1_1GCStrategy.html#a6697be87257cb5059c217597cbf68167" title="needsSafePoint(Kind) - True if the given kind of safe point is">needsSafePoint</a>(<a class="code" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213a2538858d7f00ca8d034a26b0d94a4cb7" title="Instr is the return address of a call.">GC::PostCall</a>)) {
+<a name="l00373"></a>00373     <a class="code" href="classllvm_1_1MCSymbol.html">MCSymbol</a>* Label = InsertLabel(*CI->getParent(), RAI, CI->getDebugLoc());
+<a name="l00374"></a>00374     FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#a7e05d3d322867153fbc72c6c77e18116">addSafePoint</a>(<a class="code" href="namespacellvm_1_1GC.html#a5f606a2b04c809f789a574660cd25213a2538858d7f00ca8d034a26b0d94a4cb7" title="Instr is the return address of a call.">GC::PostCall</a>, Label, CI->getDebugLoc());
+<a name="l00375"></a>00375   }
+<a name="l00376"></a>00376 }
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378 <span class="keywordtype">void</span> GCMachineCodeAnalysis::FindSafePoints(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00379"></a>00379   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineFunction.html#a340712de3e78fec11c338735cab17df7">MachineFunction::iterator</a> BBI = MF.<a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(),
+<a name="l00380"></a>00380                                  BBE = MF.<a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>(); BBI != BBE; ++BBI)
+<a name="l00381"></a>00381     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> MI = BBI->begin(),
+<a name="l00382"></a>00382                                      ME = BBI->end(); MI != ME; ++<a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6af6284b830f5e4fe2a8ddb9ff1a25ee46">MI</a>)
+<a name="l00383"></a>00383       <span class="keywordflow">if</span> (MI->isCall())
+<a name="l00384"></a>00384         VisitCallPoint(MI);
+<a name="l00385"></a>00385 }
+<a name="l00386"></a>00386 
+<a name="l00387"></a>00387 <span class="keywordtype">void</span> GCMachineCodeAnalysis::FindStackOffsets(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00388"></a>00388   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetFrameLowering.html">TargetFrameLowering</a> *TFI = TM->getFrameLowering();
+<a name="l00389"></a>00389   assert(TFI && <span class="stringliteral">"TargetRegisterInfo not available!"</span>);
+<a name="l00390"></a>00390 
+<a name="l00391"></a>00391   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1GCFunctionInfo.html#a8ec34a6193122f72eb8f71316c86d9f0">GCFunctionInfo::roots_iterator</a> RI = FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ae2cfab3f8946c1ae3351accef22e110d">roots_begin</a>();
+<a name="l00392"></a>00392        RI != FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#abb563d81d5429ad44e75a5d6abd31cc8">roots_end</a>();) {
+<a name="l00393"></a>00393     <span class="comment">// If the root references a dead object, no need to keep it.</span>
+<a name="l00394"></a>00394     <span class="keywordflow">if</span> (MF.<a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>()-><a class="code" href="classllvm_1_1MachineFrameInfo.html#a639df36670c77819b19f9bdec96634df">isDeadObjectIndex</a>(RI->Num)) {
+<a name="l00395"></a>00395       RI = FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#a957b0f709aa98bbded142df9b447368e" title="removeStackRoot - Removes a root.">removeStackRoot</a>(RI);
+<a name="l00396"></a>00396     } <span class="keywordflow">else</span> {
+<a name="l00397"></a>00397       RI->StackOffset = TFI-><a class="code" href="classllvm_1_1TargetFrameLowering.html#ab459463adf75c4036fcfc00ae21bd10d">getFrameIndexOffset</a>(MF, RI->Num);
+<a name="l00398"></a>00398       ++RI;
+<a name="l00399"></a>00399     }
+<a name="l00400"></a>00400   }
+<a name="l00401"></a>00401 }
+<a name="l00402"></a>00402 
+<a name="l00403"></a>00403 <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html#abb98ed32e4e5acae62ef3edd7bf04fb5">GCMachineCodeAnalysis::runOnMachineFunction</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00404"></a>00404   <span class="comment">// Quick exit for functions that do not use GC.</span>
+<a name="l00405"></a>00405   <span class="keywordflow">if</span> (!MF.<a class="code" href="classllvm_1_1MachineFunction.html#ad784a6594990530bffb2018aeeed56f3">getFunction</a>()-><a class="code" href="classllvm_1_1Function.html#a988441f676bbcc064697039950ab9e45">hasGC</a>())
+<a name="l00406"></a>00406     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00407"></a>00407 
+<a name="l00408"></a>00408   FI = &getAnalysis<GCModuleInfo>().getFunctionInfo(*MF.<a class="code" href="classllvm_1_1MachineFunction.html#ad784a6594990530bffb2018aeeed56f3">getFunction</a>());
+<a name="l00409"></a>00409   <span class="keywordflow">if</span> (!FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>().<a class="code" href="classllvm_1_1GCStrategy.html#ae14072f0cf39f5dc00d9f6d154d406d3" title="needsSafePoitns - True if safe points of any kind are required. By">needsSafePoints</a>())
+<a name="l00410"></a>00410     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412   TM = &MF.<a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>();
+<a name="l00413"></a>00413   MMI = &getAnalysis<MachineModuleInfo>();
+<a name="l00414"></a>00414   TII = TM-><a class="code" href="classllvm_1_1TargetMachine.html#ac13d0f6f2c915757013b101ef6e8afbc">getInstrInfo</a>();
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416   <span class="comment">// Find the size of the stack frame.</span>
+<a name="l00417"></a>00417   FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#a276c36ef8c0cf5feb67173c4370fcd0d">setFrameSize</a>(MF.<a class="code" href="classllvm_1_1MachineFunction.html#a4ad4295a88187ea1ae12ecfcfa18a70f">getFrameInfo</a>()-><a class="code" href="classllvm_1_1MachineFrameInfo.html#a34874094b3ba8b56fd68801250f77183">getStackSize</a>());
+<a name="l00418"></a>00418 
+<a name="l00419"></a>00419   <span class="comment">// Find all safe points.</span>
+<a name="l00420"></a>00420   <span class="keywordflow">if</span> (FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>().<a class="code" href="classllvm_1_1GCStrategy.html#ab1cb897eb25619c5ccd532e900010db0">customSafePoints</a>()) {
+<a name="l00421"></a>00421     FI-><a class="code" href="classllvm_1_1GCFunctionInfo.html#ab94a270eed698fd72d991d5dd8393e01">getStrategy</a>().<a class="code" href="classllvm_1_1GCStrategy.html#a9bf52e7759b7fc1fcc02f4b12a1d5383">findCustomSafePoints</a>(*FI, MF);
+<a name="l00422"></a>00422   } <span class="keywordflow">else</span> {
+<a name="l00423"></a>00423     FindSafePoints(MF);
+<a name="l00424"></a>00424   }
+<a name="l00425"></a>00425 
+<a name="l00426"></a>00426   <span class="comment">// Find the stack offsets for all roots.</span>
+<a name="l00427"></a>00427   FindStackOffsets(MF);
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00430"></a>00430 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:48 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/GCStrategy_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,3 @@
+<map id="G" name="G">
+<area shape="rect" href="$GVMaterializer_8h.html" title="llvm/GVMaterializer.h" alt="" coords="5,84,160,111"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+cb3fe940264b0f719bbaa8f82200ca44
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/GVMaterializer_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/GenericValue_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GenericValue_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GenericValue_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GenericValue_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,25 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GenericValue.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="ExecutionEngine.cpp",height=0.2,width=0.4,color="black",URL="$ExecutionEngine_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="ExecutionEngineBindings.cpp",height=0.2,width=0.4,color="black",URL="$ExecutionEngineBindings_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="Interpreter.h",height=0.2,width=0.4,color="black",URL="$lib_2ExecutionEngine_2Interpreter_2Interpreter_8h.html"];
+  Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="Execution.cpp",height=0.2,width=0.4,color="black",URL="$Execution_8cpp.html"];
+  Node4 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="ExternalFunctions.cpp",height=0.2,width=0.4,color="black",URL="$ExternalFunctions_8cpp.html"];
+  Node4 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="Interpreter.cpp",height=0.2,width=0.4,color="black",URL="$Interpreter_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="JIT.cpp",height=0.2,width=0.4,color="black",URL="$JIT_8cpp.html"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="JITEmitter.cpp",height=0.2,width=0.4,color="black",URL="$JITEmitter_8cpp.html"];
+  Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="MCJIT.cpp",height=0.2,width=0.4,color="black",URL="$MCJIT_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GetElementPtrTypeIterator_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GetElementPtrTypeIterator_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GetElementPtrTypeIterator_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GetElementPtrTypeIterator_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,70 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GetElementPtrTypeIterator.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/User.h",height=0.2,width=0.4,color="black",URL="$User_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Value.h",height=0.2,width=0.4,color="black",URL="$Value_8h.html"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Use.h",height=0.2,width=0.4,color="black",URL="$Use_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node22 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="black",URL="$Casting_8h.html"];
+  Node24 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Type.h",height=0.2,width=0.4,color="black",URL="$Type_8h.html"];
+  Node26 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalAlias_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalAlias_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalAlias_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalAlias_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,110 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GlobalAlias.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="Module.h",height=0.2,width=0.4,color="red",URL="$Module_8h.html"];
+  Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="InstVisitor.h",height=0.2,width=0.4,color="red",URL="$InstVisitor_8h.html"];
+  Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="InlineCost.cpp",height=0.2,width=0.4,color="black",URL="$InlineCost_8cpp.html"];
+  Node2 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="TargetLoweringObjectFile.h",height=0.2,width=0.4,color="red",URL="$TargetLoweringObjectFile_8h.html"];
+  Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="AsmPrinter.cpp",height=0.2,width=0.4,color="black",URL="$AsmPrinter_8cpp.html"];
+  Node2 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="LinkAllVMCore.h",height=0.2,width=0.4,color="black",URL="$LinkAllVMCore_8h.html"];
+  Node2 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="AliasDebugger.cpp",height=0.2,width=0.4,color="black",URL="$AliasDebugger_8cpp.html"];
+  Node2 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="DbgInfoPrinter.cpp",height=0.2,width=0.4,color="black",URL="$DbgInfoPrinter_8cpp.html"];
+  Node2 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="CallGraph.cpp",height=0.2,width=0.4,color="black",URL="$CallGraph_8cpp.html"];
+  Node2 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="FindUsedTypes.cpp",height=0.2,width=0.4,color="black",URL="$FindUsedTypes_8cpp.html"];
+  Node2 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="GlobalsModRef.cpp",height=0.2,width=0.4,color="black",URL="$GlobalsModRef_8cpp.html"];
+  Node2 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="MemoryBuiltins.cpp",height=0.2,width=0.4,color="black",URL="$MemoryBuiltins_8cpp.html"];
+  Node2 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="PathNumbering.cpp",height=0.2,width=0.4,color="black",URL="$PathNumbering_8cpp.html"];
+  Node2 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="PathProfileInfo.cpp",height=0.2,width=0.4,color="black",URL="$PathProfileInfo_8cpp.html"];
+  Node2 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="PathProfileVerifier.cpp",height=0.2,width=0.4,color="black",URL="$PathProfileVerifier_8cpp.html"];
+  Node2 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="ProfileDataLoader.cpp",height=0.2,width=0.4,color="black",URL="$ProfileDataLoader_8cpp.html"];
+  Node2 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="ProfileDataLoaderPass.cpp",height=0.2,width=0.4,color="black",URL="$ProfileDataLoaderPass_8cpp.html"];
+  Node2 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="ProfileInfoLoader.cpp",height=0.2,width=0.4,color="black",URL="$ProfileInfoLoader_8cpp.html"];
+  Node2 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="ProfileInfoLoaderPass.cpp",height=0.2,width=0.4,color="black",URL="$ProfileInfoLoaderPass_8cpp.html"];
+  Node2 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="ProfileVerifierPass.cpp",height=0.2,width=0.4,color="black",URL="$ProfileVerifierPass_8cpp.html"];
+  Node2 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="TypeBasedAliasAnalysis.cpp",height=0.2,width=0.4,color="black",URL="$TypeBasedAliasAnalysis_8cpp.html"];
+  Node2 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="Archive.cpp",height=0.2,width=0.4,color="black",URL="$Archive_2Archive_8cpp.html"];
+  Node2 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="ArchiveReader.cpp",height=0.2,width=0.4,color="black",URL="$ArchiveReader_8cpp.html"];
+  Node2 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="ArchiveWriter.cpp",height=0.2,width=0.4,color="black",URL="$ArchiveWriter_8cpp.html"];
+  Node2 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="LLParser.h",height=0.2,width=0.4,color="black",URL="$LLParser_8h.html"];
+  Node26 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="LLParser.cpp",height=0.2,width=0.4,color="black",URL="$LLParser_8cpp.html"];
+  Node26 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="Parser.cpp",height=0.2,width=0.4,color="black",URL="$Parser_8cpp.html"];
+  Node2 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="BitcodeReader.cpp",height=0.2,width=0.4,color="black",URL="$BitcodeReader_8cpp.html"];
+  Node2 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="BitcodeWriter.cpp",height=0.2,width=0.4,color="black",URL="$BitcodeWriter_8cpp.html"];
+  Node2 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="ValueEnumerator.cpp",height=0.2,width=0.4,color="black",URL="$ValueEnumerator_8cpp.html"];
+  Node2 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="Analysis.cpp",height=0.2,width=0.4,color="black",URL="$CodeGen_2Analysis_8cpp.html"];
+  Node2 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="ARMException.cpp",height=0.2,width=0.4,color="black",URL="$ARMException_8cpp.html"];
+  Node2 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="AsmPrinterInlineAsm.cpp",height=0.2,width=0.4,color="black",URL="$AsmPrinterInlineAsm_8cpp.html"];
+  Node2 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="Globals.cpp",height=0.2,width=0.4,color="black",URL="$Globals_8cpp.html"];
+  Node1 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="BasicAliasAnalysis.cpp",height=0.2,width=0.4,color="black",URL="$BasicAliasAnalysis_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="InstructionSimplify.cpp",height=0.2,width=0.4,color="black",URL="$InstructionSimplify_8cpp.html"];
+  Node1 -> Node38 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="Loads.cpp",height=0.2,width=0.4,color="black",URL="$Loads_8cpp.html"];
+  Node1 -> Node39 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="ScalarEvolution.cpp",height=0.2,width=0.4,color="black",URL="$ScalarEvolution_8cpp.html"];
+  Node1 -> Node40 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="ValueTracking.cpp",height=0.2,width=0.4,color="black",URL="$ValueTracking_8cpp.html"];
+  Node1 -> Node41 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="SelectionDAG.cpp",height=0.2,width=0.4,color="black",URL="$SelectionDAG_8cpp.html"];
+  Node1 -> Node42 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="HexagonISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$HexagonISelLowering_8cpp.html"];
+  Node1 -> Node43 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="MSP430ISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$MSP430ISelLowering_8cpp.html"];
+  Node1 -> Node44 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="TargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$TargetMachine_8cpp.html"];
+  Node1 -> Node45 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="X86FastISel.cpp",height=0.2,width=0.4,color="black",URL="$X86FastISel_8cpp.html"];
+  Node1 -> Node46 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="X86ISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$X86ISelLowering_8cpp.html"];
+  Node1 -> Node47 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="XCoreISelLowering.cpp",height=0.2,width=0.4,color="black",URL="$XCoreISelLowering_8cpp.html"];
+  Node1 -> Node48 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="Local.cpp",height=0.2,width=0.4,color="black",URL="$Local_8cpp.html"];
+  Node1 -> Node49 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="ConstantFold.cpp",height=0.2,width=0.4,color="black",URL="$ConstantFold_8cpp.html"];
+  Node1 -> Node50 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="Core.cpp",height=0.2,width=0.4,color="black",URL="$Core_8cpp.html"];
+  Node1 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalOpt_8cpp__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalOpt_8cpp__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/GlobalOpt_8cpp__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h__dep__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h__dep__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h__dep__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalValue_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GlobalValue.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">GlobalValue.h</div>  </div>
+</div>
+<div class="contents">
+<a href="GlobalValue_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- llvm/GlobalValue.h - Class to represent a global value --*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file is a common base class of all globally definable objects.  As such,</span>
+<a name="l00011"></a>00011 <span class="comment">// it is subclassed by GlobalVariable, GlobalAlias and by Function.  This is</span>
+<a name="l00012"></a>00012 <span class="comment">// used because you can do certain things with these global objects that you</span>
+<a name="l00013"></a>00013 <span class="comment">// can't do to anything else.  For example, use the address of one as a</span>
+<a name="l00014"></a>00014 <span class="comment">// constant.</span>
+<a name="l00015"></a>00015 <span class="comment">//</span>
+<a name="l00016"></a>00016 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="preprocessor">#ifndef LLVM_GLOBALVALUE_H</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_GLOBALVALUE_H</span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Constant_8h.html">llvm/Constant.h</a>"</span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>llvm {
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="keyword">class </span>PointerType;
+<a name="l00026"></a>00026 <span class="keyword">class </span>Module;
+<a name="l00027"></a>00027 
+<a name="l00028"></a><a class="code" href="classllvm_1_1GlobalValue.html">00028</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1GlobalValue.html">GlobalValue</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1Constant.html" title="LLVM Constant Representation.">Constant</a> {
+<a name="l00029"></a>00029   <a class="code" href="classllvm_1_1GlobalValue.html">GlobalValue</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GlobalValue.html">GlobalValue</a> &) <a class="code" href="Compiler_8h.html#aacca75352b8e153274310c374564eb01">LLVM_DELETED_FUNCTION</a>;
+<a name="l00030"></a>00030 <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00031"></a>00031 <span class="comment">  /// @brief An enumeration for the kinds of linkage for global values.</span>
+<a name="l00032"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c">00032</a> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> {
+<a name="l00033"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca6c93794d7b99cd433e96c53eadb15a6e">00033</a>     <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca6c93794d7b99cd433e96c53eadb15a6e" title="Externally visible function.">ExternalLinkage</a> = 0,<span class="comment">///< Externally visible function</span>
+<a name="l00034"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa67f293befacbbf974525116ccf2ff42">00034</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa67f293befacbbf974525116ccf2ff42" title="Available for inspection, not emission.">AvailableExternallyLinkage</a>, <span class="comment">///< Available for inspection, not emission.</span>
+<a name="l00035"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705">00035</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705" title="Keep one copy of function when linking (inline)">LinkOnceAnyLinkage</a>, <span class="comment">///< Keep one copy of function when linking (inline)</span>
+<a name="l00036"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caf2b592edf18170e7aff4e8f3bae3360c">00036</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caf2b592edf18170e7aff4e8f3bae3360c" title="Same, but only replaced by something equivalent.">LinkOnceODRLinkage</a>, <span class="comment">///< Same, but only replaced by something equivalent.</span>
+<a name="l00037"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cace60fa1f14652db64c57613f3d0a5371">00037</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cace60fa1f14652db64c57613f3d0a5371" title="Like LinkOnceODRLinkage but addr not taken.">LinkOnceODRAutoHideLinkage</a>, <span class="comment">///< Like LinkOnceODRLinkage but addr not taken.</span>
+<a name="l00038"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f">00038</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f" title="Keep one copy of named function when linking (weak)">WeakAnyLinkage</a>,     <span class="comment">///< Keep one copy of named function when linking (weak)</span>
+<a name="l00039"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca696bb1c9b0b0e76bb70c61f68866452a">00039</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca696bb1c9b0b0e76bb70c61f68866452a" title="Same, but only replaced by something equivalent.">WeakODRLinkage</a>,     <span class="comment">///< Same, but only replaced by something equivalent.</span>
+<a name="l00040"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca96ad6314ba9210b223b93dc3e15baf99">00040</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca96ad6314ba9210b223b93dc3e15baf99" title="Special purpose, only applies to global arrays.">AppendingLinkage</a>,   <span class="comment">///< Special purpose, only applies to global arrays</span>
+<a name="l00041"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca1511edd03e02d1f3dd277a3c6abf6ad5">00041</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca1511edd03e02d1f3dd277a3c6abf6ad5" title="Rename collisions when linking (static functions).">InternalLinkage</a>,    <span class="comment">///< Rename collisions when linking (static functions).</span>
+<a name="l00042"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca04ed141708c0fd16723d212502b046ae">00042</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca04ed141708c0fd16723d212502b046ae" title="Like Internal, but omit from symbol table.">PrivateLinkage</a>,     <span class="comment">///< Like Internal, but omit from symbol table.</span>
+<a name="l00043"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca0861cbe0f4b3654192be8d8df5022ec4">00043</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca0861cbe0f4b3654192be8d8df5022ec4" title="Like Private, but linker removes.">LinkerPrivateLinkage</a>, <span class="comment">///< Like Private, but linker removes.</span>
+<a name="l00044"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cac399daf701876082334e4b1549381936">00044</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cac399daf701876082334e4b1549381936" title="Like LinkerPrivate, but weak.">LinkerPrivateWeakLinkage</a>, <span class="comment">///< Like LinkerPrivate, but weak.</span>
+<a name="l00045"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca610e09ea3dc61477d0168c6828611342">00045</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca610e09ea3dc61477d0168c6828611342" title="Function to be imported from DLL.">DLLImportLinkage</a>,   <span class="comment">///< Function to be imported from DLL</span>
+<a name="l00046"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8acb90f4400905cf09c8e74e853350d9">00046</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8acb90f4400905cf09c8e74e853350d9" title="Function to be accessible from DLL.">DLLExportLinkage</a>,   <span class="comment">///< Function to be accessible from DLL.</span>
+<a name="l00047"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa81fc8db28ac4af45766fbab2e79d466">00047</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa81fc8db28ac4af45766fbab2e79d466" title="ExternalWeak linkage description.">ExternalWeakLinkage</a>,<span class="comment">///< ExternalWeak linkage description.</span>
+<a name="l00048"></a><a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca08c6a63ca3d9cdb39fb584655bf5c501">00048</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca08c6a63ca3d9cdb39fb584655bf5c501" title="Tentative definitions.">CommonLinkage</a>       <span class="comment">///< Tentative definitions.</span>
+<a name="l00049"></a>00049 <span class="comment"></span>  };
+<a name="l00050"></a>00050 <span class="comment"></span>
+<a name="l00051"></a>00051 <span class="comment">  /// @brief An enumeration for the kinds of visibility of global values.</span>
+<a name="l00052"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195">00052</a> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195" title="An enumeration for the kinds of visibility of global values.">VisibilityTypes</a> {
+<a name="l00053"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a2491e41d821f1d8fd3958ce3df2fddb2">00053</a>     <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a2491e41d821f1d8fd3958ce3df2fddb2" title="The GV is visible.">DefaultVisibility</a> = 0,  <span class="comment">///< The GV is visible</span>
+<a name="l00054"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a7eade123587a08e674f2ca72e2443771">00054</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a7eade123587a08e674f2ca72e2443771" title="The GV is hidden.">HiddenVisibility</a>,       <span class="comment">///< The GV is hidden</span>
+<a name="l00055"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195ae1cc9a390520055573d459de25747caa">00055</a> <span class="comment"></span>    <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195ae1cc9a390520055573d459de25747caa" title="The GV is protected.">ProtectedVisibility</a>     <span class="comment">///< The GV is protected</span>
+<a name="l00056"></a>00056 <span class="comment"></span>  };
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 <span class="keyword">protected</span>:
+<a name="l00059"></a><a class="code" href="classllvm_1_1GlobalValue.html#a5d053e5cd09689424d73f7d3c5f33308">00059</a>   <a class="code" href="classllvm_1_1GlobalValue.html">GlobalValue</a>(<a class="code" href="classllvm_1_1Type.html">Type</a> *ty, <a class="code" href="classllvm_1_1Value.html#af6d11b38374c4f9e6ba3a6407da2dee0">ValueTy</a> vty, <a class="code" href="classllvm_1_1Use.html">Use</a> *Ops, <span class="keywordtype">unsigned</span> NumOps,
+<a name="l00060"></a>00060               <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> linkage, <span class="keyword">const</span> <a class="code" href="classllvm_1_1Twine.html">Twine</a> &Name)
+<a name="l00061"></a>00061     : <a class="code" href="classllvm_1_1Constant.html" title="LLVM Constant Representation.">Constant</a>(ty, vty, Ops, NumOps), <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>(linkage),
+<a name="l00062"></a>00062       <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a>(<a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a2491e41d821f1d8fd3958ce3df2fddb2" title="The GV is visible.">DefaultVisibility</a>), <a class="code" href="classllvm_1_1GlobalValue.html#ad252ba1783ed40f9c514268b7b2b4a2a">Alignment</a>(0), <a class="code" href="classllvm_1_1GlobalValue.html#ad1d684b9122e8ed714483922349b6592">UnnamedAddr</a>(0), <a class="code" href="classllvm_1_1GlobalValue.html#acb71c8012dfaa189618d2cdafb58b4b0">Parent</a>(0) {
+<a name="l00063"></a>00063     <a class="code" href="classllvm_1_1Value.html#a35ee267850af7c235474a8c46c7ac5af">setName</a>(Name);
+<a name="l00064"></a>00064   }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066   <span class="comment">// Note: VC++ treats enums as signed, so an extra bit is required to prevent</span>
+<a name="l00067"></a>00067   <span class="comment">// Linkage and Visibility from turning into negative values.</span>
+<a name="l00068"></a><a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">00068</a>   <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a> : 5;   <span class="comment">// The linkage of this global</span>
+<a name="l00069"></a><a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">00069</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a> : 2;    <span class="comment">// The visibility style of this global</span>
+<a name="l00070"></a><a class="code" href="classllvm_1_1GlobalValue.html#ad252ba1783ed40f9c514268b7b2b4a2a">00070</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad252ba1783ed40f9c514268b7b2b4a2a">Alignment</a> : 16;    <span class="comment">// Alignment of this symbol, must be power of two</span>
+<a name="l00071"></a><a class="code" href="classllvm_1_1GlobalValue.html#ad1d684b9122e8ed714483922349b6592">00071</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad1d684b9122e8ed714483922349b6592">UnnamedAddr</a> : 1;   <span class="comment">// This value's address is not significant</span>
+<a name="l00072"></a><a class="code" href="classllvm_1_1GlobalValue.html#acb71c8012dfaa189618d2cdafb58b4b0">00072</a>   <a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> *<a class="code" href="classllvm_1_1GlobalValue.html#acb71c8012dfaa189618d2cdafb58b4b0">Parent</a>;             <span class="comment">// The containing module.</span>
+<a name="l00073"></a><a class="code" href="classllvm_1_1GlobalValue.html#a90b715ad681057a10a4fec7b2128355b">00073</a>   std::string <a class="code" href="classllvm_1_1GlobalValue.html#a90b715ad681057a10a4fec7b2128355b">Section</a>;        <span class="comment">// Section to emit this into, empty mean default</span>
+<a name="l00074"></a>00074 <span class="keyword">public</span>:
+<a name="l00075"></a><a class="code" href="classllvm_1_1GlobalValue.html#acbca9233f5cc59714d6bb6afe39ef9fa">00075</a>   <a class="code" href="classllvm_1_1GlobalValue.html#acbca9233f5cc59714d6bb6afe39ef9fa">~GlobalValue</a>() {
+<a name="l00076"></a>00076     <a class="code" href="classllvm_1_1Constant.html#a50d0911852017f2168de329f53d8568d">removeDeadConstantUsers</a>();   <span class="comment">// remove any dead constants using this.</span>
+<a name="l00077"></a>00077   }
+<a name="l00078"></a>00078 
+<a name="l00079"></a><a class="code" href="classllvm_1_1GlobalValue.html#a8a69689cb8586761c6a7535a8f6618a5">00079</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1GlobalValue.html#a8a69689cb8586761c6a7535a8f6618a5">getAlignment</a>()<span class="keyword"> const </span>{
+<a name="l00080"></a>00080     <span class="keywordflow">return</span> (1u << <a class="code" href="classllvm_1_1GlobalValue.html#ad252ba1783ed40f9c514268b7b2b4a2a">Alignment</a>) >> 1;
+<a name="l00081"></a>00081   }
+<a name="l00082"></a>00082   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad7523221c38891e563047ab7fc044312">setAlignment</a>(<span class="keywordtype">unsigned</span> Align);
+<a name="l00083"></a>00083 
+<a name="l00084"></a><a class="code" href="classllvm_1_1GlobalValue.html#ac02b37f1016fb8ad589cf26a4e1e0b14">00084</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ac02b37f1016fb8ad589cf26a4e1e0b14">hasUnnamedAddr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad1d684b9122e8ed714483922349b6592">UnnamedAddr</a>; }
+<a name="l00085"></a><a class="code" href="classllvm_1_1GlobalValue.html#a91ebd7b5d66cc73396c43f4c056050d6">00085</a>   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#a91ebd7b5d66cc73396c43f4c056050d6">setUnnamedAddr</a>(<span class="keywordtype">bool</span> Val) { <a class="code" href="classllvm_1_1GlobalValue.html#ad1d684b9122e8ed714483922349b6592">UnnamedAddr</a> = Val; }
+<a name="l00086"></a>00086 
+<a name="l00087"></a><a class="code" href="classllvm_1_1GlobalValue.html#a56539d08755f423450db1305c037149e">00087</a>   <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195" title="An enumeration for the kinds of visibility of global values.">VisibilityTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#a56539d08755f423450db1305c037149e">getVisibility</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195" title="An enumeration for the kinds of visibility of global values.">VisibilityTypes</a>(<a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a>); }
+<a name="l00088"></a><a class="code" href="classllvm_1_1GlobalValue.html#ab8758f0a60d0150a6dbda9328ee85a06">00088</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ab8758f0a60d0150a6dbda9328ee85a06">hasDefaultVisibility</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a> == <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a2491e41d821f1d8fd3958ce3df2fddb2" title="The GV is visible.">DefaultVisibility</a>; }
+<a name="l00089"></a><a class="code" href="classllvm_1_1GlobalValue.html#a6a31cef340898554ac687f02c91edab5">00089</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a6a31cef340898554ac687f02c91edab5">hasHiddenVisibility</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a> == <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195a7eade123587a08e674f2ca72e2443771" title="The GV is hidden.">HiddenVisibility</a>; }
+<a name="l00090"></a><a class="code" href="classllvm_1_1GlobalValue.html#afdc0bd1f9b2ee6ee425461354e7d8e99">00090</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#afdc0bd1f9b2ee6ee425461354e7d8e99">hasProtectedVisibility</a>()<span class="keyword"> const </span>{
+<a name="l00091"></a>00091     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a> == <a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195ae1cc9a390520055573d459de25747caa" title="The GV is protected.">ProtectedVisibility</a>;
+<a name="l00092"></a>00092   }
+<a name="l00093"></a><a class="code" href="classllvm_1_1GlobalValue.html#aa242d8ab89216c14beab812e07009b2a">00093</a>   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#aa242d8ab89216c14beab812e07009b2a">setVisibility</a>(<a class="code" href="classllvm_1_1GlobalValue.html#a9141f967188383108a69cc1b8ed3c195" title="An enumeration for the kinds of visibility of global values.">VisibilityTypes</a> V) { <a class="code" href="classllvm_1_1GlobalValue.html#a4b20bb41f6274a04399a83a821869ad1">Visibility</a> = V; }
+<a name="l00094"></a>00094   
+<a name="l00095"></a><a class="code" href="classllvm_1_1GlobalValue.html#a790641f27e51506ed93c5dfcc6f9b02c">00095</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a790641f27e51506ed93c5dfcc6f9b02c">hasSection</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classllvm_1_1GlobalValue.html#a90b715ad681057a10a4fec7b2128355b">Section</a>.empty(); }
+<a name="l00096"></a><a class="code" href="classllvm_1_1GlobalValue.html#a1f39ff79c40deb2abcea0592434f9855">00096</a>   <span class="keyword">const</span> std::string &<a class="code" href="classllvm_1_1GlobalValue.html#a1f39ff79c40deb2abcea0592434f9855">getSection</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a90b715ad681057a10a4fec7b2128355b">Section</a>; }
+<a name="l00097"></a><a class="code" href="classllvm_1_1GlobalValue.html#a3aa0bd764357e7ac9a9b7ca59189af79">00097</a>   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#a3aa0bd764357e7ac9a9b7ca59189af79">setSection</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> S) { <a class="code" href="classllvm_1_1GlobalValue.html#a90b715ad681057a10a4fec7b2128355b">Section</a> = S; }
+<a name="l00098"></a>00098   <span class="comment"></span>
+<a name="l00099"></a>00099 <span class="comment">  /// If the usage is empty (except transitively dead constants), then this</span>
+<a name="l00100"></a>00100 <span class="comment">  /// global value can be safely deleted since the destructor will</span>
+<a name="l00101"></a>00101 <span class="comment">  /// delete the dead constants as well.</span>
+<a name="l00102"></a>00102 <span class="comment">  /// @brief Determine if the usage of this global value is empty except</span>
+<a name="l00103"></a>00103 <span class="comment">  /// for transitively dead constants.</span>
+<a name="l00104"></a>00104 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4510c7212c6939a2159f83ef6a10b18b" title="Determine if the usage of this global value is empty except for transitively dead constants...">use_empty_except_constants</a>();
+<a name="l00105"></a>00105 <span class="comment"></span>
+<a name="l00106"></a>00106 <span class="comment">  /// getType - Global values are always pointers.</span>
+<a name="l00107"></a><a class="code" href="classllvm_1_1GlobalValue.html#ad60ec7475b0ffe7fc1f68a8019780643">00107</a> <span class="comment"></span>  <span class="keyword">inline</span> <a class="code" href="classllvm_1_1PointerType.html">PointerType</a> *<a class="code" href="classllvm_1_1GlobalValue.html#ad60ec7475b0ffe7fc1f68a8019780643" title="getType - Global values are always pointers.">getType</a>()<span class="keyword"> const </span>{
+<a name="l00108"></a>00108     <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><a class="code" href="classllvm_1_1PointerType.html">PointerType</a>*<span class="keyword">></span>(<a class="code" href="classllvm_1_1GlobalValue.html#ad60ec7475b0ffe7fc1f68a8019780643" title="getType - Global values are always pointers.">User::getType</a>());
+<a name="l00109"></a>00109   }
+<a name="l00110"></a>00110 
+<a name="l00111"></a><a class="code" href="classllvm_1_1GlobalValue.html#ac00103d63c269693fe360702dd9142d7">00111</a>   <span class="keyword">static</span> <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#ac00103d63c269693fe360702dd9142d7">getLinkOnceLinkage</a>(<span class="keywordtype">bool</span> ODR) {
+<a name="l00112"></a>00112     <span class="keywordflow">return</span> ODR ? <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caf2b592edf18170e7aff4e8f3bae3360c" title="Same, but only replaced by something equivalent.">LinkOnceODRLinkage</a> : <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705" title="Keep one copy of function when linking (inline)">LinkOnceAnyLinkage</a>;
+<a name="l00113"></a>00113   }
+<a name="l00114"></a><a class="code" href="classllvm_1_1GlobalValue.html#ab1a929646bd99aa881cff849f40da718">00114</a>   <span class="keyword">static</span> <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#ab1a929646bd99aa881cff849f40da718">getWeakLinkage</a>(<span class="keywordtype">bool</span> ODR) {
+<a name="l00115"></a>00115     <span class="keywordflow">return</span> ODR ? <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca696bb1c9b0b0e76bb70c61f68866452a" title="Same, but only replaced by something equivalent.">WeakODRLinkage</a> : <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f" title="Keep one copy of named function when linking (weak)">WeakAnyLinkage</a>;
+<a name="l00116"></a>00116   }
+<a name="l00117"></a>00117 
+<a name="l00118"></a><a class="code" href="classllvm_1_1GlobalValue.html#a89a664b58385307fbb24c02e141d864b">00118</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a89a664b58385307fbb24c02e141d864b">isExternalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00119"></a>00119     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca6c93794d7b99cd433e96c53eadb15a6e" title="Externally visible function.">ExternalLinkage</a>;
+<a name="l00120"></a>00120   }
+<a name="l00121"></a><a class="code" href="classllvm_1_1GlobalValue.html#a578061260691a59a9e7b0455fd68359c">00121</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a578061260691a59a9e7b0455fd68359c">isAvailableExternallyLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00122"></a>00122     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa67f293befacbbf974525116ccf2ff42" title="Available for inspection, not emission.">AvailableExternallyLinkage</a>;
+<a name="l00123"></a>00123   }
+<a name="l00124"></a><a class="code" href="classllvm_1_1GlobalValue.html#a4f4d5111c78b4b976e362d12f01ad782">00124</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4f4d5111c78b4b976e362d12f01ad782">isLinkOnceLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00125"></a>00125     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705" title="Keep one copy of function when linking (inline)">LinkOnceAnyLinkage</a> ||
+<a name="l00126"></a>00126            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caf2b592edf18170e7aff4e8f3bae3360c" title="Same, but only replaced by something equivalent.">LinkOnceODRLinkage</a> ||
+<a name="l00127"></a>00127            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cace60fa1f14652db64c57613f3d0a5371" title="Like LinkOnceODRLinkage but addr not taken.">LinkOnceODRAutoHideLinkage</a>;
+<a name="l00128"></a>00128   }
+<a name="l00129"></a><a class="code" href="classllvm_1_1GlobalValue.html#a6e2ec7c6b361aed048eaa75b6be682aa">00129</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a6e2ec7c6b361aed048eaa75b6be682aa">isLinkOnceODRAutoHideLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00130"></a>00130     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cace60fa1f14652db64c57613f3d0a5371" title="Like LinkOnceODRLinkage but addr not taken.">LinkOnceODRAutoHideLinkage</a>;
+<a name="l00131"></a>00131   }
+<a name="l00132"></a><a class="code" href="classllvm_1_1GlobalValue.html#ad48190a47d8af6ce16465cda531725a9">00132</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad48190a47d8af6ce16465cda531725a9">isWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00133"></a>00133     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f" title="Keep one copy of named function when linking (weak)">WeakAnyLinkage</a> || Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca696bb1c9b0b0e76bb70c61f68866452a" title="Same, but only replaced by something equivalent.">WeakODRLinkage</a>;
+<a name="l00134"></a>00134   }
+<a name="l00135"></a><a class="code" href="classllvm_1_1GlobalValue.html#a0b09f704d0928e6811660fa3af8f626c">00135</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a0b09f704d0928e6811660fa3af8f626c">isAppendingLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00136"></a>00136     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca96ad6314ba9210b223b93dc3e15baf99" title="Special purpose, only applies to global arrays.">AppendingLinkage</a>;
+<a name="l00137"></a>00137   }
+<a name="l00138"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9bbb20d12147495c229051feded37cdc">00138</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9bbb20d12147495c229051feded37cdc">isInternalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00139"></a>00139     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca1511edd03e02d1f3dd277a3c6abf6ad5" title="Rename collisions when linking (static functions).">InternalLinkage</a>;
+<a name="l00140"></a>00140   }
+<a name="l00141"></a><a class="code" href="classllvm_1_1GlobalValue.html#a81812ab49218fff82c3a0c378e0a65b0">00141</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a81812ab49218fff82c3a0c378e0a65b0">isPrivateLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00142"></a>00142     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca04ed141708c0fd16723d212502b046ae" title="Like Internal, but omit from symbol table.">PrivateLinkage</a>;
+<a name="l00143"></a>00143   }
+<a name="l00144"></a><a class="code" href="classllvm_1_1GlobalValue.html#a0e33068e63f5536401ab25fa5b93acc0">00144</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a0e33068e63f5536401ab25fa5b93acc0">isLinkerPrivateLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00145"></a>00145     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca0861cbe0f4b3654192be8d8df5022ec4" title="Like Private, but linker removes.">LinkerPrivateLinkage</a>;
+<a name="l00146"></a>00146   }
+<a name="l00147"></a><a class="code" href="classllvm_1_1GlobalValue.html#a77036338fd6416fe0bdf1e5e9c25e18b">00147</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a77036338fd6416fe0bdf1e5e9c25e18b">isLinkerPrivateWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00148"></a>00148     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cac399daf701876082334e4b1549381936" title="Like LinkerPrivate, but weak.">LinkerPrivateWeakLinkage</a>;
+<a name="l00149"></a>00149   }
+<a name="l00150"></a><a class="code" href="classllvm_1_1GlobalValue.html#a308b65a044b4f53e31a2026a81c991d2">00150</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a308b65a044b4f53e31a2026a81c991d2">isLocalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00151"></a>00151     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9bbb20d12147495c229051feded37cdc">isInternalLinkage</a>(Linkage) || <a class="code" href="classllvm_1_1GlobalValue.html#a81812ab49218fff82c3a0c378e0a65b0">isPrivateLinkage</a>(Linkage) ||
+<a name="l00152"></a>00152       <a class="code" href="classllvm_1_1GlobalValue.html#a0e33068e63f5536401ab25fa5b93acc0">isLinkerPrivateLinkage</a>(Linkage) || <a class="code" href="classllvm_1_1GlobalValue.html#a77036338fd6416fe0bdf1e5e9c25e18b">isLinkerPrivateWeakLinkage</a>(Linkage);
+<a name="l00153"></a>00153   }
+<a name="l00154"></a><a class="code" href="classllvm_1_1GlobalValue.html#adcf5b2eb362d10847d9ae42e748e1e9e">00154</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#adcf5b2eb362d10847d9ae42e748e1e9e">isDLLImportLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00155"></a>00155     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca610e09ea3dc61477d0168c6828611342" title="Function to be imported from DLL.">DLLImportLinkage</a>;
+<a name="l00156"></a>00156   }
+<a name="l00157"></a><a class="code" href="classllvm_1_1GlobalValue.html#aeda6d636b747a1fb529b6f4395104fb2">00157</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#aeda6d636b747a1fb529b6f4395104fb2">isDLLExportLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00158"></a>00158     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8acb90f4400905cf09c8e74e853350d9" title="Function to be accessible from DLL.">DLLExportLinkage</a>;
+<a name="l00159"></a>00159   }
+<a name="l00160"></a><a class="code" href="classllvm_1_1GlobalValue.html#a25e8e3490a28e9178b302b76ae643443">00160</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a25e8e3490a28e9178b302b76ae643443">isExternalWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00161"></a>00161     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa81fc8db28ac4af45766fbab2e79d466" title="ExternalWeak linkage description.">ExternalWeakLinkage</a>;
+<a name="l00162"></a>00162   }
+<a name="l00163"></a><a class="code" href="classllvm_1_1GlobalValue.html#a76d750f65089b2e70a927cf9d275a9d7">00163</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a76d750f65089b2e70a927cf9d275a9d7">isCommonLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00164"></a>00164     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca08c6a63ca3d9cdb39fb584655bf5c501" title="Tentative definitions.">CommonLinkage</a>;
+<a name="l00165"></a>00165   }
+<a name="l00166"></a>00166 <span class="comment"></span>
+<a name="l00167"></a>00167 <span class="comment">  /// isDiscardableIfUnused - Whether the definition of this global may be</span>
+<a name="l00168"></a>00168 <span class="comment">  /// discarded if it is not used in its compilation unit.</span>
+<a name="l00169"></a><a class="code" href="classllvm_1_1GlobalValue.html#adcb86d621c23938671ad526d3bd1f9bd">00169</a> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#adcb86d621c23938671ad526d3bd1f9bd">isDiscardableIfUnused</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00170"></a>00170     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4f4d5111c78b4b976e362d12f01ad782">isLinkOnceLinkage</a>(Linkage) || <a class="code" href="classllvm_1_1GlobalValue.html#a308b65a044b4f53e31a2026a81c991d2">isLocalLinkage</a>(Linkage);
+<a name="l00171"></a>00171   }
+<a name="l00172"></a>00172 <span class="comment"></span>
+<a name="l00173"></a>00173 <span class="comment">  /// mayBeOverridden - Whether the definition of this global may be replaced</span>
+<a name="l00174"></a>00174 <span class="comment">  /// by something non-equivalent at link time.  For example, if a function has</span>
+<a name="l00175"></a>00175 <span class="comment">  /// weak linkage then the code defining it may be replaced by different code.</span>
+<a name="l00176"></a><a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">00176</a> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a211c14a84be4519439d616f9027d86c9">mayBeOverridden</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>) {
+<a name="l00177"></a>00177     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f" title="Keep one copy of named function when linking (weak)">WeakAnyLinkage</a> ||
+<a name="l00178"></a>00178            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705" title="Keep one copy of function when linking (inline)">LinkOnceAnyLinkage</a> ||
+<a name="l00179"></a>00179            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca08c6a63ca3d9cdb39fb584655bf5c501" title="Tentative definitions.">CommonLinkage</a> ||
+<a name="l00180"></a>00180            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa81fc8db28ac4af45766fbab2e79d466" title="ExternalWeak linkage description.">ExternalWeakLinkage</a> ||
+<a name="l00181"></a>00181            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cac399daf701876082334e4b1549381936" title="Like LinkerPrivate, but weak.">LinkerPrivateWeakLinkage</a>;
+<a name="l00182"></a>00182   }
+<a name="l00183"></a>00183 <span class="comment"></span>
+<a name="l00184"></a>00184 <span class="comment">  /// isWeakForLinker - Whether the definition of this global may be replaced at</span>
+<a name="l00185"></a>00185 <span class="comment">  /// link time.  NB: Using this method outside of the code generators is almost</span>
+<a name="l00186"></a>00186 <span class="comment">  /// always a mistake: when working at the IR level use mayBeOverridden instead</span>
+<a name="l00187"></a>00187 <span class="comment">  /// as it knows about ODR semantics.</span>
+<a name="l00188"></a><a class="code" href="classllvm_1_1GlobalValue.html#ac291102760c543c8e045e829d57d3341">00188</a> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ac291102760c543c8e045e829d57d3341">isWeakForLinker</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>)  {
+<a name="l00189"></a>00189     <span class="keywordflow">return</span> Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa67f293befacbbf974525116ccf2ff42" title="Available for inspection, not emission.">AvailableExternallyLinkage</a> ||
+<a name="l00190"></a>00190            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca8d13a9bcecfac72febceb1103afa048f" title="Keep one copy of named function when linking (weak)">WeakAnyLinkage</a> ||
+<a name="l00191"></a>00191            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca696bb1c9b0b0e76bb70c61f68866452a" title="Same, but only replaced by something equivalent.">WeakODRLinkage</a> ||
+<a name="l00192"></a>00192            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca5ebf288ceb5bbeb7025564727db6d705" title="Keep one copy of function when linking (inline)">LinkOnceAnyLinkage</a> ||
+<a name="l00193"></a>00193            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caf2b592edf18170e7aff4e8f3bae3360c" title="Same, but only replaced by something equivalent.">LinkOnceODRLinkage</a> ||
+<a name="l00194"></a>00194            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cace60fa1f14652db64c57613f3d0a5371" title="Like LinkOnceODRLinkage but addr not taken.">LinkOnceODRAutoHideLinkage</a> ||
+<a name="l00195"></a>00195            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57ca08c6a63ca3d9cdb39fb584655bf5c501" title="Tentative definitions.">CommonLinkage</a> ||
+<a name="l00196"></a>00196            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57caa81fc8db28ac4af45766fbab2e79d466" title="ExternalWeak linkage description.">ExternalWeakLinkage</a> ||
+<a name="l00197"></a>00197            Linkage == <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57cac399daf701876082334e4b1549381936" title="Like LinkerPrivate, but weak.">LinkerPrivateWeakLinkage</a>;
+<a name="l00198"></a>00198   }
+<a name="l00199"></a>00199 
+<a name="l00200"></a><a class="code" href="classllvm_1_1GlobalValue.html#a0f606d92ce05aaf49a893d7a1f55da68">00200</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a0f606d92ce05aaf49a893d7a1f55da68">hasExternalLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a89a664b58385307fbb24c02e141d864b">isExternalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00201"></a><a class="code" href="classllvm_1_1GlobalValue.html#af4399141c23e944cc1f75390c3cbd959">00201</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#af4399141c23e944cc1f75390c3cbd959">hasAvailableExternallyLinkage</a>()<span class="keyword"> const </span>{
+<a name="l00202"></a>00202     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a578061260691a59a9e7b0455fd68359c">isAvailableExternallyLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00203"></a>00203   }
+<a name="l00204"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9be1da2652db0d33fae391c9b2295e4f">00204</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9be1da2652db0d33fae391c9b2295e4f">hasLinkOnceLinkage</a>()<span class="keyword"> const </span>{
+<a name="l00205"></a>00205     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4f4d5111c78b4b976e362d12f01ad782">isLinkOnceLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00206"></a>00206   }
+<a name="l00207"></a><a class="code" href="classllvm_1_1GlobalValue.html#aa61eb120b8dd15e77b9b1b5890111e19">00207</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#aa61eb120b8dd15e77b9b1b5890111e19">hasLinkOnceODRAutoHideLinkage</a>()<span class="keyword"> const </span>{
+<a name="l00208"></a>00208     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a6e2ec7c6b361aed048eaa75b6be682aa">isLinkOnceODRAutoHideLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00209"></a>00209   }
+<a name="l00210"></a><a class="code" href="classllvm_1_1GlobalValue.html#aa06c6c6ba76f284f62a1902a3a2b3081">00210</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#aa06c6c6ba76f284f62a1902a3a2b3081">hasWeakLinkage</a>()<span class="keyword"> const </span>{
+<a name="l00211"></a>00211     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad48190a47d8af6ce16465cda531725a9">isWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00212"></a>00212   }
+<a name="l00213"></a><a class="code" href="classllvm_1_1GlobalValue.html#a3633e6ce330dafdde67e92989ae45d5c">00213</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a3633e6ce330dafdde67e92989ae45d5c">hasAppendingLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a0b09f704d0928e6811660fa3af8f626c">isAppendingLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00214"></a><a class="code" href="classllvm_1_1GlobalValue.html#a7477c08b3676d07c87ae029551d8a39c">00214</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a7477c08b3676d07c87ae029551d8a39c">hasInternalLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a9bbb20d12147495c229051feded37cdc">isInternalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00215"></a><a class="code" href="classllvm_1_1GlobalValue.html#a2d8e04fc14cc2b3c6005d3baa8562639">00215</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a2d8e04fc14cc2b3c6005d3baa8562639">hasPrivateLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a81812ab49218fff82c3a0c378e0a65b0">isPrivateLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00216"></a><a class="code" href="classllvm_1_1GlobalValue.html#a5b945151e0c199e78f48458b2756f538">00216</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a5b945151e0c199e78f48458b2756f538">hasLinkerPrivateLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a0e33068e63f5536401ab25fa5b93acc0">isLinkerPrivateLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00217"></a><a class="code" href="classllvm_1_1GlobalValue.html#a5024be80f6feca476471a1fae0119297">00217</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a5024be80f6feca476471a1fae0119297">hasLinkerPrivateWeakLinkage</a>()<span class="keyword"> const </span>{
+<a name="l00218"></a>00218     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a77036338fd6416fe0bdf1e5e9c25e18b">isLinkerPrivateWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00219"></a>00219   }
+<a name="l00220"></a><a class="code" href="classllvm_1_1GlobalValue.html#abefc2d8baa67d6f9e49c95912cfde480">00220</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#abefc2d8baa67d6f9e49c95912cfde480">hasLocalLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a308b65a044b4f53e31a2026a81c991d2">isLocalLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00221"></a><a class="code" href="classllvm_1_1GlobalValue.html#aa7923d9a1218e4e237f70d20efb9c647">00221</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#aa7923d9a1218e4e237f70d20efb9c647">hasDLLImportLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#adcf5b2eb362d10847d9ae42e748e1e9e">isDLLImportLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00222"></a><a class="code" href="classllvm_1_1GlobalValue.html#a45f5971e8ba4b70f25d856bdc8560a73">00222</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a45f5971e8ba4b70f25d856bdc8560a73">hasDLLExportLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#aeda6d636b747a1fb529b6f4395104fb2">isDLLExportLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00223"></a><a class="code" href="classllvm_1_1GlobalValue.html#a543b0415de2670670f8346a7251391af">00223</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a543b0415de2670670f8346a7251391af">hasExternalWeakLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a25e8e3490a28e9178b302b76ae643443">isExternalWeakLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00224"></a><a class="code" href="classllvm_1_1GlobalValue.html#a2506accca38107a6d25064c7c5c058fd">00224</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a2506accca38107a6d25064c7c5c058fd">hasCommonLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a76d750f65089b2e70a927cf9d275a9d7">isCommonLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00225"></a>00225 
+<a name="l00226"></a><a class="code" href="classllvm_1_1GlobalValue.html#a687973de03d041e04b50a76d19d4fd36">00226</a>   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#a687973de03d041e04b50a76d19d4fd36">setLinkage</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a5f1f4297ecf2dafb48ff1cb0597faea8">LT</a>) { <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a> = <a class="code" href="namespacellvm_1_1ARMCC.html#ac8391dd6b8083baa870dee5142ff22b6a5f1f4297ecf2dafb48ff1cb0597faea8">LT</a>; }
+<a name="l00227"></a><a class="code" href="classllvm_1_1GlobalValue.html#a38ea691c2eeaf3facd74d5cfb0c725b0">00227</a>   <a class="code" href="classllvm_1_1GlobalValue.html#aedfa75f0c85c4aa85b257f066fbea57c" title="An enumeration for the kinds of linkage for global values.">LinkageTypes</a> <a class="code" href="classllvm_1_1GlobalValue.html#a38ea691c2eeaf3facd74d5cfb0c725b0">getLinkage</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>; }
+<a name="l00228"></a>00228 
+<a name="l00229"></a><a class="code" href="classllvm_1_1GlobalValue.html#ac13c8230eca6e85e8bbe244daedad959">00229</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ac13c8230eca6e85e8bbe244daedad959">isDiscardableIfUnused</a>()<span class="keyword"> const </span>{
+<a name="l00230"></a>00230     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#ac13c8230eca6e85e8bbe244daedad959">isDiscardableIfUnused</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>);
+<a name="l00231"></a>00231   }
+<a name="l00232"></a>00232 
+<a name="l00233"></a><a class="code" href="classllvm_1_1GlobalValue.html#a72f0c6f59056105b3e6bb3a9fe235f03">00233</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a72f0c6f59056105b3e6bb3a9fe235f03">mayBeOverridden</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a72f0c6f59056105b3e6bb3a9fe235f03">mayBeOverridden</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00234"></a>00234 
+<a name="l00235"></a><a class="code" href="classllvm_1_1GlobalValue.html#a4278e1cac499200c6a1c99db2f05db74">00235</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4278e1cac499200c6a1c99db2f05db74">isWeakForLinker</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4278e1cac499200c6a1c99db2f05db74">isWeakForLinker</a>(<a class="code" href="classllvm_1_1GlobalValue.html#aad27a6e2612f41b33a0d8cb3bce66bd9">Linkage</a>); }
+<a name="l00236"></a>00236 <span class="comment"></span>
+<a name="l00237"></a>00237 <span class="comment">  /// copyAttributesFrom - copy all additional attributes (those not needed to</span>
+<a name="l00238"></a>00238 <span class="comment">  /// create a GlobalValue) from the GlobalValue Src to this one.</span>
+<a name="l00239"></a>00239 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#a96c9558e69f588728273b57eb5a1fe73">copyAttributesFrom</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1GlobalValue.html">GlobalValue</a> *Src);
+<a name="l00240"></a>00240 <span class="comment"></span>
+<a name="l00241"></a>00241 <span class="comment">/// @name Materialization</span>
+<a name="l00242"></a>00242 <span class="comment">/// Materialization is used to construct functions only as they're needed. This</span>
+<a name="l00243"></a>00243 <span class="comment">/// is useful to reduce memory usage in LLVM or parsing work done by the</span>
+<a name="l00244"></a>00244 <span class="comment">/// BitcodeReader to load the Module.</span>
+<a name="l00245"></a>00245 <span class="comment">/// @{</span>
+<a name="l00246"></a>00246 <span class="comment"></span><span class="comment"></span>
+<a name="l00247"></a>00247 <span class="comment">  /// isMaterializable - If this function's Module is being lazily streamed in</span>
+<a name="l00248"></a>00248 <span class="comment">  /// functions from disk or some other source, this method can be used to check</span>
+<a name="l00249"></a>00249 <span class="comment">  /// to see if the function has been read in yet or not.</span>
+<a name="l00250"></a>00250 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#ac231cdb971edd1559ebecff939fe58d9">isMaterializable</a>() <span class="keyword">const</span>;
+<a name="l00251"></a>00251 <span class="comment"></span>
+<a name="l00252"></a>00252 <span class="comment">  /// isDematerializable - Returns true if this function was loaded from a</span>
+<a name="l00253"></a>00253 <span class="comment">  /// GVMaterializer that's still attached to its Module and that knows how to</span>
+<a name="l00254"></a>00254 <span class="comment">  /// dematerialize the function.</span>
+<a name="l00255"></a>00255 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#aba6e312bf52fa4eaf33cf286df66838b">isDematerializable</a>() <span class="keyword">const</span>;
+<a name="l00256"></a>00256 <span class="comment"></span>
+<a name="l00257"></a>00257 <span class="comment">  /// Materialize - make sure this GlobalValue is fully read.  If the module is</span>
+<a name="l00258"></a>00258 <span class="comment">  /// corrupt, this returns true and fills in the optional string with</span>
+<a name="l00259"></a>00259 <span class="comment">  /// information about the problem.  If successful, this returns false.</span>
+<a name="l00260"></a>00260 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#acb27ae484baaedcb76238c884a39ca4f">Materialize</a>(std::string *ErrInfo = 0);
+<a name="l00261"></a>00261 <span class="comment"></span>
+<a name="l00262"></a>00262 <span class="comment">  /// Dematerialize - If this GlobalValue is read in, and if the GVMaterializer</span>
+<a name="l00263"></a>00263 <span class="comment">  /// supports it, release the memory for the function, and set it up to be</span>
+<a name="l00264"></a>00264 <span class="comment">  /// materialized lazily.  If !isDematerializable(), this method is a noop.</span>
+<a name="l00265"></a>00265 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#ab46ce2583f5c3eb0094d0c01921b7f71">Dematerialize</a>();
+<a name="l00266"></a>00266 <span class="comment"></span>
+<a name="l00267"></a>00267 <span class="comment">/// @}</span>
+<a name="l00268"></a>00268 <span class="comment"></span><span class="comment"></span>
+<a name="l00269"></a>00269 <span class="comment">  /// Override from Constant class.</span>
+<a name="l00270"></a>00270 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#aae7e8a7d22782409b494b204b0eb07d7" title="Override from Constant class.">destroyConstant</a>();
+<a name="l00271"></a>00271 <span class="comment"></span>
+<a name="l00272"></a>00272 <span class="comment">  /// isDeclaration - Return true if the primary definition of this global </span>
+<a name="l00273"></a>00273 <span class="comment">  /// value is outside of the current translation unit.</span>
+<a name="l00274"></a>00274 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#a4640d98233102674ddb6d6efaf2b7f97">isDeclaration</a>() <span class="keyword">const</span>;
+<a name="l00275"></a>00275 <span class="comment"></span>
+<a name="l00276"></a>00276 <span class="comment">  /// removeFromParent - This method unlinks 'this' from the containing module,</span>
+<a name="l00277"></a>00277 <span class="comment">  /// but does not delete it.</span>
+<a name="l00278"></a>00278 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#a7475ed9382ab65e0233a8b1d93f7743e">removeFromParent</a>() = 0;
+<a name="l00279"></a>00279 <span class="comment"></span>
+<a name="l00280"></a>00280 <span class="comment">  /// eraseFromParent - This method unlinks 'this' from the containing module</span>
+<a name="l00281"></a>00281 <span class="comment">  /// and deletes it.</span>
+<a name="l00282"></a>00282 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1GlobalValue.html#ad6fca81756b8258fe62e9071004e449e">eraseFromParent</a>() = 0;
+<a name="l00283"></a>00283 <span class="comment"></span>
+<a name="l00284"></a>00284 <span class="comment">  /// getParent - Get the module that this global value is contained inside</span>
+<a name="l00285"></a>00285 <span class="comment">  /// of...</span>
+<a name="l00286"></a><a class="code" href="classllvm_1_1GlobalValue.html#a9e1fc23a17e97d2d1732e753ae9251ac">00286</a> <span class="comment"></span>  <span class="keyword">inline</span> <a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> *<a class="code" href="classllvm_1_1GlobalValue.html#a9e1fc23a17e97d2d1732e753ae9251ac">getParent</a>() { <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#acb71c8012dfaa189618d2cdafb58b4b0">Parent</a>; }
+<a name="l00287"></a><a class="code" href="classllvm_1_1GlobalValue.html#a7d5f10fc2b22b1d8ff6da7446e3c8d31">00287</a>   <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classllvm_1_1Module.html" title="The main container class for the LLVM Intermediate Representation.">Module</a> *<a class="code" href="classllvm_1_1GlobalValue.html#a7d5f10fc2b22b1d8ff6da7446e3c8d31">getParent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1GlobalValue.html#acb71c8012dfaa189618d2cdafb58b4b0">Parent</a>; }
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289   <span class="comment">// Methods for support type inquiry through isa, cast, and dyn_cast:</span>
+<a name="l00290"></a><a class="code" href="classllvm_1_1GlobalValue.html#adeb291fef3614d59a1cb130bb73ab024">00290</a>   <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1GlobalValue.html#adeb291fef3614d59a1cb130bb73ab024">classof</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> *V) {
+<a name="l00291"></a>00291     <span class="keywordflow">return</span> V-><a class="code" href="classllvm_1_1Value.html#a2983b7b4998ef5b9f51b18c01588af3c">getValueID</a>() == <a class="code" href="classllvm_1_1Value.html#af6d11b38374c4f9e6ba3a6407da2dee0acf6cf4dfd0f75d7c31af1f6400d60116">Value::FunctionVal</a> ||
+<a name="l00292"></a>00292            V-><a class="code" href="classllvm_1_1Value.html#a2983b7b4998ef5b9f51b18c01588af3c">getValueID</a>() == <a class="code" href="classllvm_1_1Value.html#af6d11b38374c4f9e6ba3a6407da2dee0a8860c970f9194a26c19b885c07dbb58a">Value::GlobalVariableVal</a> ||
+<a name="l00293"></a>00293            V-><a class="code" href="classllvm_1_1Value.html#a2983b7b4998ef5b9f51b18c01588af3c">getValueID</a>() == <a class="code" href="classllvm_1_1Value.html#af6d11b38374c4f9e6ba3a6407da2dee0a73041e08212646f905d03d72e9af48cc">Value::GlobalAliasVal</a>;
+<a name="l00294"></a>00294   }
+<a name="l00295"></a>00295 };
+<a name="l00296"></a>00296 
+<a name="l00297"></a>00297 } <span class="comment">// End llvm namespace</span>
+<a name="l00298"></a>00298 
+<a name="l00299"></a>00299 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:49 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GlobalVariable.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">GlobalVariable.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="GlobalValue_8h_source.html">llvm/GlobalValue.h</a>"</code><br/>
+<code>#include "<a class="el" href="OperandTraits_8h_source.html">llvm/OperandTraits.h</a>"</code><br/>
+<code>#include "<a class="el" href="ilist__node_8h_source.html">llvm/ADT/ilist_node.h</a>"</code><br/>
+<code>#include "<a class="el" href="Twine_8h_source.html">llvm/ADT/Twine.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for GlobalVariable.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="GlobalVariable_8h__incl.png" border="0" usemap="#GlobalVariable_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="GlobalVariable_8h__dep__incl.png" border="0" usemap="#GlobalVariable_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="GlobalVariable_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1GlobalVariable.html">llvm::GlobalVariable</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1OperandTraits_3_01GlobalVariable_01_4.html">llvm::OperandTraits< GlobalVariable ></a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html">llvm</a></td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>List of target independent CodeGen pass IDs. </p>
+<br/></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,18 @@
+<map id="G" name="G">
+<area shape="rect" href="$GlobalValue_8h.html" title="llvm/GlobalValue.h" alt="" coords="443,84,581,111"/>
+<area shape="rect" href="$OperandTraits_8h.html" title="llvm/OperandTraits.h" alt="" coords="583,161,735,188"/>
+<area shape="rect" href="$ilist__node_8h.html" title="llvm/ADT/ilist_node.h" alt="" coords="669,84,821,111"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="796,316,921,343"/>
+<area shape="rect" href="$Constant_8h.html" title="llvm/Constant.h" alt="" coords="439,161,559,188"/>
+<area shape="rect" href="$User_8h.html" title="llvm/User.h" alt="" coords="489,239,580,265"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="503,393,708,420"/>
+<area shape="rect" href="$Value_8h.html" title="llvm/Value.h" alt="" coords="391,316,489,343"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="347,471,520,497"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="784,471,933,497"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="509,548,696,575"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="511,625,695,652"/>
+<area shape="rect" href="$Use_8h.html" title="llvm/Use.h" alt="" coords="191,393,279,420"/>
+<area shape="rect" href="$Casting_8h.html" title="llvm/Support/Casting.h" alt="" coords="595,471,760,497"/>
+<area shape="rect" href="$PointerIntPair_8h.html" title="llvm/ADT/PointerIntPair.h" alt="" coords="147,471,323,497"/>
+<area shape="rect" href="$PointerLikeTypeTraits_8h.html" title="llvm/Support/PointerLikeTypeTraits.h" alt="" coords="147,548,395,575"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+31636cf449909c86692e3158fb9862c0
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.png?rev=170845&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/3.2/docs/doxygen/html/GlobalVariable_8h__incl.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/3.2/docs/doxygen/html/GlobalsModRef_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GlobalsModRef_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GlobalsModRef_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GlobalsModRef_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,167 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GlobalsModRef.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Analysis/Passes.h",height=0.2,width=0.4,color="black",URL="$Analysis_2Passes_8h.html"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="red",URL="$GlobalVariable_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="red",URL="$OperandTraits_8h.html"];
+  Node3 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="red",URL="$GlobalAlias_8h.html"];
+  Node15 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Metadata.h",height=0.2,width=0.4,color="red",URL="$Metadata_8h.html"];
+  Node16 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="red",URL="$OwningPtr_8h.html"];
+  Node17 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node19 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node21 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Instructions.h",height=0.2,width=0.4,color="black",URL="$Instructions_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="red",URL="$InstrTypes_8h.html"];
+  Node23 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Type.h",height=0.2,width=0.4,color="red",URL="$Type_8h.html"];
+  Node25 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/IntegersSubset.h",height=0.2,width=0.4,color="red",URL="$IntegersSubset_8h.html"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Constants.h",height=0.2,width=0.4,color="black",URL="$Constants_8h.html"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Constant.h",height=0.2,width=0.4,color="red",URL="$Constant_8h.html"];
+  Node27 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/APInt.h",height=0.2,width=0.4,color="red",URL="$APInt_8h.html"];
+  Node29 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/APFloat.h",height=0.2,width=0.4,color="black",URL="$APFloat_8h.html"];
+  Node30 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/IntegersSubsetMapping.h",height=0.2,width=0.4,color="red",URL="$IntegersSubsetMapping_8h.html"];
+  Node31 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="red",URL="$ErrorHandling_8h.html"];
+  Node33 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/IntrinsicInst.h",height=0.2,width=0.4,color="black",URL="$IntrinsicInst_8h.html"];
+  Node34 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Intrinsics.h",height=0.2,width=0.4,color="red",URL="$Intrinsics_8h.html"];
+  Node35 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Analysis/AliasAnalysis.h",height=0.2,width=0.4,color="black",URL="$AliasAnalysis_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="red",URL="$CallSite_8h.html"];
+  Node37 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node38 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Analysis/CallGraph.h",height=0.2,width=0.4,color="black",URL="$CallGraph_8h.html"];
+  Node39 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node39 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="red",URL="$STLExtras_8h.html"];
+  Node41 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Support/ValueHandle.h",height=0.2,width=0.4,color="red",URL="$ValueHandle_8h.html"];
+  Node39 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/IncludeFile.h",height=0.2,width=0.4,color="black",URL="$IncludeFile_8h.html"];
+  Node39 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Analysis/MemoryBuiltins.h",height=0.2,width=0.4,color="red",URL="$MemoryBuiltins_8h.html"];
+  Node44 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Analysis/ValueTracking.h",height=0.2,width=0.4,color="black",URL="$ValueTracking_8h.html"];
+  Node45 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/CommandLine.h",height=0.2,width=0.4,color="red",URL="$CommandLine_8h.html"];
+  Node46 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/InstIterator.h",height=0.2,width=0.4,color="red",URL="$InstIterator_8h.html"];
+  Node47 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/ADT/Statistic.h",height=0.2,width=0.4,color="red",URL="$Statistic_8h.html"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/ADT/SCCIterator.h",height=0.2,width=0.4,color="black",URL="$SCCIterator_8h.html"];
+  Node49 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="set",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphTraits_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphTraits_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphTraits_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphTraits_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GraphTraits.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_5760af5717174facf3d4fa63878994a9.html">ADT</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">GraphTraits.h</div>  </div>
+</div>
+<div class="contents">
+<a href="GraphTraits_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- llvm/ADT/GraphTraits.h - Graph traits template ----------*- C++ -*-===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file defines the little GraphTraits<X> template class that should be</span>
+<a name="l00011"></a>00011 <span class="comment">// specialized by classes that want to be iteratable by generic graph iterators.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">// This file also defines the marker class Inverse that is used to iterate over</span>
+<a name="l00014"></a>00014 <span class="comment">// graphs in a graph defined, inverse ordering...</span>
+<a name="l00015"></a>00015 <span class="comment">//</span>
+<a name="l00016"></a>00016 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018 <span class="preprocessor">#ifndef LLVM_ADT_GRAPHTRAITS_H</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_ADT_GRAPHTRAITS_H</span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span>
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>llvm {
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="comment">// GraphTraits - This class should be specialized by different graph types...</span>
+<a name="l00024"></a>00024 <span class="comment">// which is why the default version is empty.</span>
+<a name="l00025"></a>00025 <span class="comment">//</span>
+<a name="l00026"></a>00026 <span class="keyword">template</span><<span class="keyword">class</span> GraphType>
+<a name="l00027"></a><a class="code" href="structllvm_1_1GraphTraits.html">00027</a> <span class="keyword">struct </span><a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits</a> {
+<a name="l00028"></a>00028   <span class="comment">// Elements to provide:</span>
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030   <span class="comment">// typedef NodeType          - Type of Node in the graph</span>
+<a name="l00031"></a>00031   <span class="comment">// typedef ChildIteratorType - Type used to iterate over children in graph</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033   <span class="comment">// static NodeType *getEntryNode(const GraphType &)</span>
+<a name="l00034"></a>00034   <span class="comment">//    Return the entry node of the graph</span>
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036   <span class="comment">// static ChildIteratorType child_begin(NodeType *)</span>
+<a name="l00037"></a>00037   <span class="comment">// static ChildIteratorType child_end  (NodeType *)</span>
+<a name="l00038"></a>00038   <span class="comment">//    Return iterators that point to the beginning and ending of the child</span>
+<a name="l00039"></a>00039   <span class="comment">//    node list for the specified node.</span>
+<a name="l00040"></a>00040   <span class="comment">//</span>
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043   <span class="comment">// typedef  ...iterator nodes_iterator;</span>
+<a name="l00044"></a>00044   <span class="comment">// static nodes_iterator nodes_begin(GraphType *G)</span>
+<a name="l00045"></a>00045   <span class="comment">// static nodes_iterator nodes_end  (GraphType *G)</span>
+<a name="l00046"></a>00046   <span class="comment">//    nodes_iterator/begin/end - Allow iteration over all nodes in the graph</span>
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048   <span class="comment">// static unsigned       size       (GraphType *G)</span>
+<a name="l00049"></a>00049   <span class="comment">//    Return total number of nodes in the graph</span>
+<a name="l00050"></a>00050   <span class="comment">//</span>
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053   <span class="comment">// If anyone tries to use this class without having an appropriate</span>
+<a name="l00054"></a>00054   <span class="comment">// specialization, make an error.  If you get this error, it's because you</span>
+<a name="l00055"></a>00055   <span class="comment">// need to include the appropriate specialization of GraphTraits<> for your</span>
+<a name="l00056"></a>00056   <span class="comment">// graph, or you need to define it for a new graph type. Either that or</span>
+<a name="l00057"></a>00057   <span class="comment">// your argument to XXX_begin(...) is unknown or needs to have the proper .h</span>
+<a name="l00058"></a>00058   <span class="comment">// file #include'd.</span>
+<a name="l00059"></a>00059   <span class="comment">//</span>
+<a name="l00060"></a><a class="code" href="structllvm_1_1GraphTraits.html#a601b6df6678934eff6f68363a1b0fab1">00060</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphType::UnknownGraphTypeError <a class="code" href="structllvm_1_1GraphTraits.html#a601b6df6678934eff6f68363a1b0fab1">NodeType</a>;
+<a name="l00061"></a>00061 };
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="comment">// Inverse - This class is used as a little marker class to tell the graph</span>
+<a name="l00065"></a>00065 <span class="comment">// iterator to iterate over the graph in a graph defined "Inverse" ordering.</span>
+<a name="l00066"></a>00066 <span class="comment">// Not all graphs define an inverse ordering, and if they do, it depends on</span>
+<a name="l00067"></a>00067 <span class="comment">// the graph exactly what that is.  Here's an example of usage with the</span>
+<a name="l00068"></a>00068 <span class="comment">// df_iterator:</span>
+<a name="l00069"></a>00069 <span class="comment">//</span>
+<a name="l00070"></a>00070 <span class="comment">// idf_iterator<Method*> I = idf_begin(M), E = idf_end(M);</span>
+<a name="l00071"></a>00071 <span class="comment">// for (; I != E; ++I) { ... }</span>
+<a name="l00072"></a>00072 <span class="comment">//</span>
+<a name="l00073"></a>00073 <span class="comment">// Which is equivalent to:</span>
+<a name="l00074"></a>00074 <span class="comment">// df_iterator<Inverse<Method*> > I = idf_begin(M), E = idf_end(M);</span>
+<a name="l00075"></a>00075 <span class="comment">// for (; I != E; ++I) { ... }</span>
+<a name="l00076"></a>00076 <span class="comment">//</span>
+<a name="l00077"></a>00077 <span class="keyword">template</span> <<span class="keyword">class</span> GraphType>
+<a name="l00078"></a><a class="code" href="structllvm_1_1Inverse.html">00078</a> <span class="keyword">struct </span><a class="code" href="structllvm_1_1Inverse.html">Inverse</a> {
+<a name="l00079"></a><a class="code" href="structllvm_1_1Inverse.html#a169e126ff147c68b5f1cfd6a1d2c8286">00079</a>   <span class="keyword">const</span> GraphType &<a class="code" href="structllvm_1_1Inverse.html#a169e126ff147c68b5f1cfd6a1d2c8286">Graph</a>;
+<a name="l00080"></a>00080 
+<a name="l00081"></a><a class="code" href="structllvm_1_1Inverse.html#a8fbccad4b16b94dadafea57bad9ee017">00081</a>   <span class="keyword">inline</span> <a class="code" href="structllvm_1_1Inverse.html#a8fbccad4b16b94dadafea57bad9ee017">Inverse</a>(<span class="keyword">const</span> GraphType &G) : <a class="code" href="structllvm_1_1Inverse.html#a169e126ff147c68b5f1cfd6a1d2c8286">Graph</a>(G) {}
+<a name="l00082"></a>00082 };
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="comment">// Provide a partial specialization of GraphTraits so that the inverse of an</span>
+<a name="l00085"></a>00085 <span class="comment">// inverse falls back to the original graph.</span>
+<a name="l00086"></a>00086 <span class="keyword">template</span><<span class="keyword">class</span> T>
+<a name="l00087"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html">00087</a> <span class="keyword">struct </span><a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits</a><<a class="code" href="structllvm_1_1Inverse.html">Inverse</a><<a class="code" href="structllvm_1_1Inverse.html">Inverse</a><T> > > {
+<a name="l00088"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a4c965408d34df5d07bf2806b48a619af">00088</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structllvm_1_1GraphTraits.html#a601b6df6678934eff6f68363a1b0fab1">GraphTraits<T>::NodeType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a4c965408d34df5d07bf2806b48a619af">NodeType</a>;
+<a name="l00089"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a462205d8894f9a8f6598fac11684685f">00089</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits<T>::ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a462205d8894f9a8f6598fac11684685f">ChildIteratorType</a>;
+<a name="l00090"></a>00090 
+<a name="l00091"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a072e08556a19fb4a6b955d06a5b0194b">00091</a>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a4c965408d34df5d07bf2806b48a619af">NodeType</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a072e08556a19fb4a6b955d06a5b0194b">getEntryNode</a>(<a class="code" href="structllvm_1_1Inverse.html">Inverse</a><<a class="code" href="structllvm_1_1Inverse.html">Inverse<T></a> > *G) {
+<a name="l00092"></a>00092     <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits<T>::getEntryNode</a>(G->Graph.Graph);
+<a name="l00093"></a>00093   }
+<a name="l00094"></a>00094 
+<a name="l00095"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#adecf97b0f8bd77cbf9e18ed415115700">00095</a>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a462205d8894f9a8f6598fac11684685f">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#adecf97b0f8bd77cbf9e18ed415115700">child_begin</a>(<a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a4c965408d34df5d07bf2806b48a619af">NodeType</a>* N) {
+<a name="l00096"></a>00096     <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits<T>::child_begin</a>(N);
+<a name="l00097"></a>00097   }
+<a name="l00098"></a>00098 
+<a name="l00099"></a><a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#aac7eb8fddd458dd738f70987b62c6f47">00099</a>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a462205d8894f9a8f6598fac11684685f">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#aac7eb8fddd458dd738f70987b62c6f47">child_end</a>(<a class="code" href="structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html#a4c965408d34df5d07bf2806b48a619af">NodeType</a>* N) {
+<a name="l00100"></a>00100     <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1GraphTraits.html">GraphTraits<T>::child_end</a>(N);
+<a name="l00101"></a>00101   }
+<a name="l00102"></a>00102 };
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 } <span class="comment">// End llvm namespace</span>
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:49 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GraphWriter.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_3927ff15cdce1d22d8dcb33a29894069.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">GraphWriter.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="CommandLine_8h_source.html">llvm/Support/CommandLine.h</a>"</code><br/>
+<code>#include "<a class="el" href="GraphWriter_8h_source.html">llvm/Support/GraphWriter.h</a>"</code><br/>
+<code>#include "<a class="el" href="Path_8h_source.html">llvm/Support/Path.h</a>"</code><br/>
+<code>#include "<a class="el" href="Program_8h_source.html">llvm/Support/Program.h</a>"</code><br/>
+<code>#include "<a class="el" href="config_8h_source.html">llvm/Config/config.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for GraphWriter.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="GraphWriter_8cpp__incl.png" border="0" usemap="#GraphWriter_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="GraphWriter_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> LLVM_ATTRIBUTE_UNUSED </td><td class="memItemRight" valign="bottom"><a class="el" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a> (const <a class="el" href="classllvm_1_1sys_1_1Path.html">sys::Path</a> &ExecPath, std::vector< const <a class="el" href="classchar.html">char</a> * > &args, const <a class="el" href="classllvm_1_1sys_1_1Path.html">sys::Path</a> &Filename, <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> wait, std::string &ErrMsg)</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a>< <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="GraphWriter_8cpp.html#ae4401e77a762e9c8e77659cf4d23dee2">ViewBackground</a> ("view-background", cl::Hidden, <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("Execute graph viewer in the background. Creates tmp <a class="el" href="PathProfileInfo_8cpp.html#add64b5c8b8c45c8dabeaf9d771cc1534">file</a> litter."))</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a94aaea4d1dded72848b56c6e29a6d1a1"></a><!-- doxytag: member="GraphWriter.cpp::ExecGraphViewer" ref="a94aaea4d1dded72848b56c6e29a6d1a1" args="(const sys::Path &ExecPath, std::vector< const char * > &args, const sys::Path &Filename, bool wait, std::string &ErrMsg)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> LLVM_ATTRIBUTE_UNUSED ExecGraphViewer </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1sys_1_1Path.html">sys::Path</a> & </td>
+          <td class="paramname"><em>ExecPath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::vector< const <a class="el" href="classchar.html">char</a> * > & </td>
+          <td class="paramname"><em>args</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classllvm_1_1sys_1_1Path.html">sys::Path</a> & </td>
+          <td class="paramname"><em>Filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td>
+          <td class="paramname"><em>wait</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::string & </td>
+          <td class="paramname"><em>ErrMsg</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="GraphWriter_8cpp_source.html#l00058">58</a> of file <a class="el" href="GraphWriter_8cpp_source.html">GraphWriter.cpp</a>.</p>
+
+<p>References <a class="el" href="classllvm_1_1sys_1_1Path.html#ae35225871906904902ced4fd24ff8049">llvm::sys::Path::eraseFromDisk()</a>, <a class="el" href="raw__ostream_8cpp_source.html#l00674">llvm::errs()</a>, <a class="el" href="Program_8cpp_source.html#l00026">llvm::sys::Program::ExecuteAndWait()</a>, <a class="el" href="Program_8cpp_source.html#l00041">llvm::sys::Program::ExecuteNoWait()</a>, and <a class="el" href="PathV1_8h_source.html#l00285">llvm::sys::Path::str()</a>.</p>
+
+<p>Referenced by <a class="el" href="GraphWriter_8cpp_source.html#l00075">llvm::DisplayGraph()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="ae4401e77a762e9c8e77659cf4d23dee2"></a><!-- doxytag: member="GraphWriter.cpp::ViewBackground" ref="ae4401e77a762e9c8e77659cf4d23dee2" args="("view-background", cl::Hidden, cl::desc("Execute graph viewer in the background. Creates tmp file litter."))" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1cl_1_1opt.html">cl::opt</a><<a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a>> <a class="el" href="GraphWriter_8cpp.html#ae4401e77a762e9c8e77659cf4d23dee2">ViewBackground</a>("view-background", cl::Hidden, <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("Execute graph viewer in the background. Creates tmp <a class="el" href="PathProfileInfo_8cpp.html#add64b5c8b8c45c8dabeaf9d771cc1534">file</a> litter."))<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="GraphWriter_8cpp_source.html#l00075">llvm::DisplayGraph()</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,120 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="GraphWriter.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
+  Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 [label="llvm/Support/CommandLine.h",height=0.2,width=0.4,color="black",URL="$CommandLine_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node2 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node13 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node21 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node24 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="cstdarg",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Support/GraphWriter.h",height=0.2,width=0.4,color="black",URL="$GraphWriter_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/DOTGraphTraits.h",height=0.2,width=0.4,color="black",URL="$DOTGraphTraits_8h.html"];
+  Node29 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node30 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node28 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/Path.h",height=0.2,width=0.4,color="black",URL="$Path_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/PathV1.h",height=0.2,width=0.4,color="black",URL="$PathV1_8h.html"];
+  Node33 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/TimeValue.h",height=0.2,width=0.4,color="black",URL="$TimeValue_8h.html"];
+  Node34 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node33 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/PathV2.h",height=0.2,width=0.4,color="black",URL="$PathV2_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/SmallString.h",height=0.2,width=0.4,color="black",URL="$SmallString_8h.html"];
+  Node37 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/Program.h",height=0.2,width=0.4,color="black",URL="$Program_8h.html"];
+  Node38 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Config/config.h",height=0.2,width=0.4,color="black",URL="$config_8h.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: GraphWriter.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_74e9364f374e99e3aeab4fae4e196292.html">lib</a>      </li>
+      <li class="navelem"><a class="el" href="dir_3927ff15cdce1d22d8dcb33a29894069.html">Support</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">GraphWriter.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="GraphWriter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- GraphWriter.cpp - Implements GraphWriter support routines ---------===//</span>
+<a name="l00002"></a>00002 <span class="comment">//</span>
+<a name="l00003"></a>00003 <span class="comment">//                     The LLVM Compiler Infrastructure</span>
+<a name="l00004"></a>00004 <span class="comment">//</span>
+<a name="l00005"></a>00005 <span class="comment">// This file is distributed under the University of Illinois Open Source</span>
+<a name="l00006"></a>00006 <span class="comment">// License. See LICENSE.TXT for details.</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00009"></a>00009 <span class="comment">//</span>
+<a name="l00010"></a>00010 <span class="comment">// This file implements misc. GraphWriter support routines.</span>
+<a name="l00011"></a>00011 <span class="comment">//</span>
+<a name="l00012"></a>00012 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="CommandLine_8h.html">llvm/Support/CommandLine.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="GraphWriter_8h.html">llvm/Support/GraphWriter.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="Path_8h.html">llvm/Support/Path.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="Program_8h.html">llvm/Support/Program.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="config_8h.html">llvm/Config/config.h</a>"</span>
+<a name="l00019"></a>00019 <span class="keyword">using namespace </span>llvm;
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="keyword">static</span> <a class="code" href="classllvm_1_1cl_1_1opt.html">cl::opt<bool></a> <a class="code" href="GraphWriter_8cpp.html#ae4401e77a762e9c8e77659cf4d23dee2">ViewBackground</a>(<span class="stringliteral">"view-background"</span>, <a class="code" href="namespacellvm_1_1cl.html#a68075925a54790e71ca790e1d4f21a40a263ac008d8d31f13ce460395fc4cf7e6">cl::Hidden</a>,
+<a name="l00022"></a>00022   <a class="code" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>(<span class="stringliteral">"Execute graph viewer in the background. Creates tmp file litter."</span>));
+<a name="l00023"></a>00023 
+<a name="l00024"></a><a class="code" href="namespacellvm_1_1DOT.html#a4cab6453a8243573f35f162cd94f33ba">00024</a> std::string <a class="code" href="namespacellvm_1_1DOT.html#a4cab6453a8243573f35f162cd94f33ba">llvm::DOT::EscapeString</a>(<span class="keyword">const</span> std::string &Label) {
+<a name="l00025"></a>00025   std::string Str(Label);
+<a name="l00026"></a>00026   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Str.length(); ++i)
+<a name="l00027"></a>00027   <span class="keywordflow">switch</span> (Str[i]) {
+<a name="l00028"></a>00028     <span class="keywordflow">case</span> <span class="charliteral">'\n'</span>:
+<a name="l00029"></a>00029       Str.insert(Str.begin()+i, <span class="charliteral">'\\'</span>);  <span class="comment">// Escape character...</span>
+<a name="l00030"></a>00030       ++i;
+<a name="l00031"></a>00031       Str[i] = <span class="charliteral">'n'</span>;
+<a name="l00032"></a>00032       <span class="keywordflow">break</span>;
+<a name="l00033"></a>00033     <span class="keywordflow">case</span> <span class="charliteral">'\t'</span>:
+<a name="l00034"></a>00034       Str.insert(Str.begin()+i, <span class="charliteral">' '</span>);  <span class="comment">// Convert to two spaces</span>
+<a name="l00035"></a>00035       ++i;
+<a name="l00036"></a>00036       Str[i] = <span class="charliteral">' '</span>;
+<a name="l00037"></a>00037       <span class="keywordflow">break</span>;
+<a name="l00038"></a>00038     <span class="keywordflow">case</span> <span class="charliteral">'\\'</span>:
+<a name="l00039"></a>00039       <span class="keywordflow">if</span> (i+1 != Str.length())
+<a name="l00040"></a>00040         <span class="keywordflow">switch</span> (Str[i+1]) {
+<a name="l00041"></a>00041           <span class="keywordflow">case</span> <span class="charliteral">'l'</span>: <span class="keywordflow">continue</span>; <span class="comment">// don't disturb \l</span>
+<a name="l00042"></a>00042           <span class="keywordflow">case</span> <span class="charliteral">'|'</span>: <span class="keywordflow">case</span> <span class="charliteral">'{'</span>: <span class="keywordflow">case</span> <span class="charliteral">'}'</span>:
+<a name="l00043"></a>00043             Str.erase(Str.begin()+i); <span class="keywordflow">continue</span>;
+<a name="l00044"></a>00044           <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;
+<a name="l00045"></a>00045         }
+<a name="l00046"></a>00046     <span class="keywordflow">case</span> <span class="charliteral">'{'</span>: <span class="keywordflow">case</span> <span class="charliteral">'}'</span>:
+<a name="l00047"></a>00047     <span class="keywordflow">case</span> <span class="charliteral">'<'</span>: <span class="keywordflow">case</span> <span class="charliteral">'>'</span>:
+<a name="l00048"></a>00048     <span class="keywordflow">case</span> <span class="charliteral">'|'</span>: <span class="keywordflow">case</span> <span class="charliteral">'"'</span>:
+<a name="l00049"></a>00049       Str.insert(Str.begin()+i, <span class="charliteral">'\\'</span>);  <span class="comment">// Escape character...</span>
+<a name="l00050"></a>00050       ++i;  <span class="comment">// don't infinite loop</span>
+<a name="l00051"></a>00051       <span class="keywordflow">break</span>;
+<a name="l00052"></a>00052   }
+<a name="l00053"></a>00053   <span class="keywordflow">return</span> Str;
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056 <span class="comment">// Execute the graph viewer. Return true if successful.</span>
+<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Compiler_8h.html#acc1c483f4b4ee2f17bb6643a3b353609">LLVM_ATTRIBUTE_UNUSED</a>
+<a name="l00058"></a><a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">00058</a> <a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> &ExecPath, std::vector<const char*> &args,
+<a name="l00059"></a>00059                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> &Filename, <span class="keywordtype">bool</span> wait, std::string &ErrMsg) {
+<a name="l00060"></a>00060   <span class="keywordflow">if</span> (wait) {
+<a name="l00061"></a>00061     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1sys_1_1Program.html#af93a6a224dd8b9a96bcc2f62c8aaea21">sys::Program::ExecuteAndWait</a>(ExecPath, &args[0],0,0,0,0,&ErrMsg)) {
+<a name="l00062"></a>00062       <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Error: "</span> << ErrMsg << <span class="stringliteral">"\n"</span>;
+<a name="l00063"></a>00063       <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00064"></a>00064     }
+<a name="l00065"></a>00065     Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#ae35225871906904902ced4fd24ff8049" title="Removes the file or directory from the filesystem.">eraseFromDisk</a>();
+<a name="l00066"></a>00066     <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">" done. \n"</span>;
+<a name="l00067"></a>00067   }
+<a name="l00068"></a>00068   <span class="keywordflow">else</span> {
+<a name="l00069"></a>00069     <a class="code" href="classllvm_1_1sys_1_1Program.html#a2314cf600226d9e57318d8ab4ce21225">sys::Program::ExecuteNoWait</a>(ExecPath, &args[0],0,0,0,&ErrMsg);
+<a name="l00070"></a>00070     <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Remember to erase graph file: "</span> << Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a5d853e3166e593954a7265cc10395d56">str</a>() << <span class="stringliteral">"\n"</span>;
+<a name="l00071"></a>00071   }
+<a name="l00072"></a>00072   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 
+<a name="l00075"></a><a class="code" href="namespacellvm.html#a34ea9248e293741290db13fee9d73cfe">00075</a> <span class="keywordtype">void</span> <a class="code" href="namespacellvm.html#a34ea9248e293741290db13fee9d73cfe">llvm::DisplayGraph</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> &Filename, <span class="keywordtype">bool</span> wait,
+<a name="l00076"></a>00076                         <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">GraphProgram::Name</a> program) {
+<a name="l00077"></a>00077   wait &= !<a class="code" href="GraphWriter_8cpp.html#ae4401e77a762e9c8e77659cf4d23dee2">ViewBackground</a>;
+<a name="l00078"></a>00078   std::string ErrMsg;
+<a name="l00079"></a>00079 <span class="preprocessor">#if HAVE_GRAPHVIZ</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span>  <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> Graphviz(LLVM_PATH_GRAPHVIZ);
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082   std::vector<const char*> args;
+<a name="l00083"></a>00083   args.push_back(Graphviz.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00084"></a>00084   args.push_back(Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00085"></a>00085   args.push_back(0);
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087   <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Running 'Graphviz' program... "</span>;
+<a name="l00088"></a>00088   <span class="keywordflow">if</span> (!<a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(Graphviz, args, Filename, wait, ErrMsg))
+<a name="l00089"></a>00089     <span class="keywordflow">return</span>;
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="preprocessor">#elif HAVE_XDOT_PY</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span>  std::vector<const char*> args;
+<a name="l00093"></a>00093   args.push_back(LLVM_PATH_XDOT_PY);
+<a name="l00094"></a>00094   args.push_back(Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096   <span class="keywordflow">switch</span> (program) {
+<a name="l00097"></a>00097   <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10baa979410a6f3129644e1be86fb488e455">GraphProgram::DOT</a>:   args.push_back(<span class="stringliteral">"-f"</span>); args.push_back(<span class="stringliteral">"dot"</span>); <span class="keywordflow">break</span>;
+<a name="l00098"></a>00098   <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba369c1aafe1a79637a098d1ac61c3c940">GraphProgram::FDP</a>:   args.push_back(<span class="stringliteral">"-f"</span>); args.push_back(<span class="stringliteral">"fdp"</span>); <span class="keywordflow">break</span>;
+<a name="l00099"></a>00099   <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba5f97d56ae6699c2775313a0b5cd6badb">GraphProgram::NEATO</a>: args.push_back(<span class="stringliteral">"-f"</span>); args.push_back(<span class="stringliteral">"neato"</span>);<span class="keywordflow">break</span>;
+<a name="l00100"></a>00100   <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba3af922b814bd0960a3c12abbe6b87a0d">GraphProgram::TWOPI</a>: args.push_back(<span class="stringliteral">"-f"</span>); args.push_back(<span class="stringliteral">"twopi"</span>);<span class="keywordflow">break</span>;
+<a name="l00101"></a>00101   <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10bab89542c270041afd91cb19369af6dc31">GraphProgram::CIRCO</a>: args.push_back(<span class="stringliteral">"-f"</span>); args.push_back(<span class="stringliteral">"circo"</span>);<span class="keywordflow">break</span>;
+<a name="l00102"></a>00102   }
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104   args.push_back(0);
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106   <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Running 'xdot.py' program... "</span>;
+<a name="l00107"></a>00107   <span class="keywordflow">if</span> (!<a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(<a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(LLVM_PATH_XDOT_PY), args, Filename, wait, ErrMsg))
+<a name="l00108"></a>00108     <span class="keywordflow">return</span>;
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 <span class="preprocessor">#elif (HAVE_GV && (HAVE_DOT || HAVE_FDP || HAVE_NEATO || \</span>
+<a name="l00111"></a>00111 <span class="preprocessor">                   HAVE_TWOPI || HAVE_CIRCO))</span>
+<a name="l00112"></a>00112 <span class="preprocessor"></span>  <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> PSFilename = Filename;
+<a name="l00113"></a>00113   PSFilename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a6ca71a2bda780393de59c4d321e3fe85" title="Adds a period and the suffix to the end of the pathname.">appendSuffix</a>(<span class="stringliteral">"ps"</span>);
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115   <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> prog;
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117   <span class="comment">// Set default grapher</span>
+<a name="l00118"></a>00118 <span class="preprocessor">#if HAVE_CIRCO</span>
+<a name="l00119"></a>00119 <span class="preprocessor"></span>  prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#a13282a1ed2756347d6fede3eac1eb246">LLVM_PATH_CIRCO</a>);
+<a name="l00120"></a>00120 <span class="preprocessor">#endif</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#if HAVE_TWOPI</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span>  prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#afac9392b352763b1bc5ef9e26284ee76">LLVM_PATH_TWOPI</a>);
+<a name="l00123"></a>00123 <span class="preprocessor">#endif</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#if HAVE_NEATO</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span>  prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#ac08f27edfb0294995516da2993a1950b">LLVM_PATH_NEATO</a>);
+<a name="l00126"></a>00126 <span class="preprocessor">#endif</span>
+<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#if HAVE_FDP</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>  prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#ac79862797f52386b59c598f3b6b04abe">LLVM_PATH_FDP</a>);
+<a name="l00129"></a>00129 <span class="preprocessor">#endif</span>
+<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#if HAVE_DOT</span>
+<a name="l00131"></a>00131 <span class="preprocessor"></span>  prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#a195b5311d4e815be01f33e09871df486">LLVM_PATH_DOT</a>);
+<a name="l00132"></a>00132 <span class="preprocessor">#endif</span>
+<a name="l00133"></a>00133 <span class="preprocessor"></span>
+<a name="l00134"></a>00134   <span class="comment">// Find which program the user wants</span>
+<a name="l00135"></a>00135 <span class="preprocessor">#if HAVE_DOT</span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (program == <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10baa979410a6f3129644e1be86fb488e455">GraphProgram::DOT</a>)
+<a name="l00137"></a>00137     prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#a195b5311d4e815be01f33e09871df486">LLVM_PATH_DOT</a>);
+<a name="l00138"></a>00138 <span class="preprocessor">#endif</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#if (HAVE_FDP)</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (program == <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba369c1aafe1a79637a098d1ac61c3c940">GraphProgram::FDP</a>)
+<a name="l00141"></a>00141     prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#ac79862797f52386b59c598f3b6b04abe">LLVM_PATH_FDP</a>);
+<a name="l00142"></a>00142 <span class="preprocessor">#endif</span>
+<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#if (HAVE_NEATO)</span>
+<a name="l00144"></a>00144 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (program == <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba5f97d56ae6699c2775313a0b5cd6badb">GraphProgram::NEATO</a>)
+<a name="l00145"></a>00145     prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#ac08f27edfb0294995516da2993a1950b">LLVM_PATH_NEATO</a>);
+<a name="l00146"></a>00146 <span class="preprocessor">#endif</span>
+<a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor">#if (HAVE_TWOPI)</span>
+<a name="l00148"></a>00148 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (program == <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10ba3af922b814bd0960a3c12abbe6b87a0d">GraphProgram::TWOPI</a>)
+<a name="l00149"></a>00149     prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#afac9392b352763b1bc5ef9e26284ee76">LLVM_PATH_TWOPI</a>);
+<a name="l00150"></a>00150 <span class="preprocessor">#endif</span>
+<a name="l00151"></a>00151 <span class="preprocessor"></span><span class="preprocessor">#if (HAVE_CIRCO)</span>
+<a name="l00152"></a>00152 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (program == <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10bab89542c270041afd91cb19369af6dc31">GraphProgram::CIRCO</a>)
+<a name="l00153"></a>00153     prog = <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a>(<a class="code" href="config_8h.html#a13282a1ed2756347d6fede3eac1eb246">LLVM_PATH_CIRCO</a>);
+<a name="l00154"></a>00154 <span class="preprocessor">#endif</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span>
+<a name="l00156"></a>00156   std::vector<const char*> args;
+<a name="l00157"></a>00157   args.push_back(prog.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00158"></a>00158   args.push_back(<span class="stringliteral">"-Tps"</span>);
+<a name="l00159"></a>00159   args.push_back(<span class="stringliteral">"-Nfontname=Courier"</span>);
+<a name="l00160"></a>00160   args.push_back(<span class="stringliteral">"-Gsize=7.5,10"</span>);
+<a name="l00161"></a>00161   args.push_back(Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00162"></a>00162   args.push_back(<span class="stringliteral">"-o"</span>);
+<a name="l00163"></a>00163   args.push_back(PSFilename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00164"></a>00164   args.push_back(0);
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166   <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Running '"</span> << prog.<a class="code" href="classllvm_1_1sys_1_1Path.html#a5d853e3166e593954a7265cc10395d56">str</a>() << <span class="stringliteral">"' program... "</span>;
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168   <span class="keywordflow">if</span> (!<a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(prog, args, Filename, wait, ErrMsg))
+<a name="l00169"></a>00169     <span class="keywordflow">return</span>;
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171   <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> gv(LLVM_PATH_GV);
+<a name="l00172"></a>00172   args.clear();
+<a name="l00173"></a>00173   args.push_back(gv.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00174"></a>00174   args.push_back(PSFilename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00175"></a>00175   args.push_back(<span class="stringliteral">"--spartan"</span>);
+<a name="l00176"></a>00176   args.push_back(0);
+<a name="l00177"></a>00177 
+<a name="l00178"></a>00178   ErrMsg.clear();
+<a name="l00179"></a>00179   <span class="keywordflow">if</span> (!<a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(gv, args, PSFilename, wait, ErrMsg))
+<a name="l00180"></a>00180     <span class="keywordflow">return</span>;
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182 <span class="preprocessor">#elif HAVE_DOTTY</span>
+<a name="l00183"></a>00183 <span class="preprocessor"></span>  <a class="code" href="classllvm_1_1sys_1_1Path.html" title="An abstraction for operating system paths.">sys::Path</a> dotty(<a class="code" href="config_8h.html#a7c9d93eb5853618e9b7724a42cb12599">LLVM_PATH_DOTTY</a>);
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185   std::vector<const char*> args;
+<a name="l00186"></a>00186   args.push_back(dotty.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00187"></a>00187   args.push_back(Filename.<a class="code" href="classllvm_1_1sys_1_1Path.html#a12982491c4fc310b0d8bbdcdbb442fe2" title="Returns the path as a C string.">c_str</a>());
+<a name="l00188"></a>00188   args.push_back(0);
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 <span class="comment">// Dotty spawns another app and doesn't wait until it returns</span>
+<a name="l00191"></a>00191 <span class="preprocessor">#if defined (__MINGW32__) || defined (_WINDOWS)</span>
+<a name="l00192"></a>00192 <span class="preprocessor"></span>  wait = <span class="keyword">false</span>;
+<a name="l00193"></a>00193 <span class="preprocessor">#endif</span>
+<a name="l00194"></a>00194 <span class="preprocessor"></span>  <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Running 'dotty' program... "</span>;
+<a name="l00195"></a>00195   <span class="keywordflow">if</span> (!<a class="code" href="GraphWriter_8cpp.html#a94aaea4d1dded72848b56c6e29a6d1a1">ExecGraphViewer</a>(dotty, args, Filename, wait, ErrMsg))
+<a name="l00196"></a>00196     <span class="keywordflow">return</span>;
+<a name="l00197"></a>00197 <span class="preprocessor">#endif</span>
+<a name="l00198"></a>00198 <span class="preprocessor"></span>}
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:33:49 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.map
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.map?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.map (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.map Fri Dec 21 00:57:24 2012
@@ -0,0 +1,18 @@
+<map id="G" name="G">
+<area shape="rect" href="$DOTGraphTraits_8h.html" title="llvm/Support/DOTGraphTraits.h" alt="" coords="1839,161,2055,188"/>
+<area shape="rect" href="$raw__ostream_8h.html" title="llvm/Support/raw_ostream.h" alt="" coords="25,316,225,343"/>
+<area shape="rect" href="$GraphTraits_8h.html" title="llvm/ADT/GraphTraits.h" alt="" coords="1816,84,1981,111"/>
+<area shape="rect" href="$Path_8h.html" title="llvm/Support/Path.h" alt="" coords="1485,84,1632,111"/>
+<area shape="rect" href="$StringRef_8h.html" title="llvm/ADT/StringRef.h" alt="" coords="959,393,1108,420"/>
+<area shape="rect" href="$DataTypes_8h.html" title="llvm/Support/DataTypes.h" alt="" coords="1299,548,1483,575"/>
+<area shape="rect" href="$Compiler_8h.html" title="llvm/Support/Compiler.h" alt="" coords="539,548,712,575"/>
+<area shape="rect" href="$type__traits_8h.html" title="llvm/Support/type_traits.h" alt="" coords="649,471,836,497"/>
+<area shape="rect" href="$PathV1_8h.html" title="llvm/Support/PathV1.h" alt="" coords="1477,316,1640,343"/>
+<area shape="rect" href="$PathV2_8h.html" title="llvm/Support/PathV2.h" alt="" coords="1177,161,1340,188"/>
+<area shape="rect" href="$TimeValue_8h.html" title="llvm/Support/TimeValue.h" alt="" coords="1715,393,1899,420"/>
+<area shape="rect" href="$SmallString_8h.html" title="llvm/ADT/SmallString.h" alt="" coords="773,316,941,343"/>
+<area shape="rect" href="$Twine_8h.html" title="llvm/ADT/Twine.h" alt="" coords="1196,239,1321,265"/>
+<area shape="rect" href="$SmallVector_8h.html" title="llvm/ADT/SmallVector.h" alt="" coords="528,393,696,420"/>
+<area shape="rect" href="$AlignOf_8h.html" title="llvm/Support/AlignOf.h" alt="" coords="412,471,575,497"/>
+<area shape="rect" href="$ErrorHandling_8h.html" title="llvm/Support/ErrorHandling.h" alt="" coords="1016,316,1221,343"/>
+</map>

Added: www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/GraphWriter_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+c1844e11d1c222595134529e594ee174
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/Graph_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Graph_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Graph_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Graph_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="LLVM,Low Level Virtual Machine,C++,doxygen,API,documentation"/>
+<meta name="description" content="C++ source code API documentation for LLVM."/>
+<title>LLVM: Graph.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">LLVM API Documentation</p>
+<!-- Generated by Doxygen 1.7.5.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+  <div id="nav-path" class="navpath">
+    <ul>
+      <li class="navelem"><a class="el" href="dir_b41d254693bea6e92988e5bb1ad97e02.html">llvm-3.2.src</a>      </li>
+      <li class="navelem"><a class="el" href="dir_25acc6571c4e3a053ee4203146b47a61.html">include</a>      </li>
+      <li class="navelem"><a class="el" href="dir_fd2d7b5ce83b1c1657cd6600d8cb39fa.html">llvm</a>      </li>
+      <li class="navelem"><a class="el" href="dir_33f9015af551a3c03ac5a968f2023d57.html">CodeGen</a>      </li>
+      <li class="navelem"><a class="el" href="dir_a8c1d57ce8183c41b9f05ccd2f5ffcb2.html">PBQP</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Graph.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="Math_8h_source.html">Math.h</a>"</code><br/>
+<code>#include <list></code><br/>
+<code>#include <map></code><br/>
+<code>#include <<a class="el" href="ilist_8h_source.html">llvm/ADT/ilist.h</a>></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for Graph.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="Graph_8h__incl.png" border="0" usemap="#Graph_8h" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="Graph_8h__dep__incl.png" border="0" usemap="#Graph_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="Graph_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classPBQP_1_1Graph.html">PBQP::Graph</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><b>PBQP::Graph::NodeEntry</b></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><b>PBQP::Graph::EdgeEntry</b></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classPBQP_1_1NodeItrComparator.html">PBQP::NodeItrComparator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classPBQP_1_1EdgeItrCompartor.html">PBQP::EdgeItrCompartor</a></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacePBQP.html">PBQP</a></td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:29 for <a href="http://llvm.org/">LLVM</a> by
+<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
+align="middle" border="0"/>1.7.5.1</a><br>
+Copyright © 2003-2012 University of Illinois at Urbana-Champaign.
+All Rights Reserved.</p>
+
+<hr>
+<!--#include virtual="/attrib.incl" -->
+
+</body>
+</html>





More information about the llvm-commits mailing list