[llvm-commits] [www-releases] r170845 [26/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/PriorityQueue_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PriorityQueue_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PriorityQueue_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PriorityQueue_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,140 @@
+<!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: PriorityQueue.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">PriorityQueue.h</div>  </div>
+</div>
+<div class="contents">
+<a href="PriorityQueue_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/PriorityQueue.h - Priority queues ---------------*- 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 PriorityQueue class.</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_ADT_PRIORITY_QUEUE_H</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_ADT_PRIORITY_QUEUE_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include <algorithm></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include <queue></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">/// PriorityQueue - This class behaves like std::priority_queue and</span>
+<a name="l00023"></a>00023 <span class="comment">/// provides a few additional convenience functions.</span>
+<a name="l00024"></a>00024 <span class="comment">///</span>
+<a name="l00025"></a>00025 <span class="comment"></span><span class="keyword">template</span><<span class="keyword">class </span>T,
+<a name="l00026"></a>00026          <span class="keyword">class </span><a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a> = std::vector<T>,
+<a name="l00027"></a>00027          <span class="keyword">class </span><a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a> = std::less<typename Sequence::value_type> >
+<a name="l00028"></a><a class="code" href="classllvm_1_1PriorityQueue.html">00028</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1PriorityQueue.html">PriorityQueue</a> : <span class="keyword">public</span> std::<a class="code" href="classstd_1_1priority__queue.html">priority_queue</a><T, Sequence, Compare> {
+<a name="l00029"></a>00029 <span class="keyword">public</span>:
+<a name="l00030"></a><a class="code" href="classllvm_1_1PriorityQueue.html#a86b759f979ff25ec6734f9f680bf9a0d">00030</a>   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1PriorityQueue.html#a86b759f979ff25ec6734f9f680bf9a0d">PriorityQueue</a>(<span class="keyword">const</span> <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a> &compare = <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a>(),
+<a name="l00031"></a>00031                          <span class="keyword">const</span> <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a> &sequence = <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a>())
+<a name="l00032"></a>00032     : std::<a class="code" href="classstd_1_1priority__queue.html">priority_queue</a><T, <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a>, <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a>>(compare, sequence)
+<a name="l00033"></a>00033   {}
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035   <span class="keyword">template</span><<span class="keyword">class</span> Iterator>
+<a name="l00036"></a><a class="code" href="classllvm_1_1PriorityQueue.html#a26ac5bac35de94febd6c1d29852d6507">00036</a>   <a class="code" href="classllvm_1_1PriorityQueue.html#a86b759f979ff25ec6734f9f680bf9a0d">PriorityQueue</a>(Iterator <a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>, Iterator <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>,
+<a name="l00037"></a>00037                 <span class="keyword">const</span> <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a> &compare = <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a>(),
+<a name="l00038"></a>00038                 <span class="keyword">const</span> <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a> &sequence = <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a>())
+<a name="l00039"></a>00039     : std::<a class="code" href="classstd_1_1priority__queue.html">priority_queue</a><T, <a class="code" href="ObjCARC_8cpp.html#a7c6cee88be47642de240c7ed39a34ed3">Sequence</a>, <a class="code" href="namespacellvm_1_1MCID.html#accb16fffd544529ed4d816a45e40f425a1328ed43be8173506f59f88c9bfd8b8c">Compare</a>>(begin, end, compare, sequence)
+<a name="l00040"></a>00040   {}
+<a name="l00041"></a>00041 <span class="comment"></span>
+<a name="l00042"></a>00042 <span class="comment">  /// erase_one - Erase one element from the queue, regardless of its</span>
+<a name="l00043"></a>00043 <span class="comment">  /// position. This operation performs a linear search to find an element</span>
+<a name="l00044"></a>00044 <span class="comment">  /// equal to t, but then uses all logarithmic-time algorithms to do</span>
+<a name="l00045"></a>00045 <span class="comment">  /// the erase operation.</span>
+<a name="l00046"></a>00046 <span class="comment">  ///</span>
+<a name="l00047"></a><a class="code" href="classllvm_1_1PriorityQueue.html#a89ce59a53dfd16d3194518d0c209ff97">00047</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1PriorityQueue.html#a89ce59a53dfd16d3194518d0c209ff97">erase_one</a>(<span class="keyword">const</span> T &t) {
+<a name="l00048"></a>00048     <span class="comment">// Linear-search to find the element.</span>
+<a name="l00049"></a>00049     <span class="keyword">typename</span> Sequence::size_type i =
+<a name="l00050"></a>00050       std::find(this->c.begin(), this->c.end(), t) - this->c.begin();
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052     <span class="comment">// Logarithmic-time heap bubble-up.</span>
+<a name="l00053"></a>00053     <span class="keywordflow">while</span> (i != 0) {
+<a name="l00054"></a>00054       <span class="keyword">typename</span> Sequence::size_type parent = (i - 1) / 2;
+<a name="l00055"></a>00055       this->c[i] = this->c[parent];
+<a name="l00056"></a>00056       i = parent;
+<a name="l00057"></a>00057     }
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     <span class="comment">// The element we want to remove is now at the root, so we can use</span>
+<a name="l00060"></a>00060     <span class="comment">// priority_queue's plain pop to remove it.</span>
+<a name="l00061"></a>00061     this->pop();
+<a name="l00062"></a>00062   }
+<a name="l00063"></a>00063 <span class="comment"></span>
+<a name="l00064"></a>00064 <span class="comment">  /// reheapify - If an element in the queue has changed in a way that</span>
+<a name="l00065"></a>00065 <span class="comment">  /// affects its standing in the comparison function, the queue's</span>
+<a name="l00066"></a>00066 <span class="comment">  /// internal state becomes invalid. Calling reheapify() resets the</span>
+<a name="l00067"></a>00067 <span class="comment">  /// queue's state, making it valid again. This operation has time</span>
+<a name="l00068"></a>00068 <span class="comment">  /// complexity proportional to the number of elements in the queue,</span>
+<a name="l00069"></a>00069 <span class="comment">  /// so don't plan to use it a lot.</span>
+<a name="l00070"></a>00070 <span class="comment">  ///</span>
+<a name="l00071"></a><a class="code" href="classllvm_1_1PriorityQueue.html#a79d40f085693726bbebb3a1d67303c01">00071</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1PriorityQueue.html#a79d40f085693726bbebb3a1d67303c01">reheapify</a>() {
+<a name="l00072"></a>00072     std::make_heap(this->c.begin(), this->c.end(), this->comp);
+<a name="l00073"></a>00073   }
+<a name="l00074"></a>00074 <span class="comment"></span>
+<a name="l00075"></a>00075 <span class="comment">  /// clear - Erase all elements from the queue.</span>
+<a name="l00076"></a>00076 <span class="comment">  ///</span>
+<a name="l00077"></a><a class="code" href="classllvm_1_1PriorityQueue.html#a583627bbdd690ca5df5ed7b00a5f7b18">00077</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1PriorityQueue.html#a583627bbdd690ca5df5ed7b00a5f7b18">clear</a>() {
+<a name="l00078"></a>00078     this->c.clear();
+<a name="l00079"></a>00079   }
+<a name="l00080"></a>00080 };
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082 } <span class="comment">// End llvm namespace</span>
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:36:58 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/ProcessImplicitDefs_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,196 @@
+<!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: ProcessImplicitDefs.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="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">ProcessImplicitDefs.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="SetVector_8h_source.html">llvm/ADT/SetVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="AliasAnalysis_8h_source.html">llvm/Analysis/AliasAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunctionPass_8h_source.html">llvm/CodeGen/MachineFunctionPass.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.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="Debug_8h_source.html">llvm/Support/Debug.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="TargetInstrInfo_8h_source.html">llvm/Target/TargetInstrInfo.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for ProcessImplicitDefs.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="ProcessImplicitDefs_8cpp__incl.png" border="0" usemap="#ProcessImplicitDefs_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="ProcessImplicitDefs_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="ProcessImplicitDefs_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "processimplicitdefs"</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="ProcessImplicitDefs_8cpp.html#af4d8560204f609a22befbb3020758e14">INITIALIZE_PASS_BEGIN</a> (ProcessImplicitDefs,"processimpdefs","<a class="el" href="classllvm_1_1sys_1_1Process.html">Process</a> Implicit <a class="el" href="ProcessImplicitDefs_8cpp.html#ab28959bc2f72f84542ce33efa2d3ce64">Definitions</a>", false, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) INITIALIZE_PASS_END(ProcessImplicitDefs</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProcessImplicitDefs_8cpp.html#a834c3366bbdfa676f22ca18698164703">processimpdefs</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classllvm_1_1sys_1_1Process.html">Process</a> Implicit </td><td class="memItemRight" valign="bottom"><a class="el" href="ProcessImplicitDefs_8cpp.html#ab28959bc2f72f84542ce33efa2d3ce64">Definitions</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classllvm_1_1sys_1_1Process.html">Process</a> Implicit </td><td class="memItemRight" valign="bottom"><a class="el" href="ProcessImplicitDefs_8cpp.html#a16749b9093f4aa8dad8a1660c8542c7e">false</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="ProcessImplicitDefs.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "processimplicitdefs"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProcessImplicitDefs_8cpp_source.html#l00010">10</a> of file <a class="el" href="ProcessImplicitDefs_8cpp_source.html">ProcessImplicitDefs.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="af4d8560204f609a22befbb3020758e14"></a><!-- doxytag: member="ProcessImplicitDefs.cpp::INITIALIZE_PASS_BEGIN" ref="af4d8560204f609a22befbb3020758e14" args="(ProcessImplicitDefs,"processimpdefs","Process Implicit Definitions", false, false) INITIALIZE_PASS_END(ProcessImplicitDefs" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_PASS_BEGIN </td>
+          <td>(</td>
+          <td class="paramtype">ProcessImplicitDefs </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"processimpdefs" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Process Implicit <a class="el" href="ProcessImplicitDefs_8cpp.html#ab28959bc2f72f84542ce33efa2d3ce64">Definitions</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 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">
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="ab28959bc2f72f84542ce33efa2d3ce64"></a><!-- doxytag: member="ProcessImplicitDefs.cpp::Definitions" ref="ab28959bc2f72f84542ce33efa2d3ce64" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1sys_1_1Process.html">Process</a> Implicit <a class="el" href="ProcessImplicitDefs_8cpp.html#ab28959bc2f72f84542ce33efa2d3ce64">Definitions</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProcessImplicitDefs_8cpp_source.html#l00055">55</a> of file <a class="el" href="ProcessImplicitDefs_8cpp_source.html">ProcessImplicitDefs.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a16749b9093f4aa8dad8a1660c8542c7e"></a><!-- doxytag: member="ProcessImplicitDefs.cpp::false" ref="a16749b9093f4aa8dad8a1660c8542c7e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1sys_1_1Process.html">Process</a> Implicit <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProcessImplicitDefs_8cpp_source.html#l00055">55</a> of file <a class="el" href="ProcessImplicitDefs_8cpp_source.html">ProcessImplicitDefs.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a834c3366bbdfa676f22ca18698164703"></a><!-- doxytag: member="ProcessImplicitDefs.cpp::processimpdefs" ref="a834c3366bbdfa676f22ca18698164703" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="ProcessImplicitDefs_8cpp.html#a834c3366bbdfa676f22ca18698164703">processimpdefs</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProcessImplicitDefs_8cpp_source.html#l00055">55</a> of file <a class="el" href="ProcessImplicitDefs_8cpp_source.html">ProcessImplicitDefs.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:38 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/ProcessImplicitDefs_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProcessImplicitDefs_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+fd80390350f6af7c21c1884fca6b3953
\ No newline at end of file

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

Added: www-releases/trunk/3.2/docs/doxygen/html/ProfileDataLoader_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfileDataLoader_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfileDataLoader_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfileDataLoader_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,170 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="ProfileDataLoader.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/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_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="red",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="red",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"];
+  Node7 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node19 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Function.h",height=0.2,width=0.4,color="black",URL="$Function_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node21 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Instruction.h",height=0.2,width=0.4,color="red",URL="$Instruction_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Instruction.def",height=0.2,width=0.4,color="grey75"];
+  Node24 -> 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 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node29 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node31 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Argument.h",height=0.2,width=0.4,color="black",URL="$Argument_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Value.h",height=0.2,width=0.4,color="red",URL="$Value_8h.html"];
+  Node33 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node34 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="black",URL="$GlobalVariable_8h.html"];
+  Node35 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="red",URL="$OperandTraits_8h.html"];
+  Node35 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="black",URL="$GlobalAlias_8h.html"];
+  Node37 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Metadata.h",height=0.2,width=0.4,color="black",URL="$Metadata_8h.html"];
+  Node38 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/FoldingSet.h",height=0.2,width=0.4,color="black",URL="$FoldingSet_8h.html"];
+  Node39 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="black",URL="$InstrTypes_8h.html"];
+  Node40 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="red",URL="$DerivedTypes_8h.html"];
+  Node41 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Analysis/ProfileDataLoader.h",height=0.2,width=0.4,color="black",URL="$ProfileDataLoader_8h.html"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node43 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node42 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Analysis/ProfileDataTypes.h",height=0.2,width=0.4,color="black",URL="$ProfileDataTypes_8h.html"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node46 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/system_error.h",height=0.2,width=0.4,color="black",URL="$system__error_8h.html"];
+  Node47 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node47 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="cerrno",height=0.2,width=0.4,color="grey75"];
+  Node47 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/ProfileEstimatorPass_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfileEstimatorPass_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfileEstimatorPass_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfileEstimatorPass_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,315 @@
+<!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: ProfileEstimatorPass.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_59dd179f705c75b7b821c61754f4942c.html">Analysis</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<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">ProfileEstimatorPass.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="Pass_8h_source.html">llvm/Pass.h</a>"</code><br/>
+<code>#include "<a class="el" href="Analysis_2Passes_8h_source.html">llvm/Analysis/Passes.h</a>"</code><br/>
+<code>#include "<a class="el" href="ProfileInfo_8h_source.html">llvm/Analysis/ProfileInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="LoopInfo_8h_source.html">llvm/Analysis/LoopInfo.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="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include "<a class="el" href="Format_8h_source.html">llvm/Support/Format.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for ProfileEstimatorPass.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="ProfileEstimatorPass_8cpp__incl.png" border="0" usemap="#ProfileEstimatorPass_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="ProfileEstimatorPass_8cpp_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 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="ProfileEstimatorPass_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a3c03505e0ec59b9a3d2ac72ae362e615">INITIALIZE_AG_PASS_BEGIN</a> (ProfileEstimatorPass, <a class="el" href="namespacellvm.html#a68a05ee5d2e4f0624f87ddcd569dc54b">ProfileInfo</a>,"profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>","Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="el" href="ProfileVerifierPass_8cpp.html#af16cef0059f2eac9638be9fb223c4dbe">information</a>", false, <a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a>, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) INITIALIZE_AG_PASS_END(ProfileEstimatorPass</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classllvm_1_1FunctionPass.html">FunctionPass</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#ae6a37e6525e9a20a08fafb0129b37b82">llvm::createProfileEstimatorPass</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classllvm_1_1Pass.html">Pass</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a6839102379da946e6eb16dc86dc84828">llvm::createProfileEstimatorPass</a> (const <a class="el" href="classunsigned.html">unsigned</a> execcount)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a345efffdede6b7d13db5c8c9e68eeb80">ignoreMissing</a> (double w)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a6baab32b2b0791a847f676075082a04f">printEdgeError</a> (<a class="el" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfo::Edge</a> e, const <a class="el" href="classchar.html">char</a> *M)</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>< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#ad36f2c930c484c1515411288d6a53718">LoopWeight</a> ("profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>-loop-weight", cl::init(10), <a class="el" href="structllvm_1_1cl_1_1value__desc.html">cl::value_desc</a>("loop-weight"), cl::desc("Number of loop executions used for profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>"))</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#aebae35fb9aac754aaa22d6c712fb2f74">ProfileInfo</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">profile </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#abea79cccb5914eafef3bd88ce1829f87">information</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a431c90fbc2546058ec4b73f2c8722625">false</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ProfileEstimatorPass_8cpp.html#a05ef8f609cc34cae11af15ec14ef4c4a">true</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00014">14</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a345efffdede6b7d13db5c8c9e68eeb80"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::ignoreMissing" ref="a345efffdede6b7d13db5c8c9e68eeb80" args="(double w)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static double ignoreMissing </td>
+          <td>(</td>
+          <td class="paramtype">double </td>
+          <td class="paramname"><em>w</em></td><td>)</td>
+          <td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00096">96</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+<p>References <a class="el" href="ProfileInfo_8cpp_source.html#l00054">llvm::ProfileInfoT< FType, BType >::MissingValue()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3c03505e0ec59b9a3d2ac72ae362e615"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::INITIALIZE_AG_PASS_BEGIN" ref="a3c03505e0ec59b9a3d2ac72ae362e615" args="(ProfileEstimatorPass, ProfileInfo,"profile-estimator","Estimate profiling information", false, true, false) INITIALIZE_AG_PASS_END(ProfileEstimatorPass" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_AG_PASS_BEGIN </td>
+          <td>(</td>
+          <td class="paramtype">ProfileEstimatorPass </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespacellvm.html#a68a05ee5d2e4f0624f87ddcd569dc54b">ProfileInfo</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="el" href="ProfileVerifierPass_8cpp.html#af16cef0059f2eac9638be9fb223c4dbe">information</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 class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</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">
+
+</div>
+</div>
+<a class="anchor" id="a6baab32b2b0791a847f676075082a04f"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::printEdgeError" ref="a6baab32b2b0791a847f676075082a04f" args="(ProfileInfo::Edge e, const char *M)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void printEdgeError </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfo::Edge</a> </td>
+          <td class="paramname"><em>e</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>M</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00101">101</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, and <a class="el" href="Debug_8h_source.html#l00097">DEBUG</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a1908a51bceef22c0514673d750c18be7"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::estimator" ref="a1908a51bceef22c0514673d750c18be7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">profile <a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00079">79</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a431c90fbc2546058ec4b73f2c8722625"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::false" ref="a431c90fbc2546058ec4b73f2c8722625" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00079">79</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abea79cccb5914eafef3bd88ce1829f87"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::information" ref="abea79cccb5914eafef3bd88ce1829f87" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="el" href="ProfileVerifierPass_8cpp.html#af16cef0059f2eac9638be9fb223c4dbe">information</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00079">79</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad36f2c930c484c1515411288d6a53718"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::LoopWeight" ref="ad36f2c930c484c1515411288d6a53718" args="("profile-estimator-loop-weight", cl::init(10), cl::value_desc("loop-weight"), cl::desc("Number of loop executions used for profile-estimator"))" -->
+<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><double> <a class="el" href="ProfileEstimatorPass_8cpp.html#ad36f2c930c484c1515411288d6a53718">LoopWeight</a>("profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>-loop-weight", cl::init(10), <a class="el" href="structllvm_1_1cl_1_1value__desc.html">cl::value_desc</a>("loop-weight"), cl::desc("Number of loop executions used for profile-<a class="el" href="ProfileEstimatorPass_8cpp.html#a1908a51bceef22c0514673d750c18be7">estimator</a>"))<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aebae35fb9aac754aaa22d6c712fb2f74"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::ProfileInfo" ref="aebae35fb9aac754aaa22d6c712fb2f74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacellvm.html#a68a05ee5d2e4f0624f87ddcd569dc54b">ProfileInfo</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00079">79</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05ef8f609cc34cae11af15ec14ef4c4a"></a><!-- doxytag: member="ProfileEstimatorPass.cpp::true" ref="a05ef8f609cc34cae11af15ec14ef4c4a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">profile Estimate <a class="el" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="ProfileEstimatorPass_8cpp_source.html#l00079">79</a> of file <a class="el" href="ProfileEstimatorPass_8cpp_source.html">ProfileEstimatorPass.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:38 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/ProfileInfoLoader_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfileInfoLoader_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfileInfoLoader_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfileInfoLoader_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,153 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="ProfileInfoLoader.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/ProfileInfoLoader.h",height=0.2,width=0.4,color="black",URL="$ProfileInfoLoader_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Analysis/ProfileInfoTypes.h",height=0.2,width=0.4,color="black",URL="$ProfileInfoTypes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Analysis/ProfileDataTypes.h",height=0.2,width=0.4,color="black",URL="$ProfileDataTypes_8h.html"];
+  Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Function.h",height=0.2,width=0.4,color="black",URL="$Function_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="black",URL="$GlobalValue_8h.html"];
+  Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Constant.h",height=0.2,width=0.4,color="black",URL="$Constant_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/User.h",height=0.2,width=0.4,color="black",URL="$User_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node13 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Value.h",height=0.2,width=0.4,color="red",URL="$Value_8h.html"];
+  Node27 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node9 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Instruction.h",height=0.2,width=0.4,color="black",URL="$Instruction_8h.html"];
+  Node30 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node30 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Instruction.def",height=0.2,width=0.4,color="grey75"];
+  Node29 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/SymbolTableListTraits.h",height=0.2,width=0.4,color="red",URL="$SymbolTableListTraits_8h.html"];
+  Node29 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node35 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Argument.h",height=0.2,width=0.4,color="black",URL="$Argument_8h.html"];
+  Node36 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="red",URL="$ArrayRef_8h.html"];
+  Node38 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="black",URL="$GlobalVariable_8h.html"];
+  Node39 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="black",URL="$OperandTraits_8h.html"];
+  Node40 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="black",URL="$GlobalAlias_8h.html"];
+  Node41 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Metadata.h",height=0.2,width=0.4,color="black",URL="$Metadata_8h.html"];
+  Node42 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ADT/FoldingSet.h",height=0.2,width=0.4,color="red",URL="$FoldingSet_8h.html"];
+  Node43 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node44 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="black",URL="$InstrTypes_8h.html"];
+  Node45 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Type.h",height=0.2,width=0.4,color="red",URL="$Type_8h.html"];
+  Node47 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node48 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+}

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

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

Added: www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,179 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="ProfileVerifierPass.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/Instructions.h",height=0.2,width=0.4,color="black",URL="$Instructions_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="black",URL="$InstrTypes_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Instruction.h",height=0.2,width=0.4,color="red",URL="$Instruction_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Instruction.def",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="red",URL="$OperandTraits_8h.html"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Type.h",height=0.2,width=0.4,color="red",URL="$Type_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="red",URL="$DataTypes_8h.html"];
+  Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="red",URL="$type__traits_8h.html"];
+  Node13 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="utility",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 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node17 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node20 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node2 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/IntegersSubset.h",height=0.2,width=0.4,color="red",URL="$IntegersSubset_8h.html"];
+  Node24 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/IntegersSubsetMapping.h",height=0.2,width=0.4,color="red",URL="$IntegersSubsetMapping_8h.html"];
+  Node25 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Module.h",height=0.2,width=0.4,color="black",URL="$Module_8h.html"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node28 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node29 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/GlobalVariable.h",height=0.2,width=0.4,color="red",URL="$GlobalVariable_8h.html"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/GlobalAlias.h",height=0.2,width=0.4,color="red",URL="$GlobalAlias_8h.html"];
+  Node31 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Metadata.h",height=0.2,width=0.4,color="red",URL="$Metadata_8h.html"];
+  Node32 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="red",URL="$OwningPtr_8h.html"];
+  Node33 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node34 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node35 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node36 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Analysis/ProfileInfo.h",height=0.2,width=0.4,color="black",URL="$ProfileInfo_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node37 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/Format.h",height=0.2,width=0.4,color="black",URL="$Format_8h.html"];
+  Node39 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node37 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node41 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/CommandLine.h",height=0.2,width=0.4,color="black",URL="$CommandLine_8h.html"];
+  Node43 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node43 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="cstdarg",height=0.2,width=0.4,color="grey75"];
+  Node43 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="black",URL="$CallSite_8h.html"];
+  Node46 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="red",URL="$PointerIntPair_8h.html"];
+  Node47 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="black",URL="$CFG_8h.html"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node48 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/InstIterator.h",height=0.2,width=0.4,color="black",URL="$InstIterator_8h.html"];
+  Node50 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfileVerifierPass_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,437 @@
+<!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: ProfileVerifierPass.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_59dd179f705c75b7b821c61754f4942c.html">Analysis</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">ProfileVerifierPass.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="ProfileVerifierPass_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- ProfileVerifierPass.cpp - LLVM Pass to estimate profile info -------===//</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 pass that checks profiling information for </span>
+<a name="l00011"></a>00011 <span class="comment">// plausibility.</span>
+<a name="l00012"></a>00012 <span class="comment">//</span>
+<a name="l00013"></a>00013 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00014"></a><a class="code" href="ProfileVerifierPass_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "profile-verifier"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="Instructions_8h.html">llvm/Instructions.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="Module_8h.html">llvm/Module.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="Pass_8h.html">llvm/Pass.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="ProfileInfo_8h.html">llvm/Analysis/ProfileInfo.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="CommandLine_8h.html">llvm/Support/CommandLine.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="CallSite_8h.html">llvm/Support/CallSite.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="CFG_8h.html">llvm/Support/CFG.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="InstIterator_8h.html">llvm/Support/InstIterator.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="Format_8h.html">llvm/Support/Format.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include <set></span>
+<a name="l00027"></a>00027 <span class="keyword">using namespace </span>llvm;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="keyword">static</span> <a class="code" href="classllvm_1_1cl_1_1opt.html">cl::opt<bool,false></a>
+<a name="l00030"></a>00030 <a class="code" href="ProfileVerifierPass_8cpp.html#aab231634c9ec7754e87e6ba7bd80a5b2">ProfileVerifierDisableAssertions</a>(<span class="stringliteral">"profile-verifier-noassert"</span>,
+<a name="l00031"></a>00031      <a class="code" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>(<span class="stringliteral">"Disable assertions"</span>));
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>{
+<a name="l00034"></a>00034   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00035"></a>00035   <span class="keyword">class </span>ProfileVerifierPassT : <span class="keyword">public</span> <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a> {
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037     <span class="keyword">struct </span>DetailedBlockInfo {
+<a name="l00038"></a>00038       <span class="keyword">const</span> BType *BB;
+<a name="l00039"></a>00039       <span class="keywordtype">double</span>      BBWeight;
+<a name="l00040"></a>00040       <span class="keywordtype">double</span>      inWeight;
+<a name="l00041"></a>00041       <span class="keywordtype">int</span>         inCount;
+<a name="l00042"></a>00042       <span class="keywordtype">double</span>      outWeight;
+<a name="l00043"></a>00043       <span class="keywordtype">int</span>         outCount;
+<a name="l00044"></a>00044     };
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046     <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType></a> *PI;
+<a name="l00047"></a>00047     std::set<const BType*> BBisVisited;
+<a name="l00048"></a>00048     std::set<const FType*>   FisVisited;
+<a name="l00049"></a>00049     <span class="keywordtype">bool</span> DisableAssertions;
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051     <span class="comment">// When debugging is enabled, the verifier prints a whole slew of debug</span>
+<a name="l00052"></a>00052     <span class="comment">// information, otherwise its just the assert. These are all the helper</span>
+<a name="l00053"></a>00053     <span class="comment">// functions.</span>
+<a name="l00054"></a>00054     <span class="keywordtype">bool</span> PrintedDebugTree;
+<a name="l00055"></a>00055     std::set<const BType*> BBisPrinted;
+<a name="l00056"></a>00056     <span class="keywordtype">void</span> debugEntry(DetailedBlockInfo*);
+<a name="l00057"></a>00057     <span class="keywordtype">void</span> printDebugInfo(<span class="keyword">const</span> BType *BB);
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059   <span class="keyword">public</span>:
+<a name="l00060"></a>00060     <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">// Class identification, replacement for typeinfo</span>
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="keyword">explicit</span> ProfileVerifierPassT () : <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="l00063"></a>00063       <a class="code" href="namespacellvm.html#a57be56f1e645fff688e491442f9d60dd">initializeProfileVerifierPassPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00064"></a>00064       DisableAssertions = <a class="code" href="ProfileVerifierPass_8cpp.html#aab231634c9ec7754e87e6ba7bd80a5b2">ProfileVerifierDisableAssertions</a>;
+<a name="l00065"></a>00065     }
+<a name="l00066"></a>00066     <span class="keyword">explicit</span> ProfileVerifierPassT (<span class="keywordtype">bool</span> <a class="code" href="DependenceAnalysis_8cpp.html#ab01abf84324066bdb4eed4d5bf20f887">da</a>) : <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="l00067"></a>00067                                               DisableAssertions(da) {
+<a name="l00068"></a>00068       <a class="code" href="namespacellvm.html#a57be56f1e645fff688e491442f9d60dd">initializeProfileVerifierPassPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00069"></a>00069     }
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071     <span class="keywordtype">void</span> getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU)<span class="keyword"> const </span>{
+<a name="l00072"></a>00072       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#af22b06a6a4f9df80454071685a0d6a02">setPreservesAll</a>();
+<a name="l00073"></a>00073       AU.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType></a> >();
+<a name="l00074"></a>00074     }
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076     <span class="keyword">const</span> <span class="keywordtype">char</span> *getPassName()<span class="keyword"> const </span>{
+<a name="l00077"></a>00077       <span class="keywordflow">return</span> <span class="stringliteral">"Profiling information verifier"</span>;
+<a name="l00078"></a>00078     }
+<a name="l00079"></a>00079 <span class="comment"></span>
+<a name="l00080"></a>00080 <span class="comment">    /// run - Verify the profile information.</span>
+<a name="l00081"></a>00081 <span class="comment"></span>    <span class="keywordtype">bool</span> runOnFunction(FType &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>);
+<a name="l00082"></a>00082     <span class="keywordtype">void</span> recurseBasicBlock(<span class="keyword">const</span> BType*);
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084     <span class="keywordtype">bool</span>   exitReachable(<span class="keyword">const</span> FType*);
+<a name="l00085"></a>00085     <span class="keywordtype">double</span> ReadOrAssert(<span class="keyword">typename</span> <a class="code" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfoT<FType, BType>::Edge</a>);
+<a name="l00086"></a>00086     <span class="keywordtype">void</span>   CheckValue(<span class="keywordtype">bool</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>*, DetailedBlockInfo*);
+<a name="l00087"></a>00087   };
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089   <span class="keyword">typedef</span> ProfileVerifierPassT<Function, BasicBlock> ProfileVerifierPass;
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00092"></a>00092   <span class="keywordtype">void</span> ProfileVerifierPassT<FType, BType>::printDebugInfo(<span class="keyword">const</span> BType *BB) {
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094     <span class="keywordflow">if</span> (BBisPrinted.find(BB) != BBisPrinted.end()) <span class="keywordflow">return</span>;
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     <span class="keywordtype">double</span> BBWeight = PI->getExecutionCount(BB);
+<a name="l00097"></a>00097     <span class="keywordflow">if</span> (BBWeight == <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>) { BBWeight = 0; }
+<a name="l00098"></a>00098     <span class="keywordtype">double</span> inWeight = 0;
+<a name="l00099"></a>00099     <span class="keywordtype">int</span> inCount = 0;
+<a name="l00100"></a>00100     std::set<const BType*> ProcessedPreds;
+<a name="l00101"></a>00101     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1PredIterator.html">const_pred_iterator</a> bbi = <a class="code" href="namespacellvm.html#a7e108932dc3da5294aed99a353aac9c4">pred_begin</a>(BB), bbe = <a class="code" href="namespacellvm.html#a5eeaf08e96168c2cac8960f87f0ef360">pred_end</a>(BB);
+<a name="l00102"></a>00102          bbi != bbe; ++bbi ) {
+<a name="l00103"></a>00103       <span class="keywordflow">if</span> (ProcessedPreds.insert(*bbi).second) {
+<a name="l00104"></a>00104         <span class="keyword">typename</span> <a class="code" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfoT<FType, BType>::Edge</a> E = PI->getEdge(*bbi,BB);
+<a name="l00105"></a>00105         <span class="keywordtype">double</span> EdgeWeight = PI->getEdgeWeight(E);
+<a name="l00106"></a>00106         <span class="keywordflow">if</span> (EdgeWeight == <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>) { EdgeWeight = 0; }
+<a name="l00107"></a>00107         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"calculated in-edge "</span> << E << <span class="stringliteral">": "</span> 
+<a name="l00108"></a>00108                << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,EdgeWeight) << <span class="stringliteral">"\n"</span>;
+<a name="l00109"></a>00109         inWeight += EdgeWeight;
+<a name="l00110"></a>00110         inCount++;
+<a name="l00111"></a>00111       }
+<a name="l00112"></a>00112     }
+<a name="l00113"></a>00113     <span class="keywordtype">double</span> outWeight = 0;
+<a name="l00114"></a>00114     <span class="keywordtype">int</span> outCount = 0;
+<a name="l00115"></a>00115     std::set<const BType*> ProcessedSuccs;
+<a name="l00116"></a>00116     <span class="keywordflow">for</span> ( <a class="code" href="classllvm_1_1SuccIterator.html">succ_const_iterator</a> bbi = <a class="code" href="namespacellvm.html#a3720211f6e6389ab53734b989bfb6fce">succ_begin</a>(BB), bbe = <a class="code" href="namespacellvm.html#a069c4ae2290101bde0f8d6a5074dc72b">succ_end</a>(BB);
+<a name="l00117"></a>00117           bbi != bbe; ++bbi ) {
+<a name="l00118"></a>00118       <span class="keywordflow">if</span> (ProcessedSuccs.insert(*bbi).second) {
+<a name="l00119"></a>00119         <span class="keyword">typename</span> <a class="code" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfoT<FType, BType>::Edge</a> E = PI-><a class="code" href="classllvm_1_1ProfileInfoT.html#acbf90c4057b6a3f0046feb6734663b70">getEdge</a>(BB,*bbi);
+<a name="l00120"></a>00120         <span class="keywordtype">double</span> EdgeWeight = PI->getEdgeWeight(E);
+<a name="l00121"></a>00121         <span class="keywordflow">if</span> (EdgeWeight == <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>) { EdgeWeight = 0; }
+<a name="l00122"></a>00122         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"calculated out-edge "</span> << E << <span class="stringliteral">": "</span> 
+<a name="l00123"></a>00123                << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,EdgeWeight) << <span class="stringliteral">"\n"</span>;
+<a name="l00124"></a>00124         outWeight += EdgeWeight;
+<a name="l00125"></a>00125         outCount++;
+<a name="l00126"></a>00126       }
+<a name="l00127"></a>00127     }
+<a name="l00128"></a>00128     <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Block "</span> << BB->getName()                   << <span class="stringliteral">" in "</span>
+<a name="l00129"></a>00129            << BB->getParent()->getName()                  << <span class="stringliteral">":"</span>
+<a name="l00130"></a>00130            << <span class="stringliteral">"BBWeight="</span>  << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,BBWeight)  << <span class="stringliteral">","</span>
+<a name="l00131"></a>00131            << <span class="stringliteral">"inWeight="</span>  << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,inWeight)  << <span class="stringliteral">","</span>
+<a name="l00132"></a>00132            << <span class="stringliteral">"inCount="</span>   << inCount                     << <span class="stringliteral">","</span>
+<a name="l00133"></a>00133            << <span class="stringliteral">"outWeight="</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,outWeight) << <span class="stringliteral">","</span>
+<a name="l00134"></a>00134            << <span class="stringliteral">"outCount"</span>   << outCount                    << <span class="stringliteral">"\n"</span>;
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136     <span class="comment">// mark as visited and recurse into subnodes</span>
+<a name="l00137"></a>00137     BBisPrinted.insert(BB);
+<a name="l00138"></a>00138     <span class="keywordflow">for</span> ( <a class="code" href="classllvm_1_1SuccIterator.html">succ_const_iterator</a> bbi = <a class="code" href="namespacellvm.html#a3720211f6e6389ab53734b989bfb6fce">succ_begin</a>(BB), bbe = <a class="code" href="namespacellvm.html#a069c4ae2290101bde0f8d6a5074dc72b">succ_end</a>(BB); 
+<a name="l00139"></a>00139           bbi != bbe; ++bbi ) {
+<a name="l00140"></a>00140       printDebugInfo(*bbi);
+<a name="l00141"></a>00141     }
+<a name="l00142"></a>00142   }
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00145"></a>00145   <span class="keywordtype">void</span> ProfileVerifierPassT<FType, BType>::debugEntry (DetailedBlockInfo *DI) {
+<a name="l00146"></a>00146     <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"TROUBLE: Block "</span> << DI->BB->getName()          << <span class="stringliteral">" in "</span>
+<a name="l00147"></a>00147            << DI->BB->getParent()->getName()                  << <span class="stringliteral">":"</span>
+<a name="l00148"></a>00148            << <span class="stringliteral">"BBWeight="</span>  << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,DI->BBWeight)  << <span class="stringliteral">","</span>
+<a name="l00149"></a>00149            << <span class="stringliteral">"inWeight="</span>  << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,DI->inWeight)  << <span class="stringliteral">","</span>
+<a name="l00150"></a>00150            << <span class="stringliteral">"inCount="</span>   << DI->inCount                     << <span class="stringliteral">","</span>
+<a name="l00151"></a>00151            << <span class="stringliteral">"outWeight="</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%20.20g"</span>,DI->outWeight) << <span class="stringliteral">","</span>
+<a name="l00152"></a>00152            << <span class="stringliteral">"outCount="</span>  << DI->outCount                    << <span class="stringliteral">"\n"</span>;
+<a name="l00153"></a>00153     <span class="keywordflow">if</span> (!PrintedDebugTree) {
+<a name="l00154"></a>00154       PrintedDebugTree = <span class="keyword">true</span>;
+<a name="l00155"></a>00155       printDebugInfo(&(DI->BB->getParent()->getEntryBlock()));
+<a name="l00156"></a>00156     }
+<a name="l00157"></a>00157   }
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159   <span class="comment">// This compares A and B for equality.</span>
+<a name="l00160"></a>00160   <span class="keyword">static</span> <span class="keywordtype">bool</span> Equals(<span class="keywordtype">double</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11bad9577456b5bb7a03b7f42a710e122ab5">A</a>, <span class="keywordtype">double</span> B) {
+<a name="l00161"></a>00161     <span class="keywordflow">return</span> A == B;
+<a name="l00162"></a>00162   }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164   <span class="comment">// This checks if the function "exit" is reachable from an given function</span>
+<a name="l00165"></a>00165   <span class="comment">// via calls, this is necessary to check if a profile is valid despite the</span>
+<a name="l00166"></a>00166   <span class="comment">// counts not fitting exactly.</span>
+<a name="l00167"></a>00167   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00168"></a>00168   <span class="keywordtype">bool</span> ProfileVerifierPassT<FType, BType>::exitReachable(<span class="keyword">const</span> FType *<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>) {
+<a name="l00169"></a>00169     <span class="keywordflow">if</span> (!F) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171     <span class="keywordflow">if</span> (FisVisited.count(F)) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00172"></a>00172 
+<a name="l00173"></a>00173     FType *Exit = F->getParent()->getFunction(<span class="stringliteral">"exit"</span>);
+<a name="l00174"></a>00174     <span class="keywordflow">if</span> (Exit == F) {
+<a name="l00175"></a>00175       <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00176"></a>00176     }
+<a name="l00177"></a>00177 
+<a name="l00178"></a>00178     FisVisited.insert(F);
+<a name="l00179"></a>00179     <span class="keywordtype">bool</span> exits = <span class="keyword">false</span>;
+<a name="l00180"></a>00180     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1InstIterator.html">const_inst_iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="namespacellvm.html#a49a219f3fe3d7a6cc07c49a1ea766d6d">inst_begin</a>(F), E = <a class="code" href="namespacellvm.html#a945cded5463e0ccd3cf5a6ac80542a94">inst_end</a>(F); <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="l00181"></a>00181       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallInst.html">CallInst</a> *CI = dyn_cast<CallInst>(&*<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>)) {
+<a name="l00182"></a>00182         FType *F = CI->getCalledFunction();
+<a name="l00183"></a>00183         <span class="keywordflow">if</span> (F) {
+<a name="l00184"></a>00184           exits |= exitReachable(F);
+<a name="l00185"></a>00185         } <span class="keywordflow">else</span> {
+<a name="l00186"></a>00186           <span class="comment">// This is a call to a pointer, all bets are off...</span>
+<a name="l00187"></a>00187           exits = <span class="keyword">true</span>;
+<a name="l00188"></a>00188         }
+<a name="l00189"></a>00189         <span class="keywordflow">if</span> (exits) <span class="keywordflow">break</span>;
+<a name="l00190"></a>00190       }
+<a name="l00191"></a>00191     }
+<a name="l00192"></a>00192     <span class="keywordflow">return</span> exits;
+<a name="l00193"></a>00193   }
+<a name="l00194"></a>00194 
+<a name="l00195"></a><a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">00195</a> <span class="preprocessor">  #define ASSERTMESSAGE(M) \</span>
+<a name="l00196"></a>00196 <span class="preprocessor">    { dbgs() << "ASSERT:" << (M) << "\n"; \</span>
+<a name="l00197"></a>00197 <span class="preprocessor">      if (!DisableAssertions) assert(0 && (M)); }</span>
+<a name="l00198"></a>00198 <span class="preprocessor"></span>
+<a name="l00199"></a>00199   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00200"></a>00200   <span class="keywordtype">double</span> ProfileVerifierPassT<FType, BType>::ReadOrAssert(<span class="keyword">typename</span> <a class="code" href="classllvm_1_1ProfileInfoT.html#aee0d9f6908ece0158b2b2441a03aae77">ProfileInfoT<FType, BType>::Edge</a> E) {
+<a name="l00201"></a>00201     <span class="keywordtype">double</span> EdgeWeight = PI->getEdgeWeight(E);
+<a name="l00202"></a>00202     <span class="keywordflow">if</span> (EdgeWeight == <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>) {
+<a name="l00203"></a>00203       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Edge "</span> << E << <span class="stringliteral">" in Function "</span> 
+<a name="l00204"></a>00204              << <a class="code" href="classllvm_1_1ProfileInfoT.html#ae7c6ad8dd39e15de2513e1908dc04e5c">ProfileInfoT<FType, BType>::getFunction</a>(E)->getName() << <span class="stringliteral">": "</span>;
+<a name="l00205"></a>00205       <a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">ASSERTMESSAGE</a>(<span class="stringliteral">"Edge has missing value"</span>);
+<a name="l00206"></a>00206       <span class="keywordflow">return</span> 0;
+<a name="l00207"></a>00207     } <span class="keywordflow">else</span> {
+<a name="l00208"></a>00208       <span class="keywordflow">if</span> (EdgeWeight < 0) {
+<a name="l00209"></a>00209         <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Edge "</span> << E << <span class="stringliteral">" in Function "</span> 
+<a name="l00210"></a>00210                << <a class="code" href="classllvm_1_1ProfileInfoT.html#ae7c6ad8dd39e15de2513e1908dc04e5c">ProfileInfoT<FType, BType>::getFunction</a>(E)->getName() << <span class="stringliteral">": "</span>;
+<a name="l00211"></a>00211         <a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">ASSERTMESSAGE</a>(<span class="stringliteral">"Edge has negative value"</span>);
+<a name="l00212"></a>00212       }
+<a name="l00213"></a>00213       <span class="keywordflow">return</span> EdgeWeight;
+<a name="l00214"></a>00214     }
+<a name="l00215"></a>00215   }
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00218"></a>00218   <span class="keywordtype">void</span> ProfileVerifierPassT<FType, BType>::CheckValue(<span class="keywordtype">bool</span> <a class="code" href="namespacellvm_1_1lltok.html#af353621f14cb4b4b3af5ffaff84076b1a3766a4dce43f4efc7208a749cc7ac605">Error</a>, 
+<a name="l00219"></a>00219                                                       <span class="keyword">const</span> <span class="keywordtype">char</span> *Message,
+<a name="l00220"></a>00220                                                       DetailedBlockInfo *DI) {
+<a name="l00221"></a>00221     <span class="keywordflow">if</span> (Error) {
+<a name="l00222"></a>00222       <a class="code" href="Debug_8h.html#aef41e8aaf4c60819b30faf396cdf4978">DEBUG</a>(debugEntry(DI));
+<a name="l00223"></a>00223       <a class="code" href="namespacellvm.html#a7c46c742c31be54870e2038048e6b391" title="dbgs - Return a circular-buffered debug stream.">dbgs</a>() << <span class="stringliteral">"Block "</span> << DI->BB->getName() << <span class="stringliteral">" in Function "</span>
+<a name="l00224"></a>00224              << DI->BB->getParent()->getName() << <span class="stringliteral">": "</span>;
+<a name="l00225"></a>00225       <a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">ASSERTMESSAGE</a>(Message);
+<a name="l00226"></a>00226     }
+<a name="l00227"></a>00227     <span class="keywordflow">return</span>;
+<a name="l00228"></a>00228   }
+<a name="l00229"></a>00229 
+<a name="l00230"></a>00230   <span class="comment">// This calculates the Information for a block and then recurses into the</span>
+<a name="l00231"></a>00231   <span class="comment">// successors.</span>
+<a name="l00232"></a>00232   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00233"></a>00233   <span class="keywordtype">void</span> ProfileVerifierPassT<FType, BType>::recurseBasicBlock(<span class="keyword">const</span> BType *BB) {
+<a name="l00234"></a>00234 
+<a name="l00235"></a>00235     <span class="comment">// Break the recursion by remembering all visited blocks.</span>
+<a name="l00236"></a>00236     <span class="keywordflow">if</span> (BBisVisited.find(BB) != BBisVisited.end()) <span class="keywordflow">return</span>;
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238     <span class="comment">// Use a data structure to store all the information, this can then be handed</span>
+<a name="l00239"></a>00239     <span class="comment">// to debug printers.</span>
+<a name="l00240"></a>00240     DetailedBlockInfo DI;
+<a name="l00241"></a>00241     DI.BB = BB;
+<a name="l00242"></a>00242     DI.outCount = DI.inCount = 0;
+<a name="l00243"></a>00243     DI.inWeight = DI.outWeight = 0;
+<a name="l00244"></a>00244 
+<a name="l00245"></a>00245     <span class="comment">// Read predecessors.</span>
+<a name="l00246"></a>00246     std::set<const BType*> ProcessedPreds;
+<a name="l00247"></a>00247     <a class="code" href="classllvm_1_1PredIterator.html">const_pred_iterator</a> bpi = <a class="code" href="namespacellvm.html#a7e108932dc3da5294aed99a353aac9c4">pred_begin</a>(BB), bpe = <a class="code" href="namespacellvm.html#a5eeaf08e96168c2cac8960f87f0ef360">pred_end</a>(BB);
+<a name="l00248"></a>00248     <span class="comment">// If there are none, check for (0,BB) edge.</span>
+<a name="l00249"></a>00249     <span class="keywordflow">if</span> (bpi == bpe) {
+<a name="l00250"></a>00250       DI.inWeight += ReadOrAssert(PI->getEdge(0,BB));
+<a name="l00251"></a>00251       DI.inCount++;
+<a name="l00252"></a>00252     }
+<a name="l00253"></a>00253     <span class="keywordflow">for</span> (;bpi != bpe; ++bpi) {
+<a name="l00254"></a>00254       <span class="keywordflow">if</span> (ProcessedPreds.insert(*bpi).second) {
+<a name="l00255"></a>00255         DI.inWeight += ReadOrAssert(PI->getEdge(*bpi,BB));
+<a name="l00256"></a>00256         DI.inCount++;
+<a name="l00257"></a>00257       }
+<a name="l00258"></a>00258     }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260     <span class="comment">// Read successors.</span>
+<a name="l00261"></a>00261     std::set<const BType*> ProcessedSuccs;
+<a name="l00262"></a>00262     <a class="code" href="classllvm_1_1SuccIterator.html">succ_const_iterator</a> bbi = <a class="code" href="namespacellvm.html#a3720211f6e6389ab53734b989bfb6fce">succ_begin</a>(BB), bbe = <a class="code" href="namespacellvm.html#a069c4ae2290101bde0f8d6a5074dc72b">succ_end</a>(BB);
+<a name="l00263"></a>00263     <span class="comment">// If there is an (0,BB) edge, consider it too. (This is done not only when</span>
+<a name="l00264"></a>00264     <span class="comment">// there are no successors, but every time; not every function contains</span>
+<a name="l00265"></a>00265     <span class="comment">// return blocks with no successors (think loop latch as return block)).</span>
+<a name="l00266"></a>00266     <span class="keywordtype">double</span> w = PI->getEdgeWeight(PI->getEdge(BB,0));
+<a name="l00267"></a>00267     <span class="keywordflow">if</span> (w != <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>) {
+<a name="l00268"></a>00268       DI.outWeight += w;
+<a name="l00269"></a>00269       DI.outCount++;
+<a name="l00270"></a>00270     }
+<a name="l00271"></a>00271     <span class="keywordflow">for</span> (;bbi != bbe; ++bbi) {
+<a name="l00272"></a>00272       <span class="keywordflow">if</span> (ProcessedSuccs.insert(*bbi).second) {
+<a name="l00273"></a>00273         DI.outWeight += ReadOrAssert(PI->getEdge(BB,*bbi));
+<a name="l00274"></a>00274         DI.outCount++;
+<a name="l00275"></a>00275       }
+<a name="l00276"></a>00276     }
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278     <span class="comment">// Read block weight.</span>
+<a name="l00279"></a>00279     DI.BBWeight = PI->getExecutionCount(BB);
+<a name="l00280"></a>00280     CheckValue(DI.BBWeight == <a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfoT<FType, BType>::MissingValue</a>,
+<a name="l00281"></a>00281                <span class="stringliteral">"BasicBlock has missing value"</span>, &DI);
+<a name="l00282"></a>00282     CheckValue(DI.BBWeight < 0,
+<a name="l00283"></a>00283                <span class="stringliteral">"BasicBlock has negative value"</span>, &DI);
+<a name="l00284"></a>00284 
+<a name="l00285"></a>00285     <span class="comment">// Check if this block is a setjmp target.</span>
+<a name="l00286"></a>00286     <span class="keywordtype">bool</span> isSetJmpTarget = <span class="keyword">false</span>;
+<a name="l00287"></a>00287     <span class="keywordflow">if</span> (DI.outWeight > DI.inWeight) {
+<a name="l00288"></a>00288       <span class="keywordflow">for</span> (<span class="keyword">typename</span> BType::const_iterator i = BB->begin(), ie = BB->end();
+<a name="l00289"></a>00289            i != ie; ++i) {
+<a name="l00290"></a>00290         <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallInst.html">CallInst</a> *CI = dyn_cast<CallInst>(&*i)) {
+<a name="l00291"></a>00291           FType *F = CI->getCalledFunction();
+<a name="l00292"></a>00292           <span class="keywordflow">if</span> (F && (F->getName() == <span class="stringliteral">"_setjmp"</span>)) {
+<a name="l00293"></a>00293             isSetJmpTarget = <span class="keyword">true</span>; <span class="keywordflow">break</span>;
+<a name="l00294"></a>00294           }
+<a name="l00295"></a>00295         }
+<a name="l00296"></a>00296       }
+<a name="l00297"></a>00297     }
+<a name="l00298"></a>00298     <span class="comment">// Check if this block is eventually reaching exit.</span>
+<a name="l00299"></a>00299     <span class="keywordtype">bool</span> isExitReachable = <span class="keyword">false</span>;
+<a name="l00300"></a>00300     <span class="keywordflow">if</span> (DI.inWeight > DI.outWeight) {
+<a name="l00301"></a>00301       <span class="keywordflow">for</span> (<span class="keyword">typename</span> BType::const_iterator i = BB->begin(), ie = BB->end();
+<a name="l00302"></a>00302            i != ie; ++i) {
+<a name="l00303"></a>00303         <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1CallInst.html">CallInst</a> *CI = dyn_cast<CallInst>(&*i)) {
+<a name="l00304"></a>00304           FType *F = CI->getCalledFunction();
+<a name="l00305"></a>00305           <span class="keywordflow">if</span> (F) {
+<a name="l00306"></a>00306             FisVisited.clear();
+<a name="l00307"></a>00307             isExitReachable |= exitReachable(F);
+<a name="l00308"></a>00308           } <span class="keywordflow">else</span> {
+<a name="l00309"></a>00309             <span class="comment">// This is a call to a pointer, all bets are off...</span>
+<a name="l00310"></a>00310             isExitReachable = <span class="keyword">true</span>;
+<a name="l00311"></a>00311           }
+<a name="l00312"></a>00312           <span class="keywordflow">if</span> (isExitReachable) <span class="keywordflow">break</span>;
+<a name="l00313"></a>00313         }
+<a name="l00314"></a>00314       }
+<a name="l00315"></a>00315     }
+<a name="l00316"></a>00316 
+<a name="l00317"></a>00317     <span class="keywordflow">if</span> (DI.inCount > 0 && DI.outCount == 0) {
+<a name="l00318"></a>00318        <span class="comment">// If this is a block with no successors.</span>
+<a name="l00319"></a>00319       <span class="keywordflow">if</span> (!isSetJmpTarget) {
+<a name="l00320"></a>00320         CheckValue(!Equals(DI.inWeight,DI.BBWeight), 
+<a name="l00321"></a>00321                    <span class="stringliteral">"inWeight and BBWeight do not match"</span>, &DI);
+<a name="l00322"></a>00322       }
+<a name="l00323"></a>00323     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (DI.inCount == 0 && DI.outCount > 0) {
+<a name="l00324"></a>00324       <span class="comment">// If this is a block with no predecessors.</span>
+<a name="l00325"></a>00325       <span class="keywordflow">if</span> (!isExitReachable)
+<a name="l00326"></a>00326         CheckValue(!Equals(DI.BBWeight,DI.outWeight), 
+<a name="l00327"></a>00327                    <span class="stringliteral">"BBWeight and outWeight do not match"</span>, &DI);
+<a name="l00328"></a>00328     } <span class="keywordflow">else</span> {
+<a name="l00329"></a>00329       <span class="comment">// If this block has successors and predecessors.</span>
+<a name="l00330"></a>00330       <span class="keywordflow">if</span> (DI.inWeight > DI.outWeight && !isExitReachable)
+<a name="l00331"></a>00331         CheckValue(!Equals(DI.inWeight,DI.outWeight), 
+<a name="l00332"></a>00332                    <span class="stringliteral">"inWeight and outWeight do not match"</span>, &DI);
+<a name="l00333"></a>00333       <span class="keywordflow">if</span> (DI.inWeight < DI.outWeight && !isSetJmpTarget)
+<a name="l00334"></a>00334         CheckValue(!Equals(DI.inWeight,DI.outWeight), 
+<a name="l00335"></a>00335                    <span class="stringliteral">"inWeight and outWeight do not match"</span>, &DI);
+<a name="l00336"></a>00336     }
+<a name="l00337"></a>00337 
+<a name="l00338"></a>00338 
+<a name="l00339"></a>00339     <span class="comment">// Mark this block as visited, rescurse into successors.</span>
+<a name="l00340"></a>00340     BBisVisited.insert(BB);
+<a name="l00341"></a>00341     <span class="keywordflow">for</span> ( <a class="code" href="classllvm_1_1SuccIterator.html">succ_const_iterator</a> bbi = <a class="code" href="namespacellvm.html#a3720211f6e6389ab53734b989bfb6fce">succ_begin</a>(BB), bbe = <a class="code" href="namespacellvm.html#a069c4ae2290101bde0f8d6a5074dc72b">succ_end</a>(BB); 
+<a name="l00342"></a>00342           bbi != bbe; ++bbi ) {
+<a name="l00343"></a>00343       recurseBasicBlock(*bbi);
+<a name="l00344"></a>00344     }
+<a name="l00345"></a>00345   }
+<a name="l00346"></a>00346 
+<a name="l00347"></a>00347   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00348"></a>00348   <span class="keywordtype">bool</span> ProfileVerifierPassT<FType, BType>::runOnFunction(FType &F) {
+<a name="l00349"></a>00349     PI = getAnalysisIfAvailable<ProfileInfoT<FType, BType> >();
+<a name="l00350"></a>00350     <span class="keywordflow">if</span> (!PI)
+<a name="l00351"></a>00351       <a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">ASSERTMESSAGE</a>(<span class="stringliteral">"No ProfileInfo available"</span>);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353     <span class="comment">// Prepare global variables.</span>
+<a name="l00354"></a>00354     PrintedDebugTree = <span class="keyword">false</span>;
+<a name="l00355"></a>00355     BBisVisited.clear();
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357     <span class="comment">// Fetch entry block and recurse into it.</span>
+<a name="l00358"></a>00358     <span class="keyword">const</span> BType *entry = &F.getEntryBlock();
+<a name="l00359"></a>00359     recurseBasicBlock(entry);
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361     <span class="keywordflow">if</span> (PI->getExecutionCount(&F) != PI->getExecutionCount(entry))
+<a name="l00362"></a>00362       <a class="code" href="ProfileVerifierPass_8cpp.html#abae00b53b5da02df3d09e5079e4cc9f6">ASSERTMESSAGE</a>(<span class="stringliteral">"Function count and entry block count do not match"</span>);
+<a name="l00363"></a>00363 
+<a name="l00364"></a>00364     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00365"></a>00365   }
+<a name="l00366"></a>00366 
+<a name="l00367"></a>00367   <span class="keyword">template</span><<span class="keyword">class</span> FType, <span class="keyword">class</span> BType>
+<a name="l00368"></a>00368   <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ProfileVerifierPassT<FType, BType>::ID</a> = 0;
+<a name="l00369"></a>00369 }
+<a name="l00370"></a>00370 
+<a name="l00371"></a>00371 <a class="code" href="PassSupport_8h.html#aaa970fc931c1c63037a8182e028d04b1">INITIALIZE_PASS_BEGIN</a>(ProfileVerifierPass, <span class="stringliteral">"profile-verifier"</span>,
+<a name="l00372"></a>00372                 <span class="stringliteral">"Verify profiling information"</span>, <span class="keyword">false</span>, <span class="keyword">true</span>)
+<a name="l00373"></a>00373 <a class="code" href="PassSupport_8h.html#af0564bcdde2dd4400c670ca278c6035f">INITIALIZE_AG_DEPENDENCY</a>(<a class="code" href="classllvm_1_1ProfileInfoT.html">ProfileInfo</a>)
+<a name="l00374"></a><a class="code" href="ProfileVerifierPass_8cpp.html#a09ecaac495d3274ec234f050529d1abf">00374</a> <a class="code" href="PassSupport_8h.html#a74ce8276b89067e806f67c45a6d92575">INITIALIZE_PASS_END</a>(ProfileVerifierPass, "profile-<a class="code" href="ProfileVerifierPass_8cpp.html#a09ecaac495d3274ec234f050529d1abf">verifier</a>",
+<a name="l00375"></a>00375                 "Verify <a class="code" href="OptimalEdgeProfiling_8cpp.html#aac58221950f8f8d59b90a816a148e890">profiling</a> <a class="code" href="ProfileEstimatorPass_8cpp.html#abea79cccb5914eafef3bd88ce1829f87">information</a>", <a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>, <a class="code" href="BasicAliasAnalysis_8cpp.html#a80603f23207dd836075c078e6264204a">true</a>)
+<a name="l00376"></a>00376 
+<a name="l00377"></a>00377 namespace llvm {
+<a name="l00378"></a><a class="code" href="namespacellvm.html#ac9ed5596c75df2e3a3a771dbe6e3ac72">00378</a>   <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a> *<a class="code" href="namespacellvm.html#ac9ed5596c75df2e3a3a771dbe6e3ac72">createProfileVerifierPass</a>() {
+<a name="l00379"></a>00379     <span class="keywordflow">return</span> <span class="keyword">new</span> ProfileVerifierPass(<a class="code" href="ProfileVerifierPass_8cpp.html#aab231634c9ec7754e87e6ba7bd80a5b2">ProfileVerifierDisableAssertions</a>); 
+<a name="l00380"></a>00380   }
+<a name="l00381"></a>00381 }
+<a name="l00382"></a>00382 
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:00 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/ProfilingUtils_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ProfilingUtils_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ProfilingUtils_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ProfilingUtils_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+71ad4c9dc06d541cfec3490426335a09
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/Program_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Program_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Program_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Program_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,23 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="Program.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="LinkAllVMCore.h",height=0.2,width=0.4,color="black",URL="$LinkAllVMCore_8h.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="BitcodeWriter.cpp",height=0.2,width=0.4,color="black",URL="$BitcodeWriter_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="DataStream.cpp",height=0.2,width=0.4,color="black",URL="$DataStream_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="GraphWriter.cpp",height=0.2,width=0.4,color="black",URL="$GraphWriter_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="MemoryBuffer.cpp",height=0.2,width=0.4,color="black",URL="$MemoryBuffer_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="Program.cpp",height=0.2,width=0.4,color="black",URL="$Program_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="raw_ostream.cpp",height=0.2,width=0.4,color="black",URL="$raw__ostream_8cpp.html"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="SystemUtils.cpp",height=0.2,width=0.4,color="black",URL="$SystemUtils_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/Program_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Program_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Program_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Program_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,87 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="Program.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/Path.h",height=0.2,width=0.4,color="black",URL="$Path_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Support/PathV1.h",height=0.2,width=0.4,color="black",URL="$PathV1_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Support/TimeValue.h",height=0.2,width=0.4,color="black",URL="$TimeValue_8h.html"];
+  Node19 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/PathV2.h",height=0.2,width=0.4,color="black",URL="$PathV2_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/SmallString.h",height=0.2,width=0.4,color="black",URL="$SmallString_8h.html"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node25 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node24 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node24 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node23 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node29 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node30 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,346 @@
+<!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: PrologEpilogInserter.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="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">PrologEpilogInserter.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="PrologEpilogInserter_8h_source.html">PrologEpilogInserter.h</a>"</code><br/>
+<code>#include "<a class="el" href="InlineAsm_8h_source.html">llvm/InlineAsm.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineDominators_8h_source.html">llvm/CodeGen/MachineDominators.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineLoopInfo_8h_source.html">llvm/CodeGen/MachineLoopInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.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="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="RegisterScavenging_8h_source.html">llvm/CodeGen/RegisterScavenging.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetOptions_8h_source.html">llvm/Target/TargetOptions.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetFrameLowering_8h_source.html">llvm/Target/TargetFrameLowering.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetInstrInfo_8h_source.html">llvm/Target/TargetInstrInfo.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="Compiler_8h_source.html">llvm/Support/Compiler.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="IndexedMap_8h_source.html">llvm/ADT/IndexedMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallSet_8h_source.html">llvm/ADT/SmallSet.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="STLExtras_8h_source.html">llvm/ADT/STLExtras.h</a>"</code><br/>
+<code>#include <climits></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for PrologEpilogInserter.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="PrologEpilogInserter_8cpp__incl.png" border="0" usemap="#PrologEpilogInserter_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="PrologEpilogInserter_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="PrologEpilogInserter_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "pei"</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="PrologEpilogInserter_8cpp.html#a7b8c14792c227b82f5387c9444102ac6">INITIALIZE_PASS_BEGIN</a> (<a class="el" href="classllvm_1_1PEI.html">PEI</a>,"prologepilog","Prologue/Epilogue Insertion", false, <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a>) INITIALIZE_PASS_END(<a class="el" href="classllvm_1_1PEI.html">PEI</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Prologue Epilogue Insertion <br class="typebreak"/>
+&Frame <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#a1c0a91a2a633a4bf1b44099983fe4dcf">STATISTIC</a> (NumVirtualFrameRegs,"Number of virtual frame regs encountered")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#a6e7c3dc71867a082f26f897d3fb300a9">STATISTIC</a> (NumScavengedRegs,"Number of frame index regs scavenged")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#a8f83096a95716fc82f20e1556ed9834d">STATISTIC</a> (NumBytesStackSpace,"Number of bytes used for stack in all <a class="el" href="LoopExtractor_8cpp.html#ac6229e61e0214888a5ad66ac60cb36ec">functions</a>")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#a1ab21d9615f20889f7e34e7eae8a2ea1">AdjustStackOffset</a> (<a class="el" href="classllvm_1_1MachineFrameInfo.html">MachineFrameInfo</a> *MFI, int FrameIdx, <a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> StackGrowsDown, <a class="el" href="classint64__t.html">int64_t</a> &Offset, <a class="el" href="classunsigned.html">unsigned</a> &MaxAlign)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">AdjustStackOffset - Helper function used to adjust the stack frame offset.  <a href="#a1ab21d9615f20889f7e34e7eae8a2ea1"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#ac55953cf32bd1682b14074e3c5c0b301">prologepilog</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Prologue Epilogue Insertion &Frame </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#abeeba0f33113492e53ff7aa9faebd9bd">Finalization</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">Prologue Epilogue Insertion &Frame </td><td class="memItemRight" valign="bottom"><a class="el" href="PrologEpilogInserter_8cpp.html#aa856fbc30a2892fd03f5d28ea98e5dec">false</a></td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="PrologEpilogInserter.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "pei"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="PrologEpilogInserter_8cpp_source.html#l00022">22</a> of file <a class="el" href="PrologEpilogInserter_8cpp_source.html">PrologEpilogInserter.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a1ab21d9615f20889f7e34e7eae8a2ea1"></a><!-- doxytag: member="PrologEpilogInserter.cpp::AdjustStackOffset" ref="a1ab21d9615f20889f7e34e7eae8a2ea1" args="(MachineFrameInfo *MFI, int FrameIdx, bool StackGrowsDown, int64_t &Offset, unsigned &MaxAlign)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static void AdjustStackOffset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1MachineFrameInfo.html">MachineFrameInfo</a> * </td>
+          <td class="paramname"><em>MFI</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>FrameIdx</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>StackGrowsDown</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classint64__t.html">int64_t</a> & </td>
+          <td class="paramname"><em>Offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classunsigned.html">unsigned</a> & </td>
+          <td class="paramname"><em>MaxAlign</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>AdjustStackOffset - Helper function used to adjust the stack frame offset. </p>
+
+<p>Definition at line <a class="el" href="PrologEpilogInserter_8cpp_source.html#l00462">462</a> of file <a class="el" href="PrologEpilogInserter_8cpp_source.html">PrologEpilogInserter.cpp</a>.</p>
+
+<p>References <a class="el" href="Debug_8cpp_source.html#l00101">llvm::dbgs()</a>, <a class="el" href="Debug_8h_source.html#l00097">DEBUG</a>, <a class="el" href="MachineFrameInfo_8h_source.html#l00357">llvm::MachineFrameInfo::getObjectAlignment()</a>, <a class="el" href="MachineFrameInfo_8h_source.html#l00343">llvm::MachineFrameInfo::getObjectSize()</a>, and <a class="el" href="MachineFrameInfo_8h_source.html#l00401">llvm::MachineFrameInfo::setObjectOffset()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b8c14792c227b82f5387c9444102ac6"></a><!-- doxytag: member="PrologEpilogInserter.cpp::INITIALIZE_PASS_BEGIN" ref="a7b8c14792c227b82f5387c9444102ac6" args="(PEI,"prologepilog","Prologue/Epilogue Insertion", false, false) INITIALIZE_PASS_END(PEI" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">INITIALIZE_PASS_BEGIN </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classllvm_1_1PEI.html">PEI</a> </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"prologepilog" </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Prologue/Epilogue Insertion" </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">
+
+</div>
+</div>
+<a class="anchor" id="a1c0a91a2a633a4bf1b44099983fe4dcf"></a><!-- doxytag: member="PrologEpilogInserter.cpp::STATISTIC" ref="a1c0a91a2a633a4bf1b44099983fe4dcf" args="(NumVirtualFrameRegs,"Number of virtual frame regs encountered")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Prologue Epilogue Insertion& Frame <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a> STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumVirtualFrameRegs </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of virtual frame regs encountered" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e7c3dc71867a082f26f897d3fb300a9"></a><!-- doxytag: member="PrologEpilogInserter.cpp::STATISTIC" ref="a6e7c3dc71867a082f26f897d3fb300a9" args="(NumScavengedRegs,"Number of frame index regs scavenged")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumScavengedRegs </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of frame index regs scavenged" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8f83096a95716fc82f20e1556ed9834d"></a><!-- doxytag: member="PrologEpilogInserter.cpp::STATISTIC" ref="a8f83096a95716fc82f20e1556ed9834d" args="(NumBytesStackSpace,"Number of bytes used for stack in all functions")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumBytesStackSpace </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of bytes used for stack in all <a class="el" href="LoopExtractor_8cpp.html#ac6229e61e0214888a5ad66ac60cb36ec">functions</a>" </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="aa856fbc30a2892fd03f5d28ea98e5dec"></a><!-- doxytag: member="PrologEpilogInserter.cpp::false" ref="aa856fbc30a2892fd03f5d28ea98e5dec" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Prologue Epilogue Insertion& Frame <a class="el" href="SimplifyInstructions_8cpp.html#a6dd713bd88673625bb181528a61bdc85">false</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="PrologEpilogInserter_8cpp_source.html#l00055">55</a> of file <a class="el" href="PrologEpilogInserter_8cpp_source.html">PrologEpilogInserter.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abeeba0f33113492e53ff7aa9faebd9bd"></a><!-- doxytag: member="PrologEpilogInserter.cpp::Finalization" ref="abeeba0f33113492e53ff7aa9faebd9bd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Prologue Epilogue Insertion& Frame <a class="el" href="PrologEpilogInserter_8cpp.html#abeeba0f33113492e53ff7aa9faebd9bd">Finalization</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="PrologEpilogInserter_8cpp_source.html#l00055">55</a> of file <a class="el" href="PrologEpilogInserter_8cpp_source.html">PrologEpilogInserter.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac55953cf32bd1682b14074e3c5c0b301"></a><!-- doxytag: member="PrologEpilogInserter.cpp::prologepilog" ref="ac55953cf32bd1682b14074e3c5c0b301" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="PrologEpilogInserter_8cpp.html#ac55953cf32bd1682b14074e3c5c0b301">prologepilog</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="PrologEpilogInserter_8cpp_source.html#l00055">55</a> of file <a class="el" href="PrologEpilogInserter_8cpp_source.html">PrologEpilogInserter.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/PrologEpilogInserter_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+8de2e934ee88ca71cb89d1dc3e504f28
\ No newline at end of file

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

Added: www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PrologEpilogInserter_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,228 @@
+<!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: PrologEpilogInserter.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_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">PrologEpilogInserter.h</div>  </div>
+</div>
+<div class="contents">
+<a href="PrologEpilogInserter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- PrologEpilogInserter.h - Prolog/Epilog code insertion -*- 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 responsible for finalizing the functions frame layout, saving</span>
+<a name="l00011"></a>00011 <span class="comment">// callee saved registers, and for emitting prolog & epilog code for the</span>
+<a name="l00012"></a>00012 <span class="comment">// function.</span>
+<a name="l00013"></a>00013 <span class="comment">//</span>
+<a name="l00014"></a>00014 <span class="comment">// This pass must be run after register allocation.  After this pass is</span>
+<a name="l00015"></a>00015 <span class="comment">// executed, it is illegal to construct MO_FrameIndex operands.</span>
+<a name="l00016"></a>00016 <span class="comment">//</span>
+<a name="l00017"></a>00017 <span class="comment">// This pass also implements a shrink wrapping variant of prolog/epilog</span>
+<a name="l00018"></a>00018 <span class="comment">// insertion.</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">#ifndef LLVM_CODEGEN_PEI_H</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CODEGEN_PEI_H</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="CodeGen_2Passes_8h.html">llvm/CodeGen/Passes.h</a>"</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="MachineLoopInfo_8h.html">llvm/CodeGen/MachineLoopInfo.h</a>"</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="SparseBitVector_8h.html">llvm/ADT/SparseBitVector.h</a>"</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="TargetRegisterInfo_8h.html">llvm/Target/TargetRegisterInfo.h</a>"</span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="keyword">namespace </span>llvm {
+<a name="l00033"></a>00033   <span class="keyword">class </span>RegScavenger;
+<a name="l00034"></a>00034   <span class="keyword">class </span>MachineBasicBlock;
+<a name="l00035"></a>00035 
+<a name="l00036"></a><a class="code" href="classllvm_1_1PEI.html">00036</a>   <span class="keyword">class </span><a class="code" href="classllvm_1_1PEI.html">PEI</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {
+<a name="l00037"></a>00037   <span class="keyword">public</span>:
+<a name="l00038"></a><a class="code" href="classllvm_1_1PEI.html#a38e1ce15fcd1135daa4fab9bb84c0cc4">00038</a>     <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="classllvm_1_1PEI.html#a38e1ce15fcd1135daa4fab9bb84c0cc4">ID</a>;
+<a name="l00039"></a><a class="code" href="classllvm_1_1PEI.html#a75bf24d671754cf01906167ca2fa1dba">00039</a>     <a class="code" href="classllvm_1_1PEI.html#a75bf24d671754cf01906167ca2fa1dba">PEI</a>() : <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a>(<a class="code" href="classllvm_1_1PEI.html#a38e1ce15fcd1135daa4fab9bb84c0cc4">ID</a>) {
+<a name="l00040"></a>00040       <a class="code" href="namespacellvm.html#aaef0ea1effecfe203f257fa7bdee195f">initializePEIPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00041"></a>00041     }
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1PEI.html#a7521af13efbed8ba7f13a634a3d4042c">getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &AU) <span class="keyword">const</span>;
+<a name="l00044"></a>00044 <span class="comment"></span>
+<a name="l00045"></a>00045 <span class="comment">    /// runOnMachineFunction - Insert prolog/epilog code and replace abstract</span>
+<a name="l00046"></a>00046 <span class="comment">    /// frame indexes with appropriate references.</span>
+<a name="l00047"></a>00047 <span class="comment">    ///</span>
+<a name="l00048"></a>00048 <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1PEI.html#a4c72d0ec2686460b5d080d434c81334e">runOnMachineFunction</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050   <span class="keyword">private</span>:
+<a name="l00051"></a>00051     <a class="code" href="classllvm_1_1RegScavenger.html">RegScavenger</a> *RS;
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     <span class="comment">// MinCSFrameIndex, MaxCSFrameIndex - Keeps the range of callee saved</span>
+<a name="l00054"></a>00054     <span class="comment">// stack frame indexes.</span>
+<a name="l00055"></a>00055     <span class="keywordtype">unsigned</span> MinCSFrameIndex, MaxCSFrameIndex;
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     <span class="comment">// Analysis info for spill/restore placement.</span>
+<a name="l00058"></a>00058     <span class="comment">// "CSR": "callee saved register".</span>
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060     <span class="comment">// CSRegSet contains indices into the Callee Saved Register Info</span>
+<a name="l00061"></a>00061     <span class="comment">// vector built by calculateCalleeSavedRegisters() and accessed</span>
+<a name="l00062"></a>00062     <span class="comment">// via MF.getFrameInfo()->getCalleeSavedInfo().</span>
+<a name="l00063"></a>00063     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SparseBitVector.html">SparseBitVector<></a> CSRegSet;
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <span class="comment">// CSRegBlockMap maps MachineBasicBlocks to sets of callee</span>
+<a name="l00066"></a>00066     <span class="comment">// saved register indices.</span>
+<a name="l00067"></a>00067     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineBasicBlock*, CSRegSet></a> CSRegBlockMap;
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069     <span class="comment">// Set and maps for computing CSR spill/restore placement:</span>
+<a name="l00070"></a>00070     <span class="comment">//  used in function (UsedCSRegs)</span>
+<a name="l00071"></a>00071     <span class="comment">//  used in a basic block (CSRUsed)</span>
+<a name="l00072"></a>00072     <span class="comment">//  anticipatable in a basic block (Antic{In,Out})</span>
+<a name="l00073"></a>00073     <span class="comment">//  available in a basic block (Avail{In,Out})</span>
+<a name="l00074"></a>00074     <span class="comment">//  to be spilled at the entry to a basic block (CSRSave)</span>
+<a name="l00075"></a>00075     <span class="comment">//  to be restored at the end of a basic block (CSRRestore)</span>
+<a name="l00076"></a>00076     CSRegSet UsedCSRegs;
+<a name="l00077"></a>00077     CSRegBlockMap CSRUsed;
+<a name="l00078"></a>00078     CSRegBlockMap AnticIn, AnticOut;
+<a name="l00079"></a>00079     CSRegBlockMap AvailIn, AvailOut;
+<a name="l00080"></a>00080     CSRegBlockMap CSRSave;
+<a name="l00081"></a>00081     CSRegBlockMap CSRRestore;
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     <span class="comment">// Entry and return blocks of the current function.</span>
+<a name="l00084"></a>00084     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* EntryBlock;
+<a name="l00085"></a>00085     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 4></a> ReturnBlocks;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     <span class="comment">// Map of MBBs to top level MachineLoops.</span>
+<a name="l00088"></a>00088     <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<MachineBasicBlock*, MachineLoop*></a> TLLoops;
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090     <span class="comment">// Flag to control shrink wrapping per-function:</span>
+<a name="l00091"></a>00091     <span class="comment">// may choose to skip shrink wrapping for certain</span>
+<a name="l00092"></a>00092     <span class="comment">// functions.</span>
+<a name="l00093"></a>00093     <span class="keywordtype">bool</span> ShrinkWrapThisFunction;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <span class="comment">// Flag to control whether to use the register scavenger to resolve</span>
+<a name="l00096"></a>00096     <span class="comment">// frame index materialization registers. Set according to</span>
+<a name="l00097"></a>00097     <span class="comment">// TRI->requiresFrameIndexScavenging() for the curren function.</span>
+<a name="l00098"></a>00098     <span class="keywordtype">bool</span> FrameIndexVirtualScavenging;
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span>    <span class="comment">// Machine function handle.</span>
+<a name="l00102"></a>00102     <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a>* MF;
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104     <span class="comment">// Flag indicating that the current function</span>
+<a name="l00105"></a>00105     <span class="comment">// has at least one "short" path in the machine</span>
+<a name="l00106"></a>00106     <span class="comment">// CFG from the entry block to an exit block.</span>
+<a name="l00107"></a>00107     <span class="keywordtype">bool</span> HasFastExitPath;
+<a name="l00108"></a>00108 <span class="preprocessor">#endif</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span>
+<a name="l00110"></a>00110     <span class="keywordtype">bool</span> calculateSets(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00111"></a>00111     <span class="keywordtype">bool</span> calcAnticInOut(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00112"></a>00112     <span class="keywordtype">bool</span> calcAvailInOut(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00113"></a>00113     <span class="keywordtype">void</span> calculateAnticAvail(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00114"></a>00114     <span class="keywordtype">bool</span> addUsesForMEMERegion(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB,
+<a name="l00115"></a>00115                               <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 4></a>& blks);
+<a name="l00116"></a>00116     <span class="keywordtype">bool</span> addUsesForTopLevelLoops(<a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 4></a>& blks);
+<a name="l00117"></a>00117     <span class="keywordtype">bool</span> calcSpillPlacements(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB,
+<a name="l00118"></a>00118                              <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 4></a> &blks,
+<a name="l00119"></a>00119                              CSRegBlockMap &prevSpills);
+<a name="l00120"></a>00120     <span class="keywordtype">bool</span> calcRestorePlacements(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB,
+<a name="l00121"></a>00121                                <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<MachineBasicBlock*, 4></a> &blks,
+<a name="l00122"></a>00122                                CSRegBlockMap &prevRestores);
+<a name="l00123"></a>00123     <span class="keywordtype">void</span> placeSpillsAndRestores(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00124"></a>00124     <span class="keywordtype">void</span> placeCSRSpillsAndRestores(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00125"></a>00125     <span class="keywordtype">void</span> calculateCallsInformation(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00126"></a>00126     <span class="keywordtype">void</span> calculateCalleeSavedRegisters(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00127"></a>00127     <span class="keywordtype">void</span> insertCSRSpillsAndRestores(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00128"></a>00128     <span class="keywordtype">void</span> calculateFrameObjectOffsets(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00129"></a>00129     <span class="keywordtype">void</span> replaceFrameIndices(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00130"></a>00130     <span class="keywordtype">void</span> scavengeFrameVirtualRegs(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00131"></a>00131     <span class="keywordtype">void</span> insertPrologEpilogCode(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &Fn);
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133     <span class="comment">// Initialize DFA sets, called before iterations.</span>
+<a name="l00134"></a>00134     <span class="keywordtype">void</span> clearAnticAvailSets();
+<a name="l00135"></a>00135     <span class="comment">// Clear all sets constructed by shrink wrapping.</span>
+<a name="l00136"></a>00136     <span class="keywordtype">void</span> clearAllSets();
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138     <span class="comment">// Initialize all shrink wrapping data.</span>
+<a name="l00139"></a>00139     <span class="keywordtype">void</span> initShrinkWrappingInfo();
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141     <span class="comment">// Convienences for dealing with machine loops.</span>
+<a name="l00142"></a>00142     <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* getTopLevelLoopPreheader(<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a>* LP);
+<a name="l00143"></a>00143     <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a>* getTopLevelLoopParent(<a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a> *LP);
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145     <span class="comment">// Propgate CSRs used in MBB to all MBBs of loop LP.</span>
+<a name="l00146"></a>00146     <span class="keywordtype">void</span> propagateUsesAroundLoop(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB, <a class="code" href="classllvm_1_1MachineLoop.html">MachineLoop</a>* LP);
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148     <span class="comment">// Convenience for recognizing return blocks.</span>
+<a name="l00149"></a>00149     <span class="keywordtype">bool</span> isReturnBlock(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00152"></a>00152 <span class="preprocessor"></span>    <span class="comment">// Debugging methods.</span>
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154     <span class="comment">// Mark this function as having fast exit paths.</span>
+<a name="l00155"></a>00155     <span class="keywordtype">void</span> findFastExitPath();
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157     <span class="comment">// Verify placement of spills/restores.</span>
+<a name="l00158"></a>00158     <span class="keywordtype">void</span> verifySpillRestorePlacement();
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160     std::string getBasicBlockName(<span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00161"></a>00161     std::string stringifyCSRegSet(<span class="keyword">const</span> CSRegSet& s);
+<a name="l00162"></a>00162     <span class="keywordtype">void</span> dumpSet(<span class="keyword">const</span> CSRegSet& s);
+<a name="l00163"></a>00163     <span class="keywordtype">void</span> dumpUsed(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00164"></a>00164     <span class="keywordtype">void</span> dumpAllUsed();
+<a name="l00165"></a>00165     <span class="keywordtype">void</span> dumpSets(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00166"></a>00166     <span class="keywordtype">void</span> dumpSets1(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a>* MBB);
+<a name="l00167"></a>00167     <span class="keywordtype">void</span> dumpAllSets();
+<a name="l00168"></a>00168     <span class="keywordtype">void</span> dumpSRSets();
+<a name="l00169"></a>00169 <span class="preprocessor">#endif</span>
+<a name="l00170"></a>00170 <span class="preprocessor"></span>
+<a name="l00171"></a>00171   };
+<a name="l00172"></a>00172 } <span class="comment">// End llvm namespace</span>
+<a name="l00173"></a>00173 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:00 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/PromoteMemToReg_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,85 @@
+<!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: PromoteMemToReg.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_5c61f109262ee79315cb0ac1a5e1be6f.html">Transforms</a>      </li>
+      <li class="navelem"><a class="el" href="dir_281a58b14cc8f76e4a094a720e66e337.html">Utils</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">PromoteMemToReg.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include <vector></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for PromoteMemToReg.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="PromoteMemToReg_8h__incl.png" border="0" usemap="#PromoteMemToReg_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="PromoteMemToReg_8h__dep__incl.png" border="0" usemap="#PromoteMemToReg_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="PromoteMemToReg_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 colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="X86DisassemblerDecoder_8c.html#a6156fe0b594c9754f386f6c6a30c8165">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a5023b360abc7a5d1612061fba30003a6">llvm::isAllocaPromotable</a> (const <a class="el" href="classllvm_1_1AllocaInst.html">AllocaInst</a> *AI)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a8e22efe81d33b9b42d36b6ae45575cbc">llvm::PromoteMemToReg</a> (const std::vector< <a class="el" href="classllvm_1_1AllocaInst.html">AllocaInst</a> * > &Allocas, <a class="el" href="classllvm_1_1DominatorTree.html">DominatorTree</a> &DT, <a class="el" href="classllvm_1_1AliasSetTracker.html">AliasSetTracker</a> *AST=0)</td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/PromoteMemToReg_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PromoteMemToReg_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+5fa34e9dae3837131b15af666a194510
\ No newline at end of file

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

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

Added: www-releases/trunk/3.2/docs/doxygen/html/PseudoSourceValue_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/PseudoSourceValue_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/PseudoSourceValue_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/PseudoSourceValue_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,122 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="PseudoSourceValue.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/MachineFrameInfo.h",height=0.2,width=0.4,color="black",URL="$MachineFrameInfo_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 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/CodeGen/PseudoSourceValue.h",height=0.2,width=0.4,color="black",URL="$PseudoSourceValue_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Value.h",height=0.2,width=0.4,color="black",URL="$Value_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Use.h",height=0.2,width=0.4,color="black",URL="$Use_8h.html"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node25 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="black",URL="$Casting_8h.html"];
+  Node26 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="black",URL="$DerivedTypes_8h.html"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/Type.h",height=0.2,width=0.4,color="black",URL="$Type_8h.html"];
+  Node28 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/LLVMContext.h",height=0.2,width=0.4,color="black",URL="$LLVMContext_8h.html"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node30 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node31 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node31 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node33 [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 -> Node8 [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="black",URL="$Valgrind_8h.html"];
+  Node37 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="stddef.h",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node40 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Support/Mutex.h",height=0.2,width=0.4,color="black",URL="$Mutex_8h.html"];
+  Node41 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="map",height=0.2,width=0.4,color="grey75"];
+}

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

Added: www-releases/trunk/3.2/docs/doxygen/html/Record_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Record_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Record_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Record_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,2080 @@
+<!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: Record.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_683cc5e4f32c1363954df77ec415d9a8.html">TableGen</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">Record.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="Record_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- Record.cpp - Record implementation ---------------------------------===//</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">// Implement the tablegen record classes.</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="Record_8h.html">llvm/TableGen/Record.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="TableGen_2Error_8h.html">llvm/TableGen/Error.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="DataTypes_8h.html">llvm/Support/DataTypes.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="Format_8h.html">llvm/Support/Format.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="DenseMap_8h.html">llvm/ADT/DenseMap.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="FoldingSet_8h.html">llvm/ADT/FoldingSet.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Hashing_8h.html">llvm/ADT/Hashing.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="SmallVector_8h.html">llvm/ADT/SmallVector.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="STLExtras_8h.html">llvm/ADT/STLExtras.h</a>"</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="StringExtras_8h.html">llvm/ADT/StringExtras.h</a>"</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="StringMap_8h.html">llvm/ADT/StringMap.h</a>"</span>
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 <span class="keyword">using namespace </span>llvm;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00030"></a>00030 <span class="comment">//    std::string wrapper for DenseMap purposes</span>
+<a name="l00031"></a>00031 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>llvm {
+<a name="l00034"></a>00034 <span class="comment"></span>
+<a name="l00035"></a>00035 <span class="comment">/// TableGenStringKey - This is a wrapper for std::string suitable for</span>
+<a name="l00036"></a>00036 <span class="comment">/// using as a key to a DenseMap.  Because there isn't a particularly</span>
+<a name="l00037"></a>00037 <span class="comment">/// good way to indicate tombstone or empty keys for strings, we want</span>
+<a name="l00038"></a>00038 <span class="comment">/// to wrap std::string to indicate that this is a "special" string</span>
+<a name="l00039"></a>00039 <span class="comment">/// not expected to take on certain values (those of the tombstone and</span>
+<a name="l00040"></a>00040 <span class="comment">/// empty keys).  This makes things a little safer as it clarifies</span>
+<a name="l00041"></a>00041 <span class="comment">/// that DenseMap is really not appropriate for general strings.</span>
+<a name="l00042"></a>00042 <span class="comment"></span>
+<a name="l00043"></a><a class="code" href="classllvm_1_1TableGenStringKey.html">00043</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> {
+<a name="l00044"></a>00044 <span class="keyword">public</span>:
+<a name="l00045"></a><a class="code" href="classllvm_1_1TableGenStringKey.html#abce39f44e705cec4c2ba570ebabdba54">00045</a>   <a class="code" href="classllvm_1_1TableGenStringKey.html#abce39f44e705cec4c2ba570ebabdba54">TableGenStringKey</a>(<span class="keyword">const</span> std::string &str) : data(str) {}
+<a name="l00046"></a><a class="code" href="classllvm_1_1TableGenStringKey.html#a923ab9b6b54e7f5b33fa49def2b32356">00046</a>   <a class="code" href="classllvm_1_1TableGenStringKey.html#a923ab9b6b54e7f5b33fa49def2b32356">TableGenStringKey</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) : data(str) {}
+<a name="l00047"></a>00047 
+<a name="l00048"></a><a class="code" href="classllvm_1_1TableGenStringKey.html#a7d15bd1d674cbe64f28d4397e46ab4cd">00048</a>   <span class="keyword">const</span> std::string &<a class="code" href="classllvm_1_1TableGenStringKey.html#a7d15bd1d674cbe64f28d4397e46ab4cd">str</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
+<a name="l00049"></a>00049 
+<a name="l00050"></a><a class="code" href="classllvm_1_1TableGenStringKey.html#a9be77e2bf9f941a5bfdaead843f402ce">00050</a>   <span class="keyword">friend</span> <a class="code" href="classllvm_1_1hash__code.html" title="An opaque object representing a hash code.">hash_code</a> <a class="code" href="classllvm_1_1TableGenStringKey.html#a9be77e2bf9f941a5bfdaead843f402ce">hash_value</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> &<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>) {
+<a name="l00051"></a>00051     <span class="keyword">using</span> <a class="code" href="namespacellvm.html#a4dd787942e0bd9f46c0cc2642cce0a4c">llvm::hash_value</a>;
+<a name="l00052"></a>00052     <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a4dd787942e0bd9f46c0cc2642cce0a4c">hash_value</a>(Value.<a class="code" href="classllvm_1_1TableGenStringKey.html#a7d15bd1d674cbe64f28d4397e46ab4cd">str</a>());
+<a name="l00053"></a>00053   }
+<a name="l00054"></a>00054 <span class="keyword">private</span>:
+<a name="l00055"></a>00055   std::string data;
+<a name="l00056"></a>00056 };
+<a name="l00057"></a>00057 <span class="comment"></span>
+<a name="l00058"></a>00058 <span class="comment">/// Specialize DenseMapInfo for TableGenStringKey.</span>
+<a name="l00059"></a><a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html">00059</a> <span class="comment"></span><span class="keyword">template</span><> <span class="keyword">struct </span><a class="code" href="structllvm_1_1DenseMapInfo.html">DenseMapInfo</a><<a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a>> {
+<a name="l00060"></a><a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#a3e43bcd6d1c92d7074944bd93098881f">00060</a>   <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> <a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#a3e43bcd6d1c92d7074944bd93098881f">getEmptyKey</a>() {
+<a name="l00061"></a>00061     <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> Empty(<span class="stringliteral">"<<<EMPTY KEY>>>"</span>);
+<a name="l00062"></a>00062     <span class="keywordflow">return</span> Empty;
+<a name="l00063"></a>00063   }
+<a name="l00064"></a><a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#ac80e3837211be301cde3a703bde41762">00064</a>   <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> <a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#ac80e3837211be301cde3a703bde41762">getTombstoneKey</a>() {
+<a name="l00065"></a>00065     <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a> Tombstone(<span class="stringliteral">"<<<TOMBSTONE KEY>>>"</span>);
+<a name="l00066"></a>00066     <span class="keywordflow">return</span> Tombstone;
+<a name="l00067"></a>00067   }
+<a name="l00068"></a><a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#a9c4047f82ab4f24644867c955a936e57">00068</a>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#a9c4047f82ab4f24644867c955a936e57">getHashValue</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a>& Val) {
+<a name="l00069"></a>00069     <span class="keyword">using</span> <a class="code" href="namespacellvm.html#a4dd787942e0bd9f46c0cc2642cce0a4c">llvm::hash_value</a>;
+<a name="l00070"></a>00070     <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a4dd787942e0bd9f46c0cc2642cce0a4c">hash_value</a>(Val);
+<a name="l00071"></a>00071   }
+<a name="l00072"></a><a class="code" href="structllvm_1_1DenseMapInfo_3_01TableGenStringKey_01_4.html#a321d01f5438e3be14115ae68d1054e72">00072</a>   <span class="keyword">static</span> <span class="keywordtype">bool</span> isEqual(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a>& LHS,
+<a name="l00073"></a>00073                       <span class="keyword">const</span> <a class="code" href="classllvm_1_1TableGenStringKey.html">TableGenStringKey</a>& RHS) {
+<a name="l00074"></a>00074     <span class="keywordflow">return</span> LHS.<a class="code" href="classllvm_1_1TableGenStringKey.html#a7d15bd1d674cbe64f28d4397e46ab4cd">str</a>() == RHS.<a class="code" href="classllvm_1_1TableGenStringKey.html#a7d15bd1d674cbe64f28d4397e46ab4cd">str</a>();
+<a name="l00075"></a>00075   }
+<a name="l00076"></a>00076 };
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 } <span class="comment">// namespace llvm</span>
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00081"></a>00081 <span class="comment">//    Type implementations</span>
+<a name="l00082"></a>00082 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <a class="code" href="classllvm_1_1BitRecTy.html">BitRecTy</a> BitRecTy::Shared;
+<a name="l00085"></a>00085 <a class="code" href="classllvm_1_1IntRecTy.html">IntRecTy</a> IntRecTy::Shared;
+<a name="l00086"></a>00086 <a class="code" href="classllvm_1_1StringRecTy.html">StringRecTy</a> StringRecTy::Shared;
+<a name="l00087"></a>00087 <a class="code" href="classllvm_1_1DagRecTy.html">DagRecTy</a> DagRecTy::Shared;
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089 <span class="keywordtype">void</span> RecTy::anchor() { }
+<a name="l00090"></a><a class="code" href="classllvm_1_1RecTy.html#a09b9ca7e021fb37bac49ebe15d40158b">00090</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RecTy.html#a09b9ca7e021fb37bac49ebe15d40158b">RecTy::dump</a>()<span class="keyword"> const </span>{ <a class="code" href="classllvm_1_1RecTy.html#a29198b1e1e5a129930d638794edab655">print</a>(<a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>()); }
+<a name="l00091"></a>00091 
+<a name="l00092"></a><a class="code" href="classllvm_1_1RecTy.html#a1c9e3a7c004351da6772941ad7042482">00092</a> <a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a> *<a class="code" href="classllvm_1_1RecTy.html#a1c9e3a7c004351da6772941ad7042482" title="getListTy - Returns the type representing list<this>.">RecTy::getListTy</a>() {
+<a name="l00093"></a>00093   <span class="keywordflow">if</span> (!ListTy)
+<a name="l00094"></a>00094     ListTy = <span class="keyword">new</span> <a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a>(<span class="keyword">this</span>);
+<a name="l00095"></a>00095   <span class="keywordflow">return</span> ListTy;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 
+<a name="l00098"></a><a class="code" href="classllvm_1_1BitRecTy.html#a329b11acea5a163c2b5e64d437978779">00098</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitRecTy.html#aa20e8d37cce3aedccad9593e820f31b1">BitRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *BI) {
+<a name="l00099"></a>00099   <span class="keywordflow">if</span> (BI-><a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>() != 1) <span class="keywordflow">return</span> 0; <span class="comment">// Only accept if just one bit!</span>
+<a name="l00100"></a>00100   <span class="keywordflow">return</span> BI-><a class="code" href="classllvm_1_1BitsInit.html#aac7c0b2ffa3a8cb7f87be59cbcf8dd04">getBit</a>(0);
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 
+<a name="l00103"></a><a class="code" href="classllvm_1_1BitRecTy.html#a48e8b42aed686772fa71575f64155ce2">00103</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1BitRecTy.html#a2113d7964dc9d4b9bff81675cacde303">BitRecTy::baseClassOf</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a> *RHS)<span class="keyword"> const </span>{
+<a name="l00104"></a>00104   <span class="keywordflow">return</span> RHS-><a class="code" href="classllvm_1_1BitsRecTy.html#abad727b222dc27bae3755f343399e682">getNumBits</a>() == 1;
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 
+<a name="l00107"></a><a class="code" href="classllvm_1_1BitRecTy.html#aed6780e036ecabc119a3cb717d723bb8">00107</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitRecTy.html#aa20e8d37cce3aedccad9593e820f31b1">BitRecTy::convertValue</a>(<a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *II) {
+<a name="l00108"></a>00108   <a class="code" href="classint64__t.html">int64_t</a> Val = II-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>();
+<a name="l00109"></a>00109   <span class="keywordflow">if</span> (Val != 0 && Val != 1) <span class="keywordflow">return</span> 0;  <span class="comment">// Only accept 0 or 1 for a bit!</span>
+<a name="l00110"></a>00110 
+<a name="l00111"></a>00111   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitRecTy.html#a4e97a7c55d74adcb95b1bdb359a45977">BitInit::get</a>(Val != 0);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 
+<a name="l00114"></a><a class="code" href="classllvm_1_1BitRecTy.html#a97faac01ef7050ccc27c2c07b04b13f7">00114</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitRecTy.html#aa20e8d37cce3aedccad9593e820f31b1">BitRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *VI) {
+<a name="l00115"></a>00115   <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *Ty = VI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>();
+<a name="l00116"></a>00116   <span class="keywordflow">if</span> (isa<BitRecTy>(Ty) || isa<BitsRecTy>(Ty) || isa<IntRecTy>(Ty))
+<a name="l00117"></a>00117     <span class="keywordflow">return</span> VI;  <span class="comment">// Accept variable if it is already of bit type!</span>
+<a name="l00118"></a>00118   <span class="keywordflow">return</span> 0;
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 
+<a name="l00121"></a><a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">00121</a> <a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsRecTy::get</a>(<span class="keywordtype">unsigned</span> Sz) {
+<a name="l00122"></a>00122   <span class="keyword">static</span> std::vector<BitsRecTy*> Shared;
+<a name="l00123"></a>00123   <span class="keywordflow">if</span> (Sz >= Shared.size())
+<a name="l00124"></a>00124     Shared.resize(Sz + 1);
+<a name="l00125"></a>00125   <a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a> *&Ty = Shared[Sz];
+<a name="l00126"></a>00126   <span class="keywordflow">if</span> (!Ty)
+<a name="l00127"></a>00127     Ty = <span class="keyword">new</span> <a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a>(Sz);
+<a name="l00128"></a>00128   <span class="keywordflow">return</span> Ty;
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130 
+<a name="l00131"></a><a class="code" href="classllvm_1_1BitsRecTy.html#abd512bb4818344d6835aa8d15d06b20a">00131</a> std::string <a class="code" href="classllvm_1_1BitsRecTy.html#abd512bb4818344d6835aa8d15d06b20a">BitsRecTy::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00132"></a>00132   <span class="keywordflow">return</span> <span class="stringliteral">"bits<"</span> + <a class="code" href="namespacellvm.html#ae094b310153c30b08dcec1b40459d385">utostr</a>(Size) + <span class="stringliteral">">"</span>;
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 
+<a name="l00135"></a><a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">00135</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">BitsRecTy::convertValue</a>(<a class="code" href="classllvm_1_1UnsetInit.html">UnsetInit</a> *UI) {
+<a name="l00136"></a>00136   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Size);
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Size; ++i)
+<a name="l00139"></a>00139     NewBits[i] = <a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>();
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsInit::get</a>(NewBits);
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143 
+<a name="l00144"></a><a class="code" href="classllvm_1_1BitsRecTy.html#a3cf8e448ae24b4ffecc60f31c9321b11">00144</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">BitsRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *UI) {
+<a name="l00145"></a>00145   <span class="keywordflow">if</span> (Size != 1) <span class="keywordflow">return</span> 0;  <span class="comment">// Can only convert single bit.</span>
+<a name="l00146"></a>00146           <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsInit::get</a>(UI);
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148 <span class="comment"></span>
+<a name="l00149"></a>00149 <span class="comment">/// canFitInBitfield - Return true if the number of bits is large enough to hold</span>
+<a name="l00150"></a>00150 <span class="comment">/// the integer value.</span>
+<a name="l00151"></a><a class="code" href="Record_8cpp.html#a0df11b934025cc0400c4794968fdb3bc">00151</a> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Record_8cpp.html#a0df11b934025cc0400c4794968fdb3bc">canFitInBitfield</a>(<a class="code" href="classint64__t.html">int64_t</a> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>, <span class="keywordtype">unsigned</span> NumBits) {
+<a name="l00152"></a>00152   <span class="comment">// For example, with NumBits == 4, we permit Values from [-7 .. 15].</span>
+<a name="l00153"></a>00153   <span class="keywordflow">return</span> (NumBits >= <span class="keyword">sizeof</span>(Value) * 8) ||
+<a name="l00154"></a>00154          (Value >> NumBits == 0) || (Value >> (NumBits-1) == -1);
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156 <span class="comment"></span>
+<a name="l00157"></a>00157 <span class="comment">/// convertValue from Int initializer to bits type: Split the integer up into the</span>
+<a name="l00158"></a>00158 <span class="comment">/// appropriate bits.</span>
+<a name="l00159"></a>00159 <span class="comment">///</span>
+<a name="l00160"></a><a class="code" href="classllvm_1_1BitsRecTy.html#a65c07603789f67f44f966f6b2a1ca763">00160</a> <span class="comment"></span><a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">BitsRecTy::convertValue</a>(<a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *II) {
+<a name="l00161"></a>00161   <a class="code" href="classint64__t.html">int64_t</a> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = II-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>();
+<a name="l00162"></a>00162   <span class="comment">// Make sure this bitfield is large enough to hold the integer value.</span>
+<a name="l00163"></a>00163   <span class="keywordflow">if</span> (!<a class="code" href="Record_8cpp.html#a0df11b934025cc0400c4794968fdb3bc">canFitInBitfield</a>(Value, Size))
+<a name="l00164"></a>00164     <span class="keywordflow">return</span> 0;
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Size);
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Size; ++i)
+<a name="l00169"></a>00169     NewBits[i] = <a class="code" href="classllvm_1_1BitInit.html#ad9858f4615d778b83ae1bf03683c8dfc">BitInit::get</a>(Value & (1LL << i));
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsInit::get</a>(NewBits);
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173 
+<a name="l00174"></a><a class="code" href="classllvm_1_1BitsRecTy.html#a80a6c3f6b9c0fe0846714b360f78ff09">00174</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">BitsRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *BI) {
+<a name="l00175"></a>00175   <span class="comment">// If the number of bits is right, return it.  Otherwise we need to expand or</span>
+<a name="l00176"></a>00176   <span class="comment">// truncate.</span>
+<a name="l00177"></a>00177   <span class="keywordflow">if</span> (BI-><a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>() == Size) <span class="keywordflow">return</span> BI;
+<a name="l00178"></a>00178   <span class="keywordflow">return</span> 0;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a><a class="code" href="classllvm_1_1BitsRecTy.html#a40c90e6fe7a77fe20e21ac63c4c8e40d">00181</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsRecTy.html#ae8f8cf10d14b79a9dd669dfe662ab679">BitsRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *VI) {
+<a name="l00182"></a>00182   <span class="keywordflow">if</span> (Size == 1 && isa<BitRecTy>(VI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l00183"></a>00183     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsInit::get</a>(VI);
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185   <span class="keywordflow">if</span> (VI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1RecTy.html#a0b61097a8cbda63ca308cba95870c548">typeIsConvertibleTo</a>(<span class="keyword">this</span>)) {
+<a name="l00186"></a>00186     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Size);
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Size; ++i)
+<a name="l00189"></a>00189       NewBits[i] = <a class="code" href="classllvm_1_1VarBitInit.html#ac44aa6d65704ff9d14b5c371fdcfaa0e">VarBitInit::get</a>(VI, i);
+<a name="l00190"></a>00190     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsRecTy.html#a920eca1c686b9f33973a9b688cd96ec7">BitsInit::get</a>(NewBits);
+<a name="l00191"></a>00191   }
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193   <span class="keywordflow">return</span> 0;
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195 
+<a name="l00196"></a><a class="code" href="classllvm_1_1IntRecTy.html#a01f243697a1f1f1244e28e3f71e34bf8">00196</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1IntRecTy.html#a2cee3978b5017fed2538147b0cf5c036">IntRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *BI) {
+<a name="l00197"></a>00197   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntInit::get</a>(BI-><a class="code" href="classllvm_1_1BitInit.html#ae903b8f56525358c7e16cfbd5aa818d5">getValue</a>());
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199 
+<a name="l00200"></a><a class="code" href="classllvm_1_1IntRecTy.html#a54e9448c128c59b084debab30fc1faf8">00200</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1IntRecTy.html#a2cee3978b5017fed2538147b0cf5c036">IntRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *BI) {
+<a name="l00201"></a>00201   <a class="code" href="classint64__t.html">int64_t</a> Result = 0;
+<a name="l00202"></a>00202   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = BI-><a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>(); i != e; ++i)
+<a name="l00203"></a>00203     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a> = dyn_cast<BitInit>(BI-><a class="code" href="classllvm_1_1BitsInit.html#aac7c0b2ffa3a8cb7f87be59cbcf8dd04">getBit</a>(i))) {
+<a name="l00204"></a>00204       Result |= <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>->getValue() << i;
+<a name="l00205"></a>00205     } <span class="keywordflow">else</span> {
+<a name="l00206"></a>00206       <span class="keywordflow">return</span> 0;
+<a name="l00207"></a>00207     }
+<a name="l00208"></a>00208   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntInit::get</a>(Result);
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210 
+<a name="l00211"></a><a class="code" href="classllvm_1_1IntRecTy.html#ae3da505d3b2122491e4494b120dfc9fd">00211</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1IntRecTy.html#a2cee3978b5017fed2538147b0cf5c036">IntRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TI) {
+<a name="l00212"></a>00212   <span class="keywordflow">if</span> (TI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1RecTy.html#a0b61097a8cbda63ca308cba95870c548">typeIsConvertibleTo</a>(<span class="keyword">this</span>))
+<a name="l00213"></a>00213     <span class="keywordflow">return</span> TI;  <span class="comment">// Accept variable if already of the right type!</span>
+<a name="l00214"></a>00214   <span class="keywordflow">return</span> 0;
+<a name="l00215"></a>00215 }
+<a name="l00216"></a>00216 
+<a name="l00217"></a><a class="code" href="classllvm_1_1StringRecTy.html#abe121c36624bcf98aad5fc67ae0b62e9">00217</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1StringRecTy.html#ab23a7eda36ca044017ab55a5027cd757">StringRecTy::convertValue</a>(<a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a> *BO) {
+<a name="l00218"></a>00218   <span class="keywordflow">if</span> (BO-><a class="code" href="classllvm_1_1UnOpInit.html#ab3ae855185fc8764a5dc1605c668ef47">getOpcode</a>() == <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">UnOpInit::CAST</a>) {
+<a name="l00219"></a>00219     <a class="code" href="classllvm_1_1Init.html">Init</a> *L = BO-><a class="code" href="classllvm_1_1UnOpInit.html#a4630ca9376d8a20c2eb8eadbe9c81a21">getOperand</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00220"></a>00220     <span class="keywordflow">if</span> (L == 0) <span class="keywordflow">return</span> 0;
+<a name="l00221"></a>00221     <span class="keywordflow">if</span> (L != BO-><a class="code" href="classllvm_1_1UnOpInit.html#a4630ca9376d8a20c2eb8eadbe9c81a21">getOperand</a>())
+<a name="l00222"></a>00222       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">UnOpInit::get</a>(<a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">UnOpInit::CAST</a>, L, <span class="keyword">new</span> <a class="code" href="classllvm_1_1StringRecTy.html">StringRecTy</a>);
+<a name="l00223"></a>00223     <span class="keywordflow">return</span> BO;
+<a name="l00224"></a>00224   }
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1StringRecTy.html#ab23a7eda36ca044017ab55a5027cd757">convertValue</a>((<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>*)BO);
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228 
+<a name="l00229"></a><a class="code" href="classllvm_1_1StringRecTy.html#aebccdb80e2a019e088c0945723fcb344">00229</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1StringRecTy.html#ab23a7eda36ca044017ab55a5027cd757">StringRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *BO) {
+<a name="l00230"></a>00230   <span class="keywordflow">if</span> (BO-><a class="code" href="classllvm_1_1BinOpInit.html#af4e4ccbe5f0bf5265b2d43e53f3d8061">getOpcode</a>() == <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>) {
+<a name="l00231"></a>00231     <a class="code" href="classllvm_1_1Init.html">Init</a> *L = BO-><a class="code" href="classllvm_1_1BinOpInit.html#aa40bdba246e9ccea003062ee9d9ed574">getLHS</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00232"></a>00232     <a class="code" href="classllvm_1_1Init.html">Init</a> *R = BO-><a class="code" href="classllvm_1_1BinOpInit.html#a03aaf00844fe867e5b4de382e6d1da14">getRHS</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00233"></a>00233     <span class="keywordflow">if</span> (L == 0 || R == 0) <span class="keywordflow">return</span> 0;
+<a name="l00234"></a>00234     <span class="keywordflow">if</span> (L != BO-><a class="code" href="classllvm_1_1BinOpInit.html#aa40bdba246e9ccea003062ee9d9ed574">getLHS</a>() || R != BO-><a class="code" href="classllvm_1_1BinOpInit.html#a03aaf00844fe867e5b4de382e6d1da14">getRHS</a>())
+<a name="l00235"></a>00235       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>, L, R, <span class="keyword">new</span> <a class="code" href="classllvm_1_1StringRecTy.html">StringRecTy</a>);
+<a name="l00236"></a>00236     <span class="keywordflow">return</span> BO;
+<a name="l00237"></a>00237   }
+<a name="l00238"></a>00238 
+<a name="l00239"></a>00239   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1StringRecTy.html#ab23a7eda36ca044017ab55a5027cd757">convertValue</a>((<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>*)BO);
+<a name="l00240"></a>00240 }
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242 
+<a name="l00243"></a><a class="code" href="classllvm_1_1StringRecTy.html#adcf54732b55a266ec0c4df60cba630ac">00243</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1StringRecTy.html#ab23a7eda36ca044017ab55a5027cd757">StringRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TI) {
+<a name="l00244"></a>00244   <span class="keywordflow">if</span> (isa<StringRecTy>(TI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l00245"></a>00245     <span class="keywordflow">return</span> TI;  <span class="comment">// Accept variable if already of the right type!</span>
+<a name="l00246"></a>00246   <span class="keywordflow">return</span> 0;
+<a name="l00247"></a>00247 }
+<a name="l00248"></a>00248 
+<a name="l00249"></a><a class="code" href="classllvm_1_1ListRecTy.html#ad7d0d7016aad14a1d2acbfde0d25d115">00249</a> std::string <a class="code" href="classllvm_1_1ListRecTy.html#ad7d0d7016aad14a1d2acbfde0d25d115">ListRecTy::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00250"></a>00250   <span class="keywordflow">return</span> <span class="stringliteral">"list<"</span> + Ty-><a class="code" href="classllvm_1_1RecTy.html#a7aa55697f48dc46c49a6f300bc2fdbe1">getAsString</a>() + <span class="stringliteral">">"</span>;
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252 
+<a name="l00253"></a><a class="code" href="classllvm_1_1ListRecTy.html#a856e6fa4232665ea2d02cba8e0b6bcd6">00253</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1ListRecTy.html#aab6d1cd9e3c7c2956ba88f8bce66ceb2">ListRecTy::convertValue</a>(<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>) {
+<a name="l00254"></a>00254   std::vector<Init*> Elements;
+<a name="l00255"></a>00255 
+<a name="l00256"></a>00256   <span class="comment">// Verify that all of the elements of the list are subclasses of the</span>
+<a name="l00257"></a>00257   <span class="comment">// appropriate class!</span>
+<a name="l00258"></a>00258   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = LI-><a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>(); i != e; ++i)
+<a name="l00259"></a>00259     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *CI = LI-><a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(i)-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(Ty))
+<a name="l00260"></a>00260       Elements.push_back(CI);
+<a name="l00261"></a>00261     <span class="keywordflow">else</span>
+<a name="l00262"></a>00262       <span class="keywordflow">return</span> 0;
+<a name="l00263"></a>00263 
+<a name="l00264"></a>00264   <span class="keywordflow">if</span> (!isa<ListRecTy>(LI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l00265"></a>00265     <span class="keywordflow">return</span> 0;
+<a name="l00266"></a>00266 
+<a name="l00267"></a>00267   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ListRecTy.html#a4a81a56eccee5fd6c90cecc03f8af5ba">ListInit::get</a>(Elements, <span class="keyword">this</span>);
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269 
+<a name="l00270"></a><a class="code" href="classllvm_1_1ListRecTy.html#a0b675aa3724044c78b057a1c6f089217">00270</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1ListRecTy.html#aab6d1cd9e3c7c2956ba88f8bce66ceb2">ListRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TI) {
+<a name="l00271"></a>00271   <span class="comment">// Ensure that TI is compatible with our class.</span>
+<a name="l00272"></a>00272   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a> *LRT = dyn_cast<ListRecTy>(TI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l00273"></a>00273     <span class="keywordflow">if</span> (LRT->getElementType()->typeIsConvertibleTo(<a class="code" href="classllvm_1_1ListRecTy.html#af475d7d12132176ba118199321e11668">getElementType</a>()))
+<a name="l00274"></a>00274       <span class="keywordflow">return</span> TI;
+<a name="l00275"></a>00275   <span class="keywordflow">return</span> 0;
+<a name="l00276"></a>00276 }
+<a name="l00277"></a>00277 
+<a name="l00278"></a><a class="code" href="classllvm_1_1DagRecTy.html#a13d7dcd77b1067f0380dab080d33ed8e">00278</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1DagRecTy.html#aab8ac5f0c7524fcc5146775c92cd6522">DagRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TI) {
+<a name="l00279"></a>00279   <span class="keywordflow">if</span> (TI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1RecTy.html#a0b61097a8cbda63ca308cba95870c548">typeIsConvertibleTo</a>(<span class="keyword">this</span>))
+<a name="l00280"></a>00280     <span class="keywordflow">return</span> TI;
+<a name="l00281"></a>00281   <span class="keywordflow">return</span> 0;
+<a name="l00282"></a>00282 }
+<a name="l00283"></a>00283 
+<a name="l00284"></a><a class="code" href="classllvm_1_1DagRecTy.html#a274cb194768b5f8e3a42e8acb42847e2">00284</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1DagRecTy.html#aab8ac5f0c7524fcc5146775c92cd6522">DagRecTy::convertValue</a>(<a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a> *BO) {
+<a name="l00285"></a>00285   <span class="keywordflow">if</span> (BO-><a class="code" href="classllvm_1_1UnOpInit.html#ab3ae855185fc8764a5dc1605c668ef47">getOpcode</a>() == <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">UnOpInit::CAST</a>) {
+<a name="l00286"></a>00286     <a class="code" href="classllvm_1_1Init.html">Init</a> *L = BO-><a class="code" href="classllvm_1_1UnOpInit.html#a4630ca9376d8a20c2eb8eadbe9c81a21">getOperand</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00287"></a>00287     <span class="keywordflow">if</span> (L == 0) <span class="keywordflow">return</span> 0;
+<a name="l00288"></a>00288     <span class="keywordflow">if</span> (L != BO-><a class="code" href="classllvm_1_1UnOpInit.html#a4630ca9376d8a20c2eb8eadbe9c81a21">getOperand</a>())
+<a name="l00289"></a>00289       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">UnOpInit::get</a>(<a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">UnOpInit::CAST</a>, L, <span class="keyword">new</span> <a class="code" href="classllvm_1_1DagRecTy.html">DagRecTy</a>);
+<a name="l00290"></a>00290     <span class="keywordflow">return</span> BO;
+<a name="l00291"></a>00291   }
+<a name="l00292"></a>00292   <span class="keywordflow">return</span> 0;
+<a name="l00293"></a>00293 }
+<a name="l00294"></a>00294 
+<a name="l00295"></a><a class="code" href="classllvm_1_1DagRecTy.html#ae0c9698871333ddae680779a0e311429">00295</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1DagRecTy.html#aab8ac5f0c7524fcc5146775c92cd6522">DagRecTy::convertValue</a>(<a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *BO) {
+<a name="l00296"></a>00296   <span class="keywordflow">if</span> (BO-><a class="code" href="classllvm_1_1BinOpInit.html#af4e4ccbe5f0bf5265b2d43e53f3d8061">getOpcode</a>() == <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cafdd00230027b7ddbb9d855ececcf7da3">BinOpInit::CONCAT</a>) {
+<a name="l00297"></a>00297     <a class="code" href="classllvm_1_1Init.html">Init</a> *L = BO-><a class="code" href="classllvm_1_1BinOpInit.html#aa40bdba246e9ccea003062ee9d9ed574">getLHS</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00298"></a>00298     <a class="code" href="classllvm_1_1Init.html">Init</a> *R = BO-><a class="code" href="classllvm_1_1BinOpInit.html#a03aaf00844fe867e5b4de382e6d1da14">getRHS</a>()-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<span class="keyword">this</span>);
+<a name="l00299"></a>00299     <span class="keywordflow">if</span> (L == 0 || R == 0) <span class="keywordflow">return</span> 0;
+<a name="l00300"></a>00300     <span class="keywordflow">if</span> (L != BO-><a class="code" href="classllvm_1_1BinOpInit.html#aa40bdba246e9ccea003062ee9d9ed574">getLHS</a>() || R != BO-><a class="code" href="classllvm_1_1BinOpInit.html#a03aaf00844fe867e5b4de382e6d1da14">getRHS</a>())
+<a name="l00301"></a>00301       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cafdd00230027b7ddbb9d855ececcf7da3">BinOpInit::CONCAT</a>, L, R, <span class="keyword">new</span> <a class="code" href="classllvm_1_1DagRecTy.html">DagRecTy</a>);
+<a name="l00302"></a>00302     <span class="keywordflow">return</span> BO;
+<a name="l00303"></a>00303   }
+<a name="l00304"></a>00304   <span class="keywordflow">return</span> 0;
+<a name="l00305"></a>00305 }
+<a name="l00306"></a>00306 
+<a name="l00307"></a><a class="code" href="classllvm_1_1RecordRecTy.html#ac49252d2c4c7a6db045790fb59b4e162">00307</a> <a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *<a class="code" href="classllvm_1_1RecordRecTy.html#ac49252d2c4c7a6db045790fb59b4e162">RecordRecTy::get</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> *R) {
+<a name="l00308"></a>00308   <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a>>(R-><a class="code" href="classllvm_1_1Record.html#ad25ff85deb76d6db1511a45f2fc68af0" title="get the corresponding DefInit.">getDefInit</a>()-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l00309"></a>00309 }
+<a name="l00310"></a>00310 
+<a name="l00311"></a><a class="code" href="classllvm_1_1RecordRecTy.html#a3600cdbb258b7bf8e6ada23c6cc05501">00311</a> std::string <a class="code" href="classllvm_1_1RecordRecTy.html#a3600cdbb258b7bf8e6ada23c6cc05501">RecordRecTy::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00312"></a>00312   <span class="keywordflow">return</span> Rec-><a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>();
+<a name="l00313"></a>00313 }
+<a name="l00314"></a>00314 
+<a name="l00315"></a><a class="code" href="classllvm_1_1RecordRecTy.html#aae324d5acb5dcdc0dbe72f6103d230cd">00315</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1RecordRecTy.html#a348af1f7ab20e1a53208c03548f6ddc6">RecordRecTy::convertValue</a>(<a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *DI) {
+<a name="l00316"></a>00316   <span class="comment">// Ensure that DI is a subclass of Rec.</span>
+<a name="l00317"></a>00317   <span class="keywordflow">if</span> (!DI-><a class="code" href="classllvm_1_1DefInit.html#ac1afebf61439452dc14f1839e0c47042">getDef</a>()-><a class="code" href="classllvm_1_1Record.html#a5c6f36ed835264003d4340d870f251c1">isSubClassOf</a>(Rec))
+<a name="l00318"></a>00318     <span class="keywordflow">return</span> 0;
+<a name="l00319"></a>00319   <span class="keywordflow">return</span> DI;
+<a name="l00320"></a>00320 }
+<a name="l00321"></a>00321 
+<a name="l00322"></a><a class="code" href="classllvm_1_1RecordRecTy.html#aeb155deb6341a192294aa6696d1faca7">00322</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1RecordRecTy.html#a348af1f7ab20e1a53208c03548f6ddc6">RecordRecTy::convertValue</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TI) {
+<a name="l00323"></a>00323   <span class="comment">// Ensure that TI is compatible with Rec.</span>
+<a name="l00324"></a>00324   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RRT = dyn_cast<RecordRecTy>(TI-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l00325"></a>00325     <span class="keywordflow">if</span> (RRT->getRecord()->isSubClassOf(<a class="code" href="classllvm_1_1RecordRecTy.html#ad006a040220272aa2942dd0f5b856c45">getRecord</a>()) ||
+<a name="l00326"></a>00326         RRT->getRecord() == <a class="code" href="classllvm_1_1RecordRecTy.html#ad006a040220272aa2942dd0f5b856c45">getRecord</a>())
+<a name="l00327"></a>00327       <span class="keywordflow">return</span> TI;
+<a name="l00328"></a>00328   <span class="keywordflow">return</span> 0;
+<a name="l00329"></a>00329 }
+<a name="l00330"></a>00330 
+<a name="l00331"></a><a class="code" href="classllvm_1_1RecordRecTy.html#ab5edaef9da1a72f9bff7ab25d54f83fb">00331</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RecordRecTy.html#a5e3dc4939ac9dd5cd15a4f9a094485de">RecordRecTy::baseClassOf</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RHS)<span class="keyword"> const </span>{
+<a name="l00332"></a>00332   <span class="keywordflow">if</span> (Rec == RHS-><a class="code" href="classllvm_1_1RecordRecTy.html#ad006a040220272aa2942dd0f5b856c45">getRecord</a>() || RHS-><a class="code" href="classllvm_1_1RecordRecTy.html#ad006a040220272aa2942dd0f5b856c45">getRecord</a>()-><a class="code" href="classllvm_1_1Record.html#a5c6f36ed835264003d4340d870f251c1">isSubClassOf</a>(Rec))
+<a name="l00333"></a>00333     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00334"></a>00334 
+<a name="l00335"></a>00335   <span class="keyword">const</span> std::vector<Record*> &SC = Rec-><a class="code" href="classllvm_1_1Record.html#a502354f7a095973ec90151787868d1f3">getSuperClasses</a>();
+<a name="l00336"></a>00336   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = SC.size(); i != e; ++i)
+<a name="l00337"></a>00337     <span class="keywordflow">if</span> (RHS-><a class="code" href="classllvm_1_1RecordRecTy.html#ad006a040220272aa2942dd0f5b856c45">getRecord</a>()-><a class="code" href="classllvm_1_1Record.html#a5c6f36ed835264003d4340d870f251c1">isSubClassOf</a>(SC[i]))
+<a name="l00338"></a>00338       <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00339"></a>00339 
+<a name="l00340"></a>00340   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00341"></a>00341 }
+<a name="l00342"></a>00342 <span class="comment"></span>
+<a name="l00343"></a>00343 <span class="comment">/// resolveTypes - Find a common type that T1 and T2 convert to.</span>
+<a name="l00344"></a>00344 <span class="comment">/// Return 0 if no such type exists.</span>
+<a name="l00345"></a>00345 <span class="comment">///</span>
+<a name="l00346"></a><a class="code" href="namespacellvm.html#a676f8379d14ea786dede5a1398bffcdb">00346</a> <span class="comment"></span><a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="namespacellvm.html#a676f8379d14ea786dede5a1398bffcdb">llvm::resolveTypes</a>(<a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T1, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T2) {
+<a name="l00347"></a>00347   <span class="keywordflow">if</span> (T1-><a class="code" href="classllvm_1_1RecTy.html#a0b61097a8cbda63ca308cba95870c548">typeIsConvertibleTo</a>(T2))
+<a name="l00348"></a>00348     <span class="keywordflow">return</span> T2;
+<a name="l00349"></a>00349   <span class="keywordflow">if</span> (T2-><a class="code" href="classllvm_1_1RecTy.html#a0b61097a8cbda63ca308cba95870c548">typeIsConvertibleTo</a>(T1))
+<a name="l00350"></a>00350     <span class="keywordflow">return</span> T1;
+<a name="l00351"></a>00351 
+<a name="l00352"></a>00352   <span class="comment">// If one is a Record type, check superclasses</span>
+<a name="l00353"></a>00353   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RecTy1 = dyn_cast<RecordRecTy>(T1)) {
+<a name="l00354"></a>00354     <span class="comment">// See if T2 inherits from a type T1 also inherits from</span>
+<a name="l00355"></a>00355     <span class="keyword">const</span> std::vector<Record *> &T1SuperClasses =
+<a name="l00356"></a>00356       RecTy1->getRecord()->getSuperClasses();
+<a name="l00357"></a>00357     <span class="keywordflow">for</span>(std::vector<Record *>::const_iterator i = T1SuperClasses.begin(),
+<a name="l00358"></a>00358           iend = T1SuperClasses.end();
+<a name="l00359"></a>00359         i != iend;
+<a name="l00360"></a>00360         ++i) {
+<a name="l00361"></a>00361       <a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *SuperRecTy1 = <a class="code" href="classllvm_1_1RecordRecTy.html#ac49252d2c4c7a6db045790fb59b4e162">RecordRecTy::get</a>(*i);
+<a name="l00362"></a>00362       <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *NewType1 = <a class="code" href="namespacellvm.html#a676f8379d14ea786dede5a1398bffcdb">resolveTypes</a>(SuperRecTy1, T2);
+<a name="l00363"></a>00363       <span class="keywordflow">if</span> (NewType1 != 0) {
+<a name="l00364"></a>00364         <span class="keywordflow">if</span> (NewType1 != SuperRecTy1) {
+<a name="l00365"></a>00365           <span class="keyword">delete</span> SuperRecTy1;
+<a name="l00366"></a>00366         }
+<a name="l00367"></a>00367         <span class="keywordflow">return</span> NewType1;
+<a name="l00368"></a>00368       }
+<a name="l00369"></a>00369     }
+<a name="l00370"></a>00370   }
+<a name="l00371"></a>00371   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RecTy2 = dyn_cast<RecordRecTy>(T2)) {
+<a name="l00372"></a>00372     <span class="comment">// See if T1 inherits from a type T2 also inherits from</span>
+<a name="l00373"></a>00373     <span class="keyword">const</span> std::vector<Record *> &T2SuperClasses =
+<a name="l00374"></a>00374       RecTy2->getRecord()->getSuperClasses();
+<a name="l00375"></a>00375     <span class="keywordflow">for</span> (std::vector<Record *>::const_iterator i = T2SuperClasses.begin(),
+<a name="l00376"></a>00376           iend = T2SuperClasses.end();
+<a name="l00377"></a>00377         i != iend;
+<a name="l00378"></a>00378         ++i) {
+<a name="l00379"></a>00379       <a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *SuperRecTy2 = <a class="code" href="classllvm_1_1RecordRecTy.html#ac49252d2c4c7a6db045790fb59b4e162">RecordRecTy::get</a>(*i);
+<a name="l00380"></a>00380       <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *NewType2 = <a class="code" href="namespacellvm.html#a676f8379d14ea786dede5a1398bffcdb">resolveTypes</a>(T1, SuperRecTy2);
+<a name="l00381"></a>00381       <span class="keywordflow">if</span> (NewType2 != 0) {
+<a name="l00382"></a>00382         <span class="keywordflow">if</span> (NewType2 != SuperRecTy2) {
+<a name="l00383"></a>00383           <span class="keyword">delete</span> SuperRecTy2;
+<a name="l00384"></a>00384         }
+<a name="l00385"></a>00385         <span class="keywordflow">return</span> NewType2;
+<a name="l00386"></a>00386       }
+<a name="l00387"></a>00387     }
+<a name="l00388"></a>00388   }
+<a name="l00389"></a>00389   <span class="keywordflow">return</span> 0;
+<a name="l00390"></a>00390 }
+<a name="l00391"></a>00391 
+<a name="l00392"></a>00392 
+<a name="l00393"></a>00393 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00394"></a>00394 <span class="comment">//    Initializer implementations</span>
+<a name="l00395"></a>00395 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00396"></a>00396 
+<a name="l00397"></a>00397 <span class="keywordtype">void</span> Init::anchor() { }
+<a name="l00398"></a><a class="code" href="classllvm_1_1Init.html#afa15745db973e13e509dccc2a3350e62">00398</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Init.html#afa15745db973e13e509dccc2a3350e62">Init::dump</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1Init.html#af5595d5dcf35aa5aff321eeba3c9c082" title="print - Print out this value.">print</a>(<a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>()); }
+<a name="l00399"></a>00399 
+<a name="l00400"></a>00400 <span class="keywordtype">void</span> UnsetInit::anchor() { }
+<a name="l00401"></a>00401 
+<a name="l00402"></a><a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">00402</a> <a class="code" href="classllvm_1_1UnsetInit.html">UnsetInit</a> *<a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>() {
+<a name="l00403"></a>00403   <span class="keyword">static</span> <a class="code" href="classllvm_1_1UnsetInit.html">UnsetInit</a> TheInit;
+<a name="l00404"></a>00404   <span class="keywordflow">return</span> &TheInit;
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406 
+<a name="l00407"></a>00407 <span class="keywordtype">void</span> BitInit::anchor() { }
+<a name="l00408"></a>00408 
+<a name="l00409"></a><a class="code" href="classllvm_1_1BitInit.html#ad9858f4615d778b83ae1bf03683c8dfc">00409</a> <a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *<a class="code" href="classllvm_1_1BitInit.html#ad9858f4615d778b83ae1bf03683c8dfc">BitInit::get</a>(<span class="keywordtype">bool</span> V) {
+<a name="l00410"></a>00410   <span class="keyword">static</span> <a class="code" href="classllvm_1_1BitInit.html">BitInit</a> True(<span class="keyword">true</span>);
+<a name="l00411"></a>00411   <span class="keyword">static</span> <a class="code" href="classllvm_1_1BitInit.html">BitInit</a> False(<span class="keyword">false</span>);
+<a name="l00412"></a>00412 
+<a name="l00413"></a>00413   <span class="keywordflow">return</span> V ? &True : &False;
+<a name="l00414"></a>00414 }
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416 <span class="keyword">static</span> <span class="keywordtype">void</span>
+<a name="l00417"></a><a class="code" href="Record_8cpp.html#aab956e2ed8a6e0d5dc240311a3ea8ba7">00417</a> <a class="code" href="Record_8cpp.html#aab956e2ed8a6e0d5dc240311a3ea8ba7">ProfileBitsInit</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> Range) {
+<a name="l00418"></a>00418   ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a1012a025613336baf7ad36a46d18ac36">AddInteger</a>(Range.<a class="code" href="classllvm_1_1ArrayRef.html#a76878250107ee24ef7339870bdda4bcf" title="size - Get the array size.">size</a>());
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<Init *>::iterator</a> i = Range.<a class="code" href="classllvm_1_1ArrayRef.html#a836367b39ed630bf14db99923c22740e">begin</a>(),
+<a name="l00421"></a>00421          iend = Range.<a class="code" href="classllvm_1_1ArrayRef.html#a38ed8cc3c342ad6910e8c869d3e2b9cf">end</a>();
+<a name="l00422"></a>00422        i != iend;
+<a name="l00423"></a>00423        ++i)
+<a name="l00424"></a>00424     ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a626e5a2c04c89e2ddd697e424ec68391">AddPointer</a>(*i);
+<a name="l00425"></a>00425 }
+<a name="l00426"></a>00426 
+<a name="l00427"></a><a class="code" href="classllvm_1_1BitsInit.html#aba3c542b2bcde5c5ba1d6ba46dce3615">00427</a> <a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *<a class="code" href="classllvm_1_1BitsInit.html#aba3c542b2bcde5c5ba1d6ba46dce3615">BitsInit::get</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> Range) {
+<a name="l00428"></a>00428   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1FoldingSet.html">FoldingSet<BitsInit></a> Pool;
+<a name="l00429"></a>00429   <span class="keyword">static</span> Pool ThePool;  
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431   <a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l00432"></a>00432   <a class="code" href="Record_8cpp.html#aab956e2ed8a6e0d5dc240311a3ea8ba7">ProfileBitsInit</a>(ID, Range);
+<a name="l00433"></a>00433 
+<a name="l00434"></a>00434   <span class="keywordtype">void</span> *IP = 0;
+<a name="l00435"></a>00435   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool.FindNodeOrInsertPos(ID, IP))
+<a name="l00436"></a>00436     <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438   <a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <span class="keyword">new</span> <a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a>(Range);
+<a name="l00439"></a>00439   ThePool.InsertNode(I, IP);
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00442"></a>00442 }
+<a name="l00443"></a>00443 
+<a name="l00444"></a><a class="code" href="classllvm_1_1BitsInit.html#a5a077a3664d2a3f6ce5e32f39d7df51e">00444</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1BitsInit.html#a5a077a3664d2a3f6ce5e32f39d7df51e">BitsInit::Profile</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>)<span class="keyword"> const </span>{
+<a name="l00445"></a>00445   <a class="code" href="Record_8cpp.html#aab956e2ed8a6e0d5dc240311a3ea8ba7">ProfileBitsInit</a>(ID, Bits);
+<a name="l00446"></a>00446 }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l00449"></a><a class="code" href="classllvm_1_1BitsInit.html#a3813797ad38570f9c7c7b17c9bdeff67">00449</a> <a class="code" href="classllvm_1_1BitsInit.html#a3813797ad38570f9c7c7b17c9bdeff67">BitsInit::convertInitializerBitRange</a>(<span class="keyword">const</span> std::vector<unsigned> &<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3c0710aa6b054662f67b480712fa2b95">Bits</a>)<span class="keyword"> const </span>{
+<a name="l00450"></a>00450   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Bits.size());
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Bits.size(); i != e; ++i) {
+<a name="l00453"></a>00453     <span class="keywordflow">if</span> (Bits[i] >= <a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>())
+<a name="l00454"></a>00454       <span class="keywordflow">return</span> 0;
+<a name="l00455"></a>00455     NewBits[i] = <a class="code" href="classllvm_1_1BitsInit.html#aac7c0b2ffa3a8cb7f87be59cbcf8dd04">getBit</a>(Bits[i]);
+<a name="l00456"></a>00456   }
+<a name="l00457"></a>00457   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsInit.html#aba3c542b2bcde5c5ba1d6ba46dce3615">BitsInit::get</a>(NewBits);
+<a name="l00458"></a>00458 }
+<a name="l00459"></a>00459 
+<a name="l00460"></a><a class="code" href="classllvm_1_1BitsInit.html#af25bed77c96d4663a2e3da602112e215">00460</a> std::string <a class="code" href="classllvm_1_1BitsInit.html#af25bed77c96d4663a2e3da602112e215" title="getAsString - Convert this value to a string form.">BitsInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00461"></a>00461   std::string Result = <span class="stringliteral">"{ "</span>;
+<a name="l00462"></a>00462   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = <a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>(); i != e; ++i) {
+<a name="l00463"></a>00463     <span class="keywordflow">if</span> (i) Result += <span class="stringliteral">", "</span>;
+<a name="l00464"></a>00464     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a> = <a class="code" href="classllvm_1_1BitsInit.html#aac7c0b2ffa3a8cb7f87be59cbcf8dd04">getBit</a>(e-i-1))
+<a name="l00465"></a>00465       Result += <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>->getAsString();
+<a name="l00466"></a>00466     <span class="keywordflow">else</span>
+<a name="l00467"></a>00467       Result += <span class="stringliteral">"*"</span>;
+<a name="l00468"></a>00468   }
+<a name="l00469"></a>00469   <span class="keywordflow">return</span> Result + <span class="stringliteral">" }"</span>;
+<a name="l00470"></a>00470 }
+<a name="l00471"></a>00471 
+<a name="l00472"></a>00472 <span class="comment">// Fix bit initializer to preserve the behavior that bit reference from a unset</span>
+<a name="l00473"></a>00473 <span class="comment">// bits initializer will resolve into VarBitInit to keep the field name and bit</span>
+<a name="l00474"></a>00474 <span class="comment">// number used in targets with fixed insn length.</span>
+<a name="l00475"></a><a class="code" href="Record_8cpp.html#a54ddeb880c4a2a71c5f3c749e37e3f96">00475</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="Record_8cpp.html#a54ddeb880c4a2a71c5f3c749e37e3f96">fixBitInit</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV, <a class="code" href="classllvm_1_1Init.html">Init</a> *Before, <a class="code" href="classllvm_1_1Init.html">Init</a> *After) {
+<a name="l00476"></a>00476   <span class="keywordflow">if</span> (RV || After != <a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>())
+<a name="l00477"></a>00477     <span class="keywordflow">return</span> After;
+<a name="l00478"></a>00478   <span class="keywordflow">return</span> Before;
+<a name="l00479"></a>00479 }
+<a name="l00480"></a>00480 
+<a name="l00481"></a>00481 <span class="comment">// resolveReferences - If there are any field references that refer to fields</span>
+<a name="l00482"></a>00482 <span class="comment">// that have been filled in, we can propagate the values now.</span>
+<a name="l00483"></a>00483 <span class="comment">//</span>
+<a name="l00484"></a><a class="code" href="classllvm_1_1BitsInit.html#ab93a9691e93dd346449d0660e8ad5d50">00484</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BitsInit.html#ab93a9691e93dd346449d0660e8ad5d50">BitsInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l00485"></a>00485   <span class="keywordtype">bool</span> Changed = <span class="keyword">false</span>;
+<a name="l00486"></a>00486   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(<a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>());
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488   <a class="code" href="classllvm_1_1Init.html">Init</a> *CachedInit = 0;
+<a name="l00489"></a>00489   <a class="code" href="classllvm_1_1Init.html">Init</a> *CachedBitVar = 0;
+<a name="l00490"></a>00490   <span class="keywordtype">bool</span> CachedBitVarChanged = <span class="keyword">false</span>;
+<a name="l00491"></a>00491 
+<a name="l00492"></a>00492   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = <a class="code" href="classllvm_1_1BitsInit.html#aa17c9b23822b8e83d74965a809497a43">getNumBits</a>(); i != e; ++i) {
+<a name="l00493"></a>00493     <a class="code" href="classllvm_1_1Init.html">Init</a> *CurBit = Bits[i];
+<a name="l00494"></a>00494     <a class="code" href="classllvm_1_1Init.html">Init</a> *CurBitVar = CurBit-><a class="code" href="classllvm_1_1Init.html#a2524b2bb4422e9ea6e5f95bfd0ce8dfa">getBitVar</a>();
+<a name="l00495"></a>00495 
+<a name="l00496"></a>00496     NewBits[i] = CurBit;
+<a name="l00497"></a>00497 
+<a name="l00498"></a>00498     <span class="keywordflow">if</span> (CurBitVar == CachedBitVar) {
+<a name="l00499"></a>00499       <span class="keywordflow">if</span> (CachedBitVarChanged) {
+<a name="l00500"></a>00500         <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a> = CachedInit-><a class="code" href="classllvm_1_1Init.html#a3c490ba475994a44fddd260a51f43479">getBit</a>(CurBit-><a class="code" href="classllvm_1_1Init.html#ac6c34f22784813a7b440ef4fbf351a28">getBitNum</a>());
+<a name="l00501"></a>00501         NewBits[i] = <a class="code" href="Record_8cpp.html#a54ddeb880c4a2a71c5f3c749e37e3f96">fixBitInit</a>(RV, CurBit, Bit);
+<a name="l00502"></a>00502       }
+<a name="l00503"></a>00503       <span class="keywordflow">continue</span>;
+<a name="l00504"></a>00504     }
+<a name="l00505"></a>00505     CachedBitVar = CurBitVar;
+<a name="l00506"></a>00506     CachedBitVarChanged = <span class="keyword">false</span>;
+<a name="l00507"></a>00507 
+<a name="l00508"></a>00508     <a class="code" href="classllvm_1_1Init.html">Init</a> *B;
+<a name="l00509"></a>00509     <span class="keywordflow">do</span> {
+<a name="l00510"></a>00510       B = CurBitVar;
+<a name="l00511"></a>00511       CurBitVar = CurBitVar-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l00512"></a>00512       CachedBitVarChanged |= B != CurBitVar;
+<a name="l00513"></a>00513       Changed |= B != CurBitVar;
+<a name="l00514"></a>00514     } <span class="keywordflow">while</span> (B != CurBitVar);
+<a name="l00515"></a>00515     CachedInit = CurBitVar;
+<a name="l00516"></a>00516 
+<a name="l00517"></a>00517     <span class="keywordflow">if</span> (CachedBitVarChanged) {
+<a name="l00518"></a>00518       <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a> = CurBitVar-><a class="code" href="classllvm_1_1Init.html#a3c490ba475994a44fddd260a51f43479">getBit</a>(CurBit-><a class="code" href="classllvm_1_1Init.html#ac6c34f22784813a7b440ef4fbf351a28">getBitNum</a>());
+<a name="l00519"></a>00519       NewBits[i] = <a class="code" href="Record_8cpp.html#a54ddeb880c4a2a71c5f3c749e37e3f96">fixBitInit</a>(RV, CurBit, Bit);
+<a name="l00520"></a>00520     }
+<a name="l00521"></a>00521   }
+<a name="l00522"></a>00522 
+<a name="l00523"></a>00523   <span class="keywordflow">if</span> (Changed)
+<a name="l00524"></a>00524     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsInit.html#aba3c542b2bcde5c5ba1d6ba46dce3615">BitsInit::get</a>(NewBits);
+<a name="l00525"></a>00525 
+<a name="l00526"></a>00526   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l00527"></a>00527 }
+<a name="l00528"></a>00528 
+<a name="l00529"></a><a class="code" href="classllvm_1_1IntInit.html#ad983ebf2d7679e4aa067937ce7a8685f">00529</a> <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *<a class="code" href="classllvm_1_1IntInit.html#ad983ebf2d7679e4aa067937ce7a8685f">IntInit::get</a>(<a class="code" href="classint64__t.html">int64_t</a> V) {
+<a name="l00530"></a>00530   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<int64_t, IntInit *></a> Pool;
+<a name="l00531"></a>00531   <span class="keyword">static</span> Pool ThePool;
+<a name="l00532"></a>00532 
+<a name="l00533"></a>00533   <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[V];
+<a name="l00534"></a>00534   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1IntInit.html">IntInit</a>(V);
+<a name="l00535"></a>00535   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00536"></a>00536 }
+<a name="l00537"></a>00537 
+<a name="l00538"></a><a class="code" href="classllvm_1_1IntInit.html#a49b475d061e70a3f2635047a8fc34488">00538</a> std::string <a class="code" href="classllvm_1_1IntInit.html#a49b475d061e70a3f2635047a8fc34488" title="getAsString - Convert this value to a string form.">IntInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00539"></a>00539   <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a36e9868826fbe487571befb79d9030c5">itostr</a>(<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>);
+<a name="l00540"></a>00540 }
+<a name="l00541"></a>00541 
+<a name="l00542"></a>00542 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l00543"></a><a class="code" href="classllvm_1_1IntInit.html#af96daf5e4a7f2e36f5084d6da8b30434">00543</a> <a class="code" href="classllvm_1_1IntInit.html#af96daf5e4a7f2e36f5084d6da8b30434">IntInit::convertInitializerBitRange</a>(<span class="keyword">const</span> std::vector<unsigned> &<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3c0710aa6b054662f67b480712fa2b95">Bits</a>)<span class="keyword"> const </span>{
+<a name="l00544"></a>00544   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Bits.size());
+<a name="l00545"></a>00545 
+<a name="l00546"></a>00546   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Bits.size(); i != e; ++i) {
+<a name="l00547"></a>00547     <span class="keywordflow">if</span> (Bits[i] >= 64)
+<a name="l00548"></a>00548       <span class="keywordflow">return</span> 0;
+<a name="l00549"></a>00549 
+<a name="l00550"></a>00550     NewBits[i] = <a class="code" href="classllvm_1_1IntInit.html#ad983ebf2d7679e4aa067937ce7a8685f">BitInit::get</a>(<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> & (INT64_C(1) << Bits[i]));
+<a name="l00551"></a>00551   }
+<a name="l00552"></a>00552   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1IntInit.html#ad983ebf2d7679e4aa067937ce7a8685f">BitsInit::get</a>(NewBits);
+<a name="l00553"></a>00553 }
+<a name="l00554"></a>00554 
+<a name="l00555"></a>00555 <span class="keywordtype">void</span> StringInit::anchor() { }
+<a name="l00556"></a>00556 
+<a name="l00557"></a><a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">00557</a> <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *<a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> V) {
+<a name="l00558"></a>00558   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1StringMap.html">StringMap<StringInit *></a> Pool;
+<a name="l00559"></a>00559   <span class="keyword">static</span> Pool ThePool;
+<a name="l00560"></a>00560 
+<a name="l00561"></a>00561   <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[V];
+<a name="l00562"></a>00562   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1StringInit.html">StringInit</a>(V);
+<a name="l00563"></a>00563   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00564"></a>00564 }
+<a name="l00565"></a>00565 
+<a name="l00566"></a><a class="code" href="Record_8cpp.html#ab592d832160085185ad1dff1a0b3e891">00566</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="Record_8cpp.html#ab592d832160085185ad1dff1a0b3e891">ProfileListInit</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>,
+<a name="l00567"></a>00567                             <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> Range,
+<a name="l00568"></a>00568                             <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *EltTy) {
+<a name="l00569"></a>00569   ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a1012a025613336baf7ad36a46d18ac36">AddInteger</a>(Range.<a class="code" href="classllvm_1_1ArrayRef.html#a76878250107ee24ef7339870bdda4bcf" title="size - Get the array size.">size</a>());
+<a name="l00570"></a>00570   ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a626e5a2c04c89e2ddd697e424ec68391">AddPointer</a>(EltTy);
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<Init *>::iterator</a> i = Range.<a class="code" href="classllvm_1_1ArrayRef.html#a836367b39ed630bf14db99923c22740e">begin</a>(),
+<a name="l00573"></a>00573          iend = Range.<a class="code" href="classllvm_1_1ArrayRef.html#a38ed8cc3c342ad6910e8c869d3e2b9cf">end</a>();
+<a name="l00574"></a>00574        i != iend;
+<a name="l00575"></a>00575        ++i)
+<a name="l00576"></a>00576     ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a626e5a2c04c89e2ddd697e424ec68391">AddPointer</a>(*i);
+<a name="l00577"></a>00577 }
+<a name="l00578"></a>00578 
+<a name="l00579"></a><a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">00579</a> <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">ListInit::get</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> Range, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *EltTy) {
+<a name="l00580"></a>00580   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1FoldingSet.html">FoldingSet<ListInit></a> Pool;
+<a name="l00581"></a>00581   <span class="keyword">static</span> Pool ThePool;
+<a name="l00582"></a>00582 
+<a name="l00583"></a>00583   <span class="comment">// Just use the FoldingSetNodeID to compute a hash.  Use a DenseMap</span>
+<a name="l00584"></a>00584   <span class="comment">// for actual storage.</span>
+<a name="l00585"></a>00585   <a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l00586"></a>00586   <a class="code" href="Record_8cpp.html#ab592d832160085185ad1dff1a0b3e891">ProfileListInit</a>(ID, Range, EltTy);
+<a name="l00587"></a>00587 
+<a name="l00588"></a>00588   <span class="keywordtype">void</span> *IP = 0;
+<a name="l00589"></a>00589   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool.FindNodeOrInsertPos(ID, IP))
+<a name="l00590"></a>00590     <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00591"></a>00591 
+<a name="l00592"></a>00592   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <span class="keyword">new</span> <a class="code" href="classllvm_1_1ListInit.html">ListInit</a>(Range, EltTy);
+<a name="l00593"></a>00593   ThePool.InsertNode(I, IP);
+<a name="l00594"></a>00594   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00595"></a>00595 }
+<a name="l00596"></a>00596 
+<a name="l00597"></a><a class="code" href="classllvm_1_1ListInit.html#a5aa20d6a24e38e5358032859137f76b6">00597</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1ListInit.html#a5aa20d6a24e38e5358032859137f76b6">ListInit::Profile</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>)<span class="keyword"> const </span>{
+<a name="l00598"></a>00598   <a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a> *ListType = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a>>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l00599"></a>00599   assert(ListType && <span class="stringliteral">"Bad type for ListInit!"</span>);
+<a name="l00600"></a>00600   <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *EltTy = ListType-><a class="code" href="classllvm_1_1ListRecTy.html#af475d7d12132176ba118199321e11668">getElementType</a>();
+<a name="l00601"></a>00601 
+<a name="l00602"></a>00602   <a class="code" href="Record_8cpp.html#ab592d832160085185ad1dff1a0b3e891">ProfileListInit</a>(ID, Values, EltTy);
+<a name="l00603"></a>00603 }
+<a name="l00604"></a>00604 
+<a name="l00605"></a>00605 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l00606"></a><a class="code" href="classllvm_1_1ListInit.html#a20fadc858457ffc5b5685b6356588fc2">00606</a> <a class="code" href="classllvm_1_1ListInit.html#a20fadc858457ffc5b5685b6356588fc2">ListInit::convertInitListSlice</a>(<span class="keyword">const</span> std::vector<unsigned> &Elements)<span class="keyword"> const </span>{
+<a name="l00607"></a>00607   std::vector<Init*> Vals;
+<a name="l00608"></a>00608   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Elements.size(); i != e; ++i) {
+<a name="l00609"></a>00609     <span class="keywordflow">if</span> (Elements[i] >= <a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>())
+<a name="l00610"></a>00610       <span class="keywordflow">return</span> 0;
+<a name="l00611"></a>00611     Vals.push_back(<a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(Elements[i]));
+<a name="l00612"></a>00612   }
+<a name="l00613"></a>00613   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">ListInit::get</a>(Vals, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l00614"></a>00614 }
+<a name="l00615"></a>00615 
+<a name="l00616"></a><a class="code" href="classllvm_1_1ListInit.html#a141cea7301ecd6cea1412e3f2078948a">00616</a> <a class="code" href="classllvm_1_1Record.html">Record</a> *<a class="code" href="classllvm_1_1ListInit.html#a141cea7301ecd6cea1412e3f2078948a">ListInit::getElementAsRecord</a>(<span class="keywordtype">unsigned</span> i)<span class="keyword"> const </span>{
+<a name="l00617"></a>00617   assert(i < Values.size() && <span class="stringliteral">"List element index out of range!"</span>);
+<a name="l00618"></a>00618   <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *DI = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(Values[i]);
+<a name="l00619"></a>00619   <span class="keywordflow">if</span> (DI == 0)
+<a name="l00620"></a>00620     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"Expected record in list!"</span>);
+<a name="l00621"></a>00621   <span class="keywordflow">return</span> DI->getDef();
+<a name="l00622"></a>00622 }
+<a name="l00623"></a>00623 
+<a name="l00624"></a><a class="code" href="classllvm_1_1ListInit.html#a9b9f5f7e8e9973ab5632f2d502b98a91">00624</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1ListInit.html#a9b9f5f7e8e9973ab5632f2d502b98a91">ListInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l00625"></a>00625   std::vector<Init*> Resolved;
+<a name="l00626"></a>00626   Resolved.reserve(<a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>());
+<a name="l00627"></a>00627   <span class="keywordtype">bool</span> Changed = <span class="keyword">false</span>;
+<a name="l00628"></a>00628 
+<a name="l00629"></a>00629   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = <a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>(); i != e; ++i) {
+<a name="l00630"></a>00630     <a class="code" href="classllvm_1_1Init.html">Init</a> *E;
+<a name="l00631"></a>00631     <a class="code" href="classllvm_1_1Init.html">Init</a> *CurElt = <a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(i);
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633     <span class="keywordflow">do</span> {
+<a name="l00634"></a>00634       E = CurElt;
+<a name="l00635"></a>00635       CurElt = CurElt-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l00636"></a>00636       Changed |= E != CurElt;
+<a name="l00637"></a>00637     } <span class="keywordflow">while</span> (E != CurElt);
+<a name="l00638"></a>00638     Resolved.push_back(E);
+<a name="l00639"></a>00639   }
+<a name="l00640"></a>00640 
+<a name="l00641"></a>00641   <span class="keywordflow">if</span> (Changed)
+<a name="l00642"></a>00642     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">ListInit::get</a>(Resolved, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l00643"></a>00643   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l00644"></a>00644 }
+<a name="l00645"></a>00645 
+<a name="l00646"></a><a class="code" href="classllvm_1_1ListInit.html#a73786d3bcd14df268567d81f8137123e">00646</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1ListInit.html#a73786d3bcd14df268567d81f8137123e">ListInit::resolveListElementReference</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *IRV,
+<a name="l00647"></a>00647                                             <span class="keywordtype">unsigned</span> Elt)<span class="keyword"> const </span>{
+<a name="l00648"></a>00648   <span class="keywordflow">if</span> (Elt >= <a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>())
+<a name="l00649"></a>00649     <span class="keywordflow">return</span> 0;  <span class="comment">// Out of range reference.</span>
+<a name="l00650"></a>00650   <a class="code" href="classllvm_1_1Init.html">Init</a> *E = <a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(Elt);
+<a name="l00651"></a>00651   <span class="comment">// If the element is set to some value, or if we are resolving a reference</span>
+<a name="l00652"></a>00652   <span class="comment">// to a specific variable and that variable is explicitly unset, then</span>
+<a name="l00653"></a>00653   <span class="comment">// replace the VarListElementInit with it.</span>
+<a name="l00654"></a>00654   <span class="keywordflow">if</span> (IRV || !isa<UnsetInit>(E))
+<a name="l00655"></a>00655     <span class="keywordflow">return</span> E;
+<a name="l00656"></a>00656   <span class="keywordflow">return</span> 0;
+<a name="l00657"></a>00657 }
+<a name="l00658"></a>00658 
+<a name="l00659"></a><a class="code" href="classllvm_1_1ListInit.html#a433857dd18367bbc539eb14f5c56fcfe">00659</a> std::string <a class="code" href="classllvm_1_1ListInit.html#a433857dd18367bbc539eb14f5c56fcfe" title="getAsString - Convert this value to a string form.">ListInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00660"></a>00660   std::string Result = <span class="stringliteral">"["</span>;
+<a name="l00661"></a>00661   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Values.size(); i != e; ++i) {
+<a name="l00662"></a>00662     <span class="keywordflow">if</span> (i) Result += <span class="stringliteral">", "</span>;
+<a name="l00663"></a>00663     Result += Values[i]->getAsString();
+<a name="l00664"></a>00664   }
+<a name="l00665"></a>00665   <span class="keywordflow">return</span> Result + <span class="stringliteral">"]"</span>;
+<a name="l00666"></a>00666 }
+<a name="l00667"></a>00667 
+<a name="l00668"></a><a class="code" href="classllvm_1_1OpInit.html#a6ed3177c7f5fd33409162e625c92de1c">00668</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1OpInit.html#a6ed3177c7f5fd33409162e625c92de1c">OpInit::resolveListElementReference</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *IRV,
+<a name="l00669"></a>00669                                           <span class="keywordtype">unsigned</span> Elt)<span class="keyword"> const </span>{
+<a name="l00670"></a>00670   <a class="code" href="classllvm_1_1Init.html">Init</a> *Resolved = <a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, IRV);
+<a name="l00671"></a>00671   <a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *OResolved = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1OpInit.html">OpInit</a>>(Resolved);
+<a name="l00672"></a>00672   <span class="keywordflow">if</span> (OResolved) {
+<a name="l00673"></a>00673     Resolved = OResolved-><a class="code" href="classllvm_1_1OpInit.html#aaef41d80bd295d99719331ccd1f9eb5c">Fold</a>(&R, 0);
+<a name="l00674"></a>00674   }
+<a name="l00675"></a>00675 
+<a name="l00676"></a>00676   <span class="keywordflow">if</span> (Resolved != <span class="keyword">this</span>) {
+<a name="l00677"></a>00677     <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *Typed = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(Resolved);
+<a name="l00678"></a>00678     assert(Typed && <span class="stringliteral">"Expected typed init for list reference"</span>);
+<a name="l00679"></a>00679     <span class="keywordflow">if</span> (Typed) {
+<a name="l00680"></a>00680       <a class="code" href="classllvm_1_1Init.html">Init</a> *New = Typed-><a class="code" href="classllvm_1_1TypedInit.html#ae27d37db70e530c5695254291f168cce">resolveListElementReference</a>(R, IRV, Elt);
+<a name="l00681"></a>00681       <span class="keywordflow">if</span> (New)
+<a name="l00682"></a>00682         <span class="keywordflow">return</span> New;
+<a name="l00683"></a>00683       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">VarListElementInit::get</a>(Typed, Elt);
+<a name="l00684"></a>00684     }
+<a name="l00685"></a>00685   }
+<a name="l00686"></a>00686 
+<a name="l00687"></a>00687   <span class="keywordflow">return</span> 0;
+<a name="l00688"></a>00688 }
+<a name="l00689"></a>00689 
+<a name="l00690"></a><a class="code" href="classllvm_1_1OpInit.html#ac81ad70d7df897a5fce40de040f628f7">00690</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1OpInit.html#ac81ad70d7df897a5fce40de040f628f7">OpInit::getBit</a>(<span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>)<span class="keyword"> const </span>{
+<a name="l00691"></a>00691   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>() == <a class="code" href="classllvm_1_1BitRecTy.html#a4e97a7c55d74adcb95b1bdb359a45977">BitRecTy::get</a>())
+<a name="l00692"></a>00692     <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1OpInit.html">OpInit</a>*<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l00693"></a>00693   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarBitInit.html#ac44aa6d65704ff9d14b5c371fdcfaa0e">VarBitInit::get</a>(const_cast<OpInit*>(<span class="keyword">this</span>), Bit);
+<a name="l00694"></a>00694 }
+<a name="l00695"></a>00695 
+<a name="l00696"></a><a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">00696</a> <a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a> *<a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">UnOpInit::get</a>(<a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73">UnaryOp</a> opc, <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>) {
+<a name="l00697"></a>00697   <span class="keyword">typedef</span> std::pair<std::pair<unsigned, Init *>, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *> Key;
+<a name="l00698"></a>00698 
+<a name="l00699"></a>00699   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, UnOpInit *></a> Pool;
+<a name="l00700"></a>00700   <span class="keyword">static</span> Pool ThePool;  
+<a name="l00701"></a>00701 
+<a name="l00702"></a>00702   Key TheKey(std::make_pair(std::make_pair(opc, lhs), Type));
+<a name="l00703"></a>00703 
+<a name="l00704"></a>00704   <a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l00705"></a>00705   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a>(opc, lhs, Type);
+<a name="l00706"></a>00706   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00707"></a>00707 }
+<a name="l00708"></a>00708 
+<a name="l00709"></a><a class="code" href="classllvm_1_1UnOpInit.html#a399cbcd46dd3d99ee81b4a3a9a829d01">00709</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1UnOpInit.html#a399cbcd46dd3d99ee81b4a3a9a829d01">UnOpInit::Fold</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass)<span class="keyword"> const </span>{
+<a name="l00710"></a>00710   <span class="keywordflow">switch</span> (<a class="code" href="classllvm_1_1UnOpInit.html#ab3ae855185fc8764a5dc1605c668ef47">getOpcode</a>()) {
+<a name="l00711"></a>00711   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">CAST</a>: {
+<a name="l00712"></a>00712     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1UnOpInit.html#a6331e5c31ec0a950e9702a776a11a5b9" title="getAsString - Convert this value to a string form.">getAsString</a>() == <span class="stringliteral">"string"</span>) {
+<a name="l00713"></a>00713       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = dyn_cast<StringInit>(LHS))
+<a name="l00714"></a>00714         <span class="keywordflow">return</span> LHSs;
+<a name="l00715"></a>00715 
+<a name="l00716"></a>00716       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *LHSd = dyn_cast<DefInit>(LHS))
+<a name="l00717"></a>00717         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">StringInit::get</a>(LHSd->getDef()->getName());
+<a name="l00718"></a>00718 
+<a name="l00719"></a>00719       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *LHSi = dyn_cast<IntInit>(LHS))
+<a name="l00720"></a>00720         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(LHSi->getAsString());
+<a name="l00721"></a>00721     } <span class="keywordflow">else</span> {
+<a name="l00722"></a>00722       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = dyn_cast<StringInit>(LHS)) {
+<a name="l00723"></a>00723         std::string <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a> = LHSs->getValue();
+<a name="l00724"></a>00724 
+<a name="l00725"></a>00725         <span class="comment">// From TGParser::ParseIDValue</span>
+<a name="l00726"></a>00726         <span class="keywordflow">if</span> (CurRec) {
+<a name="l00727"></a>00727           <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = CurRec-><a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(Name)) {
+<a name="l00728"></a>00728             <span class="keywordflow">if</span> (RV->getType() != <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>())
+<a name="l00729"></a>00729               <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"type mismatch in cast"</span>);
+<a name="l00730"></a>00730             <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">VarInit::get</a>(Name, RV->getType());
+<a name="l00731"></a>00731           }
+<a name="l00732"></a>00732 
+<a name="l00733"></a>00733           <a class="code" href="classllvm_1_1Init.html">Init</a> *TemplateArgName = <a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">QualifyName</a>(*CurRec, CurMultiClass, Name,
+<a name="l00734"></a>00734                                               <span class="stringliteral">":"</span>);
+<a name="l00735"></a>00735       
+<a name="l00736"></a>00736           <span class="keywordflow">if</span> (CurRec-><a class="code" href="classllvm_1_1Record.html#a4452000e5ece60cffed832797fef3672">isTemplateArg</a>(TemplateArgName)) {
+<a name="l00737"></a>00737             <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = CurRec-><a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(TemplateArgName);
+<a name="l00738"></a>00738             assert(RV && <span class="stringliteral">"Template arg doesn't exist??"</span>);
+<a name="l00739"></a>00739 
+<a name="l00740"></a>00740             <span class="keywordflow">if</span> (RV-><a class="code" href="classllvm_1_1RecordVal.html#a2cdffedc048cb9c1adf42db4b0ea5b27">getType</a>() != <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>())
+<a name="l00741"></a>00741               <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"type mismatch in cast"</span>);
+<a name="l00742"></a>00742 
+<a name="l00743"></a>00743             <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">VarInit::get</a>(TemplateArgName, RV-><a class="code" href="classllvm_1_1RecordVal.html#a2cdffedc048cb9c1adf42db4b0ea5b27">getType</a>());
+<a name="l00744"></a>00744           }
+<a name="l00745"></a>00745         }
+<a name="l00746"></a>00746 
+<a name="l00747"></a>00747         <span class="keywordflow">if</span> (CurMultiClass) {
+<a name="l00748"></a>00748           <a class="code" href="classllvm_1_1Init.html">Init</a> *MCName = <a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">QualifyName</a>(CurMultiClass-><a class="code" href="structllvm_1_1MultiClass.html#ae0ccef996d8034966cf8fbd99904915b">Rec</a>, CurMultiClass, Name, <span class="stringliteral">"::"</span>);
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750           <span class="keywordflow">if</span> (CurMultiClass-><a class="code" href="structllvm_1_1MultiClass.html#ae0ccef996d8034966cf8fbd99904915b">Rec</a>.<a class="code" href="classllvm_1_1Record.html#a4452000e5ece60cffed832797fef3672">isTemplateArg</a>(MCName)) {
+<a name="l00751"></a>00751             <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = CurMultiClass-><a class="code" href="structllvm_1_1MultiClass.html#ae0ccef996d8034966cf8fbd99904915b">Rec</a>.<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(MCName);
+<a name="l00752"></a>00752             assert(RV && <span class="stringliteral">"Template arg doesn't exist??"</span>);
+<a name="l00753"></a>00753 
+<a name="l00754"></a>00754             <span class="keywordflow">if</span> (RV-><a class="code" href="classllvm_1_1RecordVal.html#a2cdffedc048cb9c1adf42db4b0ea5b27">getType</a>() != <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>())
+<a name="l00755"></a>00755               <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"type mismatch in cast"</span>);
+<a name="l00756"></a>00756 
+<a name="l00757"></a>00757             <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">VarInit::get</a>(MCName, RV-><a class="code" href="classllvm_1_1RecordVal.html#a2cdffedc048cb9c1adf42db4b0ea5b27">getType</a>());
+<a name="l00758"></a>00758           }
+<a name="l00759"></a>00759         }
+<a name="l00760"></a>00760 
+<a name="l00761"></a>00761         <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Record.html">Record</a> *D = (CurRec-><a class="code" href="classllvm_1_1Record.html#aaa2bbc75a12912a0500daf33b20d6952">getRecords</a>()).getDef(Name))
+<a name="l00762"></a>00762           <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1DefInit.html#aed824af830bed6ea3aa2dfb1d75e3a6b">DefInit::get</a>(D);
+<a name="l00763"></a>00763 
+<a name="l00764"></a>00764         <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(CurRec-><a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(),
+<a name="l00765"></a>00765                         <span class="stringliteral">"Undefined reference:'"</span> + Name + <span class="stringliteral">"'\n"</span>);
+<a name="l00766"></a>00766       }
+<a name="l00767"></a>00767     }
+<a name="l00768"></a>00768     <span class="keywordflow">break</span>;
+<a name="l00769"></a>00769   }
+<a name="l00770"></a>00770   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73a33cba82be6410ca26755494a93351eff">HEAD</a>: {
+<a name="l00771"></a>00771     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *LHSl = dyn_cast<ListInit>(LHS)) {
+<a name="l00772"></a>00772       <span class="keywordflow">if</span> (LHSl->getSize() == 0) {
+<a name="l00773"></a>00773         assert(0 && <span class="stringliteral">"Empty list in car"</span>);
+<a name="l00774"></a>00774         <span class="keywordflow">return</span> 0;
+<a name="l00775"></a>00775       }
+<a name="l00776"></a>00776       <span class="keywordflow">return</span> LHSl->getElement(0);
+<a name="l00777"></a>00777     }
+<a name="l00778"></a>00778     <span class="keywordflow">break</span>;
+<a name="l00779"></a>00779   }
+<a name="l00780"></a>00780   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73ae0e5d441bf3f167560d89d6e82535b5c">TAIL</a>: {
+<a name="l00781"></a>00781     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *LHSl = dyn_cast<ListInit>(LHS)) {
+<a name="l00782"></a>00782       <span class="keywordflow">if</span> (LHSl->getSize() == 0) {
+<a name="l00783"></a>00783         assert(0 && <span class="stringliteral">"Empty list in cdr"</span>);
+<a name="l00784"></a>00784         <span class="keywordflow">return</span> 0;
+<a name="l00785"></a>00785       }
+<a name="l00786"></a>00786       <span class="comment">// Note the +1.  We can't just pass the result of getValues()</span>
+<a name="l00787"></a>00787       <span class="comment">// directly.</span>
+<a name="l00788"></a>00788       <a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<Init *>::iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a> = LHSl->getValues().begin()+1;
+<a name="l00789"></a>00789       <a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<Init *>::iterator</a> <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>   = LHSl->getValues().end();
+<a name="l00790"></a>00790       <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *Result =
+<a name="l00791"></a>00791         <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">ListInit::get</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a>(begin, end - begin),
+<a name="l00792"></a>00792                       LHSl->getType());
+<a name="l00793"></a>00793       <span class="keywordflow">return</span> Result;
+<a name="l00794"></a>00794     }
+<a name="l00795"></a>00795     <span class="keywordflow">break</span>;
+<a name="l00796"></a>00796   }
+<a name="l00797"></a>00797   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73a99aa51ae9174f57bdf8b9a6688cfd3c8">EMPTY</a>: {
+<a name="l00798"></a>00798     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *LHSl = dyn_cast<ListInit>(LHS)) {
+<a name="l00799"></a>00799       <span class="keywordflow">if</span> (LHSl->getSize() == 0) {
+<a name="l00800"></a>00800         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">IntInit::get</a>(1);
+<a name="l00801"></a>00801       } <span class="keywordflow">else</span> {
+<a name="l00802"></a>00802         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">IntInit::get</a>(0);
+<a name="l00803"></a>00803       }
+<a name="l00804"></a>00804     }
+<a name="l00805"></a>00805     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = dyn_cast<StringInit>(LHS)) {
+<a name="l00806"></a>00806       <span class="keywordflow">if</span> (LHSs->getValue().empty()) {
+<a name="l00807"></a>00807         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">IntInit::get</a>(1);
+<a name="l00808"></a>00808       } <span class="keywordflow">else</span> {
+<a name="l00809"></a>00809         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">IntInit::get</a>(0);
+<a name="l00810"></a>00810       }
+<a name="l00811"></a>00811     }
+<a name="l00812"></a>00812 
+<a name="l00813"></a>00813     <span class="keywordflow">break</span>;
+<a name="l00814"></a>00814   }
+<a name="l00815"></a>00815   }
+<a name="l00816"></a>00816   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1UnOpInit.html">UnOpInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l00817"></a>00817 }
+<a name="l00818"></a>00818 
+<a name="l00819"></a><a class="code" href="classllvm_1_1UnOpInit.html#a996811a6185b4d755566689899fe169b">00819</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1UnOpInit.html#a996811a6185b4d755566689899fe169b">UnOpInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l00820"></a>00820   <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs = LHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l00821"></a>00821 
+<a name="l00822"></a>00822   <span class="keywordflow">if</span> (LHS != lhs)
+<a name="l00823"></a>00823     <span class="keywordflow">return</span> (<a class="code" href="classllvm_1_1UnOpInit.html#ab8f1cbc2fc41f1e8b1daa496235a52af">UnOpInit::get</a>(<a class="code" href="classllvm_1_1UnOpInit.html#ab3ae855185fc8764a5dc1605c668ef47">getOpcode</a>(), lhs, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))->Fold(&R, 0);
+<a name="l00824"></a>00824   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1UnOpInit.html#a399cbcd46dd3d99ee81b4a3a9a829d01">Fold</a>(&R, 0);
+<a name="l00825"></a>00825 }
+<a name="l00826"></a>00826 
+<a name="l00827"></a><a class="code" href="classllvm_1_1UnOpInit.html#a6331e5c31ec0a950e9702a776a11a5b9">00827</a> std::string <a class="code" href="classllvm_1_1UnOpInit.html#a6331e5c31ec0a950e9702a776a11a5b9" title="getAsString - Convert this value to a string form.">UnOpInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00828"></a>00828   std::string Result;
+<a name="l00829"></a>00829   <span class="keywordflow">switch</span> (Opc) {
+<a name="l00830"></a>00830   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73aab4ee971c2ba1beb7ed1700ae7955b79">CAST</a>: Result = <span class="stringliteral">"!cast<"</span> + <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1RecTy.html#a7aa55697f48dc46c49a6f300bc2fdbe1">getAsString</a>() + <span class="stringliteral">">"</span>; <span class="keywordflow">break</span>;
+<a name="l00831"></a>00831   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73a33cba82be6410ca26755494a93351eff">HEAD</a>: Result = <span class="stringliteral">"!head"</span>; <span class="keywordflow">break</span>;
+<a name="l00832"></a>00832   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73ae0e5d441bf3f167560d89d6e82535b5c">TAIL</a>: Result = <span class="stringliteral">"!tail"</span>; <span class="keywordflow">break</span>;
+<a name="l00833"></a>00833   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1UnOpInit.html#a20165c57b7c8d9a944a5ae39ff634f73a99aa51ae9174f57bdf8b9a6688cfd3c8">EMPTY</a>: Result = <span class="stringliteral">"!empty"</span>; <span class="keywordflow">break</span>;
+<a name="l00834"></a>00834   }
+<a name="l00835"></a>00835   <span class="keywordflow">return</span> Result + <span class="stringliteral">"("</span> + LHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">")"</span>;
+<a name="l00836"></a>00836 }
+<a name="l00837"></a>00837 
+<a name="l00838"></a><a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">00838</a> <a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *<a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2c">BinaryOp</a> opc, <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs,
+<a name="l00839"></a>00839                           <a class="code" href="classllvm_1_1Init.html">Init</a> *rhs, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>) {
+<a name="l00840"></a>00840   <span class="keyword">typedef</span> std::pair<
+<a name="l00841"></a>00841     std::pair<std::pair<unsigned, Init *>, <a class="code" href="classllvm_1_1Init.html">Init</a> *>,
+<a name="l00842"></a>00842     <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *
+<a name="l00843"></a>00843     > Key;
+<a name="l00844"></a>00844 
+<a name="l00845"></a>00845   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, BinOpInit *></a> Pool;
+<a name="l00846"></a>00846   <span class="keyword">static</span> Pool ThePool;  
+<a name="l00847"></a>00847 
+<a name="l00848"></a>00848   Key TheKey(std::make_pair(std::make_pair(std::make_pair(opc, lhs), rhs),
+<a name="l00849"></a>00849                             Type));
+<a name="l00850"></a>00850 
+<a name="l00851"></a>00851   <a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l00852"></a>00852   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a>(opc, lhs, rhs, Type);
+<a name="l00853"></a>00853   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00854"></a>00854 }
+<a name="l00855"></a>00855 
+<a name="l00856"></a><a class="code" href="classllvm_1_1BinOpInit.html#abf53df4bf80c7a0e589eee2f47b2d7c9">00856</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BinOpInit.html#abf53df4bf80c7a0e589eee2f47b2d7c9">BinOpInit::Fold</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass)<span class="keyword"> const </span>{
+<a name="l00857"></a>00857   <span class="keywordflow">switch</span> (<a class="code" href="classllvm_1_1BinOpInit.html#af4e4ccbe5f0bf5265b2d43e53f3d8061">getOpcode</a>()) {
+<a name="l00858"></a>00858   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cafdd00230027b7ddbb9d855ececcf7da3">CONCAT</a>: {
+<a name="l00859"></a>00859     <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *LHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DagInit.html">DagInit</a>>(LHS);
+<a name="l00860"></a>00860     <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *RHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DagInit.html">DagInit</a>>(RHS);
+<a name="l00861"></a>00861     <span class="keywordflow">if</span> (LHSs && RHSs) {
+<a name="l00862"></a>00862       <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *LOp = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(LHSs-><a class="code" href="classllvm_1_1DagInit.html#acaf2b32207bb8775badb1f1f72839606">getOperator</a>());
+<a name="l00863"></a>00863       <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *ROp = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(RHSs->getOperator());
+<a name="l00864"></a>00864       <span class="keywordflow">if</span> (LOp == 0 || ROp == 0 || LOp-><a class="code" href="classllvm_1_1DefInit.html#ac1afebf61439452dc14f1839e0c47042">getDef</a>() != ROp->getDef())
+<a name="l00865"></a>00865         <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"Concated Dag operators do not match!"</span>);
+<a name="l00866"></a>00866       std::vector<Init*> Args;
+<a name="l00867"></a>00867       std::vector<std::string> ArgNames;
+<a name="l00868"></a>00868       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = LHSs-><a class="code" href="classllvm_1_1DagInit.html#af882b0281ae01d819d899da03f963ce0">getNumArgs</a>(); i != e; ++i) {
+<a name="l00869"></a>00869         Args.push_back(LHSs-><a class="code" href="classllvm_1_1DagInit.html#a97462828fc8b23aabf59a4c5203e771d">getArg</a>(i));
+<a name="l00870"></a>00870         ArgNames.push_back(LHSs-><a class="code" href="classllvm_1_1DagInit.html#a3a68a7de45800513403ed246dc6219e1">getArgName</a>(i));
+<a name="l00871"></a>00871       }
+<a name="l00872"></a>00872       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = RHSs->getNumArgs(); i != e; ++i) {
+<a name="l00873"></a>00873         Args.push_back(RHSs->getArg(i));
+<a name="l00874"></a>00874         ArgNames.push_back(RHSs->getArgName(i));
+<a name="l00875"></a>00875       }
+<a name="l00876"></a>00876       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">DagInit::get</a>(LHSs-><a class="code" href="classllvm_1_1DagInit.html#acaf2b32207bb8775badb1f1f72839606">getOperator</a>(), <span class="stringliteral">""</span>, Args, ArgNames);
+<a name="l00877"></a>00877     }
+<a name="l00878"></a>00878     <span class="keywordflow">break</span>;
+<a name="l00879"></a>00879   }
+<a name="l00880"></a>00880   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">STRCONCAT</a>: {
+<a name="l00881"></a>00881     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(LHS);
+<a name="l00882"></a>00882     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *RHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(RHS);
+<a name="l00883"></a>00883     <span class="keywordflow">if</span> (LHSs && RHSs)
+<a name="l00884"></a>00884       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">StringInit::get</a>(LHSs-><a class="code" href="classllvm_1_1StringInit.html#a2db003869e356f9b4ac4f64b9b400302">getValue</a>() + RHSs->getValue());
+<a name="l00885"></a>00885     <span class="keywordflow">break</span>;
+<a name="l00886"></a>00886   }
+<a name="l00887"></a>00887   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cace80b63253cf19d5267ad26c18503382">EQ</a>: {
+<a name="l00888"></a>00888     <span class="comment">// try to fold eq comparison for 'bit' and 'int', otherwise fallback</span>
+<a name="l00889"></a>00889     <span class="comment">// to string objects.</span>
+<a name="l00890"></a>00890     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *L =
+<a name="l00891"></a>00891       dyn_cast_or_null<IntInit>(LHS-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntRecTy::get</a>()));
+<a name="l00892"></a>00892     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *R =
+<a name="l00893"></a>00893       dyn_cast_or_null<IntInit>(RHS-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntRecTy::get</a>()));
+<a name="l00894"></a>00894 
+<a name="l00895"></a>00895     <span class="keywordflow">if</span> (L && R)
+<a name="l00896"></a>00896       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">IntInit::get</a>(L-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>() == R->getValue());
+<a name="l00897"></a>00897 
+<a name="l00898"></a>00898     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(LHS);
+<a name="l00899"></a>00899     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *RHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(RHS);
+<a name="l00900"></a>00900 
+<a name="l00901"></a>00901     <span class="comment">// Make sure we've resolved</span>
+<a name="l00902"></a>00902     <span class="keywordflow">if</span> (LHSs && RHSs)
+<a name="l00903"></a>00903       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">IntInit::get</a>(LHSs->getValue() == RHSs->getValue());
+<a name="l00904"></a>00904 
+<a name="l00905"></a>00905     <span class="keywordflow">break</span>;
+<a name="l00906"></a>00906   }
+<a name="l00907"></a>00907   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca36bbc83b8a201db62e9a09ea31198390">SHL</a>:
+<a name="l00908"></a>00908   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cac2ac5594d02bbb607ba28f8bdbdb81b7">SRA</a>:
+<a name="l00909"></a>00909   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2caf0784a23764ddff84d580f8359dd7b9c">SRL</a>: {
+<a name="l00910"></a>00910     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *LHSi = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1IntInit.html">IntInit</a>>(LHS);
+<a name="l00911"></a>00911     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *RHSi = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1IntInit.html">IntInit</a>>(RHS);
+<a name="l00912"></a>00912     <span class="keywordflow">if</span> (LHSi && RHSi) {
+<a name="l00913"></a>00913       <a class="code" href="classint64__t.html">int64_t</a> LHSv = LHSi-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>(), RHSv = RHSi->getValue();
+<a name="l00914"></a>00914       <a class="code" href="classint64__t.html">int64_t</a> Result;
+<a name="l00915"></a>00915       <span class="keywordflow">switch</span> (<a class="code" href="classllvm_1_1BinOpInit.html#af4e4ccbe5f0bf5265b2d43e53f3d8061">getOpcode</a>()) {
+<a name="l00916"></a>00916       <span class="keywordflow">default</span>: <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(<span class="stringliteral">"Bad opcode!"</span>);
+<a name="l00917"></a>00917       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca36bbc83b8a201db62e9a09ea31198390">SHL</a>: Result = LHSv << RHSv; <span class="keywordflow">break</span>;
+<a name="l00918"></a>00918       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cac2ac5594d02bbb607ba28f8bdbdb81b7">SRA</a>: Result = LHSv >> RHSv; <span class="keywordflow">break</span>;
+<a name="l00919"></a>00919       <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2caf0784a23764ddff84d580f8359dd7b9c">SRL</a>: Result = (uint64_t)LHSv >> (uint64_t)RHSv; <span class="keywordflow">break</span>;
+<a name="l00920"></a>00920       }
+<a name="l00921"></a>00921       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">IntInit::get</a>(Result);
+<a name="l00922"></a>00922     }
+<a name="l00923"></a>00923     <span class="keywordflow">break</span>;
+<a name="l00924"></a>00924   }
+<a name="l00925"></a>00925   }
+<a name="l00926"></a>00926   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l00927"></a>00927 }
+<a name="l00928"></a>00928 
+<a name="l00929"></a><a class="code" href="classllvm_1_1BinOpInit.html#a6f4887e95edec8dd274b71d7ee49de0c">00929</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1BinOpInit.html#a6f4887e95edec8dd274b71d7ee49de0c">BinOpInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l00930"></a>00930   <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs = LHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l00931"></a>00931   <a class="code" href="classllvm_1_1Init.html">Init</a> *rhs = RHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l00932"></a>00932 
+<a name="l00933"></a>00933   <span class="keywordflow">if</span> (LHS != lhs || RHS != rhs)
+<a name="l00934"></a>00934     <span class="keywordflow">return</span> (<a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#af4e4ccbe5f0bf5265b2d43e53f3d8061">getOpcode</a>(), lhs, rhs, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))->Fold(&R, 0);
+<a name="l00935"></a>00935   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BinOpInit.html#abf53df4bf80c7a0e589eee2f47b2d7c9">Fold</a>(&R, 0);
+<a name="l00936"></a>00936 }
+<a name="l00937"></a>00937 
+<a name="l00938"></a><a class="code" href="classllvm_1_1BinOpInit.html#a90975fc41e9ec3be6d2fc4a58876e6b0">00938</a> std::string <a class="code" href="classllvm_1_1BinOpInit.html#a90975fc41e9ec3be6d2fc4a58876e6b0" title="getAsString - Convert this value to a string form.">BinOpInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l00939"></a>00939   std::string Result;
+<a name="l00940"></a>00940   <span class="keywordflow">switch</span> (Opc) {
+<a name="l00941"></a>00941   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cafdd00230027b7ddbb9d855ececcf7da3">CONCAT</a>: Result = <span class="stringliteral">"!con"</span>; <span class="keywordflow">break</span>;
+<a name="l00942"></a>00942   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca36bbc83b8a201db62e9a09ea31198390">SHL</a>: Result = <span class="stringliteral">"!shl"</span>; <span class="keywordflow">break</span>;
+<a name="l00943"></a>00943   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cac2ac5594d02bbb607ba28f8bdbdb81b7">SRA</a>: Result = <span class="stringliteral">"!sra"</span>; <span class="keywordflow">break</span>;
+<a name="l00944"></a>00944   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2caf0784a23764ddff84d580f8359dd7b9c">SRL</a>: Result = <span class="stringliteral">"!srl"</span>; <span class="keywordflow">break</span>;
+<a name="l00945"></a>00945   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2cace80b63253cf19d5267ad26c18503382">EQ</a>: Result = <span class="stringliteral">"!eq"</span>; <span class="keywordflow">break</span>;
+<a name="l00946"></a>00946   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">STRCONCAT</a>: Result = <span class="stringliteral">"!strconcat"</span>; <span class="keywordflow">break</span>;
+<a name="l00947"></a>00947   }
+<a name="l00948"></a>00948   <span class="keywordflow">return</span> Result + <span class="stringliteral">"("</span> + LHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">", "</span> + RHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">")"</span>;
+<a name="l00949"></a>00949 }
+<a name="l00950"></a>00950 
+<a name="l00951"></a><a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">00951</a> <a class="code" href="classllvm_1_1TernOpInit.html">TernOpInit</a> *<a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">TernOpInit::get</a>(<a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053">TernaryOp</a> opc, <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs,
+<a name="l00952"></a>00952                                   <a class="code" href="classllvm_1_1Init.html">Init</a> *mhs, <a class="code" href="classllvm_1_1Init.html">Init</a> *rhs,
+<a name="l00953"></a>00953                                   <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>) {
+<a name="l00954"></a>00954   <span class="keyword">typedef</span> std::pair<
+<a name="l00955"></a>00955     std::pair<
+<a name="l00956"></a>00956       std::pair<std::pair<unsigned, RecTy *>, <a class="code" href="classllvm_1_1Init.html">Init</a> *>,
+<a name="l00957"></a>00957       Init *
+<a name="l00958"></a>00958       >,
+<a name="l00959"></a>00959     Init *
+<a name="l00960"></a>00960     > Key;
+<a name="l00961"></a>00961 
+<a name="l00962"></a>00962   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, TernOpInit *></a> Pool;
+<a name="l00963"></a>00963   <span class="keyword">static</span> Pool ThePool;
+<a name="l00964"></a>00964 
+<a name="l00965"></a>00965   Key TheKey(std::make_pair(std::make_pair(std::make_pair(std::make_pair(opc,
+<a name="l00966"></a>00966                                                                          Type),
+<a name="l00967"></a>00967                                                           lhs),
+<a name="l00968"></a>00968                                            mhs),
+<a name="l00969"></a>00969                             rhs));
+<a name="l00970"></a>00970 
+<a name="l00971"></a>00971   <a class="code" href="classllvm_1_1TernOpInit.html">TernOpInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l00972"></a>00972   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1TernOpInit.html">TernOpInit</a>(opc, lhs, mhs, rhs, Type);
+<a name="l00973"></a>00973   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l00974"></a>00974 }
+<a name="l00975"></a>00975 
+<a name="l00976"></a>00976 <span class="keyword">static</span> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="Record_8cpp.html#a197d0ba705d084f29f496c0e647857e0">ForeachHelper</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *LHS, <a class="code" href="classllvm_1_1Init.html">Init</a> *MHS, <a class="code" href="classllvm_1_1Init.html">Init</a> *RHS, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>,
+<a name="l00977"></a>00977                            <a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass);
+<a name="l00978"></a>00978 
+<a name="l00979"></a><a class="code" href="Record_8cpp.html#a9af01c4b453c2d2c1e287b583480f6a3">00979</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="Record_8cpp.html#a9af01c4b453c2d2c1e287b583480f6a3">EvaluateOperation</a>(<a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *RHSo, <a class="code" href="classllvm_1_1Init.html">Init</a> *LHS, <a class="code" href="classllvm_1_1Init.html">Init</a> *Arg,
+<a name="l00980"></a>00980                                <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>, <a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec,
+<a name="l00981"></a>00981                                <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass) {
+<a name="l00982"></a>00982   std::vector<Init *> NewOperands;
+<a name="l00983"></a>00983 
+<a name="l00984"></a>00984   <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TArg = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(Arg);
+<a name="l00985"></a>00985 
+<a name="l00986"></a>00986   <span class="comment">// If this is a dag, recurse</span>
+<a name="l00987"></a>00987   <span class="keywordflow">if</span> (TArg && TArg-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()-><a class="code" href="classllvm_1_1RecTy.html#a7aa55697f48dc46c49a6f300bc2fdbe1">getAsString</a>() == <span class="stringliteral">"dag"</span>) {
+<a name="l00988"></a>00988     <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = <a class="code" href="Record_8cpp.html#a197d0ba705d084f29f496c0e647857e0">ForeachHelper</a>(LHS, Arg, RHSo, Type,
+<a name="l00989"></a>00989                                  CurRec, CurMultiClass);
+<a name="l00990"></a>00990     <span class="keywordflow">if</span> (Result != 0) {
+<a name="l00991"></a>00991       <span class="keywordflow">return</span> Result;
+<a name="l00992"></a>00992     } <span class="keywordflow">else</span> {
+<a name="l00993"></a>00993       <span class="keywordflow">return</span> 0;
+<a name="l00994"></a>00994     }
+<a name="l00995"></a>00995   }
+<a name="l00996"></a>00996 
+<a name="l00997"></a>00997   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < RHSo-><a class="code" href="classllvm_1_1OpInit.html#ab38d1fde5ef582d377935d6a2041a07e">getNumOperands</a>(); ++i) {
+<a name="l00998"></a>00998     <a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *RHSoo = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1OpInit.html">OpInit</a>>(RHSo-><a class="code" href="classllvm_1_1OpInit.html#affe5f9884dbe8ef48723da1dbf4e0c67">getOperand</a>(i));
+<a name="l00999"></a>00999 
+<a name="l01000"></a>01000     <span class="keywordflow">if</span> (RHSoo) {
+<a name="l01001"></a>01001       <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = <a class="code" href="Record_8cpp.html#a9af01c4b453c2d2c1e287b583480f6a3">EvaluateOperation</a>(RHSoo, LHS, Arg,
+<a name="l01002"></a>01002                                        Type, CurRec, CurMultiClass);
+<a name="l01003"></a>01003       <span class="keywordflow">if</span> (Result != 0) {
+<a name="l01004"></a>01004         NewOperands.push_back(Result);
+<a name="l01005"></a>01005       } <span class="keywordflow">else</span> {
+<a name="l01006"></a>01006         NewOperands.push_back(Arg);
+<a name="l01007"></a>01007       }
+<a name="l01008"></a>01008     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() == RHSo-><a class="code" href="classllvm_1_1OpInit.html#affe5f9884dbe8ef48723da1dbf4e0c67">getOperand</a>(i)-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>()) {
+<a name="l01009"></a>01009       NewOperands.push_back(Arg);
+<a name="l01010"></a>01010     } <span class="keywordflow">else</span> {
+<a name="l01011"></a>01011       NewOperands.push_back(RHSo-><a class="code" href="classllvm_1_1OpInit.html#affe5f9884dbe8ef48723da1dbf4e0c67">getOperand</a>(i));
+<a name="l01012"></a>01012     }
+<a name="l01013"></a>01013   }
+<a name="l01014"></a>01014 
+<a name="l01015"></a>01015   <span class="comment">// Now run the operator and use its result as the new leaf</span>
+<a name="l01016"></a>01016   <span class="keyword">const</span> <a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *NewOp = RHSo-><a class="code" href="classllvm_1_1OpInit.html#a6750d58fed2bebd91616612238e4b5b0">clone</a>(NewOperands);
+<a name="l01017"></a>01017   <a class="code" href="classllvm_1_1Init.html">Init</a> *NewVal = NewOp-><a class="code" href="classllvm_1_1OpInit.html#aaef41d80bd295d99719331ccd1f9eb5c">Fold</a>(CurRec, CurMultiClass);
+<a name="l01018"></a>01018   <span class="keywordflow">if</span> (NewVal != NewOp)
+<a name="l01019"></a>01019     <span class="keywordflow">return</span> NewVal;
+<a name="l01020"></a>01020 
+<a name="l01021"></a>01021   <span class="keywordflow">return</span> 0;
+<a name="l01022"></a>01022 }
+<a name="l01023"></a>01023 
+<a name="l01024"></a><a class="code" href="Record_8cpp.html#a197d0ba705d084f29f496c0e647857e0">01024</a> <span class="keyword">static</span> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="Record_8cpp.html#a197d0ba705d084f29f496c0e647857e0">ForeachHelper</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *LHS, <a class="code" href="classllvm_1_1Init.html">Init</a> *MHS, <a class="code" href="classllvm_1_1Init.html">Init</a> *RHS, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a>,
+<a name="l01025"></a>01025                            <a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass) {
+<a name="l01026"></a>01026   <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *MHSd = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DagInit.html">DagInit</a>>(MHS);
+<a name="l01027"></a>01027   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *MHSl = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1ListInit.html">ListInit</a>>(MHS);
+<a name="l01028"></a>01028 
+<a name="l01029"></a>01029   <a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *RHSo = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1OpInit.html">OpInit</a>>(RHS);
+<a name="l01030"></a>01030 
+<a name="l01031"></a>01031   <span class="keywordflow">if</span> (!RHSo) {
+<a name="l01032"></a>01032     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(CurRec-><a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"!foreach requires an operator\n"</span>);
+<a name="l01033"></a>01033   }
+<a name="l01034"></a>01034 
+<a name="l01035"></a>01035   <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *LHSt = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(LHS);
+<a name="l01036"></a>01036 
+<a name="l01037"></a>01037   <span class="keywordflow">if</span> (!LHSt)
+<a name="l01038"></a>01038     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(CurRec-><a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"!foreach requires typed variable\n"</span>);
+<a name="l01039"></a>01039 
+<a name="l01040"></a>01040   <span class="keywordflow">if</span> ((MHSd && isa<DagRecTy>(Type)) || (MHSl && isa<ListRecTy>(<a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>))) {
+<a name="l01041"></a>01041     <span class="keywordflow">if</span> (MHSd) {
+<a name="l01042"></a>01042       <a class="code" href="classllvm_1_1Init.html">Init</a> *Val = MHSd-><a class="code" href="classllvm_1_1DagInit.html#acaf2b32207bb8775badb1f1f72839606">getOperator</a>();
+<a name="l01043"></a>01043       <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = <a class="code" href="Record_8cpp.html#a9af01c4b453c2d2c1e287b583480f6a3">EvaluateOperation</a>(RHSo, LHS, Val,
+<a name="l01044"></a>01044                                        Type, CurRec, CurMultiClass);
+<a name="l01045"></a>01045       <span class="keywordflow">if</span> (Result != 0) {
+<a name="l01046"></a>01046         Val = Result;
+<a name="l01047"></a>01047       }
+<a name="l01048"></a>01048 
+<a name="l01049"></a>01049       std::vector<std::pair<Init *, std::string> > args;
+<a name="l01050"></a>01050       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < MHSd-><a class="code" href="classllvm_1_1DagInit.html#af882b0281ae01d819d899da03f963ce0">getNumArgs</a>(); ++i) {
+<a name="l01051"></a>01051         <a class="code" href="classllvm_1_1Init.html">Init</a> *Arg;
+<a name="l01052"></a>01052         std::string ArgName;
+<a name="l01053"></a>01053         Arg = MHSd-><a class="code" href="classllvm_1_1DagInit.html#a97462828fc8b23aabf59a4c5203e771d">getArg</a>(i);
+<a name="l01054"></a>01054         ArgName = MHSd-><a class="code" href="classllvm_1_1DagInit.html#a3a68a7de45800513403ed246dc6219e1">getArgName</a>(i);
+<a name="l01055"></a>01055 
+<a name="l01056"></a>01056         <span class="comment">// Process args</span>
+<a name="l01057"></a>01057         <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = <a class="code" href="Record_8cpp.html#a9af01c4b453c2d2c1e287b583480f6a3">EvaluateOperation</a>(RHSo, LHS, Arg, Type,
+<a name="l01058"></a>01058                                          CurRec, CurMultiClass);
+<a name="l01059"></a>01059         <span class="keywordflow">if</span> (Result != 0) {
+<a name="l01060"></a>01060           Arg = Result;
+<a name="l01061"></a>01061         }
+<a name="l01062"></a>01062 
+<a name="l01063"></a>01063         <span class="comment">// TODO: Process arg names</span>
+<a name="l01064"></a>01064         args.push_back(std::make_pair(Arg, ArgName));
+<a name="l01065"></a>01065       }
+<a name="l01066"></a>01066 
+<a name="l01067"></a>01067       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">DagInit::get</a>(Val, <span class="stringliteral">""</span>, args);
+<a name="l01068"></a>01068     }
+<a name="l01069"></a>01069     <span class="keywordflow">if</span> (MHSl) {
+<a name="l01070"></a>01070       std::vector<Init *> NewOperands;
+<a name="l01071"></a>01071       std::vector<Init *> NewList(MHSl->begin(), MHSl->end());
+<a name="l01072"></a>01072 
+<a name="l01073"></a>01073       <span class="keywordflow">for</span> (std::vector<Init *>::iterator li = NewList.begin(),
+<a name="l01074"></a>01074              liend = NewList.end();
+<a name="l01075"></a>01075            li != liend;
+<a name="l01076"></a>01076            ++li) {
+<a name="l01077"></a>01077         <a class="code" href="classllvm_1_1Init.html">Init</a> *Item = *li;
+<a name="l01078"></a>01078         NewOperands.clear();
+<a name="l01079"></a>01079         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < RHSo->getNumOperands(); ++i) {
+<a name="l01080"></a>01080           <span class="comment">// First, replace the foreach variable with the list item</span>
+<a name="l01081"></a>01081           <span class="keywordflow">if</span> (LHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() == RHSo->getOperand(i)->getAsString()) {
+<a name="l01082"></a>01082             NewOperands.push_back(Item);
+<a name="l01083"></a>01083           } <span class="keywordflow">else</span> {
+<a name="l01084"></a>01084             NewOperands.push_back(RHSo->getOperand(i));
+<a name="l01085"></a>01085           }
+<a name="l01086"></a>01086         }
+<a name="l01087"></a>01087 
+<a name="l01088"></a>01088         <span class="comment">// Now run the operator and use its result as the new list item</span>
+<a name="l01089"></a>01089         <span class="keyword">const</span> <a class="code" href="classllvm_1_1OpInit.html">OpInit</a> *NewOp = RHSo-><a class="code" href="classllvm_1_1OpInit.html#a6750d58fed2bebd91616612238e4b5b0">clone</a>(NewOperands);
+<a name="l01090"></a>01090         <a class="code" href="classllvm_1_1Init.html">Init</a> *NewItem = NewOp-><a class="code" href="classllvm_1_1OpInit.html#aaef41d80bd295d99719331ccd1f9eb5c">Fold</a>(CurRec, CurMultiClass);
+<a name="l01091"></a>01091         <span class="keywordflow">if</span> (NewItem != NewOp)
+<a name="l01092"></a>01092           *li = NewItem;
+<a name="l01093"></a>01093       }
+<a name="l01094"></a>01094       <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">ListInit::get</a>(NewList, MHSl->getType());
+<a name="l01095"></a>01095     }
+<a name="l01096"></a>01096   }
+<a name="l01097"></a>01097   <span class="keywordflow">return</span> 0;
+<a name="l01098"></a>01098 }
+<a name="l01099"></a>01099 
+<a name="l01100"></a><a class="code" href="classllvm_1_1TernOpInit.html#a8a2aebc30ae750faecd4dd8a181b378d">01100</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1TernOpInit.html#a8a2aebc30ae750faecd4dd8a181b378d">TernOpInit::Fold</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> *CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass)<span class="keyword"> const </span>{
+<a name="l01101"></a>01101   <span class="keywordflow">switch</span> (<a class="code" href="classllvm_1_1TernOpInit.html#a55baafe30f96c9511d1b2b1e3d6e09da">getOpcode</a>()) {
+<a name="l01102"></a>01102   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053a696899c51e4b12d4cbe79c3203228459">SUBST</a>: {
+<a name="l01103"></a>01103     <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *LHSd = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(LHS);
+<a name="l01104"></a>01104     <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *LHSv = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1VarInit.html">VarInit</a>>(LHS);
+<a name="l01105"></a>01105     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *LHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(LHS);
+<a name="l01106"></a>01106 
+<a name="l01107"></a>01107     <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *MHSd = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(MHS);
+<a name="l01108"></a>01108     <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *MHSv = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1VarInit.html">VarInit</a>>(MHS);
+<a name="l01109"></a>01109     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *MHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(MHS);
+<a name="l01110"></a>01110 
+<a name="l01111"></a>01111     <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *RHSd = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1DefInit.html">DefInit</a>>(RHS);
+<a name="l01112"></a>01112     <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *RHSv = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1VarInit.html">VarInit</a>>(RHS);
+<a name="l01113"></a>01113     <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *RHSs = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(RHS);
+<a name="l01114"></a>01114 
+<a name="l01115"></a>01115     <span class="keywordflow">if</span> ((LHSd && MHSd && RHSd)
+<a name="l01116"></a>01116         || (LHSv && MHSv && RHSv)
+<a name="l01117"></a>01117         || (LHSs && MHSs && RHSs)) {
+<a name="l01118"></a>01118       <span class="keywordflow">if</span> (RHSd) {
+<a name="l01119"></a>01119         <a class="code" href="classllvm_1_1Record.html">Record</a> *Val = RHSd->getDef();
+<a name="l01120"></a>01120         <span class="keywordflow">if</span> (LHSd-><a class="code" href="classllvm_1_1DefInit.html#a0c3aceb090ce5b35b5ee71e54728b8da" title="getAsString - Convert this value to a string form.">getAsString</a>() == RHSd->getAsString()) {
+<a name="l01121"></a>01121           Val = MHSd->getDef();
+<a name="l01122"></a>01122         }
+<a name="l01123"></a>01123         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">DefInit::get</a>(Val);
+<a name="l01124"></a>01124       }
+<a name="l01125"></a>01125       <span class="keywordflow">if</span> (RHSv) {
+<a name="l01126"></a>01126         std::string Val = RHSv->getName();
+<a name="l01127"></a>01127         <span class="keywordflow">if</span> (LHSv->getAsString() == RHSv->getAsString()) {
+<a name="l01128"></a>01128           Val = MHSv->getName();
+<a name="l01129"></a>01129         }
+<a name="l01130"></a>01130         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">VarInit::get</a>(Val, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l01131"></a>01131       }
+<a name="l01132"></a>01132       <span class="keywordflow">if</span> (RHSs) {
+<a name="l01133"></a>01133         std::string Val = RHSs->getValue();
+<a name="l01134"></a>01134 
+<a name="l01135"></a>01135         std::string::size_type found;
+<a name="l01136"></a>01136         std::string::size_type idx = 0;
+<a name="l01137"></a>01137         <span class="keywordflow">do</span> {
+<a name="l01138"></a>01138           found = Val.find(LHSs->getValue(), idx);
+<a name="l01139"></a>01139           <span class="keywordflow">if</span> (found != std::string::npos) {
+<a name="l01140"></a>01140             Val.replace(found, LHSs->getValue().size(), MHSs->getValue());
+<a name="l01141"></a>01141           }
+<a name="l01142"></a>01142           idx = found +  MHSs->getValue().size();
+<a name="l01143"></a>01143         } <span class="keywordflow">while</span> (found != std::string::npos);
+<a name="l01144"></a>01144 
+<a name="l01145"></a>01145         <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">StringInit::get</a>(Val);
+<a name="l01146"></a>01146       }
+<a name="l01147"></a>01147     }
+<a name="l01148"></a>01148     <span class="keywordflow">break</span>;
+<a name="l01149"></a>01149   }
+<a name="l01150"></a>01150 
+<a name="l01151"></a>01151   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053aae44b06769f32e54924dd412f38e52a7">FOREACH</a>: {
+<a name="l01152"></a>01152     <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = <a class="code" href="Record_8cpp.html#a197d0ba705d084f29f496c0e647857e0">ForeachHelper</a>(LHS, MHS, RHS, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>(),
+<a name="l01153"></a>01153                                  CurRec, CurMultiClass);
+<a name="l01154"></a>01154     <span class="keywordflow">if</span> (Result != 0) {
+<a name="l01155"></a>01155       <span class="keywordflow">return</span> Result;
+<a name="l01156"></a>01156     }
+<a name="l01157"></a>01157     <span class="keywordflow">break</span>;
+<a name="l01158"></a>01158   }
+<a name="l01159"></a>01159 
+<a name="l01160"></a>01160   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053ac73924a86a66cd08a4a21f715b5d88df">IF</a>: {
+<a name="l01161"></a>01161     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *LHSi = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1IntInit.html">IntInit</a>>(LHS);
+<a name="l01162"></a>01162     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = LHS-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntRecTy::get</a>()))
+<a name="l01163"></a>01163       LHSi = dyn_cast<IntInit>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l01164"></a>01164     <span class="keywordflow">if</span> (LHSi) {
+<a name="l01165"></a>01165       <span class="keywordflow">if</span> (LHSi-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>()) {
+<a name="l01166"></a>01166         <span class="keywordflow">return</span> MHS;
+<a name="l01167"></a>01167       } <span class="keywordflow">else</span> {
+<a name="l01168"></a>01168         <span class="keywordflow">return</span> RHS;
+<a name="l01169"></a>01169       }
+<a name="l01170"></a>01170     }
+<a name="l01171"></a>01171     <span class="keywordflow">break</span>;
+<a name="l01172"></a>01172   }
+<a name="l01173"></a>01173   }
+<a name="l01174"></a>01174 
+<a name="l01175"></a>01175   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1TernOpInit.html">TernOpInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01176"></a>01176 }
+<a name="l01177"></a>01177 
+<a name="l01178"></a><a class="code" href="classllvm_1_1TernOpInit.html#a836f5e9f2ed733c35a32679101ffc624">01178</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1TernOpInit.html#a836f5e9f2ed733c35a32679101ffc624">TernOpInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R,
+<a name="l01179"></a>01179                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01180"></a>01180   <a class="code" href="classllvm_1_1Init.html">Init</a> *lhs = LHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01181"></a>01181 
+<a name="l01182"></a>01182   <span class="keywordflow">if</span> (Opc == <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053ac73924a86a66cd08a4a21f715b5d88df">IF</a> && lhs != LHS) {
+<a name="l01183"></a>01183     <a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1IntInit.html">IntInit</a>>(lhs);
+<a name="l01184"></a>01184     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = lhs-><a class="code" href="classllvm_1_1Init.html#a8794df64ef95a2ad8cccf05c26ff99fc">convertInitializerTo</a>(<a class="code" href="classllvm_1_1IntRecTy.html#aa90d917af222d51c02996fe84afb74fd">IntRecTy::get</a>()))
+<a name="l01185"></a>01185       Value = dyn_cast<IntInit>(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>);
+<a name="l01186"></a>01186     <span class="keywordflow">if</span> (Value != 0) {
+<a name="l01187"></a>01187       <span class="comment">// Short-circuit</span>
+<a name="l01188"></a>01188       <span class="keywordflow">if</span> (Value-><a class="code" href="classllvm_1_1IntInit.html#ae246404b40eb9ad81683b5097eb5e36c">getValue</a>()) {
+<a name="l01189"></a>01189         <a class="code" href="classllvm_1_1Init.html">Init</a> *mhs = MHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01190"></a>01190         <span class="keywordflow">return</span> (<a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">TernOpInit::get</a>(<a class="code" href="classllvm_1_1TernOpInit.html#a55baafe30f96c9511d1b2b1e3d6e09da">getOpcode</a>(), lhs, mhs,
+<a name="l01191"></a>01191                                 RHS, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))->Fold(&R, 0);
+<a name="l01192"></a>01192       } <span class="keywordflow">else</span> {
+<a name="l01193"></a>01193         <a class="code" href="classllvm_1_1Init.html">Init</a> *rhs = RHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01194"></a>01194         <span class="keywordflow">return</span> (<a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">TernOpInit::get</a>(<a class="code" href="classllvm_1_1TernOpInit.html#a55baafe30f96c9511d1b2b1e3d6e09da">getOpcode</a>(), lhs, MHS,
+<a name="l01195"></a>01195                                 rhs, <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))->Fold(&R, 0);
+<a name="l01196"></a>01196       }
+<a name="l01197"></a>01197     }
+<a name="l01198"></a>01198   }
+<a name="l01199"></a>01199 
+<a name="l01200"></a>01200   <a class="code" href="classllvm_1_1Init.html">Init</a> *mhs = MHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01201"></a>01201   <a class="code" href="classllvm_1_1Init.html">Init</a> *rhs = RHS-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01202"></a>01202 
+<a name="l01203"></a>01203   <span class="keywordflow">if</span> (LHS != lhs || MHS != mhs || RHS != rhs)
+<a name="l01204"></a>01204     <span class="keywordflow">return</span> (<a class="code" href="classllvm_1_1TernOpInit.html#afb88b61c667961211eac3e4299dbf077">TernOpInit::get</a>(<a class="code" href="classllvm_1_1TernOpInit.html#a55baafe30f96c9511d1b2b1e3d6e09da">getOpcode</a>(), lhs, mhs, rhs,
+<a name="l01205"></a>01205                             <a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))->Fold(&R, 0);
+<a name="l01206"></a>01206   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1TernOpInit.html#a8a2aebc30ae750faecd4dd8a181b378d">Fold</a>(&R, 0);
+<a name="l01207"></a>01207 }
+<a name="l01208"></a>01208 
+<a name="l01209"></a><a class="code" href="classllvm_1_1TernOpInit.html#a725e1e872d8f4cf45d5de5bb81466db7">01209</a> std::string <a class="code" href="classllvm_1_1TernOpInit.html#a725e1e872d8f4cf45d5de5bb81466db7" title="getAsString - Convert this value to a string form.">TernOpInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l01210"></a>01210   std::string Result;
+<a name="l01211"></a>01211   <span class="keywordflow">switch</span> (Opc) {
+<a name="l01212"></a>01212   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053a696899c51e4b12d4cbe79c3203228459">SUBST</a>: Result = <span class="stringliteral">"!subst"</span>; <span class="keywordflow">break</span>;
+<a name="l01213"></a>01213   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053aae44b06769f32e54924dd412f38e52a7">FOREACH</a>: Result = <span class="stringliteral">"!foreach"</span>; <span class="keywordflow">break</span>;
+<a name="l01214"></a>01214   <span class="keywordflow">case</span> <a class="code" href="classllvm_1_1TernOpInit.html#a1ff5d7f457766e297bea5baf2c5cf053ac73924a86a66cd08a4a21f715b5d88df">IF</a>: Result = <span class="stringliteral">"!if"</span>; <span class="keywordflow">break</span>;
+<a name="l01215"></a>01215  }
+<a name="l01216"></a>01216   <span class="keywordflow">return</span> Result + <span class="stringliteral">"("</span> + LHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">", "</span> + MHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">", "</span>
+<a name="l01217"></a>01217     + RHS-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">")"</span>;
+<a name="l01218"></a>01218 }
+<a name="l01219"></a>01219 
+<a name="l01220"></a><a class="code" href="classllvm_1_1TypedInit.html#a995fd630d1fb3df0d2e28cb385baeb78">01220</a> <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1TypedInit.html#a995fd630d1fb3df0d2e28cb385baeb78">TypedInit::getFieldType</a>(<span class="keyword">const</span> std::string &FieldName)<span class="keyword"> const </span>{
+<a name="l01221"></a>01221   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RecordType = dyn_cast<RecordRecTy>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l01222"></a>01222     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a746bc3776b8e263c46912952f7e3d544">Field</a> = RecordType->getRecord()->getValue(FieldName))
+<a name="l01223"></a>01223       <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a746bc3776b8e263c46912952f7e3d544">Field</a>->getType();
+<a name="l01224"></a>01224   <span class="keywordflow">return</span> 0;
+<a name="l01225"></a>01225 }
+<a name="l01226"></a>01226 
+<a name="l01227"></a>01227 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l01228"></a><a class="code" href="classllvm_1_1TypedInit.html#ade4db6ae5f7a7186036baec6ee00bdec">01228</a> <a class="code" href="classllvm_1_1TypedInit.html#ade4db6ae5f7a7186036baec6ee00bdec">TypedInit::convertInitializerBitRange</a>(<span class="keyword">const</span> std::vector<unsigned> &<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a3c0710aa6b054662f67b480712fa2b95">Bits</a>)<span class="keyword"> const </span>{
+<a name="l01229"></a>01229   <a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a> *T = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1BitsRecTy.html">BitsRecTy</a>>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l01230"></a>01230   <span class="keywordflow">if</span> (T == 0) <span class="keywordflow">return</span> 0;  <span class="comment">// Cannot subscript a non-bits variable.</span>
+<a name="l01231"></a>01231   <span class="keywordtype">unsigned</span> NumBits = T-><a class="code" href="classllvm_1_1BitsRecTy.html#abad727b222dc27bae3755f343399e682">getNumBits</a>();
+<a name="l01232"></a>01232 
+<a name="l01233"></a>01233   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Init *, 16></a> NewBits(Bits.size());
+<a name="l01234"></a>01234   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Bits.size(); i != e; ++i) {
+<a name="l01235"></a>01235     <span class="keywordflow">if</span> (Bits[i] >= NumBits)
+<a name="l01236"></a>01236       <span class="keywordflow">return</span> 0;
+<a name="l01237"></a>01237 
+<a name="l01238"></a>01238     NewBits[i] = <a class="code" href="classllvm_1_1VarBitInit.html#ac44aa6d65704ff9d14b5c371fdcfaa0e">VarBitInit::get</a>(const_cast<TypedInit *>(<span class="keyword">this</span>), Bits[i]);
+<a name="l01239"></a>01239   }
+<a name="l01240"></a>01240   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1BitsInit.html#aba3c542b2bcde5c5ba1d6ba46dce3615">BitsInit::get</a>(NewBits);
+<a name="l01241"></a>01241 }
+<a name="l01242"></a>01242 
+<a name="l01243"></a>01243 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l01244"></a><a class="code" href="classllvm_1_1TypedInit.html#a6ad1e04b41106c27d087a6d4625af20b">01244</a> <a class="code" href="classllvm_1_1TypedInit.html#a6ad1e04b41106c27d087a6d4625af20b">TypedInit::convertInitListSlice</a>(<span class="keyword">const</span> std::vector<unsigned> &Elements)<span class="keyword"> const </span>{
+<a name="l01245"></a>01245   <a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a> *T = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1ListRecTy.html">ListRecTy</a>>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>());
+<a name="l01246"></a>01246   <span class="keywordflow">if</span> (T == 0) <span class="keywordflow">return</span> 0;  <span class="comment">// Cannot subscript a non-list variable.</span>
+<a name="l01247"></a>01247 
+<a name="l01248"></a>01248   <span class="keywordflow">if</span> (Elements.size() == 1)
+<a name="l01249"></a>01249     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">VarListElementInit::get</a>(const_cast<TypedInit *>(<span class="keyword">this</span>), Elements[0]);
+<a name="l01250"></a>01250 
+<a name="l01251"></a>01251   std::vector<Init*> ListInits;
+<a name="l01252"></a>01252   ListInits.reserve(Elements.size());
+<a name="l01253"></a>01253   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Elements.size(); i != e; ++i)
+<a name="l01254"></a>01254     ListInits.push_back(<a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">VarListElementInit::get</a>(const_cast<TypedInit *>(<span class="keyword">this</span>),
+<a name="l01255"></a>01255                                                 Elements[i]));
+<a name="l01256"></a>01256   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1ListInit.html#a5c8283940a6df6d95472191f95e2d1a8">ListInit::get</a>(ListInits, T);
+<a name="l01257"></a>01257 }
+<a name="l01258"></a>01258 
+<a name="l01259"></a>01259 
+<a name="l01260"></a><a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">01260</a> <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *<a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">VarInit::get</a>(<span class="keyword">const</span> std::string &VN, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T) {
+<a name="l01261"></a>01261   <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = <a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">StringInit::get</a>(VN);
+<a name="l01262"></a>01262   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">VarInit::get</a>(Value, T);
+<a name="l01263"></a>01263 }
+<a name="l01264"></a>01264 
+<a name="l01265"></a><a class="code" href="classllvm_1_1VarInit.html#a4bdae44434b8f761acb544175df57abb">01265</a> <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *<a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">VarInit::get</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *VN, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T) {
+<a name="l01266"></a>01266   <span class="keyword">typedef</span> std::pair<RecTy *, Init *> Key;
+<a name="l01267"></a>01267   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, VarInit *></a> Pool;
+<a name="l01268"></a>01268   <span class="keyword">static</span> Pool ThePool;
+<a name="l01269"></a>01269 
+<a name="l01270"></a>01270   Key TheKey(std::make_pair(T, VN));
+<a name="l01271"></a>01271 
+<a name="l01272"></a>01272   <a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l01273"></a>01273   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1VarInit.html">VarInit</a>(VN, T);
+<a name="l01274"></a>01274   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01275"></a>01275 }
+<a name="l01276"></a>01276 
+<a name="l01277"></a><a class="code" href="classllvm_1_1VarInit.html#a2414617aa42dbd704ec0db9edba62810">01277</a> <span class="keyword">const</span> std::string &<a class="code" href="classllvm_1_1VarInit.html#a2414617aa42dbd704ec0db9edba62810">VarInit::getName</a>()<span class="keyword"> const </span>{
+<a name="l01278"></a>01278   <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *NameString = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(<a class="code" href="classllvm_1_1VarInit.html#ad641daf7bc647c12d7111ba9f5c1bd5b">getNameInit</a>());
+<a name="l01279"></a>01279   assert(NameString && <span class="stringliteral">"VarInit name is not a string!"</span>);
+<a name="l01280"></a>01280   <span class="keywordflow">return</span> NameString-><a class="code" href="classllvm_1_1StringInit.html#a2db003869e356f9b4ac4f64b9b400302">getValue</a>();
+<a name="l01281"></a>01281 }
+<a name="l01282"></a>01282 
+<a name="l01283"></a><a class="code" href="classllvm_1_1VarInit.html#a46b398d0beaf343bb8deb3faae0a45e7">01283</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarInit.html#a46b398d0beaf343bb8deb3faae0a45e7">VarInit::getBit</a>(<span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>)<span class="keyword"> const </span>{
+<a name="l01284"></a>01284   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>() == <a class="code" href="classllvm_1_1BitRecTy.html#a4e97a7c55d74adcb95b1bdb359a45977">BitRecTy::get</a>())
+<a name="l01285"></a>01285     <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1VarInit.html">VarInit</a>*<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01286"></a>01286   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">VarBitInit::get</a>(const_cast<VarInit*>(<span class="keyword">this</span>), Bit);
+<a name="l01287"></a>01287 }
+<a name="l01288"></a>01288 
+<a name="l01289"></a><a class="code" href="classllvm_1_1VarInit.html#ac47f70244021a4da7644b250d3dd716c">01289</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarInit.html#ac47f70244021a4da7644b250d3dd716c">VarInit::resolveListElementReference</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R,
+<a name="l01290"></a>01290                                            <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *IRV,
+<a name="l01291"></a>01291                                            <span class="keywordtype">unsigned</span> Elt)<span class="keyword"> const </span>{
+<a name="l01292"></a>01292   <span class="keywordflow">if</span> (R.<a class="code" href="classllvm_1_1Record.html#a4452000e5ece60cffed832797fef3672">isTemplateArg</a>(<a class="code" href="classllvm_1_1VarInit.html#ad641daf7bc647c12d7111ba9f5c1bd5b">getNameInit</a>())) <span class="keywordflow">return</span> 0;
+<a name="l01293"></a>01293   <span class="keywordflow">if</span> (IRV && IRV-><a class="code" href="classllvm_1_1RecordVal.html#a131796843b68dfd34b494a1167450edf">getNameInit</a>() != <a class="code" href="classllvm_1_1VarInit.html#ad641daf7bc647c12d7111ba9f5c1bd5b">getNameInit</a>()) <span class="keywordflow">return</span> 0;
+<a name="l01294"></a>01294 
+<a name="l01295"></a>01295   <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = R.<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(<a class="code" href="classllvm_1_1VarInit.html#ad641daf7bc647c12d7111ba9f5c1bd5b">getNameInit</a>());
+<a name="l01296"></a>01296   assert(RV && <span class="stringliteral">"Reference to a non-existent variable?"</span>);
+<a name="l01297"></a>01297   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1ListInit.html">ListInit</a>>(RV-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>());
+<a name="l01298"></a>01298   <span class="keywordflow">if</span> (!LI) {
+<a name="l01299"></a>01299     <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *VI = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(RV-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>());
+<a name="l01300"></a>01300     assert(VI && <span class="stringliteral">"Invalid list element!"</span>);
+<a name="l01301"></a>01301     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarInit.html#a2da93a2021e99486d0a9078b15a74760">VarListElementInit::get</a>(VI, Elt);
+<a name="l01302"></a>01302   }
+<a name="l01303"></a>01303 
+<a name="l01304"></a>01304   <span class="keywordflow">if</span> (Elt >= LI-><a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>())
+<a name="l01305"></a>01305     <span class="keywordflow">return</span> 0;  <span class="comment">// Out of range reference.</span>
+<a name="l01306"></a>01306   <a class="code" href="classllvm_1_1Init.html">Init</a> *E = LI-><a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(Elt);
+<a name="l01307"></a>01307   <span class="comment">// If the element is set to some value, or if we are resolving a reference</span>
+<a name="l01308"></a>01308   <span class="comment">// to a specific variable and that variable is explicitly unset, then</span>
+<a name="l01309"></a>01309   <span class="comment">// replace the VarListElementInit with it.</span>
+<a name="l01310"></a>01310   <span class="keywordflow">if</span> (IRV || !isa<UnsetInit>(E))
+<a name="l01311"></a>01311     <span class="keywordflow">return</span> E;
+<a name="l01312"></a>01312   <span class="keywordflow">return</span> 0;
+<a name="l01313"></a>01313 }
+<a name="l01314"></a>01314 
+<a name="l01315"></a>01315 
+<a name="l01316"></a><a class="code" href="classllvm_1_1VarInit.html#a70bc14625d79904d320800f01473b3cd">01316</a> <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1VarInit.html#a70bc14625d79904d320800f01473b3cd">VarInit::getFieldType</a>(<span class="keyword">const</span> std::string &FieldName)<span class="keyword"> const </span>{
+<a name="l01317"></a>01317   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a> *RTy = dyn_cast<RecordRecTy>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l01318"></a>01318     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = RTy->getRecord()-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>(FieldName))
+<a name="l01319"></a>01319       <span class="keywordflow">return</span> RV->getType();
+<a name="l01320"></a>01320   <span class="keywordflow">return</span> 0;
+<a name="l01321"></a>01321 }
+<a name="l01322"></a>01322 
+<a name="l01323"></a><a class="code" href="classllvm_1_1VarInit.html#a755db13aebb6f7addda848c93072f83c">01323</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarInit.html#a755db13aebb6f7addda848c93072f83c">VarInit::getFieldInit</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV,
+<a name="l01324"></a>01324                             <span class="keyword">const</span> std::string &FieldName)<span class="keyword"> const </span>{
+<a name="l01325"></a>01325   <span class="keywordflow">if</span> (isa<RecordRecTy>(<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>()))
+<a name="l01326"></a>01326     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *Val = R.<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(VarName)) {
+<a name="l01327"></a>01327       <span class="keywordflow">if</span> (RV != Val && (RV || isa<UnsetInit>(Val->getValue())))
+<a name="l01328"></a>01328         <span class="keywordflow">return</span> 0;
+<a name="l01329"></a>01329       <a class="code" href="classllvm_1_1Init.html">Init</a> *TheInit = Val->getValue();
+<a name="l01330"></a>01330       assert(TheInit != <span class="keyword">this</span> && <span class="stringliteral">"Infinite loop detected!"</span>);
+<a name="l01331"></a>01331       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = TheInit-><a class="code" href="classllvm_1_1Init.html#afadb9a38c894be477fde6f51e534d5e0">getFieldInit</a>(R, RV, FieldName))
+<a name="l01332"></a>01332         <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01333"></a>01333       <span class="keywordflow">else</span>
+<a name="l01334"></a>01334         <span class="keywordflow">return</span> 0;
+<a name="l01335"></a>01335     }
+<a name="l01336"></a>01336   <span class="keywordflow">return</span> 0;
+<a name="l01337"></a>01337 }
+<a name="l01338"></a>01338 <span class="comment"></span>
+<a name="l01339"></a>01339 <span class="comment">/// resolveReferences - This method is used by classes that refer to other</span>
+<a name="l01340"></a>01340 <span class="comment">/// variables which may not be defined at the time the expression is formed.</span>
+<a name="l01341"></a>01341 <span class="comment">/// If a value is set for the variable later, this method will be called on</span>
+<a name="l01342"></a>01342 <span class="comment">/// users of the value to allow the value to propagate out.</span>
+<a name="l01343"></a>01343 <span class="comment">///</span>
+<a name="l01344"></a><a class="code" href="classllvm_1_1VarInit.html#ab1875b13721b331d67f3c7d58cdb0063">01344</a> <span class="comment"></span><a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarInit.html#ab1875b13721b331d67f3c7d58cdb0063">VarInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01345"></a>01345   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *Val = R.<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(VarName))
+<a name="l01346"></a>01346     <span class="keywordflow">if</span> (RV == Val || (RV == 0 && !isa<UnsetInit>(Val->getValue())))
+<a name="l01347"></a>01347       <span class="keywordflow">return</span> Val->getValue();
+<a name="l01348"></a>01348   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1VarInit.html">VarInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01349"></a>01349 }
+<a name="l01350"></a>01350 
+<a name="l01351"></a><a class="code" href="classllvm_1_1VarBitInit.html#ac44aa6d65704ff9d14b5c371fdcfaa0e">01351</a> <a class="code" href="classllvm_1_1VarBitInit.html">VarBitInit</a> *<a class="code" href="classllvm_1_1VarBitInit.html#ac44aa6d65704ff9d14b5c371fdcfaa0e">VarBitInit::get</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *T, <span class="keywordtype">unsigned</span> B) {
+<a name="l01352"></a>01352   <span class="keyword">typedef</span> std::pair<TypedInit *, unsigned> Key;
+<a name="l01353"></a>01353   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, VarBitInit *></a> Pool;
+<a name="l01354"></a>01354 
+<a name="l01355"></a>01355   <span class="keyword">static</span> Pool ThePool;
+<a name="l01356"></a>01356 
+<a name="l01357"></a>01357   Key TheKey(std::make_pair(T, B));
+<a name="l01358"></a>01358 
+<a name="l01359"></a>01359   <a class="code" href="classllvm_1_1VarBitInit.html">VarBitInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l01360"></a>01360   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1VarBitInit.html">VarBitInit</a>(T, B);
+<a name="l01361"></a>01361   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01362"></a>01362 }
+<a name="l01363"></a>01363 
+<a name="l01364"></a><a class="code" href="classllvm_1_1VarBitInit.html#a703afd7088bd6c6143f5b18adbc4cc40">01364</a> std::string <a class="code" href="classllvm_1_1VarBitInit.html#a703afd7088bd6c6143f5b18adbc4cc40" title="getAsString - Convert this value to a string form.">VarBitInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l01365"></a>01365    <span class="keywordflow">return</span> TI-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">"{"</span> + <a class="code" href="namespacellvm.html#ae094b310153c30b08dcec1b40459d385">utostr</a>(Bit) + <span class="stringliteral">"}"</span>;
+<a name="l01366"></a>01366 }
+<a name="l01367"></a>01367 
+<a name="l01368"></a><a class="code" href="classllvm_1_1VarBitInit.html#a8608bbb7c5c99cdb01e95940538ea141">01368</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarBitInit.html#a8608bbb7c5c99cdb01e95940538ea141">VarBitInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01369"></a>01369   <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = TI-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01370"></a>01370   <span class="keywordflow">if</span> (TI != I)
+<a name="l01371"></a>01371     <span class="keywordflow">return</span> I-><a class="code" href="classllvm_1_1Init.html#a3c490ba475994a44fddd260a51f43479">getBit</a>(<a class="code" href="classllvm_1_1VarBitInit.html#aed799510a57b99ab1623d685d43eb612">getBitNum</a>());
+<a name="l01372"></a>01372 
+<a name="l01373"></a>01373   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1VarBitInit.html">VarBitInit</a>*<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01374"></a>01374 }
+<a name="l01375"></a>01375 
+<a name="l01376"></a><a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">01376</a> <a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a> *<a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">VarListElementInit::get</a>(<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *T,
+<a name="l01377"></a>01377                                             <span class="keywordtype">unsigned</span> E) {
+<a name="l01378"></a>01378   <span class="keyword">typedef</span> std::pair<TypedInit *, unsigned> Key;
+<a name="l01379"></a>01379   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, VarListElementInit *></a> Pool;
+<a name="l01380"></a>01380 
+<a name="l01381"></a>01381   <span class="keyword">static</span> Pool ThePool;
+<a name="l01382"></a>01382 
+<a name="l01383"></a>01383   Key TheKey(std::make_pair(T, E));
+<a name="l01384"></a>01384 
+<a name="l01385"></a>01385   <a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l01386"></a>01386   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a>(T, E);
+<a name="l01387"></a>01387   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01388"></a>01388 }
+<a name="l01389"></a>01389 
+<a name="l01390"></a><a class="code" href="classllvm_1_1VarListElementInit.html#ae110b7393c002e273128e79c607bf404">01390</a> std::string <a class="code" href="classllvm_1_1VarListElementInit.html#ae110b7393c002e273128e79c607bf404" title="getAsString - Convert this value to a string form.">VarListElementInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l01391"></a>01391   <span class="keywordflow">return</span> TI-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>() + <span class="stringliteral">"["</span> + <a class="code" href="namespacellvm.html#ae094b310153c30b08dcec1b40459d385">utostr</a>(Element) + <span class="stringliteral">"]"</span>;
+<a name="l01392"></a>01392 }
+<a name="l01393"></a>01393 
+<a name="l01394"></a>01394 <a class="code" href="classllvm_1_1Init.html">Init</a> *
+<a name="l01395"></a><a class="code" href="classllvm_1_1VarListElementInit.html#aca6f31c8d542cf4a14a485afe6c7cb3b">01395</a> <a class="code" href="classllvm_1_1VarListElementInit.html#aca6f31c8d542cf4a14a485afe6c7cb3b">VarListElementInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01396"></a>01396   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="classllvm_1_1VarListElementInit.html#a5a0fd33a5465106dbe6f306631e94f6c">getVariable</a>()-><a class="code" href="classllvm_1_1VarListElementInit.html#a46164019df2e2756b41af79120e36848">resolveListElementReference</a>(R, RV,
+<a name="l01397"></a>01397                                                            <a class="code" href="classllvm_1_1VarListElementInit.html#a5d169d9fc91cb3c26a82fcb4fd7f32f0">getElementNum</a>()))
+<a name="l01398"></a>01398     <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01399"></a>01399   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01400"></a>01400 }
+<a name="l01401"></a>01401 
+<a name="l01402"></a><a class="code" href="classllvm_1_1VarListElementInit.html#ae0e69b192f1f436b79053c5f10b228f7">01402</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarListElementInit.html#ae0e69b192f1f436b79053c5f10b228f7">VarListElementInit::getBit</a>(<span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>)<span class="keyword"> const </span>{
+<a name="l01403"></a>01403   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>() == <a class="code" href="classllvm_1_1BitRecTy.html#a4e97a7c55d74adcb95b1bdb359a45977">BitRecTy::get</a>())
+<a name="l01404"></a>01404     <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a>*<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01405"></a>01405   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1VarListElementInit.html#a18f66dc4c09d7e0bff1dc7053c261691">VarBitInit::get</a>(const_cast<VarListElementInit*>(<span class="keyword">this</span>), Bit);
+<a name="l01406"></a>01406 }
+<a name="l01407"></a>01407 
+<a name="l01408"></a><a class="code" href="classllvm_1_1VarListElementInit.html#a46164019df2e2756b41af79120e36848">01408</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1VarListElementInit.html#a46164019df2e2756b41af79120e36848">VarListElementInit:: resolveListElementReference</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R,
+<a name="l01409"></a>01409                                                        <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV,
+<a name="l01410"></a>01410                                                        <span class="keywordtype">unsigned</span> Elt)<span class="keyword"> const </span>{
+<a name="l01411"></a>01411   <a class="code" href="classllvm_1_1Init.html">Init</a> *Result = TI-><a class="code" href="classllvm_1_1TypedInit.html#ae27d37db70e530c5695254291f168cce">resolveListElementReference</a>(R, RV, Element);
+<a name="l01412"></a>01412   
+<a name="l01413"></a>01413   <span class="keywordflow">if</span> (Result) {
+<a name="l01414"></a>01414     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TInit = dyn_cast<TypedInit>(Result)) {
+<a name="l01415"></a>01415       <a class="code" href="classllvm_1_1Init.html">Init</a> *Result2 = TInit->resolveListElementReference(R, RV, Elt);
+<a name="l01416"></a>01416       <span class="keywordflow">if</span> (Result2) <span class="keywordflow">return</span> Result2;
+<a name="l01417"></a>01417       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classllvm_1_1VarListElementInit.html">VarListElementInit</a>(TInit, Elt);
+<a name="l01418"></a>01418     }
+<a name="l01419"></a>01419     <span class="keywordflow">return</span> Result;
+<a name="l01420"></a>01420   }
+<a name="l01421"></a>01421  
+<a name="l01422"></a>01422   <span class="keywordflow">return</span> 0;
+<a name="l01423"></a>01423 }
+<a name="l01424"></a>01424 
+<a name="l01425"></a><a class="code" href="classllvm_1_1DefInit.html#aed824af830bed6ea3aa2dfb1d75e3a6b">01425</a> <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *<a class="code" href="classllvm_1_1DefInit.html#aed824af830bed6ea3aa2dfb1d75e3a6b">DefInit::get</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> *R) {
+<a name="l01426"></a>01426   <span class="keywordflow">return</span> R-><a class="code" href="classllvm_1_1Record.html#ad25ff85deb76d6db1511a45f2fc68af0" title="get the corresponding DefInit.">getDefInit</a>();
+<a name="l01427"></a>01427 }
+<a name="l01428"></a>01428 
+<a name="l01429"></a><a class="code" href="classllvm_1_1DefInit.html#acd5253f849a1920e233420c1ae71c7c0">01429</a> <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1DefInit.html#acd5253f849a1920e233420c1ae71c7c0">DefInit::getFieldType</a>(<span class="keyword">const</span> std::string &FieldName)<span class="keyword"> const </span>{
+<a name="l01430"></a>01430   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = Def-><a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName))
+<a name="l01431"></a>01431     <span class="keywordflow">return</span> RV->getType();
+<a name="l01432"></a>01432   <span class="keywordflow">return</span> 0;
+<a name="l01433"></a>01433 }
+<a name="l01434"></a>01434 
+<a name="l01435"></a><a class="code" href="classllvm_1_1DefInit.html#ab409be39e5b2026aaf6c27375812db82">01435</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1DefInit.html#ab409be39e5b2026aaf6c27375812db82">DefInit::getFieldInit</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV,
+<a name="l01436"></a>01436                             <span class="keyword">const</span> std::string &FieldName)<span class="keyword"> const </span>{
+<a name="l01437"></a>01437   <span class="keywordflow">return</span> Def-><a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName)-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>();
+<a name="l01438"></a>01438 }
+<a name="l01439"></a>01439 
+<a name="l01440"></a>01440 
+<a name="l01441"></a><a class="code" href="classllvm_1_1DefInit.html#a0c3aceb090ce5b35b5ee71e54728b8da">01441</a> std::string <a class="code" href="classllvm_1_1DefInit.html#a0c3aceb090ce5b35b5ee71e54728b8da" title="getAsString - Convert this value to a string form.">DefInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l01442"></a>01442   <span class="keywordflow">return</span> Def-><a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>();
+<a name="l01443"></a>01443 }
+<a name="l01444"></a>01444 
+<a name="l01445"></a><a class="code" href="classllvm_1_1FieldInit.html#acddce25a0e7ae04c2935eee8dd628ff6">01445</a> <a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a> *<a class="code" href="classllvm_1_1FieldInit.html#acddce25a0e7ae04c2935eee8dd628ff6">FieldInit::get</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *R, <span class="keyword">const</span> std::string &FN) {
+<a name="l01446"></a>01446   <span class="keyword">typedef</span> std::pair<Init *, TableGenStringKey> Key;
+<a name="l01447"></a>01447   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1DenseMap.html">DenseMap<Key, FieldInit *></a> Pool;
+<a name="l01448"></a>01448   <span class="keyword">static</span> Pool ThePool;  
+<a name="l01449"></a>01449 
+<a name="l01450"></a>01450   Key TheKey(std::make_pair(R, FN));
+<a name="l01451"></a>01451 
+<a name="l01452"></a>01452   <a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a> *&<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool[TheKey];
+<a name="l01453"></a>01453   <span class="keywordflow">if</span> (!I) I = <span class="keyword">new</span> <a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a>(R, FN);
+<a name="l01454"></a>01454   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01455"></a>01455 }
+<a name="l01456"></a>01456 
+<a name="l01457"></a><a class="code" href="classllvm_1_1FieldInit.html#a1adcf6d8e4bec401f295cfc5a8bce6bb">01457</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1FieldInit.html#a1adcf6d8e4bec401f295cfc5a8bce6bb">FieldInit::getBit</a>(<span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a1ef22e535a2fc701cdafaffe74fc7490">Bit</a>)<span class="keyword"> const </span>{
+<a name="l01458"></a>01458   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>() == <a class="code" href="classllvm_1_1BitRecTy.html#a4e97a7c55d74adcb95b1bdb359a45977">BitRecTy::get</a>())
+<a name="l01459"></a>01459     <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a>*<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01460"></a>01460   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1FieldInit.html#acddce25a0e7ae04c2935eee8dd628ff6">VarBitInit::get</a>(const_cast<FieldInit*>(<span class="keyword">this</span>), Bit);
+<a name="l01461"></a>01461 }
+<a name="l01462"></a>01462 
+<a name="l01463"></a><a class="code" href="classllvm_1_1FieldInit.html#a18987814ef4fe2565b6c737f31486900">01463</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1FieldInit.html#a18987814ef4fe2565b6c737f31486900">FieldInit::resolveListElementReference</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV,
+<a name="l01464"></a>01464                                              <span class="keywordtype">unsigned</span> Elt)<span class="keyword"> const </span>{
+<a name="l01465"></a>01465   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *ListVal = Rec-><a class="code" href="classllvm_1_1Init.html#afadb9a38c894be477fde6f51e534d5e0">getFieldInit</a>(R, RV, FieldName))
+<a name="l01466"></a>01466     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = dyn_cast<ListInit>(ListVal)) {
+<a name="l01467"></a>01467       <span class="keywordflow">if</span> (Elt >= <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>->getSize()) <span class="keywordflow">return</span> 0;
+<a name="l01468"></a>01468       <a class="code" href="classllvm_1_1Init.html">Init</a> *E = <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>->getElement(Elt);
+<a name="l01469"></a>01469 
+<a name="l01470"></a>01470       <span class="comment">// If the element is set to some value, or if we are resolving a</span>
+<a name="l01471"></a>01471       <span class="comment">// reference to a specific variable and that variable is explicitly</span>
+<a name="l01472"></a>01472       <span class="comment">// unset, then replace the VarListElementInit with it.</span>
+<a name="l01473"></a>01473       <span class="keywordflow">if</span> (RV || !isa<UnsetInit>(E))
+<a name="l01474"></a>01474         <span class="keywordflow">return</span> E;
+<a name="l01475"></a>01475     }
+<a name="l01476"></a>01476   <span class="keywordflow">return</span> 0;
+<a name="l01477"></a>01477 }
+<a name="l01478"></a>01478 
+<a name="l01479"></a><a class="code" href="classllvm_1_1FieldInit.html#a8b16ee793f1b9f110a6061766cb7c7f0">01479</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1FieldInit.html#a8b16ee793f1b9f110a6061766cb7c7f0">FieldInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01480"></a>01480   <a class="code" href="classllvm_1_1Init.html">Init</a> *NewRec = RV ? Rec-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV) : Rec;
+<a name="l01481"></a>01481 
+<a name="l01482"></a>01482   <a class="code" href="classllvm_1_1Init.html">Init</a> *BitsVal = NewRec-><a class="code" href="classllvm_1_1Init.html#afadb9a38c894be477fde6f51e534d5e0">getFieldInit</a>(R, RV, FieldName);
+<a name="l01483"></a>01483   <span class="keywordflow">if</span> (BitsVal) {
+<a name="l01484"></a>01484     <a class="code" href="classllvm_1_1Init.html">Init</a> *BVR = BitsVal-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01485"></a>01485     <span class="keywordflow">return</span> BVR-><a class="code" href="classllvm_1_1Init.html#aff7b00d4cd56129509aefe12d7720c89">isComplete</a>() ? BVR : <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01486"></a>01486   }
+<a name="l01487"></a>01487 
+<a name="l01488"></a>01488   <span class="keywordflow">if</span> (NewRec != Rec) {
+<a name="l01489"></a>01489     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1FieldInit.html#acddce25a0e7ae04c2935eee8dd628ff6">FieldInit::get</a>(NewRec, FieldName);
+<a name="l01490"></a>01490   }
+<a name="l01491"></a>01491   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1FieldInit.html">FieldInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01492"></a>01492 }
+<a name="l01493"></a>01493 
+<a name="l01494"></a><a class="code" href="Record_8cpp.html#a7fd108b14b37abfcbbe0967b3984f224">01494</a> <span class="keywordtype">void</span> <a class="code" href="Record_8cpp.html#a7fd108b14b37abfcbbe0967b3984f224">ProfileDagInit</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>,
+<a name="l01495"></a>01495                     <a class="code" href="classllvm_1_1Init.html">Init</a> *V,
+<a name="l01496"></a>01496                     <span class="keyword">const</span> std::string &VN,
+<a name="l01497"></a>01497                     <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> ArgRange,
+<a name="l01498"></a>01498                     <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> NameRange) {
+<a name="l01499"></a>01499   ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a626e5a2c04c89e2ddd697e424ec68391">AddPointer</a>(V);
+<a name="l01500"></a>01500   ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#af6cfdb17a50b09482364161707db0e4d">AddString</a>(VN);
+<a name="l01501"></a>01501 
+<a name="l01502"></a>01502   <a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<Init *>::iterator</a> Arg  = ArgRange.<a class="code" href="classllvm_1_1ArrayRef.html#a836367b39ed630bf14db99923c22740e">begin</a>();
+<a name="l01503"></a>01503   <a class="code" href="classllvm_1_1ArrayRef.html#a77a3f6229054a97a7127192e43bd1773">ArrayRef<std::string>::iterator</a>  <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a> = NameRange.<a class="code" href="classllvm_1_1ArrayRef.html#a836367b39ed630bf14db99923c22740e">begin</a>();
+<a name="l01504"></a>01504   <span class="keywordflow">while</span> (Arg != ArgRange.<a class="code" href="classllvm_1_1ArrayRef.html#a38ed8cc3c342ad6910e8c869d3e2b9cf">end</a>()) {
+<a name="l01505"></a>01505     assert(Name != NameRange.<a class="code" href="classllvm_1_1ArrayRef.html#a38ed8cc3c342ad6910e8c869d3e2b9cf">end</a>() && <span class="stringliteral">"Arg name underflow!"</span>);
+<a name="l01506"></a>01506     ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#a626e5a2c04c89e2ddd697e424ec68391">AddPointer</a>(*Arg++);
+<a name="l01507"></a>01507     ID.<a class="code" href="classllvm_1_1FoldingSetNodeID.html#af6cfdb17a50b09482364161707db0e4d">AddString</a>(*Name++);
+<a name="l01508"></a>01508   }
+<a name="l01509"></a>01509   assert(Name == NameRange.<a class="code" href="classllvm_1_1ArrayRef.html#a38ed8cc3c342ad6910e8c869d3e2b9cf">end</a>() && <span class="stringliteral">"Arg name overflow!"</span>);
+<a name="l01510"></a>01510 }
+<a name="l01511"></a>01511 
+<a name="l01512"></a>01512 <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *
+<a name="l01513"></a><a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">01513</a> <a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">DagInit::get</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *V, <span class="keyword">const</span> std::string &VN,
+<a name="l01514"></a>01514              <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Init *></a> ArgRange,
+<a name="l01515"></a>01515              <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> NameRange) {
+<a name="l01516"></a>01516   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1FoldingSet.html">FoldingSet<DagInit></a> Pool;
+<a name="l01517"></a>01517   <span class="keyword">static</span> Pool ThePool;  
+<a name="l01518"></a>01518 
+<a name="l01519"></a>01519   <a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>;
+<a name="l01520"></a>01520   <a class="code" href="Record_8cpp.html#a7fd108b14b37abfcbbe0967b3984f224">ProfileDagInit</a>(ID, V, VN, ArgRange, NameRange);
+<a name="l01521"></a>01521 
+<a name="l01522"></a>01522   <span class="keywordtype">void</span> *IP = 0;
+<a name="l01523"></a>01523   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = ThePool.FindNodeOrInsertPos(ID, IP))
+<a name="l01524"></a>01524     <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01525"></a>01525 
+<a name="l01526"></a>01526   <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <span class="keyword">new</span> <a class="code" href="classllvm_1_1DagInit.html">DagInit</a>(V, VN, ArgRange, NameRange);
+<a name="l01527"></a>01527   ThePool.InsertNode(I, IP);
+<a name="l01528"></a>01528 
+<a name="l01529"></a>01529   <span class="keywordflow">return</span> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>;
+<a name="l01530"></a>01530 }
+<a name="l01531"></a>01531 
+<a name="l01532"></a>01532 <a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *
+<a name="l01533"></a><a class="code" href="classllvm_1_1DagInit.html#a0d0a5cf24768d862b8432c63a7e2dbf1">01533</a> <a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">DagInit::get</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *V, <span class="keyword">const</span> std::string &VN,
+<a name="l01534"></a>01534              <span class="keyword">const</span> std::vector<std::pair<Init*, std::string> > &args) {
+<a name="l01535"></a>01535   <span class="keyword">typedef</span> std::pair<Init*, std::string> PairType;
+<a name="l01536"></a>01536 
+<a name="l01537"></a>01537   std::vector<Init *> Args;
+<a name="l01538"></a>01538   std::vector<std::string> Names;
+<a name="l01539"></a>01539 
+<a name="l01540"></a>01540   <span class="keywordflow">for</span> (std::vector<PairType>::const_iterator i = args.begin(),
+<a name="l01541"></a>01541          iend = args.end();
+<a name="l01542"></a>01542        i != iend;
+<a name="l01543"></a>01543        ++i) {
+<a name="l01544"></a>01544     Args.push_back(i->first);
+<a name="l01545"></a>01545     Names.push_back(i->second);
+<a name="l01546"></a>01546   }
+<a name="l01547"></a>01547 
+<a name="l01548"></a>01548   <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">DagInit::get</a>(V, VN, Args, Names);
+<a name="l01549"></a>01549 }
+<a name="l01550"></a>01550 
+<a name="l01551"></a><a class="code" href="classllvm_1_1DagInit.html#a943fd8d0f153fcd4192b690fa0f02e1f">01551</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1DagInit.html#a943fd8d0f153fcd4192b690fa0f02e1f">DagInit::Profile</a>(<a class="code" href="classllvm_1_1FoldingSetNodeID.html">FoldingSetNodeID</a> &<a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">ID</a>)<span class="keyword"> const </span>{
+<a name="l01552"></a>01552   <a class="code" href="Record_8cpp.html#a7fd108b14b37abfcbbe0967b3984f224">ProfileDagInit</a>(ID, Val, ValName, Args, ArgNames);
+<a name="l01553"></a>01553 }
+<a name="l01554"></a>01554 
+<a name="l01555"></a><a class="code" href="classllvm_1_1DagInit.html#a566a840b70660c5e10284870fb62953e">01555</a> <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1DagInit.html#a566a840b70660c5e10284870fb62953e">DagInit::resolveReferences</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &R, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV)<span class="keyword"> const </span>{
+<a name="l01556"></a>01556   std::vector<Init*> NewArgs;
+<a name="l01557"></a>01557   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Args.size(); i != e; ++i)
+<a name="l01558"></a>01558     NewArgs.push_back(Args[i]->resolveReferences(R, RV));
+<a name="l01559"></a>01559 
+<a name="l01560"></a>01560   <a class="code" href="classllvm_1_1Init.html">Init</a> *Op = Val-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(R, RV);
+<a name="l01561"></a>01561 
+<a name="l01562"></a>01562   <span class="keywordflow">if</span> (Args != NewArgs || Op != Val)
+<a name="l01563"></a>01563     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1DagInit.html#afc3fb20983afa4ab375663781ccde97d">DagInit::get</a>(Op, ValName, NewArgs, ArgNames);
+<a name="l01564"></a>01564 
+<a name="l01565"></a>01565   <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *<span class="keyword">></span>(<span class="keyword">this</span>);
+<a name="l01566"></a>01566 }
+<a name="l01567"></a>01567 
+<a name="l01568"></a>01568 
+<a name="l01569"></a><a class="code" href="classllvm_1_1DagInit.html#ab6cd508a5a4e5fd4b99a38e25c8a8c6f">01569</a> std::string <a class="code" href="classllvm_1_1DagInit.html#ab6cd508a5a4e5fd4b99a38e25c8a8c6f" title="getAsString - Convert this value to a string form.">DagInit::getAsString</a>()<span class="keyword"> const </span>{
+<a name="l01570"></a>01570   std::string Result = <span class="stringliteral">"("</span> + Val-><a class="code" href="classllvm_1_1Init.html#a481b80008264e452153378421ebad249" title="getAsString - Convert this value to a string form.">getAsString</a>();
+<a name="l01571"></a>01571   <span class="keywordflow">if</span> (!ValName.empty())
+<a name="l01572"></a>01572     Result += <span class="stringliteral">":"</span> + ValName;
+<a name="l01573"></a>01573   <span class="keywordflow">if</span> (Args.size()) {
+<a name="l01574"></a>01574     Result += <span class="stringliteral">" "</span> + Args[0]->getAsString();
+<a name="l01575"></a>01575     <span class="keywordflow">if</span> (!ArgNames[0].empty()) Result += <span class="stringliteral">":$"</span> + ArgNames[0];
+<a name="l01576"></a>01576     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 1, e = Args.size(); i != e; ++i) {
+<a name="l01577"></a>01577       Result += <span class="stringliteral">", "</span> + Args[i]->getAsString();
+<a name="l01578"></a>01578       <span class="keywordflow">if</span> (!ArgNames[i].empty()) Result += <span class="stringliteral">":$"</span> + ArgNames[i];
+<a name="l01579"></a>01579     }
+<a name="l01580"></a>01580   }
+<a name="l01581"></a>01581   <span class="keywordflow">return</span> Result + <span class="stringliteral">")"</span>;
+<a name="l01582"></a>01582 }
+<a name="l01583"></a>01583 
+<a name="l01584"></a>01584 
+<a name="l01585"></a>01585 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l01586"></a>01586 <span class="comment">//    Other implementations</span>
+<a name="l01587"></a>01587 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l01588"></a>01588 
+<a name="l01589"></a><a class="code" href="classllvm_1_1RecordVal.html#a091f29732551a3285d41b59e009cfa4a">01589</a> <a class="code" href="classllvm_1_1RecordVal.html#a091f29732551a3285d41b59e009cfa4a">RecordVal::RecordVal</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *N, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T, <span class="keywordtype">unsigned</span> P)
+<a name="l01590"></a>01590   : <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>(N), Ty(T), <a class="code" href="namespacellvm_1_1cl.html#afcbd4ecc474e2d218391d6d3027b086aa7861ef1db44eac8ea7a373cd7c53a7c5">Prefix</a>(P) {
+<a name="l01591"></a>01591   <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = Ty-><a class="code" href="classllvm_1_1RecTy.html#ae1197ff2ca08eea011f3ed6af593000a">convertValue</a>(<a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>());
+<a name="l01592"></a>01592   assert(<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> && <span class="stringliteral">"Cannot create unset value for current type!"</span>);
+<a name="l01593"></a>01593 }
+<a name="l01594"></a>01594 
+<a name="l01595"></a><a class="code" href="classllvm_1_1RecordVal.html#a40534adabdce84588f1abb8dcdd9eea8">01595</a> <a class="code" href="classllvm_1_1RecordVal.html#a091f29732551a3285d41b59e009cfa4a">RecordVal::RecordVal</a>(<span class="keyword">const</span> std::string &N, <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *T, <span class="keywordtype">unsigned</span> P)
+<a name="l01596"></a>01596   : <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>(<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>::get(N)), Ty(T), <a class="code" href="namespacellvm_1_1cl.html#afcbd4ecc474e2d218391d6d3027b086aa7861ef1db44eac8ea7a373cd7c53a7c5">Prefix</a>(P) {
+<a name="l01597"></a>01597   <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = Ty-><a class="code" href="classllvm_1_1RecTy.html#ae1197ff2ca08eea011f3ed6af593000a">convertValue</a>(<a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>());
+<a name="l01598"></a>01598   assert(<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> && <span class="stringliteral">"Cannot create unset value for current type!"</span>);
+<a name="l01599"></a>01599 }
+<a name="l01600"></a>01600 
+<a name="l01601"></a><a class="code" href="classllvm_1_1RecordVal.html#a9a76494017caab82bc64199f809a8c35">01601</a> <span class="keyword">const</span> std::string &<a class="code" href="classllvm_1_1RecordVal.html#a9a76494017caab82bc64199f809a8c35">RecordVal::getName</a>()<span class="keyword"> const </span>{
+<a name="l01602"></a>01602   <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *NameString = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(Name);
+<a name="l01603"></a>01603   assert(NameString && <span class="stringliteral">"RecordVal name is not a string!"</span>);
+<a name="l01604"></a>01604   <span class="keywordflow">return</span> NameString-><a class="code" href="classllvm_1_1StringInit.html#a2db003869e356f9b4ac4f64b9b400302">getValue</a>();
+<a name="l01605"></a>01605 }
+<a name="l01606"></a>01606 
+<a name="l01607"></a><a class="code" href="classllvm_1_1RecordVal.html#ae931a15e371a8f7caa4aa5617d2a608a">01607</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RecordVal.html#ae931a15e371a8f7caa4aa5617d2a608a">RecordVal::dump</a>()<span class="keyword"> const </span>{ <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << *<span class="keyword">this</span>; }
+<a name="l01608"></a>01608 
+<a name="l01609"></a><a class="code" href="classllvm_1_1RecordVal.html#aa1e4b33cac169f187ec7ee11b7659743">01609</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RecordVal.html#aa1e4b33cac169f187ec7ee11b7659743">RecordVal::print</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS, <span class="keywordtype">bool</span> PrintSem)<span class="keyword"> const </span>{
+<a name="l01610"></a>01610   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordVal.html#af474422047b125c31ea6998769a94236">getPrefix</a>()) OS << <span class="stringliteral">"field "</span>;
+<a name="l01611"></a>01611   OS << *<a class="code" href="classllvm_1_1RecordVal.html#a2cdffedc048cb9c1adf42db4b0ea5b27">getType</a>() << <span class="stringliteral">" "</span> << <a class="code" href="classllvm_1_1RecordVal.html#a8ad71f025642238076a3d94f80d66492">getNameInitAsString</a>();
+<a name="l01612"></a>01612 
+<a name="l01613"></a>01613   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>())
+<a name="l01614"></a>01614     OS << <span class="stringliteral">" = "</span> << *<a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>();
+<a name="l01615"></a>01615 
+<a name="l01616"></a>01616   <span class="keywordflow">if</span> (PrintSem) OS << <span class="stringliteral">";\n"</span>;
+<a name="l01617"></a>01617 }
+<a name="l01618"></a>01618 
+<a name="l01619"></a>01619 <span class="keywordtype">unsigned</span> Record::LastID = 0;
+<a name="l01620"></a>01620 
+<a name="l01621"></a>01621 <span class="keywordtype">void</span> Record::init() {
+<a name="l01622"></a>01622   checkName();
+<a name="l01623"></a>01623 
+<a name="l01624"></a>01624   <span class="comment">// Every record potentially has a def at the top.  This value is</span>
+<a name="l01625"></a>01625   <span class="comment">// replaced with the top-level def name at instantiation time.</span>
+<a name="l01626"></a>01626   <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> DN(<span class="stringliteral">"NAME"</span>, <a class="code" href="classllvm_1_1StringRecTy.html#a2302aa8b055c657e80230f753f097522">StringRecTy::get</a>(), 0);
+<a name="l01627"></a>01627   <a class="code" href="classllvm_1_1Record.html#a7a4225f6fca11324cfcb7a11535d5dcf">addValue</a>(DN);
+<a name="l01628"></a>01628 }
+<a name="l01629"></a>01629 
+<a name="l01630"></a>01630 <span class="keywordtype">void</span> Record::checkName() {
+<a name="l01631"></a>01631   <span class="comment">// Ensure the record name has string type.</span>
+<a name="l01632"></a>01632   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a> *TypedName = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<span class="keyword">const</span> <a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(Name);
+<a name="l01633"></a>01633   assert(TypedName && <span class="stringliteral">"Record name is not typed!"</span>);
+<a name="l01634"></a>01634   <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *<a class="code" href="classllvm_1_1Type.html">Type</a> = TypedName-><a class="code" href="classllvm_1_1TypedInit.html#a5f07c3c542b78a97345205a67cf85ab3">getType</a>();
+<a name="l01635"></a>01635   <span class="keywordflow">if</span> (!isa<StringRecTy>(Type))
+<a name="l01636"></a>01636     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record name is not a string!"</span>);
+<a name="l01637"></a>01637 }
+<a name="l01638"></a>01638 
+<a name="l01639"></a><a class="code" href="classllvm_1_1Record.html#ad25ff85deb76d6db1511a45f2fc68af0">01639</a> <a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *<a class="code" href="classllvm_1_1Record.html#ad25ff85deb76d6db1511a45f2fc68af0" title="get the corresponding DefInit.">Record::getDefInit</a>() {
+<a name="l01640"></a>01640   <span class="keywordflow">if</span> (!TheInit)
+<a name="l01641"></a>01641     TheInit = <span class="keyword">new</span> <a class="code" href="classllvm_1_1DefInit.html">DefInit</a>(<span class="keyword">this</span>, <span class="keyword">new</span> <a class="code" href="classllvm_1_1RecordRecTy.html">RecordRecTy</a>(<span class="keyword">this</span>));
+<a name="l01642"></a>01642   <span class="keywordflow">return</span> TheInit;
+<a name="l01643"></a>01643 }
+<a name="l01644"></a>01644 
+<a name="l01645"></a><a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">01645</a> <span class="keyword">const</span> std::string &<a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">Record::getName</a>()<span class="keyword"> const </span>{
+<a name="l01646"></a>01646   <span class="keyword">const</span> <a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *NameString = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1StringInit.html">StringInit</a>>(Name);
+<a name="l01647"></a>01647   assert(NameString && <span class="stringliteral">"Record name is not a string!"</span>);
+<a name="l01648"></a>01648   <span class="keywordflow">return</span> NameString-><a class="code" href="classllvm_1_1StringInit.html#a2db003869e356f9b4ac4f64b9b400302">getValue</a>();
+<a name="l01649"></a>01649 }
+<a name="l01650"></a>01650 
+<a name="l01651"></a><a class="code" href="classllvm_1_1Record.html#ae92c53b0267c250302eca95b2c351a1f">01651</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Record.html#ae92c53b0267c250302eca95b2c351a1f">Record::setName</a>(<a class="code" href="classllvm_1_1Init.html">Init</a> *NewName) {
+<a name="l01652"></a>01652   <span class="keywordflow">if</span> (TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#a0e3f148b71162959b7ff04a67a4aa082">getDef</a>(Name-><a class="code" href="classllvm_1_1Init.html#acfbed53bee9f460a10c6a5a75c5497a0">getAsUnquotedString</a>()) == <span class="keyword">this</span>) {
+<a name="l01653"></a>01653     TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#a6500a40a8456f86a9976f227578d51ef">removeDef</a>(Name-><a class="code" href="classllvm_1_1Init.html#acfbed53bee9f460a10c6a5a75c5497a0">getAsUnquotedString</a>());
+<a name="l01654"></a>01654     TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#a80f8067d4224bf5a8fce4e063fed89b0">addDef</a>(<span class="keyword">this</span>);
+<a name="l01655"></a>01655   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#a1b40ba984c8ceadfa4890338247f2506">getClass</a>(Name-><a class="code" href="classllvm_1_1Init.html#acfbed53bee9f460a10c6a5a75c5497a0">getAsUnquotedString</a>()) == <span class="keyword">this</span>) {
+<a name="l01656"></a>01656     TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#a9ee09b337aa494fd2f01fbe8f8781a0e">removeClass</a>(Name-><a class="code" href="classllvm_1_1Init.html#acfbed53bee9f460a10c6a5a75c5497a0">getAsUnquotedString</a>());
+<a name="l01657"></a>01657     TrackedRecords.<a class="code" href="classllvm_1_1RecordKeeper.html#ae7c8ae295c52c677593190a2b32185bc">addClass</a>(<span class="keyword">this</span>);
+<a name="l01658"></a>01658   }  <span class="comment">// Otherwise this isn't yet registered.</span>
+<a name="l01659"></a>01659   Name = NewName;
+<a name="l01660"></a>01660   checkName();
+<a name="l01661"></a>01661   <span class="comment">// DO NOT resolve record values to the name at this point because</span>
+<a name="l01662"></a>01662   <span class="comment">// there might be default values for arguments of this def.  Those</span>
+<a name="l01663"></a>01663   <span class="comment">// arguments might not have been resolved yet so we don't want to</span>
+<a name="l01664"></a>01664   <span class="comment">// prematurely assume values for those arguments were not passed to</span>
+<a name="l01665"></a>01665   <span class="comment">// this def.</span>
+<a name="l01666"></a>01666   <span class="comment">//</span>
+<a name="l01667"></a>01667   <span class="comment">// Nonetheless, it may be that some of this Record's values</span>
+<a name="l01668"></a>01668   <span class="comment">// reference the record name.  Indeed, the reason for having the</span>
+<a name="l01669"></a>01669   <span class="comment">// record name be an Init is to provide this flexibility.  The extra</span>
+<a name="l01670"></a>01670   <span class="comment">// resolve steps after completely instantiating defs takes care of</span>
+<a name="l01671"></a>01671   <span class="comment">// this.  See TGParser::ParseDef and TGParser::ParseDefm.</span>
+<a name="l01672"></a>01672 }
+<a name="l01673"></a>01673 
+<a name="l01674"></a><a class="code" href="classllvm_1_1Record.html#a7547d4e4f28ce0c4da57ef0c826ea292">01674</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Record.html#ae92c53b0267c250302eca95b2c351a1f">Record::setName</a>(<span class="keyword">const</span> std::string &<a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>) {
+<a name="l01675"></a>01675   <a class="code" href="classllvm_1_1Record.html#ae92c53b0267c250302eca95b2c351a1f">setName</a>(<a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(Name));
+<a name="l01676"></a>01676 }
+<a name="l01677"></a>01677 <span class="comment"></span>
+<a name="l01678"></a>01678 <span class="comment">/// resolveReferencesTo - If anything in this record refers to RV, replace the</span>
+<a name="l01679"></a>01679 <span class="comment">/// reference to RV with the RHS of RV.  If RV is null, we resolve all possible</span>
+<a name="l01680"></a>01680 <span class="comment">/// references.</span>
+<a name="l01681"></a><a class="code" href="classllvm_1_1Record.html#a6830b7e083a6b4ff3890359b6fc7dace">01681</a> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Record.html#a6830b7e083a6b4ff3890359b6fc7dace">Record::resolveReferencesTo</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV) {
+<a name="l01682"></a>01682   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Values.size(); i != e; ++i) {
+<a name="l01683"></a>01683     <span class="keywordflow">if</span> (RV == &Values[i]) <span class="comment">// Skip resolve the same field as the given one</span>
+<a name="l01684"></a>01684       <span class="keywordflow">continue</span>;
+<a name="l01685"></a>01685     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Init.html">Init</a> *V = Values[i].<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>())
+<a name="l01686"></a>01686       <span class="keywordflow">if</span> (Values[i].setValue(V->resolveReferences(*<span class="keyword">this</span>, RV)))
+<a name="l01687"></a>01687         <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Invalid value is found when setting '"</span>
+<a name="l01688"></a>01688                       + Values[i].<a class="code" href="classllvm_1_1Record.html#ade938958097d911ffbb9b5b68d60c639">getNameInitAsString</a>()
+<a name="l01689"></a>01689                       + <span class="stringliteral">"' after resolving references"</span>
+<a name="l01690"></a>01690                       + (RV ? <span class="stringliteral">" against '"</span> + RV-><a class="code" href="classllvm_1_1RecordVal.html#a8ad71f025642238076a3d94f80d66492">getNameInitAsString</a>()
+<a name="l01691"></a>01691                               + <span class="stringliteral">"' of ("</span>
+<a name="l01692"></a>01692                               + RV-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()-><a class="code" href="classllvm_1_1Init.html#acfbed53bee9f460a10c6a5a75c5497a0">getAsUnquotedString</a>() + <span class="stringliteral">")"</span>
+<a name="l01693"></a>01693                             : <span class="stringliteral">""</span>)
+<a name="l01694"></a>01694                       + <span class="stringliteral">"\n"</span>);
+<a name="l01695"></a>01695   }
+<a name="l01696"></a>01696   <a class="code" href="classllvm_1_1Init.html">Init</a> *OldName = <a class="code" href="classllvm_1_1Record.html#a6245e355afd5ce42b23ee98865ec266f">getNameInit</a>();
+<a name="l01697"></a>01697   <a class="code" href="classllvm_1_1Init.html">Init</a> *NewName = Name-><a class="code" href="classllvm_1_1Init.html#abe9989d69d11fc0db1bc81e33a56040a">resolveReferences</a>(*<span class="keyword">this</span>, RV);
+<a name="l01698"></a>01698   <span class="keywordflow">if</span> (NewName != OldName) {
+<a name="l01699"></a>01699     <span class="comment">// Re-register with RecordKeeper.</span>
+<a name="l01700"></a>01700     <a class="code" href="classllvm_1_1Record.html#ae92c53b0267c250302eca95b2c351a1f">setName</a>(NewName);
+<a name="l01701"></a>01701   }
+<a name="l01702"></a>01702 }
+<a name="l01703"></a>01703 
+<a name="l01704"></a><a class="code" href="classllvm_1_1Record.html#ad6b7f29e9aea3fcdd7b6df01e5fc7133">01704</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1Record.html#ad6b7f29e9aea3fcdd7b6df01e5fc7133">Record::dump</a>()<span class="keyword"> const </span>{ <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << *<span class="keyword">this</span>; }
+<a name="l01705"></a>01705 
+<a name="l01706"></a><a class="code" href="namespacellvm.html#ae69dd69c07ac063e85030679ceba2f93">01706</a> <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &<a class="code" href="namespacellvm.html#a6a02d446812b76c3b271d9e3e3c77b49">llvm::operator<<</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS, <span class="keyword">const</span> <a class="code" href="classllvm_1_1Record.html">Record</a> &R) {
+<a name="l01707"></a>01707   OS << R.<a class="code" href="classllvm_1_1Record.html#ade938958097d911ffbb9b5b68d60c639">getNameInitAsString</a>();
+<a name="l01708"></a>01708 
+<a name="l01709"></a>01709   <span class="keyword">const</span> std::vector<Init *> &TArgs = R.<a class="code" href="classllvm_1_1Record.html#af72e9415509ef78d49cbfc0f47c28306">getTemplateArgs</a>();
+<a name="l01710"></a>01710   <span class="keywordflow">if</span> (!TArgs.empty()) {
+<a name="l01711"></a>01711     OS << <span class="stringliteral">"<"</span>;
+<a name="l01712"></a>01712     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = TArgs.size(); i != e; ++i) {
+<a name="l01713"></a>01713       <span class="keywordflow">if</span> (i) OS << <span class="stringliteral">", "</span>;
+<a name="l01714"></a>01714       <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *RV = R.<a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(TArgs[i]);
+<a name="l01715"></a>01715       assert(RV && <span class="stringliteral">"Template argument record not found??"</span>);
+<a name="l01716"></a>01716       RV-><a class="code" href="classllvm_1_1RecordVal.html#aa1e4b33cac169f187ec7ee11b7659743">print</a>(OS, <span class="keyword">false</span>);
+<a name="l01717"></a>01717     }
+<a name="l01718"></a>01718     OS << <span class="stringliteral">">"</span>;
+<a name="l01719"></a>01719   }
+<a name="l01720"></a>01720 
+<a name="l01721"></a>01721   OS << <span class="stringliteral">" {"</span>;
+<a name="l01722"></a>01722   <span class="keyword">const</span> std::vector<Record*> &SC = R.<a class="code" href="classllvm_1_1Record.html#a502354f7a095973ec90151787868d1f3">getSuperClasses</a>();
+<a name="l01723"></a>01723   <span class="keywordflow">if</span> (!SC.empty()) {
+<a name="l01724"></a>01724     OS << <span class="stringliteral">"\t//"</span>;
+<a name="l01725"></a>01725     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = SC.size(); i != e; ++i)
+<a name="l01726"></a>01726       OS << <span class="stringliteral">" "</span> << SC[i]->getNameInitAsString();
+<a name="l01727"></a>01727   }
+<a name="l01728"></a>01728   OS << <span class="stringliteral">"\n"</span>;
+<a name="l01729"></a>01729 
+<a name="l01730"></a>01730   <span class="keyword">const</span> std::vector<RecordVal> &Vals = R.<a class="code" href="classllvm_1_1Record.html#aca20a7fdbd7be22fbddba457033c7f53">getValues</a>();
+<a name="l01731"></a>01731   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Vals.size(); i != e; ++i)
+<a name="l01732"></a>01732     <span class="keywordflow">if</span> (Vals[i].getPrefix() && !R.<a class="code" href="classllvm_1_1Record.html#a4452000e5ece60cffed832797fef3672">isTemplateArg</a>(Vals[i].<a class="code" href="namespacellvm_1_1Intrinsic.html#a2950ceaccea680f8278bfcb7517cc9ce">getName</a>()))
+<a name="l01733"></a>01733       OS << Vals[i];
+<a name="l01734"></a>01734   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Vals.size(); i != e; ++i)
+<a name="l01735"></a>01735     <span class="keywordflow">if</span> (!Vals[i].getPrefix() && !R.<a class="code" href="classllvm_1_1Record.html#a4452000e5ece60cffed832797fef3672">isTemplateArg</a>(Vals[i].<a class="code" href="namespacellvm_1_1Intrinsic.html#a2950ceaccea680f8278bfcb7517cc9ce">getName</a>()))
+<a name="l01736"></a>01736       OS << Vals[i];
+<a name="l01737"></a>01737 
+<a name="l01738"></a>01738   <span class="keywordflow">return</span> OS << <span class="stringliteral">"}\n"</span>;
+<a name="l01739"></a>01739 }
+<a name="l01740"></a>01740 <span class="comment"></span>
+<a name="l01741"></a>01741 <span class="comment">/// getValueInit - Return the initializer for a value with the specified name,</span>
+<a name="l01742"></a>01742 <span class="comment">/// or abort if the field does not exist.</span>
+<a name="l01743"></a>01743 <span class="comment">///</span>
+<a name="l01744"></a><a class="code" href="classllvm_1_1Record.html#ac1bbbd663fdb60e6bab6c783c7193ed2">01744</a> <span class="comment"></span><a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="classllvm_1_1Record.html#ac1bbbd663fdb60e6bab6c783c7193ed2">Record::getValueInit</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01745"></a>01745   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01746"></a>01746   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01747"></a>01747     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01748"></a>01748       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01749"></a>01749   <span class="keywordflow">return</span> R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>();
+<a name="l01750"></a>01750 }
+<a name="l01751"></a>01751 
+<a name="l01752"></a>01752 <span class="comment"></span>
+<a name="l01753"></a>01753 <span class="comment">/// getValueAsString - This method looks up the specified field and returns its</span>
+<a name="l01754"></a>01754 <span class="comment">/// value as a string, aborts if the field does not exist or if</span>
+<a name="l01755"></a>01755 <span class="comment">/// the value is not a string.</span>
+<a name="l01756"></a>01756 <span class="comment">///</span>
+<a name="l01757"></a><a class="code" href="classllvm_1_1Record.html#a17e8b53e82524b915b3f332f808679b3">01757</a> <span class="comment"></span>std::string <a class="code" href="classllvm_1_1Record.html#a17e8b53e82524b915b3f332f808679b3">Record::getValueAsString</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01758"></a>01758   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01759"></a>01759   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01760"></a>01760     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01761"></a>01761       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01762"></a>01762 
+<a name="l01763"></a>01763   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *SI = dyn_cast<StringInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01764"></a>01764     <span class="keywordflow">return</span> SI->getValue();
+<a name="l01765"></a>01765   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01766"></a>01766     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a string initializer!"</span>);
+<a name="l01767"></a>01767 }
+<a name="l01768"></a>01768 <span class="comment"></span>
+<a name="l01769"></a>01769 <span class="comment">/// getValueAsBitsInit - This method looks up the specified field and returns</span>
+<a name="l01770"></a>01770 <span class="comment">/// its value as a BitsInit, aborts if the field does not exist or if</span>
+<a name="l01771"></a>01771 <span class="comment">/// the value is not the right type.</span>
+<a name="l01772"></a>01772 <span class="comment">///</span>
+<a name="l01773"></a><a class="code" href="classllvm_1_1Record.html#ad390bf4f75d245eac22cceb6d9a0d33c">01773</a> <span class="comment"></span><a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *<a class="code" href="classllvm_1_1Record.html#ad390bf4f75d245eac22cceb6d9a0d33c">Record::getValueAsBitsInit</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01774"></a>01774   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01775"></a>01775   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01776"></a>01776     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01777"></a>01777       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01778"></a>01778 
+<a name="l01779"></a>01779   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1BitsInit.html">BitsInit</a> *BI = dyn_cast<BitsInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01780"></a>01780     <span class="keywordflow">return</span> BI;
+<a name="l01781"></a>01781   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01782"></a>01782     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a BitsInit initializer!"</span>);
+<a name="l01783"></a>01783 }
+<a name="l01784"></a>01784 <span class="comment"></span>
+<a name="l01785"></a>01785 <span class="comment">/// getValueAsListInit - This method looks up the specified field and returns</span>
+<a name="l01786"></a>01786 <span class="comment">/// its value as a ListInit, aborting if the field does not exist or if</span>
+<a name="l01787"></a>01787 <span class="comment">/// the value is not the right type.</span>
+<a name="l01788"></a>01788 <span class="comment">///</span>
+<a name="l01789"></a><a class="code" href="classllvm_1_1Record.html#a30a1be4cc9ea4b99b0ab35d68c1596e6">01789</a> <span class="comment"></span><a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="classllvm_1_1Record.html#a30a1be4cc9ea4b99b0ab35d68c1596e6">Record::getValueAsListInit</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01790"></a>01790   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01791"></a>01791   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01792"></a>01792     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01793"></a>01793       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01794"></a>01794 
+<a name="l01795"></a>01795   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a> = dyn_cast<ListInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01796"></a>01796     <span class="keywordflow">return</span> <a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>;
+<a name="l01797"></a>01797   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01798"></a>01798     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a list initializer!"</span>);
+<a name="l01799"></a>01799 }
+<a name="l01800"></a>01800 <span class="comment"></span>
+<a name="l01801"></a>01801 <span class="comment">/// getValueAsListOfDefs - This method looks up the specified field and returns</span>
+<a name="l01802"></a>01802 <span class="comment">/// its value as a vector of records, aborting if the field does not exist</span>
+<a name="l01803"></a>01803 <span class="comment">/// or if the value is not the right type.</span>
+<a name="l01804"></a>01804 <span class="comment">///</span>
+<a name="l01805"></a>01805 <span class="comment"></span>std::vector<Record*>
+<a name="l01806"></a><a class="code" href="classllvm_1_1Record.html#a6a645bdb990aa1f7eeba4b550ddf3c2c">01806</a> <a class="code" href="classllvm_1_1Record.html#a6a645bdb990aa1f7eeba4b550ddf3c2c">Record::getValueAsListOfDefs</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01807"></a>01807   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5afef9bccea014fbcc9d61070cb7dbb5ff">List</a> = <a class="code" href="classllvm_1_1Record.html#a30a1be4cc9ea4b99b0ab35d68c1596e6">getValueAsListInit</a>(FieldName);
+<a name="l01808"></a>01808   std::vector<Record*> Defs;
+<a name="l01809"></a>01809   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < List-><a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>(); i++) {
+<a name="l01810"></a>01810     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *DI = dyn_cast<DefInit>(List-><a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(i))) {
+<a name="l01811"></a>01811       Defs.push_back(DI->getDef());
+<a name="l01812"></a>01812     } <span class="keywordflow">else</span> {
+<a name="l01813"></a>01813       <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01814"></a>01814         FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' list is not entirely DefInit!"</span>);
+<a name="l01815"></a>01815     }
+<a name="l01816"></a>01816   }
+<a name="l01817"></a>01817   <span class="keywordflow">return</span> Defs;
+<a name="l01818"></a>01818 }
+<a name="l01819"></a>01819 <span class="comment"></span>
+<a name="l01820"></a>01820 <span class="comment">/// getValueAsInt - This method looks up the specified field and returns its</span>
+<a name="l01821"></a>01821 <span class="comment">/// value as an int64_t, aborting if the field does not exist or if the value</span>
+<a name="l01822"></a>01822 <span class="comment">/// is not the right type.</span>
+<a name="l01823"></a>01823 <span class="comment">///</span>
+<a name="l01824"></a><a class="code" href="classllvm_1_1Record.html#ac72478ae89edd7b1e2e7d5c0f8a0a0c1">01824</a> <span class="comment"></span><a class="code" href="classint64__t.html">int64_t</a> <a class="code" href="classllvm_1_1Record.html#ac72478ae89edd7b1e2e7d5c0f8a0a0c1">Record::getValueAsInt</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01825"></a>01825   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01826"></a>01826   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01827"></a>01827     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01828"></a>01828       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01829"></a>01829 
+<a name="l01830"></a>01830   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *II = dyn_cast<IntInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01831"></a>01831     <span class="keywordflow">return</span> II->getValue();
+<a name="l01832"></a>01832   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01833"></a>01833     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have an int initializer!"</span>);
+<a name="l01834"></a>01834 }
+<a name="l01835"></a>01835 <span class="comment"></span>
+<a name="l01836"></a>01836 <span class="comment">/// getValueAsListOfInts - This method looks up the specified field and returns</span>
+<a name="l01837"></a>01837 <span class="comment">/// its value as a vector of integers, aborting if the field does not exist or</span>
+<a name="l01838"></a>01838 <span class="comment">/// if the value is not the right type.</span>
+<a name="l01839"></a>01839 <span class="comment">///</span>
+<a name="l01840"></a>01840 <span class="comment"></span>std::vector<int64_t>
+<a name="l01841"></a><a class="code" href="classllvm_1_1Record.html#a68a492b008a24ad3e9a5557786d1e8c2">01841</a> <a class="code" href="classllvm_1_1Record.html#a68a492b008a24ad3e9a5557786d1e8c2">Record::getValueAsListOfInts</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01842"></a>01842   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5afef9bccea014fbcc9d61070cb7dbb5ff">List</a> = <a class="code" href="classllvm_1_1Record.html#a30a1be4cc9ea4b99b0ab35d68c1596e6">getValueAsListInit</a>(FieldName);
+<a name="l01843"></a>01843   std::vector<int64_t> Ints;
+<a name="l01844"></a>01844   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < List-><a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>(); i++) {
+<a name="l01845"></a>01845     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1IntInit.html">IntInit</a> *II = dyn_cast<IntInit>(List-><a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(i))) {
+<a name="l01846"></a>01846       Ints.push_back(II->getValue());
+<a name="l01847"></a>01847     } <span class="keywordflow">else</span> {
+<a name="l01848"></a>01848       <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01849"></a>01849         FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a list of ints initializer!"</span>);
+<a name="l01850"></a>01850     }
+<a name="l01851"></a>01851   }
+<a name="l01852"></a>01852   <span class="keywordflow">return</span> Ints;
+<a name="l01853"></a>01853 }
+<a name="l01854"></a>01854 <span class="comment"></span>
+<a name="l01855"></a>01855 <span class="comment">/// getValueAsListOfStrings - This method looks up the specified field and</span>
+<a name="l01856"></a>01856 <span class="comment">/// returns its value as a vector of strings, aborting if the field does not</span>
+<a name="l01857"></a>01857 <span class="comment">/// exist or if the value is not the right type.</span>
+<a name="l01858"></a>01858 <span class="comment">///</span>
+<a name="l01859"></a>01859 <span class="comment"></span>std::vector<std::string>
+<a name="l01860"></a><a class="code" href="classllvm_1_1Record.html#a0b07284898e854caacc06f86a5fa3f24">01860</a> <a class="code" href="classllvm_1_1Record.html#a0b07284898e854caacc06f86a5fa3f24">Record::getValueAsListOfStrings</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01861"></a>01861   <a class="code" href="classllvm_1_1ListInit.html">ListInit</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5afef9bccea014fbcc9d61070cb7dbb5ff">List</a> = <a class="code" href="classllvm_1_1Record.html#a30a1be4cc9ea4b99b0ab35d68c1596e6">getValueAsListInit</a>(FieldName);
+<a name="l01862"></a>01862   std::vector<std::string> Strings;
+<a name="l01863"></a>01863   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < List-><a class="code" href="classllvm_1_1ListInit.html#ab7ecf7ea8d6e92b5f3f1745b4d3aee90">getSize</a>(); i++) {
+<a name="l01864"></a>01864     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1StringInit.html">StringInit</a> *II = dyn_cast<StringInit>(List-><a class="code" href="classllvm_1_1ListInit.html#a4113e8bc23e7b06a42a4771a47744a5f">getElement</a>(i))) {
+<a name="l01865"></a>01865       Strings.push_back(II->getValue());
+<a name="l01866"></a>01866     } <span class="keywordflow">else</span> {
+<a name="l01867"></a>01867       <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01868"></a>01868         FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a list of strings initializer!"</span>);
+<a name="l01869"></a>01869     }
+<a name="l01870"></a>01870   }
+<a name="l01871"></a>01871   <span class="keywordflow">return</span> Strings;
+<a name="l01872"></a>01872 }
+<a name="l01873"></a>01873 <span class="comment"></span>
+<a name="l01874"></a>01874 <span class="comment">/// getValueAsDef - This method looks up the specified field and returns its</span>
+<a name="l01875"></a>01875 <span class="comment">/// value as a Record, aborting if the field does not exist or if the value</span>
+<a name="l01876"></a>01876 <span class="comment">/// is not the right type.</span>
+<a name="l01877"></a>01877 <span class="comment">///</span>
+<a name="l01878"></a><a class="code" href="classllvm_1_1Record.html#aa48c2ccab954a07654a76cc88d7dbbf8">01878</a> <span class="comment"></span><a class="code" href="classllvm_1_1Record.html">Record</a> *<a class="code" href="classllvm_1_1Record.html#aa48c2ccab954a07654a76cc88d7dbbf8">Record::getValueAsDef</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01879"></a>01879   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01880"></a>01880   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01881"></a>01881     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01882"></a>01882       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01883"></a>01883 
+<a name="l01884"></a>01884   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DefInit.html">DefInit</a> *DI = dyn_cast<DefInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01885"></a>01885     <span class="keywordflow">return</span> DI->getDef();
+<a name="l01886"></a>01886   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01887"></a>01887     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a def initializer!"</span>);
+<a name="l01888"></a>01888 }
+<a name="l01889"></a>01889 <span class="comment"></span>
+<a name="l01890"></a>01890 <span class="comment">/// getValueAsBit - This method looks up the specified field and returns its</span>
+<a name="l01891"></a>01891 <span class="comment">/// value as a bit, aborting if the field does not exist or if the value is</span>
+<a name="l01892"></a>01892 <span class="comment">/// not the right type.</span>
+<a name="l01893"></a>01893 <span class="comment">///</span>
+<a name="l01894"></a><a class="code" href="classllvm_1_1Record.html#a288fee8575e19fb038dd365279e484f8">01894</a> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1Record.html#a288fee8575e19fb038dd365279e484f8">Record::getValueAsBit</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01895"></a>01895   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01896"></a>01896   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01897"></a>01897     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01898"></a>01898       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01899"></a>01899 
+<a name="l01900"></a>01900   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *BI = dyn_cast<BitInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01901"></a>01901     <span class="keywordflow">return</span> BI->getValue();
+<a name="l01902"></a>01902   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01903"></a>01903     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a bit initializer!"</span>);
+<a name="l01904"></a>01904 }
+<a name="l01905"></a>01905 
+<a name="l01906"></a><a class="code" href="classllvm_1_1Record.html#a35d4c252710783b6b262134a918dcf21">01906</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1Record.html#a35d4c252710783b6b262134a918dcf21">Record::getValueAsBitOrUnset</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName, <span class="keywordtype">bool</span> &Unset)<span class="keyword"> const </span>{
+<a name="l01907"></a>01907   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01908"></a>01908   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01909"></a>01909     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01910"></a>01910       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01911"></a>01911 
+<a name="l01912"></a>01912   <span class="keywordflow">if</span> (R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == <a class="code" href="classllvm_1_1UnsetInit.html#a4a0e9348cba0097b1a59dd9f8d6724bd">UnsetInit::get</a>()) {
+<a name="l01913"></a>01913     Unset = <span class="keyword">true</span>;
+<a name="l01914"></a>01914     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01915"></a>01915   }
+<a name="l01916"></a>01916   Unset = <span class="keyword">false</span>;
+<a name="l01917"></a>01917   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1BitInit.html">BitInit</a> *BI = dyn_cast<BitInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01918"></a>01918     <span class="keywordflow">return</span> BI->getValue();
+<a name="l01919"></a>01919   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01920"></a>01920     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a bit initializer!"</span>);
+<a name="l01921"></a>01921 }
+<a name="l01922"></a>01922 <span class="comment"></span>
+<a name="l01923"></a>01923 <span class="comment">/// getValueAsDag - This method looks up the specified field and returns its</span>
+<a name="l01924"></a>01924 <span class="comment">/// value as an Dag, aborting if the field does not exist or if the value is</span>
+<a name="l01925"></a>01925 <span class="comment">/// not the right type.</span>
+<a name="l01926"></a>01926 <span class="comment">///</span>
+<a name="l01927"></a><a class="code" href="classllvm_1_1Record.html#acb118c68577c5152406db179116fdf2d">01927</a> <span class="comment"></span><a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *<a class="code" href="classllvm_1_1Record.html#acb118c68577c5152406db179116fdf2d">Record::getValueAsDag</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> FieldName)<span class="keyword"> const </span>{
+<a name="l01928"></a>01928   <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordVal.html">RecordVal</a> *R = <a class="code" href="classllvm_1_1Record.html#a4668f0a1063bb8b03dd4172e2d4e47ff">getValue</a>(FieldName);
+<a name="l01929"></a>01929   <span class="keywordflow">if</span> (R == 0 || R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>() == 0)
+<a name="l01930"></a>01930     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() +
+<a name="l01931"></a>01931       <span class="stringliteral">"' does not have a field named `"</span> + FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'!\n"</span>);
+<a name="l01932"></a>01932 
+<a name="l01933"></a>01933   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1DagInit.html">DagInit</a> *DI = dyn_cast<DagInit>(R-><a class="code" href="classllvm_1_1RecordVal.html#ace59fb2853bd6717ccbde2458b1a012a">getValue</a>()))
+<a name="l01934"></a>01934     <span class="keywordflow">return</span> DI;
+<a name="l01935"></a>01935   <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<a class="code" href="classllvm_1_1Record.html#ae8ccca545fccb5975b69d3b11d1d0aee">getLoc</a>(), <span class="stringliteral">"Record `"</span> + <a class="code" href="classllvm_1_1Record.html#ad6809cbb7630322b18f9d3936169a570">getName</a>() + <span class="stringliteral">"', field `"</span> +
+<a name="l01936"></a>01936     FieldName.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"' does not have a dag initializer!"</span>);
+<a name="l01937"></a>01937 }
+<a name="l01938"></a>01938 
+<a name="l01939"></a>01939 
+<a name="l01940"></a><a class="code" href="structllvm_1_1MultiClass.html#a4eb01cc146efd4c32352a19c7fce9469">01940</a> <span class="keywordtype">void</span> <a class="code" href="structllvm_1_1MultiClass.html#a4eb01cc146efd4c32352a19c7fce9469">MultiClass::dump</a>()<span class="keyword"> const </span>{
+<a name="l01941"></a>01941   <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Record:\n"</span>;
+<a name="l01942"></a>01942   <a class="code" href="structllvm_1_1MultiClass.html#ae0ccef996d8034966cf8fbd99904915b">Rec</a>.<a class="code" href="classllvm_1_1Record.html#ad6b7f29e9aea3fcdd7b6df01e5fc7133">dump</a>();
+<a name="l01943"></a>01943 
+<a name="l01944"></a>01944   <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << <span class="stringliteral">"Defs:\n"</span>;
+<a name="l01945"></a>01945   <span class="keywordflow">for</span> (RecordVector::const_iterator r = <a class="code" href="structllvm_1_1MultiClass.html#ac148062795bcfa2c087d76db4bf2ec01">DefPrototypes</a>.begin(),
+<a name="l01946"></a>01946          <a class="code" href="namespacellvm_1_1sys_1_1path.html#a169939bbe3d96fa21656ab634c020b0b" title="Get reverse end iterator over path.">rend</a> = <a class="code" href="structllvm_1_1MultiClass.html#ac148062795bcfa2c087d76db4bf2ec01">DefPrototypes</a>.end();
+<a name="l01947"></a>01947        r != <a class="code" href="namespacellvm_1_1sys_1_1path.html#a169939bbe3d96fa21656ab634c020b0b" title="Get reverse end iterator over path.">rend</a>;
+<a name="l01948"></a>01948        ++r) {
+<a name="l01949"></a>01949     (*r)->dump();
+<a name="l01950"></a>01950   }
+<a name="l01951"></a>01951 }
+<a name="l01952"></a>01952 
+<a name="l01953"></a>01953 
+<a name="l01954"></a><a class="code" href="classllvm_1_1RecordKeeper.html#ae3f491884d6921a4509c79f1497d4f19">01954</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RecordKeeper.html#ae3f491884d6921a4509c79f1497d4f19">RecordKeeper::dump</a>()<span class="keyword"> const </span>{ <a class="code" href="namespacellvm.html#ab8e34eca3b0817ef7a127913fbf6d9e4">errs</a>() << *<span class="keyword">this</span>; }
+<a name="l01955"></a>01955 
+<a name="l01956"></a><a class="code" href="namespacellvm.html#ab8114f4901098c275dadbf11828a2f37">01956</a> <a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &<a class="code" href="namespacellvm.html#a6a02d446812b76c3b271d9e3e3c77b49">llvm::operator<<</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &OS, <span class="keyword">const</span> <a class="code" href="classllvm_1_1RecordKeeper.html">RecordKeeper</a> &RK) {
+<a name="l01957"></a>01957   OS << <span class="stringliteral">"------------- Classes -----------------\n"</span>;
+<a name="l01958"></a>01958   <span class="keyword">const</span> std::map<std::string, Record*> &Classes = RK.<a class="code" href="classllvm_1_1RecordKeeper.html#ad2e0130f058a9e30f4f4c4e311757be3">getClasses</a>();
+<a name="l01959"></a>01959   <span class="keywordflow">for</span> (std::map<std::string, Record*>::const_iterator <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Classes.begin(),
+<a name="l01960"></a>01960          E = Classes.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="l01961"></a>01961     OS << <span class="stringliteral">"class "</span> << *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->second;
+<a name="l01962"></a>01962 
+<a name="l01963"></a>01963   OS << <span class="stringliteral">"------------- Defs -----------------\n"</span>;
+<a name="l01964"></a>01964   <span class="keyword">const</span> std::map<std::string, Record*> &Defs = RK.<a class="code" href="classllvm_1_1RecordKeeper.html#a3a04a1b9d9dd4b2feb449a6e2baa23e9">getDefs</a>();
+<a name="l01965"></a>01965   <span class="keywordflow">for</span> (std::map<std::string, Record*>::const_iterator <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = Defs.begin(),
+<a name="l01966"></a>01966          E = Defs.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="l01967"></a>01967     OS << <span class="stringliteral">"def "</span> << *<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->second;
+<a name="l01968"></a>01968   <span class="keywordflow">return</span> OS;
+<a name="l01969"></a>01969 }
+<a name="l01970"></a>01970 
+<a name="l01971"></a>01971 <span class="comment"></span>
+<a name="l01972"></a>01972 <span class="comment">/// getAllDerivedDefinitions - This method returns all concrete definitions</span>
+<a name="l01973"></a>01973 <span class="comment">/// that derive from the specified class name.  If a class with the specified</span>
+<a name="l01974"></a>01974 <span class="comment">/// name does not exist, an error is printed and true is returned.</span>
+<a name="l01975"></a>01975 <span class="comment"></span>std::vector<Record*>
+<a name="l01976"></a><a class="code" href="classllvm_1_1RecordKeeper.html#a2143e9115964255a9e5f85b80e38f1dd">01976</a> <a class="code" href="classllvm_1_1RecordKeeper.html#a2143e9115964255a9e5f85b80e38f1dd">RecordKeeper::getAllDerivedDefinitions</a>(<span class="keyword">const</span> std::string &ClassName)<span class="keyword"> const </span>{
+<a name="l01977"></a>01977   <a class="code" href="classllvm_1_1Record.html">Record</a> *<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5ada3eb06ada644390db065d37b3fd87ac">Class</a> = <a class="code" href="classllvm_1_1RecordKeeper.html#a1b40ba984c8ceadfa4890338247f2506">getClass</a>(ClassName);
+<a name="l01978"></a>01978   <span class="keywordflow">if</span> (!Class)
+<a name="l01979"></a>01979     <a class="code" href="namespacellvm.html#aaf76c104a039c073fdc3f253edc37dc6">PrintFatalError</a>(<span class="stringliteral">"ERROR: Couldn't find the `"</span> + ClassName + <span class="stringliteral">"' class!\n"</span>);
+<a name="l01980"></a>01980 
+<a name="l01981"></a>01981   std::vector<Record*> Defs;
+<a name="l01982"></a>01982   <span class="keywordflow">for</span> (std::map<std::string, Record*>::const_iterator <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a> = <a class="code" href="classllvm_1_1RecordKeeper.html#a3a04a1b9d9dd4b2feb449a6e2baa23e9">getDefs</a>().<a class="code" href="namespacellvm_1_1sys_1_1path.html#a33706aab89e700b8f79e1fa6f4f0e3ee" title="Get begin iterator over path.">begin</a>(),
+<a name="l01983"></a>01983          E = <a class="code" href="classllvm_1_1RecordKeeper.html#a3a04a1b9d9dd4b2feb449a6e2baa23e9">getDefs</a>().<a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">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="l01984"></a>01984     <span class="keywordflow">if</span> (<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->second->isSubClassOf(Class))
+<a name="l01985"></a>01985       Defs.push_back(<a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>->second);
+<a name="l01986"></a>01986 
+<a name="l01987"></a>01987   <span class="keywordflow">return</span> Defs;
+<a name="l01988"></a>01988 }
+<a name="l01989"></a>01989 <span class="comment"></span>
+<a name="l01990"></a>01990 <span class="comment">/// QualifyName - Return an Init with a qualifier prefix referring</span>
+<a name="l01991"></a>01991 <span class="comment">/// to CurRec's name.</span>
+<a name="l01992"></a><a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">01992</a> <span class="comment"></span><a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">llvm::QualifyName</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass,
+<a name="l01993"></a>01993                         <a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>, <span class="keyword">const</span> std::string &Scoper) {
+<a name="l01994"></a>01994   <a class="code" href="classllvm_1_1RecTy.html">RecTy</a> *Type = <a class="code" href="namespacellvm.html#a8d8db3a5b2508f7086ef2d43036007b3">dyn_cast</a><<a class="code" href="classllvm_1_1TypedInit.html">TypedInit</a>>(<a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>)-><a class="code" href="MBlazeIntrinsicInfo_8cpp.html#a3cd18d1f351b75c6a928ccff229041e7">getType</a>();
+<a name="l01995"></a>01995 
+<a name="l01996"></a>01996   <a class="code" href="classllvm_1_1BinOpInit.html">BinOpInit</a> *NewName =
+<a name="l01997"></a>01997     <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>, 
+<a name="l01998"></a>01998                       <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>,
+<a name="l01999"></a>01999                                         CurRec.<a class="code" href="classllvm_1_1Record.html#a6245e355afd5ce42b23ee98865ec266f">getNameInit</a>(),
+<a name="l02000"></a>02000                                         <a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(Scoper),
+<a name="l02001"></a>02001                                         <a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>)->Fold(&CurRec, CurMultiClass),
+<a name="l02002"></a>02002                       <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>,
+<a name="l02003"></a>02003                       <a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>);
+<a name="l02004"></a>02004 
+<a name="l02005"></a>02005   <span class="keywordflow">if</span> (CurMultiClass && Scoper != <span class="stringliteral">"::"</span>) {
+<a name="l02006"></a>02006     NewName =
+<a name="l02007"></a>02007       <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>, 
+<a name="l02008"></a>02008                         <a class="code" href="classllvm_1_1BinOpInit.html#acc5a7bff94d11c9d7bdb605db98df854">BinOpInit::get</a>(<a class="code" href="classllvm_1_1BinOpInit.html#aaf58c59fc22c195c8ca34d37b851ce2ca958a422acb672d6187c96d6780f1adc0">BinOpInit::STRCONCAT</a>,
+<a name="l02009"></a>02009                                           CurMultiClass-><a class="code" href="structllvm_1_1MultiClass.html#ae0ccef996d8034966cf8fbd99904915b">Rec</a>.<a class="code" href="classllvm_1_1Record.html#a6245e355afd5ce42b23ee98865ec266f">getNameInit</a>(),
+<a name="l02010"></a>02010                                           <a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(<span class="stringliteral">"::"</span>),
+<a name="l02011"></a>02011                                           <a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>)->Fold(&CurRec, CurMultiClass),
+<a name="l02012"></a>02012                         NewName-><a class="code" href="classllvm_1_1BinOpInit.html#abf53df4bf80c7a0e589eee2f47b2d7c9">Fold</a>(&CurRec, CurMultiClass),
+<a name="l02013"></a>02013                         <a class="code" href="namespacellvm_1_1HexagonII.html#a9bebdf970b4f51041ed3dee5d558a807">Type</a>);
+<a name="l02014"></a>02014   }
+<a name="l02015"></a>02015 
+<a name="l02016"></a>02016   <span class="keywordflow">return</span> NewName-><a class="code" href="classllvm_1_1BinOpInit.html#abf53df4bf80c7a0e589eee2f47b2d7c9">Fold</a>(&CurRec, CurMultiClass);
+<a name="l02017"></a>02017 }
+<a name="l02018"></a>02018 <span class="comment"></span>
+<a name="l02019"></a>02019 <span class="comment">/// QualifyName - Return an Init with a qualifier prefix referring</span>
+<a name="l02020"></a>02020 <span class="comment">/// to CurRec's name.</span>
+<a name="l02021"></a><a class="code" href="namespacellvm.html#a8344aaec46241c4b0d3e627c15a65626">02021</a> <span class="comment"></span><a class="code" href="classllvm_1_1Init.html">Init</a> *<a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">llvm::QualifyName</a>(<a class="code" href="classllvm_1_1Record.html">Record</a> &CurRec, <a class="code" href="structllvm_1_1MultiClass.html">MultiClass</a> *CurMultiClass,
+<a name="l02022"></a>02022                         <span class="keyword">const</span> std::string &<a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>,
+<a name="l02023"></a>02023                         <span class="keyword">const</span> std::string &Scoper) {
+<a name="l02024"></a>02024   <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a58e9c18ccde90e1b5ca591e42fecf2db">QualifyName</a>(CurRec, CurMultiClass, <a class="code" href="classllvm_1_1StringInit.html#ab2a3b8570efba84762e8a16750044d29">StringInit::get</a>(Name), Scoper);
+<a name="l02025"></a>02025 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:03 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/Record_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Record_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Record_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Record_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+749bf0ada93437fbc6eb41c252eef368
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/Recycler_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Recycler_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Recycler_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Recycler_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,92 @@
+<!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: Recycler.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">Recycler.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="ilist_8h_source.html">llvm/ADT/ilist.h</a>"</code><br/>
+<code>#include "<a class="el" href="AlignOf_8h_source.html">llvm/Support/AlignOf.h</a>"</code><br/>
+<code>#include "<a class="el" href="ErrorHandling_8h_source.html">llvm/Support/ErrorHandling.h</a>"</code><br/>
+<code>#include <cassert></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for Recycler.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="Recycler_8h__incl.png" border="0" usemap="#Recycler_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="Recycler_8h__dep__incl.png" border="0" usemap="#Recycler_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="Recycler_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">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1RecyclerStruct.html">llvm::RecyclerStruct</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1ilist__traits_3_01RecyclerStruct_01_4.html">llvm::ilist_traits< RecyclerStruct ></a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classllvm_1_1Recycler.html">llvm::Recycler< T, Size, Align ></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="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a5d241b2cfd56b41c0f396c7a8ab05de2">llvm::PrintRecyclerStats</a> (size_t Size, size_t Align, size_t FreeListSize)</td></tr>
+</table>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RegAllocBase_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,152 @@
+<!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: RegAllocBase.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="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">RegAllocBase.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="RegAllocBase_8h_source.html">RegAllocBase.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveRegMatrix_8h_source.html">LiveRegMatrix.h</a>"</code><br/>
+<code>#include "<a class="el" href="Spiller_8h_source.html">Spiller.h</a>"</code><br/>
+<code>#include "<a class="el" href="VirtRegMap_8h_source.html">VirtRegMap.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="LiveIntervalAnalysis_8h_source.html">llvm/CodeGen/LiveIntervalAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveRangeEdit_8h_source.html">llvm/CodeGen/LiveRangeEdit.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="SparseBitVector_8h_source.html">llvm/ADT/SparseBitVector.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="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include "<a class="el" href="Timer_8h_source.html">llvm/Support/Timer.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RegAllocBase.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="RegAllocBase_8cpp__incl.png" border="0" usemap="#RegAllocBase_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="RegAllocBase_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="RegAllocBase_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "regalloc"</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="RegAllocBase_8cpp.html#adb153350e88f5eeadbf2011e8e9fe781">STATISTIC</a> (NumNewQueued,"Number of new live <a class="el" href="MachineLoopRanges_8cpp.html#a0c409869f8c4c384da5bc6e83136afd1">ranges</a> queued")</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>, <a class="el" href="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="RegAllocBase_8cpp.html#a8505aeaa427585e1c7d5bcde144ee99b">VerifyRegAlloc</a> ("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("Verify during register <a class="el" href="StrongPHIElimination_8cpp.html#a1a0492b9a49bb2dab78ace5b3298fad6">allocation</a>"))</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="RegAllocBase.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "regalloc"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="RegAllocBase_8cpp_source.html#l00015">15</a> of file <a class="el" href="RegAllocBase_8cpp_source.html">RegAllocBase.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="adb153350e88f5eeadbf2011e8e9fe781"></a><!-- doxytag: member="RegAllocBase.cpp::STATISTIC" ref="adb153350e88f5eeadbf2011e8e9fe781" args="(NumNewQueued,"Number of new live ranges queued")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumNewQueued </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of new live <a class="el" href="MachineLoopRanges_8cpp.html#a0c409869f8c4c384da5bc6e83136afd1">ranges</a> queued" </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="a8505aeaa427585e1c7d5bcde144ee99b"></a><!-- doxytag: member="RegAllocBase.cpp::VerifyRegAlloc" ref="a8505aeaa427585e1c7d5bcde144ee99b" args="("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), cl::desc("Verify during register allocation"))" -->
+<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="LoopSimplify_8cpp.html#a13f020c6a40eb04f1b4f9ddfbb004ce0">true</a>> <a class="el" href="RegAllocBase_8cpp.html#a8505aeaa427585e1c7d5bcde144ee99b">VerifyRegAlloc</a>("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), <a class="el" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>("Verify during register <a class="el" href="StrongPHIElimination_8cpp.html#a1a0492b9a49bb2dab78ace5b3298fad6">allocation</a>"))<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RegAllocBase_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+cb109841fe9506241d9e948601b6f6d8
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,186 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegAllocBase.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="LiveIntervalUnion.h",height=0.2,width=0.4,color="black",URL="$LiveIntervalUnion_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/IntervalMap.h",height=0.2,width=0.4,color="black",URL="$IntervalMap_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="red",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"];
+  Node8 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node4 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node20 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="red",URL="$SwapByteOrder_8h.html"];
+  Node23 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node13 [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 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/Support/RecyclingAllocator.h",height=0.2,width=0.4,color="black",URL="$RecyclingAllocator_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Support/Recycler.h",height=0.2,width=0.4,color="black",URL="$Recycler_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node26 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node27 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node28 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/CodeGen/LiveInterval.h",height=0.2,width=0.4,color="black",URL="$LiveInterval_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/ADT/IntEqClasses.h",height=0.2,width=0.4,color="black",URL="$IntEqClasses_8h.html"];
+  Node31 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/CodeGen/SlotIndexes.h",height=0.2,width=0.4,color="black",URL="$SlotIndexes_8h.html"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/CodeGen/MachineInstrBundle.h",height=0.2,width=0.4,color="black",URL="$MachineInstrBundle_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node36 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node34 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node32 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/CodeGen/MachineFunction.h",height=0.2,width=0.4,color="red",URL="$MachineFunction_8h.html"];
+  Node40 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="red",URL="$MachineFunctionPass_8h.html"];
+  Node32 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node42 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node42 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CodeGen/RegisterClassInfo.h",height=0.2,width=0.4,color="black",URL="$RegisterClassInfo_8h.html"];
+  Node44 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/BitVector.h",height=0.2,width=0.4,color="black",URL="$BitVector_8h.html"];
+  Node45 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node46 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$TargetRegisterInfo_8h.html"];
+  Node47 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/MC/MCRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$MCRegisterInfo_8h.html"];
+  Node48 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="black",URL="$ValueTypes_8h.html"];
+  Node49 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node47 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocBase_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,163 @@
+<!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: RegAllocBase.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_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">RegAllocBase.h</div>  </div>
+</div>
+<div class="contents">
+<a href="RegAllocBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- RegAllocBase.h - basic regalloc interface and driver --*- 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 RegAllocBase class, which is the skeleton of a basic</span>
+<a name="l00011"></a>00011 <span class="comment">// register allocation algorithm and interface for extending it. It provides the</span>
+<a name="l00012"></a>00012 <span class="comment">// building blocks on which to construct other experimental allocators and test</span>
+<a name="l00013"></a>00013 <span class="comment">// the validity of two principles:</span>
+<a name="l00014"></a>00014 <span class="comment">//</span>
+<a name="l00015"></a>00015 <span class="comment">// - If virtual and physical register liveness is modeled using intervals, then</span>
+<a name="l00016"></a>00016 <span class="comment">// on-the-fly interference checking is cheap. Furthermore, interferences can be</span>
+<a name="l00017"></a>00017 <span class="comment">// lazily cached and reused.</span>
+<a name="l00018"></a>00018 <span class="comment">//</span>
+<a name="l00019"></a>00019 <span class="comment">// - Register allocation complexity, and generated code performance is</span>
+<a name="l00020"></a>00020 <span class="comment">// determined by the effectiveness of live range splitting rather than optimal</span>
+<a name="l00021"></a>00021 <span class="comment">// coloring.</span>
+<a name="l00022"></a>00022 <span class="comment">//</span>
+<a name="l00023"></a>00023 <span class="comment">// Following the first principle, interfering checking revolves around the</span>
+<a name="l00024"></a>00024 <span class="comment">// LiveIntervalUnion data structure.</span>
+<a name="l00025"></a>00025 <span class="comment">//</span>
+<a name="l00026"></a>00026 <span class="comment">// To fulfill the second principle, the basic allocator provides a driver for</span>
+<a name="l00027"></a>00027 <span class="comment">// incremental splitting. It essentially punts on the problem of register</span>
+<a name="l00028"></a>00028 <span class="comment">// coloring, instead driving the assignment of virtual to physical registers by</span>
+<a name="l00029"></a>00029 <span class="comment">// the cost of splitting. The basic allocator allows for heuristic reassignment</span>
+<a name="l00030"></a>00030 <span class="comment">// of registers, if a more sophisticated allocator chooses to do that.</span>
+<a name="l00031"></a>00031 <span class="comment">//</span>
+<a name="l00032"></a>00032 <span class="comment">// This framework provides a way to engineer the compile time vs. code</span>
+<a name="l00033"></a>00033 <span class="comment">// quality trade-off without relying on a particular theoretical solver.</span>
+<a name="l00034"></a>00034 <span class="comment">//</span>
+<a name="l00035"></a>00035 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef LLVM_CODEGEN_REGALLOCBASE</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CODEGEN_REGALLOCBASE</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="LiveIntervalUnion_8h.html">LiveIntervalUnion.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="RegisterClassInfo_8h.html">llvm/CodeGen/RegisterClassInfo.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="OwningPtr_8h.html">llvm/ADT/OwningPtr.h</a>"</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="keyword">namespace </span>llvm {
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="keyword">template</span><<span class="keyword">typename</span> T> <span class="keyword">class </span>SmallVectorImpl;
+<a name="l00047"></a>00047 <span class="keyword">class </span>TargetRegisterInfo;
+<a name="l00048"></a>00048 <span class="keyword">class </span>VirtRegMap;
+<a name="l00049"></a>00049 <span class="keyword">class </span>LiveIntervals;
+<a name="l00050"></a>00050 <span class="keyword">class </span>LiveRegMatrix;
+<a name="l00051"></a>00051 <span class="keyword">class </span>Spiller;
+<a name="l00052"></a>00052 <span class="comment"></span>
+<a name="l00053"></a>00053 <span class="comment">/// RegAllocBase provides the register allocation driver and interface that can</span>
+<a name="l00054"></a>00054 <span class="comment">/// be extended to add interesting heuristics.</span>
+<a name="l00055"></a>00055 <span class="comment">///</span>
+<a name="l00056"></a>00056 <span class="comment">/// Register allocators must override the selectOrSplit() method to implement</span>
+<a name="l00057"></a>00057 <span class="comment">/// live range splitting. They must also override enqueue/dequeue to provide an</span>
+<a name="l00058"></a>00058 <span class="comment">/// assignment order.</span>
+<a name="l00059"></a><a class="code" href="classllvm_1_1RegAllocBase.html">00059</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1RegAllocBase.html">RegAllocBase</a> {
+<a name="l00060"></a>00060 <span class="keyword">protected</span>:
+<a name="l00061"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a523cbc58f79fe5e9e95dc87f9cee8a36">00061</a>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#a523cbc58f79fe5e9e95dc87f9cee8a36">TRI</a>;
+<a name="l00062"></a><a class="code" href="classllvm_1_1RegAllocBase.html#aba058f684e1b6704e5b4a09f889ec18c">00062</a>   <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#aba058f684e1b6704e5b4a09f889ec18c">MRI</a>;
+<a name="l00063"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a96bb57a8041a40ded1ba0ef3b411a615">00063</a>   <a class="code" href="classllvm_1_1VirtRegMap.html">VirtRegMap</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#a96bb57a8041a40ded1ba0ef3b411a615">VRM</a>;
+<a name="l00064"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a575345318339b28557a6c8ea57708434">00064</a>   <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#a575345318339b28557a6c8ea57708434">LIS</a>;
+<a name="l00065"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a865e0247c5f922b8afaaaec481e4939c">00065</a>   <a class="code" href="classllvm_1_1LiveRegMatrix.html">LiveRegMatrix</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#a865e0247c5f922b8afaaaec481e4939c">Matrix</a>;
+<a name="l00066"></a><a class="code" href="classllvm_1_1RegAllocBase.html#aa6330bc662bf646d769c2a0771282eaf">00066</a>   <a class="code" href="classllvm_1_1RegisterClassInfo.html">RegisterClassInfo</a> <a class="code" href="classllvm_1_1RegAllocBase.html#aa6330bc662bf646d769c2a0771282eaf">RegClassInfo</a>;
+<a name="l00067"></a>00067 
+<a name="l00068"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a94359477cb16f1d95287e9486772e661">00068</a>   <a class="code" href="classllvm_1_1RegAllocBase.html#a94359477cb16f1d95287e9486772e661">RegAllocBase</a>(): <a class="code" href="classllvm_1_1RegAllocBase.html#a523cbc58f79fe5e9e95dc87f9cee8a36">TRI</a>(0), <a class="code" href="classllvm_1_1RegAllocBase.html#aba058f684e1b6704e5b4a09f889ec18c">MRI</a>(0), <a class="code" href="classllvm_1_1RegAllocBase.html#a96bb57a8041a40ded1ba0ef3b411a615">VRM</a>(0), <a class="code" href="classllvm_1_1RegAllocBase.html#a575345318339b28557a6c8ea57708434">LIS</a>(0), <a class="code" href="classllvm_1_1RegAllocBase.html#a865e0247c5f922b8afaaaec481e4939c">Matrix</a>(0) {}
+<a name="l00069"></a>00069 
+<a name="l00070"></a><a class="code" href="classllvm_1_1RegAllocBase.html#adf3b477e0a9b335c54c25af06dd322b6">00070</a>   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1RegAllocBase.html#adf3b477e0a9b335c54c25af06dd322b6">~RegAllocBase</a>() {}
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072   <span class="comment">// A RegAlloc pass should call this before allocatePhysRegs.</span>
+<a name="l00073"></a>00073   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegAllocBase.html#a2e9547b9bc56b02aad18e54488c8059b">init</a>(<a class="code" href="classllvm_1_1VirtRegMap.html">VirtRegMap</a> &vrm, <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> &lis, <a class="code" href="classllvm_1_1LiveRegMatrix.html">LiveRegMatrix</a> &mat);
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075   <span class="comment">// The top-level driver. The output is a VirtRegMap that us updated with</span>
+<a name="l00076"></a>00076   <span class="comment">// physical register assignments.</span>
+<a name="l00077"></a>00077   <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegAllocBase.html#ac35fef2aafb20ef4b079d0819394e87d">allocatePhysRegs</a>();
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079   <span class="comment">// Get a temporary reference to a Spiller instance.</span>
+<a name="l00080"></a>00080   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1Spiller.html">Spiller</a> &<a class="code" href="classllvm_1_1RegAllocBase.html#a3c1c92a01b8af995029b8e9621ce0812">spiller</a>() = 0;
+<a name="l00081"></a>00081 <span class="comment"></span>
+<a name="l00082"></a>00082 <span class="comment">  /// enqueue - Add VirtReg to the priority queue of unassigned registers.</span>
+<a name="l00083"></a>00083 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegAllocBase.html#aec3ec02bfeff094f224e672b5d5e0a59" title="enqueue - Add VirtReg to the priority queue of unassigned registers.">enqueue</a>(<a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> *<a class="code" href="LoopInfoImpl_8h.html#ab7b7f3fe4279386eae18cf924053d077">LI</a>) = 0;
+<a name="l00084"></a>00084 <span class="comment"></span>
+<a name="l00085"></a>00085 <span class="comment">  /// dequeue - Return the next unassigned register, or NULL.</span>
+<a name="l00086"></a>00086 <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> *<a class="code" href="classllvm_1_1RegAllocBase.html#a6ae7669e3cbff6709e9f06a7d34b0fc9" title="dequeue - Return the next unassigned register, or NULL.">dequeue</a>() = 0;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088   <span class="comment">// A RegAlloc pass should override this to provide the allocation heuristics.</span>
+<a name="l00089"></a>00089   <span class="comment">// Each call must guarantee forward progess by returning an available PhysReg</span>
+<a name="l00090"></a>00090   <span class="comment">// or new set of split live virtual registers. It is up to the splitter to</span>
+<a name="l00091"></a>00091   <span class="comment">// converge quickly toward fully spilled live ranges.</span>
+<a name="l00092"></a>00092   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RegAllocBase.html#af73e4f381752a30a03dd40610e281661">selectOrSplit</a>(<a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> &VirtReg,
+<a name="l00093"></a>00093                                  <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<LiveInterval*></a> &splitLVRs) = 0;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095   <span class="comment">// Use this group name for NamedRegionTimer.</span>
+<a name="l00096"></a><a class="code" href="classllvm_1_1RegAllocBase.html#a77a7868039b847c7bcff340d0c772da7">00096</a>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classllvm_1_1RegAllocBase.html#a77a7868039b847c7bcff340d0c772da7">TimerGroupName</a>;
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="keyword">public</span>:<span class="comment"></span>
+<a name="l00099"></a>00099 <span class="comment">  /// VerifyEnabled - True when -verify-regalloc is given.</span>
+<a name="l00100"></a><a class="code" href="classllvm_1_1RegAllocBase.html#afbeaddcf447db994c372dfff591105ac">00100</a> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RegAllocBase.html#afbeaddcf447db994c372dfff591105ac" title="VerifyEnabled - True when -verify-regalloc is given.">VerifyEnabled</a>;
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102 <span class="keyword">private</span>:
+<a name="l00103"></a>00103   <span class="keywordtype">void</span> seedLiveRegs();
+<a name="l00104"></a>00104 };
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 } <span class="comment">// end namespace llvm</span>
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 <span class="preprocessor">#endif // !defined(LLVM_CODEGEN_REGALLOCBASE)</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:04 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/RegAllocBasic_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocBasic_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocBasic_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocBasic_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,128 @@
+<!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: RegAllocBasic.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="#define-members">Defines</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">RegAllocBasic.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="AllocationOrder_8h_source.html">AllocationOrder.h</a>"</code><br/>
+<code>#include "<a class="el" href="RegAllocBase_8h_source.html">RegAllocBase.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveDebugVariables_8h_source.html">LiveDebugVariables.h</a>"</code><br/>
+<code>#include "<a class="el" href="Spiller_8h_source.html">Spiller.h</a>"</code><br/>
+<code>#include "<a class="el" href="VirtRegMap_8h_source.html">VirtRegMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveRegMatrix_8h_source.html">LiveRegMatrix.h</a>"</code><br/>
+<code>#include "<a class="el" href="AliasAnalysis_8h_source.html">llvm/Analysis/AliasAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="PassAnalysisSupport_8h_source.html">llvm/PassAnalysisSupport.h</a>"</code><br/>
+<code>#include "<a class="el" href="CalcSpillWeights_8h_source.html">llvm/CodeGen/CalcSpillWeights.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveIntervalAnalysis_8h_source.html">llvm/CodeGen/LiveIntervalAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveRangeEdit_8h_source.html">llvm/CodeGen/LiveRangeEdit.h</a>"</code><br/>
+<code>#include "<a class="el" href="LiveStackAnalysis_8h_source.html">llvm/CodeGen/LiveStackAnalysis.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunctionPass_8h_source.html">llvm/CodeGen/MachineFunctionPass.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineLoopInfo_8h_source.html">llvm/CodeGen/MachineLoopInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.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="RegAllocRegistry_8h_source.html">llvm/CodeGen/RegAllocRegistry.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetOptions_8h_source.html">llvm/Target/TargetOptions.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.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="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include <cstdlib></code><br/>
+<code>#include <queue></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RegAllocBasic.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="RegAllocBasic_8cpp__incl.png" border="0" usemap="#RegAllocBasic_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="RegAllocBasic_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="RegAllocBasic_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "regalloc"</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_1RegisterRegAlloc.html">RegisterRegAlloc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="RegAllocBasic_8cpp.html#a624e9130bdf616fd5f2e575da9dd48c4">basicRegAlloc</a> ("basic","basic register allocator", createBasicRegisterAllocator)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="RegAllocBasic.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "regalloc"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="RegAllocBasic_8cpp_source.html#l00015">15</a> of file <a class="el" href="RegAllocBasic_8cpp_source.html">RegAllocBasic.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a624e9130bdf616fd5f2e575da9dd48c4"></a><!-- doxytag: member="RegAllocBasic.cpp::basicRegAlloc" ref="a624e9130bdf616fd5f2e575da9dd48c4" args="("basic","basic register allocator", createBasicRegisterAllocator)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1RegisterRegAlloc.html">RegisterRegAlloc</a> <a class="el" href="RegAllocBasic_8cpp.html#a624e9130bdf616fd5f2e575da9dd48c4">basicRegAlloc</a>("basic","basic register allocator", createBasicRegisterAllocator)<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RegAllocFast_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocFast_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocFast_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocFast_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,214 @@
+<!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: RegAllocFast.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="#define-members">Defines</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">RegAllocFast.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="BasicBlock_8h_source.html">llvm/BasicBlock.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineFunctionPass_8h_source.html">llvm/CodeGen/MachineFunctionPass.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstrBuilder_8h_source.html">llvm/CodeGen/MachineInstrBuilder.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="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.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="RegAllocRegistry_8h_source.html">llvm/CodeGen/RegAllocRegistry.h</a>"</code><br/>
+<code>#include "<a class="el" href="RegisterClassInfo_8h_source.html">llvm/CodeGen/RegisterClassInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetInstrInfo_8h_source.html">llvm/Target/TargetInstrInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.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="raw__ostream_8h_source.html">llvm/Support/raw_ostream.h</a>"</code><br/>
+<code>#include "<a class="el" href="DenseMap_8h_source.html">llvm/ADT/DenseMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="IndexedMap_8h_source.html">llvm/ADT/IndexedMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallSet_8h_source.html">llvm/ADT/SmallSet.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallVector_8h_source.html">llvm/ADT/SmallVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="SparseSet_8h_source.html">llvm/ADT/SparseSet.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="STLExtras_8h_source.html">llvm/ADT/STLExtras.h</a>"</code><br/>
+<code>#include <algorithm></code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RegAllocFast.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="RegAllocFast_8cpp__incl.png" border="0" usemap="#RegAllocFast_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="RegAllocFast_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="RegAllocFast_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "regalloc"</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="RegAllocFast_8cpp.html#a974e48001b9c08bd620a6ac1ad00b431">STATISTIC</a> (NumStores,"Number of stores added")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="RegAllocFast_8cpp.html#aa3b01752afe96f24df45392b378704db">STATISTIC</a> (NumLoads,"Number of loads added")</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="RegAllocFast_8cpp.html#a128cb40e6f6580e75b21a49085706e00">STATISTIC</a> (NumCopies,"Number of copies coalesced")</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_1RegisterRegAlloc.html">RegisterRegAlloc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="RegAllocFast_8cpp.html#ad7c0ff18c956997ac7c4cb1f82e802e2">fastRegAlloc</a> ("fast","fast register allocator", createFastRegisterAllocator)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="RegAllocFast.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "regalloc"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="RegAllocFast_8cpp_source.html#l00015">15</a> of file <a class="el" href="RegAllocFast_8cpp_source.html">RegAllocFast.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a974e48001b9c08bd620a6ac1ad00b431"></a><!-- doxytag: member="RegAllocFast.cpp::STATISTIC" ref="a974e48001b9c08bd620a6ac1ad00b431" args="(NumStores,"Number of stores added")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumStores </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of stores added" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa3b01752afe96f24df45392b378704db"></a><!-- doxytag: member="RegAllocFast.cpp::STATISTIC" ref="aa3b01752afe96f24df45392b378704db" args="(NumLoads,"Number of loads added")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumLoads </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of loads added" </td>
+          <td class="paramname"> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a128cb40e6f6580e75b21a49085706e00"></a><!-- doxytag: member="RegAllocFast.cpp::STATISTIC" ref="a128cb40e6f6580e75b21a49085706e00" args="(NumCopies,"Number of copies coalesced")" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">STATISTIC </td>
+          <td>(</td>
+          <td class="paramtype">NumCopies </td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">"Number of copies coalesced" </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="ad7c0ff18c956997ac7c4cb1f82e802e2"></a><!-- doxytag: member="RegAllocFast.cpp::fastRegAlloc" ref="ad7c0ff18c956997ac7c4cb1f82e802e2" args="("fast","fast register allocator", createFastRegisterAllocator)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classllvm_1_1RegisterRegAlloc.html">RegisterRegAlloc</a> <a class="el" href="RegAllocFast_8cpp.html#ad7c0ff18c956997ac7c4cb1f82e802e2">fastRegAlloc</a>("fast","fast register allocator", createFastRegisterAllocator)<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RegAllocGreedy_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocGreedy_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocGreedy_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocGreedy_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+a3fa84f12884ab02b74e639ff84d37a6
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,693 @@
+<!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: RegAllocPBQP.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">RegAllocPBQP.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="RegAllocPBQP_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===------ RegAllocPBQP.cpp ---- PBQP Register Allocator -------*- 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 a Partitioned Boolean Quadratic Programming (PBQP) based</span>
+<a name="l00011"></a>00011 <span class="comment">// register allocator for LLVM. This allocator works by constructing a PBQP</span>
+<a name="l00012"></a>00012 <span class="comment">// problem representing the register allocation problem under consideration,</span>
+<a name="l00013"></a>00013 <span class="comment">// solving this using a PBQP solver, and mapping the solution back to a</span>
+<a name="l00014"></a>00014 <span class="comment">// register assignment. If any variables are selected for spilling then spill</span>
+<a name="l00015"></a>00015 <span class="comment">// code is inserted and the process repeated.</span>
+<a name="l00016"></a>00016 <span class="comment">//</span>
+<a name="l00017"></a>00017 <span class="comment">// The PBQP solver (pbqp.c) provided for this allocator uses a heuristic tuned</span>
+<a name="l00018"></a>00018 <span class="comment">// for register allocation. For more information on PBQP for register</span>
+<a name="l00019"></a>00019 <span class="comment">// allocation, see the following papers:</span>
+<a name="l00020"></a>00020 <span class="comment">//</span>
+<a name="l00021"></a>00021 <span class="comment">//   (1) Hames, L. and Scholz, B. 2006. Nearly optimal register allocation with</span>
+<a name="l00022"></a>00022 <span class="comment">//   PBQP. In Proceedings of the 7th Joint Modular Languages Conference</span>
+<a name="l00023"></a>00023 <span class="comment">//   (JMLC'06). LNCS, vol. 4228. Springer, New York, NY, USA. 346-361.</span>
+<a name="l00024"></a>00024 <span class="comment">//</span>
+<a name="l00025"></a>00025 <span class="comment">//   (2) Scholz, B., Eckstein, E. 2002. Register allocation for irregular</span>
+<a name="l00026"></a>00026 <span class="comment">//   architectures. In Proceedings of the Joint Conference on Languages,</span>
+<a name="l00027"></a>00027 <span class="comment">//   Compilers and Tools for Embedded Systems (LCTES'02), ACM Press, New York,</span>
+<a name="l00028"></a>00028 <span class="comment">//   NY, USA, 139-148.</span>
+<a name="l00029"></a>00029 <span class="comment">//</span>
+<a name="l00030"></a>00030 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a><a class="code" href="RegAllocPBQP_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00032</a> <span class="preprocessor">#define DEBUG_TYPE "regalloc"</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="Spiller_8h.html">Spiller.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="VirtRegMap_8h.html">VirtRegMap.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="RegisterCoalescer_8h.html">RegisterCoalescer.h</a>"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="Module_8h.html">llvm/Module.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="AliasAnalysis_8h.html">llvm/Analysis/AliasAnalysis.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="CalcSpillWeights_8h.html">llvm/CodeGen/CalcSpillWeights.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="LiveIntervalAnalysis_8h.html">llvm/CodeGen/LiveIntervalAnalysis.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="LiveRangeEdit_8h.html">llvm/CodeGen/LiveRangeEdit.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="LiveStackAnalysis_8h.html">llvm/CodeGen/LiveStackAnalysis.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="RegAllocPBQP_8h.html">llvm/CodeGen/RegAllocPBQP.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="MachineDominators_8h.html">llvm/CodeGen/MachineDominators.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="MachineFunctionPass_8h.html">llvm/CodeGen/MachineFunctionPass.h</a>"</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="MachineLoopInfo_8h.html">llvm/CodeGen/MachineLoopInfo.h</a>"</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="MachineRegisterInfo_8h.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="HeuristicSolver_8h.html">llvm/CodeGen/PBQP/HeuristicSolver.h</a>"</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="Graph_8h.html">llvm/CodeGen/PBQP/Graph.h</a>"</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="Briggs_8h.html">llvm/CodeGen/PBQP/Heuristics/Briggs.h</a>"</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="RegAllocRegistry_8h.html">llvm/CodeGen/RegAllocRegistry.h</a>"</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include "<a class="code" href="TargetInstrInfo_8h.html">llvm/Target/TargetInstrInfo.h</a>"</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include "<a class="code" href="Target_2TargetMachine_8h.html">llvm/Target/TargetMachine.h</a>"</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include <limits></span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include <memory></span>
+<a name="l00058"></a>00058 <span class="preprocessor">#include <set></span>
+<a name="l00059"></a>00059 <span class="preprocessor">#include <sstream></span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include <vector></span>
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 <span class="keyword">using namespace </span>llvm;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="keyword">static</span> <a class="code" href="classllvm_1_1RegisterRegAlloc.html">RegisterRegAlloc</a>
+<a name="l00065"></a>00065 <a class="code" href="RegAllocPBQP_8cpp.html#acf74f162f54a8481d974416c3ef4caba">registerPBQPRepAlloc</a>(<span class="stringliteral">"pbqp"</span>, <span class="stringliteral">"PBQP register allocator"</span>,
+<a name="l00066"></a>00066                        <a class="code" href="namespacellvm.html#a9d7aa3c609702698164de3c77384bb10">createDefaultPBQPRegisterAllocator</a>);
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068 <span class="keyword">static</span> <a class="code" href="classllvm_1_1cl_1_1opt.html">cl::opt<bool></a>
+<a name="l00069"></a>00069 <a class="code" href="RegAllocPBQP_8cpp.html#a6e2bd69e93b33a3646cc86239e4ca575">pbqpCoalescing</a>(<span class="stringliteral">"pbqp-coalescing"</span>,
+<a name="l00070"></a>00070                 <a class="code" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>(<span class="stringliteral">"Attempt coalescing during PBQP register allocation."</span>),
+<a name="l00071"></a>00071                 <a class="code" href="namespacellvm_1_1cl.html#a10a041239ae1870cfcc064bfaa79fb65">cl::init</a>(<span class="keyword">false</span>), <a class="code" href="namespacellvm_1_1cl.html#a68075925a54790e71ca790e1d4f21a40a263ac008d8d31f13ce460395fc4cf7e6">cl::Hidden</a>);
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="classllvm_1_1cl_1_1opt.html">cl::opt<bool></a>
+<a name="l00075"></a>00075 <a class="code" href="RegAllocPBQP_8cpp.html#a764c1c06c3d03a19a94dfecb527d077e">pbqpDumpGraphs</a>(<span class="stringliteral">"pbqp-dump-graphs"</span>,
+<a name="l00076"></a>00076                <a class="code" href="structllvm_1_1cl_1_1desc.html">cl::desc</a>(<span class="stringliteral">"Dump graphs for each function/round in the compilation unit."</span>),
+<a name="l00077"></a>00077                <a class="code" href="namespacellvm_1_1cl.html#a10a041239ae1870cfcc064bfaa79fb65">cl::init</a>(<span class="keyword">false</span>), <a class="code" href="namespacellvm_1_1cl.html#a68075925a54790e71ca790e1d4f21a40a263ac008d8d31f13ce460395fc4cf7e6">cl::Hidden</a>);
+<a name="l00078"></a>00078 <span class="preprocessor">#endif</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span>
+<a name="l00080"></a>00080 <span class="keyword">namespace </span>{
+<a name="l00081"></a>00081 <span class="comment"></span>
+<a name="l00082"></a>00082 <span class="comment">///</span>
+<a name="l00083"></a>00083 <span class="comment">/// PBQP based allocators solve the register allocation problem by mapping</span>
+<a name="l00084"></a>00084 <span class="comment">/// register allocation problems to Partitioned Boolean Quadratic</span>
+<a name="l00085"></a>00085 <span class="comment">/// Programming problems.</span>
+<a name="l00086"></a>00086 <span class="comment"></span><span class="keyword">class </span>RegAllocPBQP : <span class="keyword">public</span> <a class="code" href="classllvm_1_1MachineFunctionPass.html">MachineFunctionPass</a> {
+<a name="l00087"></a>00087 <span class="keyword">public</span>:
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089   <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="l00090"></a>00090 <span class="comment"></span>
+<a name="l00091"></a>00091 <span class="comment">  /// Construct a PBQP register allocator.</span>
+<a name="l00092"></a>00092 <span class="comment"></span>  RegAllocPBQP(std::auto_ptr<PBQPBuilder> b, <span class="keywordtype">char</span> *cPassID=0)
+<a name="l00093"></a>00093       : <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>), builder(b), customPassID(cPassID) {
+<a name="l00094"></a>00094     <a class="code" href="namespacellvm.html#aa68a1c0afe039658609beebc96121f39">initializeSlotIndexesPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00095"></a>00095     <a class="code" href="namespacellvm.html#aea2ef5e4ec532aa42606902e9001f712">initializeLiveIntervalsPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00096"></a>00096     <a class="code" href="namespacellvm.html#a00060f1af12b2970e8b871a2b7fc6f27">initializeCalculateSpillWeightsPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00097"></a>00097     <a class="code" href="namespacellvm.html#a7aeb11cd960ff18ae0b12e678dfcae57">initializeLiveStacksPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00098"></a>00098     <a class="code" href="namespacellvm.html#ac6ce5e3d2a1edf66c1beb80be260ea0b">initializeMachineLoopInfoPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00099"></a>00099     <a class="code" href="namespacellvm.html#a49962b01687c86f2c8bcf37a9037ff85">initializeVirtRegMapPass</a>(*<a class="code" href="classllvm_1_1PassRegistry.html#a05a729900b76c89e808c6c3094921b2f">PassRegistry::getPassRegistry</a>());
+<a name="l00100"></a>00100   }
+<a name="l00101"></a>00101 <span class="comment"></span>
+<a name="l00102"></a>00102 <span class="comment">  /// Return the pass name.</span>
+<a name="l00103"></a>00103 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getPassName()<span class="keyword"> const </span>{
+<a name="l00104"></a>00104     <span class="keywordflow">return</span> <span class="stringliteral">"PBQP Register Allocator"</span>;
+<a name="l00105"></a>00105   }
+<a name="l00106"></a>00106 <span class="comment"></span>
+<a name="l00107"></a>00107 <span class="comment">  /// PBQP analysis usage.</span>
+<a name="l00108"></a>00108 <span class="comment"></span>  <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="l00109"></a>00109 <span class="comment"></span>
+<a name="l00110"></a>00110 <span class="comment">  /// Perform register allocation</span>
+<a name="l00111"></a>00111 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF);
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113 <span class="keyword">private</span>:
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115   <span class="keyword">typedef</span> std::map<const LiveInterval*, unsigned> LI2NodeMap;
+<a name="l00116"></a>00116   <span class="keyword">typedef</span> std::vector<const LiveInterval*> Node2LIMap;
+<a name="l00117"></a>00117   <span class="keyword">typedef</span> std::vector<unsigned> AllowedSet;
+<a name="l00118"></a>00118   <span class="keyword">typedef</span> std::vector<AllowedSet> AllowedSetMap;
+<a name="l00119"></a>00119   <span class="keyword">typedef</span> std::pair<unsigned, unsigned> RegPair;
+<a name="l00120"></a>00120   <span class="keyword">typedef</span> std::map<RegPair, PBQP::PBQPNum> CoalesceMap;
+<a name="l00121"></a>00121   <span class="keyword">typedef</span> std::set<unsigned> RegSet;
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124   std::auto_ptr<PBQPBuilder> builder;
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126   <span class="keywordtype">char</span> *customPassID;
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128   <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> *mf;
+<a name="l00129"></a>00129   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetMachine.html">TargetMachine</a> *tm;
+<a name="l00130"></a>00130   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *tri;
+<a name="l00131"></a>00131   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *tii;
+<a name="l00132"></a>00132   <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a> *loopInfo;
+<a name="l00133"></a>00133   <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *mri;
+<a name="l00134"></a>00134 
+<a name="l00135"></a>00135   std::auto_ptr<Spiller> spiller;
+<a name="l00136"></a>00136   <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> *lis;
+<a name="l00137"></a>00137   <a class="code" href="classllvm_1_1LiveStacks.html">LiveStacks</a> *lss;
+<a name="l00138"></a>00138   <a class="code" href="classllvm_1_1VirtRegMap.html">VirtRegMap</a> *vrm;
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140   RegSet vregsToAlloc, emptyIntervalVRegs;
+<a name="l00141"></a>00141 <span class="comment"></span>
+<a name="l00142"></a>00142 <span class="comment">  /// \brief Finds the initial set of vreg intervals to allocate.</span>
+<a name="l00143"></a>00143 <span class="comment"></span>  <span class="keywordtype">void</span> findVRegIntervalsToAlloc();
+<a name="l00144"></a>00144 <span class="comment"></span>
+<a name="l00145"></a>00145 <span class="comment">  /// \brief Given a solved PBQP problem maps this solution back to a register</span>
+<a name="l00146"></a>00146 <span class="comment">  /// assignment.</span>
+<a name="l00147"></a>00147 <span class="comment"></span>  <span class="keywordtype">bool</span> mapPBQPToRegAlloc(<span class="keyword">const</span> <a class="code" href="classllvm_1_1PBQPRAProblem.html">PBQPRAProblem</a> &problem,
+<a name="l00148"></a>00148                          <span class="keyword">const</span> <a class="code" href="classPBQP_1_1Solution.html" title="Represents a solution to a PBQP problem.">PBQP::Solution</a> &solution);
+<a name="l00149"></a>00149 <span class="comment"></span>
+<a name="l00150"></a>00150 <span class="comment">  /// \brief Postprocessing before final spilling. Sets basic block "live in"</span>
+<a name="l00151"></a>00151 <span class="comment">  /// variables.</span>
+<a name="l00152"></a>00152 <span class="comment"></span>  <span class="keywordtype">void</span> finalizeAlloc() <span class="keyword">const</span>;
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 };
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156 <span class="keywordtype">char</span> <a class="code" href="namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974" title="LLVM Calling Convention Representation.">RegAllocPBQP::ID</a> = 0;
+<a name="l00157"></a>00157 
+<a name="l00158"></a>00158 } <span class="comment">// End anonymous namespace.</span>
+<a name="l00159"></a>00159 
+<a name="l00160"></a><a class="code" href="classllvm_1_1PBQPRAProblem.html#aad99826f434548c24581b2c6a62f5f6c">00160</a> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1PBQPRAProblem.html#aad99826f434548c24581b2c6a62f5f6c" title="Get the virtual register corresponding to the given PBQP node.">PBQPRAProblem::getVRegForNode</a>(<a class="code" href="classPBQP_1_1Graph.html#a9d61016d60da08fffe0fac7bfe080651">PBQP::Graph::ConstNodeItr</a> node)<span class="keyword"> const </span>{
+<a name="l00161"></a>00161   Node2VReg::const_iterator vregItr = node2VReg.find(node);
+<a name="l00162"></a>00162   assert(vregItr != node2VReg.end() && <span class="stringliteral">"No vreg for node."</span>);
+<a name="l00163"></a>00163   <span class="keywordflow">return</span> vregItr->second;
+<a name="l00164"></a>00164 }
+<a name="l00165"></a>00165 
+<a name="l00166"></a><a class="code" href="classllvm_1_1PBQPRAProblem.html#a1353678119f997c5ddcf897359d5b8d2">00166</a> <a class="code" href="classPBQP_1_1Graph.html#a85c25c82dca1c222f1a10729e9e452f1">PBQP::Graph::NodeItr</a> <a class="code" href="classllvm_1_1PBQPRAProblem.html#a1353678119f997c5ddcf897359d5b8d2" title="Get the PBQP node corresponding to the given virtual register.">PBQPRAProblem::getNodeForVReg</a>(<span class="keywordtype">unsigned</span> vreg)<span class="keyword"> const </span>{
+<a name="l00167"></a>00167   <a class="code" href="classllvm_1_1DenseMapIterator.html">VReg2Node::const_iterator</a> nodeItr = vreg2Node.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(vreg);
+<a name="l00168"></a>00168   assert(nodeItr != vreg2Node.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>() && <span class="stringliteral">"No node for vreg."</span>);
+<a name="l00169"></a>00169   <span class="keywordflow">return</span> nodeItr->second;
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171 }
+<a name="l00172"></a>00172 
+<a name="l00173"></a>00173 <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a>&
+<a name="l00174"></a><a class="code" href="classllvm_1_1PBQPRAProblem.html#a13175a6042491d068a9ec3b7f302eaf5">00174</a>   <a class="code" href="classllvm_1_1PBQPRAProblem.html#a13175a6042491d068a9ec3b7f302eaf5" title="Returns the allowed set for the given virtual register.">PBQPRAProblem::getAllowedSet</a>(<span class="keywordtype">unsigned</span> vreg)<span class="keyword"> const </span>{
+<a name="l00175"></a>00175   <a class="code" href="classllvm_1_1DenseMapIterator.html">AllowedSetMap::const_iterator</a> allowedSetItr = allowedSets.<a class="code" href="classllvm_1_1DenseMapBase.html#a21cf94357e53cd1069aba475266fdb63">find</a>(vreg);
+<a name="l00176"></a>00176   assert(allowedSetItr != allowedSets.<a class="code" href="classllvm_1_1DenseMapBase.html#a321e37d79af8b4287f8a1dcf9aff9c01">end</a>() && <span class="stringliteral">"No pregs for vreg."</span>);
+<a name="l00177"></a>00177   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">AllowedSet</a> &allowedSet = allowedSetItr->second;
+<a name="l00178"></a>00178   <span class="keywordflow">return</span> allowedSet;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a><a class="code" href="classllvm_1_1PBQPRAProblem.html#ad7ee099b5d4aff936bf698060a9d4c6d">00181</a> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1PBQPRAProblem.html#ad7ee099b5d4aff936bf698060a9d4c6d" title="Get PReg for option.">PBQPRAProblem::getPRegForOption</a>(<span class="keywordtype">unsigned</span> vreg, <span class="keywordtype">unsigned</span> option)<span class="keyword"> const </span>{
+<a name="l00182"></a>00182   assert(<a class="code" href="classllvm_1_1PBQPRAProblem.html#ace90cbc433958481ac27123d0bd743db">isPRegOption</a>(vreg, option) && <span class="stringliteral">"Not a preg option."</span>);
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">AllowedSet</a>& allowedSet = <a class="code" href="classllvm_1_1PBQPRAProblem.html#a13175a6042491d068a9ec3b7f302eaf5" title="Returns the allowed set for the given virtual register.">getAllowedSet</a>(vreg);
+<a name="l00185"></a>00185   assert(option <= allowedSet.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() && <span class="stringliteral">"Option outside allowed set."</span>);
+<a name="l00186"></a>00186   <span class="keywordflow">return</span> allowedSet[option - 1];
+<a name="l00187"></a>00187 }
+<a name="l00188"></a>00188 
+<a name="l00189"></a><a class="code" href="classllvm_1_1PBQPBuilder.html#a6f270081d4f021962fc55f5a3487df0f">00189</a> std::auto_ptr<PBQPRAProblem> <a class="code" href="classllvm_1_1PBQPBuilder.html#a6f270081d4f021962fc55f5a3487df0f">PBQPBuilder::build</a>(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> *mf,
+<a name="l00190"></a>00190                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> *lis,
+<a name="l00191"></a>00191                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a> *loopInfo,
+<a name="l00192"></a>00192                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1PBQPBuilder.html#aec995b59d665b4035f6af53063102ea6">RegSet</a> &vregs) {
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194   <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> *LIS = <span class="keyword">const_cast<</span><a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a>*<span class="keyword">></span>(lis);
+<a name="l00195"></a>00195   <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a> *mri = &mf-><a class="code" href="classllvm_1_1MachineFunction.html#ab4a6ca428289b667dd691a00e9f7e334">getRegInfo</a>();
+<a name="l00196"></a>00196   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *tri = mf-><a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>().<a class="code" href="classllvm_1_1TargetMachine.html#a70b47eca6a99c87b81f4c1b1455dc090">getRegisterInfo</a>();
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198   std::auto_ptr<PBQPRAProblem> p(<span class="keyword">new</span> <a class="code" href="classllvm_1_1PBQPRAProblem.html">PBQPRAProblem</a>());
+<a name="l00199"></a>00199   <a class="code" href="classPBQP_1_1Graph.html">PBQP::Graph</a> &g = p->getGraph();
+<a name="l00200"></a>00200   <a class="code" href="classllvm_1_1PBQPBuilder.html#aec995b59d665b4035f6af53063102ea6">RegSet</a> pregs;
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202   <span class="comment">// Collect the set of preg intervals, record that they're used in the MF.</span>
+<a name="l00203"></a>00203   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> = 1, e = tri-><a class="code" href="classllvm_1_1MCRegisterInfo.html#a56e9a625f708912164f16c178ceb97d7">getNumRegs</a>(); <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> != e; ++<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>) {
+<a name="l00204"></a>00204     <span class="keywordflow">if</span> (mri-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#afef4b73d23e882692f002b5e85f1edcb">def_empty</a>(<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>))
+<a name="l00205"></a>00205       <span class="keywordflow">continue</span>;
+<a name="l00206"></a>00206     pregs.insert(<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>);
+<a name="l00207"></a>00207     mri-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a8102e337f77143271ef8ccd4ea2546b3">setPhysRegUsed</a>(<a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>);
+<a name="l00208"></a>00208   }
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210   <span class="comment">// Iterate over vregs.</span>
+<a name="l00211"></a>00211   <span class="keywordflow">for</span> (RegSet::const_iterator vregItr = vregs.begin(), vregEnd = vregs.end();
+<a name="l00212"></a>00212        vregItr != vregEnd; ++vregItr) {
+<a name="l00213"></a>00213     <span class="keywordtype">unsigned</span> vreg = *vregItr;
+<a name="l00214"></a>00214     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *trc = mri-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#ab3904d3601dbe52865d5f2e33a06d80d">getRegClass</a>(vreg);
+<a name="l00215"></a>00215     <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> *vregLI = &LIS-><a class="code" href="classllvm_1_1LiveIntervals.html#a70cf6a51b043dc9f8ae683c266d5d9c4">getInterval</a>(vreg);
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217     <span class="comment">// Record any overlaps with regmask operands.</span>
+<a name="l00218"></a>00218     <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> regMaskOverlaps;
+<a name="l00219"></a>00219     LIS-><a class="code" href="classllvm_1_1LiveIntervals.html#a044210fc5bff20b7f2a6814b877891ca">checkRegMaskInterference</a>(*vregLI, regMaskOverlaps);
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221     <span class="comment">// Compute an initial allowed set for the current vreg.</span>
+<a name="l00222"></a>00222     <span class="keyword">typedef</span> std::vector<unsigned> VRAllowed;
+<a name="l00223"></a>00223     VRAllowed vrAllowed;
+<a name="l00224"></a>00224     <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<uint16_t></a> rawOrder = trc-><a class="code" href="classllvm_1_1TargetRegisterClass.html#a07f8d61b3e1ada33cf4857c5dc3baa31">getRawAllocationOrder</a>(*mf);
+<a name="l00225"></a>00225     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != rawOrder.<a class="code" href="classllvm_1_1ArrayRef.html#a76878250107ee24ef7339870bdda4bcf" title="size - Get the array size.">size</a>(); ++i) {
+<a name="l00226"></a>00226       <span class="keywordtype">unsigned</span> preg = rawOrder[i];
+<a name="l00227"></a>00227       <span class="keywordflow">if</span> (mri-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a008f499ae277e4936b5b897ddb4bcb7e">isReserved</a>(preg))
+<a name="l00228"></a>00228         <span class="keywordflow">continue</span>;
+<a name="l00229"></a>00229 
+<a name="l00230"></a>00230       <span class="comment">// vregLI crosses a regmask operand that clobbers preg.</span>
+<a name="l00231"></a>00231       <span class="keywordflow">if</span> (!regMaskOverlaps.<a class="code" href="classllvm_1_1BitVector.html#ab98dc2f3e8a9cc96774d153f79527e9a" title="empty - Tests whether there are no bits in this bitvector.">empty</a>() && !regMaskOverlaps.<a class="code" href="classllvm_1_1BitVector.html#a20b6ba858cb2bb6d8d7fa553025c1f61">test</a>(preg))
+<a name="l00232"></a>00232         <span class="keywordflow">continue</span>;
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234       <span class="comment">// vregLI overlaps fixed regunit interference.</span>
+<a name="l00235"></a>00235       <span class="keywordtype">bool</span> Interference = <span class="keyword">false</span>;
+<a name="l00236"></a>00236       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MCRegUnitIterator.html">MCRegUnitIterator</a> Units(preg, tri); Units.<a class="code" href="classllvm_1_1MCRegisterInfo_1_1DiffListIterator.html#abccd358b92366e5284e7e674e86b241f" title="isValid - returns true if this iterator is not yet at the end.">isValid</a>(); ++Units) {
+<a name="l00237"></a>00237         <span class="keywordflow">if</span> (vregLI-><a class="code" href="classllvm_1_1LiveInterval.html#a211acb5e3b4b1169ab0d7ea8ef3f08a4">overlaps</a>(LIS-><a class="code" href="classllvm_1_1LiveIntervals.html#aa92af8f5e4caed62c97b566f498cd708">getRegUnit</a>(*Units))) {
+<a name="l00238"></a>00238           Interference = <span class="keyword">true</span>;
+<a name="l00239"></a>00239           <span class="keywordflow">break</span>;
+<a name="l00240"></a>00240         }
+<a name="l00241"></a>00241       }
+<a name="l00242"></a>00242       <span class="keywordflow">if</span> (Interference)
+<a name="l00243"></a>00243         <span class="keywordflow">continue</span>;
+<a name="l00244"></a>00244 
+<a name="l00245"></a>00245       <span class="comment">// preg is usable for this virtual register.</span>
+<a name="l00246"></a>00246       vrAllowed.push_back(preg);
+<a name="l00247"></a>00247     }
+<a name="l00248"></a>00248 
+<a name="l00249"></a>00249     <span class="comment">// Construct the node.</span>
+<a name="l00250"></a>00250     <a class="code" href="classPBQP_1_1Graph.html#a85c25c82dca1c222f1a10729e9e452f1">PBQP::Graph::NodeItr</a> node =
+<a name="l00251"></a>00251       g.<a class="code" href="classPBQP_1_1Graph.html#ace05068e66e382fd443812433c08407e" title="Add a node with the given costs.">addNode</a>(<a class="code" href="classPBQP_1_1Vector.html" title="PBQP Vector class.">PBQP::Vector</a>(vrAllowed.size() + 1, 0));
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253     <span class="comment">// Record the mapping and allowed set in the problem.</span>
+<a name="l00254"></a>00254     p->recordVReg(vreg, node, vrAllowed.begin(), vrAllowed.end());
+<a name="l00255"></a>00255 
+<a name="l00256"></a>00256     <a class="code" href="namespacePBQP.html#a48fb0d5e4b0039c500b48f4375da8bea">PBQP::PBQPNum</a> spillCost = (vregLI-><a class="code" href="classllvm_1_1LiveInterval.html#a99eec2c4ba894baca5b197e940b095f6">weight</a> != 0.0) ?
+<a name="l00257"></a>00257         vregLI-><a class="code" href="classllvm_1_1LiveInterval.html#a99eec2c4ba894baca5b197e940b095f6">weight</a> : std::numeric_limits<PBQP::PBQPNum>::min();
+<a name="l00258"></a>00258 
+<a name="l00259"></a>00259     addSpillCosts(g.<a class="code" href="classPBQP_1_1Graph.html#ab2253051ce27b80d58830d0029d340cf" title="Get a node's cost vector.">getNodeCosts</a>(node), spillCost);
+<a name="l00260"></a>00260   }
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262   <span class="keywordflow">for</span> (RegSet::const_iterator vr1Itr = vregs.begin(), vrEnd = vregs.end();
+<a name="l00263"></a>00263          vr1Itr != vrEnd; ++vr1Itr) {
+<a name="l00264"></a>00264     <span class="keywordtype">unsigned</span> vr1 = *vr1Itr;
+<a name="l00265"></a>00265     <span class="keyword">const</span> <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> &l1 = lis-><a class="code" href="classllvm_1_1LiveIntervals.html#a70cf6a51b043dc9f8ae683c266d5d9c4">getInterval</a>(vr1);
+<a name="l00266"></a>00266     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr1Allowed = p->getAllowedSet(vr1);
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268     <span class="keywordflow">for</span> (RegSet::const_iterator vr2Itr = <a class="code" href="namespacellvm.html#aa1704159f75e6eacd595962ea6d93ffe">llvm::next</a>(vr1Itr);
+<a name="l00269"></a>00269          vr2Itr != vrEnd; ++vr2Itr) {
+<a name="l00270"></a>00270       <span class="keywordtype">unsigned</span> vr2 = *vr2Itr;
+<a name="l00271"></a>00271       <span class="keyword">const</span> <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> &l2 = lis-><a class="code" href="classllvm_1_1LiveIntervals.html#a70cf6a51b043dc9f8ae683c266d5d9c4">getInterval</a>(vr2);
+<a name="l00272"></a>00272       <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr2Allowed = p->getAllowedSet(vr2);
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274       assert(!l2.<a class="code" href="classllvm_1_1LiveInterval.html#a3653e03e9e6e5d5ae0783ea17563046e">empty</a>() && <span class="stringliteral">"Empty interval in vreg set?"</span>);
+<a name="l00275"></a>00275       <span class="keywordflow">if</span> (l1.<a class="code" href="classllvm_1_1LiveInterval.html#a211acb5e3b4b1169ab0d7ea8ef3f08a4">overlaps</a>(l2)) {
+<a name="l00276"></a>00276         <a class="code" href="classPBQP_1_1Graph.html#a5c5b73b7e4511af41983be5f4859ace8">PBQP::Graph::EdgeItr</a> edge =
+<a name="l00277"></a>00277           g.<a class="code" href="classPBQP_1_1Graph.html#af5c0542eb169f650f93eb990ad6ec6e6" title="Add an edge between the given nodes with the given costs.">addEdge</a>(p->getNodeForVReg(vr1), p->getNodeForVReg(vr2),
+<a name="l00278"></a>00278                     <a class="code" href="LiveRegMatrix_8cpp.html#a8989acb71bd355e02bcf3a930b5e54ea">PBQP::Matrix</a>(vr1Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>()+1, vr2Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>()+1, 0));
+<a name="l00279"></a>00279 
+<a name="l00280"></a>00280         addInterferenceCosts(g.<a class="code" href="classPBQP_1_1Graph.html#a2c1e6ba85256214ec0388d9c51c3ef7f" title="Get an edge's cost matrix.">getEdgeCosts</a>(edge), vr1Allowed, vr2Allowed, tri);
+<a name="l00281"></a>00281       }
+<a name="l00282"></a>00282     }
+<a name="l00283"></a>00283   }
+<a name="l00284"></a>00284 
+<a name="l00285"></a>00285   <span class="keywordflow">return</span> p;
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287 
+<a name="l00288"></a>00288 <span class="keywordtype">void</span> PBQPBuilder::addSpillCosts(<a class="code" href="classPBQP_1_1Vector.html" title="PBQP Vector class.">PBQP::Vector</a> &costVec,
+<a name="l00289"></a>00289                                 <a class="code" href="namespacePBQP.html#a48fb0d5e4b0039c500b48f4375da8bea">PBQP::PBQPNum</a> spillCost) {
+<a name="l00290"></a>00290   costVec[0] = spillCost;
+<a name="l00291"></a>00291 }
+<a name="l00292"></a>00292 
+<a name="l00293"></a>00293 <span class="keywordtype">void</span> PBQPBuilder::addInterferenceCosts(
+<a name="l00294"></a>00294                                     <a class="code" href="classPBQP_1_1Matrix.html" title="PBQP Matrix class.">PBQP::Matrix</a> &costMat,
+<a name="l00295"></a>00295                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr1Allowed,
+<a name="l00296"></a>00296                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr2Allowed,
+<a name="l00297"></a>00297                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *tri) {
+<a name="l00298"></a>00298   assert(costMat.<a class="code" href="classPBQP_1_1Matrix.html#aef97f8816fe8c90957aa77650e201f28" title="Return the number of rows in this matrix.">getRows</a>() == vr1Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1 && <span class="stringliteral">"Matrix height mismatch."</span>);
+<a name="l00299"></a>00299   assert(costMat.<a class="code" href="classPBQP_1_1Matrix.html#a65dba0196c9167f83bd94ad1cb1ca275" title="Return the number of cols in this matrix.">getCols</a>() == vr2Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1 && <span class="stringliteral">"Matrix width mismatch."</span>);
+<a name="l00300"></a>00300 
+<a name="l00301"></a>00301   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != vr1Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); ++i) {
+<a name="l00302"></a>00302     <span class="keywordtype">unsigned</span> preg1 = vr1Allowed[i];
+<a name="l00303"></a>00303 
+<a name="l00304"></a>00304     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = 0; j != vr2Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); ++j) {
+<a name="l00305"></a>00305       <span class="keywordtype">unsigned</span> preg2 = vr2Allowed[j];
+<a name="l00306"></a>00306 
+<a name="l00307"></a>00307       <span class="keywordflow">if</span> (tri-><a class="code" href="classllvm_1_1TargetRegisterInfo.html#a4fac7ec2f43b802397b65018bda0040e">regsOverlap</a>(preg1, preg2)) {
+<a name="l00308"></a>00308         costMat[i + 1][j + 1] = std::numeric_limits<PBQP::PBQPNum>::infinity();
+<a name="l00309"></a>00309       }
+<a name="l00310"></a>00310     }
+<a name="l00311"></a>00311   }
+<a name="l00312"></a>00312 }
+<a name="l00313"></a>00313 
+<a name="l00314"></a><a class="code" href="classllvm_1_1PBQPBuilderWithCoalescing.html#acb2075e0752c7391e175c67260c7b0bb">00314</a> std::auto_ptr<PBQPRAProblem> <a class="code" href="classllvm_1_1PBQPBuilderWithCoalescing.html#acb2075e0752c7391e175c67260c7b0bb">PBQPBuilderWithCoalescing::build</a>(
+<a name="l00315"></a>00315                                                 <a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> *mf,
+<a name="l00316"></a>00316                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a> *lis,
+<a name="l00317"></a>00317                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a> *loopInfo,
+<a name="l00318"></a>00318                                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1PBQPBuilder.html#aec995b59d665b4035f6af53063102ea6">RegSet</a> &vregs) {
+<a name="l00319"></a>00319 
+<a name="l00320"></a>00320   std::auto_ptr<PBQPRAProblem> p = <a class="code" href="classllvm_1_1PBQPBuilderWithCoalescing.html#acb2075e0752c7391e175c67260c7b0bb">PBQPBuilder::build</a>(mf, lis, loopInfo, vregs);
+<a name="l00321"></a>00321   <a class="code" href="classPBQP_1_1Graph.html">PBQP::Graph</a> &g = p->getGraph();
+<a name="l00322"></a>00322 
+<a name="l00323"></a>00323   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetMachine.html">TargetMachine</a> &tm = mf-><a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>();
+<a name="l00324"></a>00324   <a class="code" href="classllvm_1_1CoalescerPair.html">CoalescerPair</a> cp(*tm.<a class="code" href="classllvm_1_1TargetMachine.html#a70b47eca6a99c87b81f4c1b1455dc090">getRegisterInfo</a>());
+<a name="l00325"></a>00325 
+<a name="l00326"></a>00326   <span class="comment">// Scan the machine function and add a coalescing cost whenever CoalescerPair</span>
+<a name="l00327"></a>00327   <span class="comment">// gives the Ok.</span>
+<a name="l00328"></a>00328   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1ilist__iterator.html">MachineFunction::const_iterator</a> mbbItr = mf-><a class="code" href="classllvm_1_1MachineFunction.html#ab0789854909cf47f640a85fa2bac29c7">begin</a>(),
+<a name="l00329"></a>00329                                        mbbEnd = mf-><a class="code" href="classllvm_1_1MachineFunction.html#a9d017af749f76484cb9aec9ff6e4330c">end</a>();
+<a name="l00330"></a>00330        mbbItr != mbbEnd; ++mbbItr) {
+<a name="l00331"></a>00331     <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *mbb = &*mbbItr;
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1MachineBasicBlock.html#a654b11787ac7c4344084d98bea7cf626">MachineBasicBlock::const_iterator</a> miItr = mbb-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>(),
+<a name="l00334"></a>00334                                            miEnd = mbb-><a class="code" href="classllvm_1_1MachineBasicBlock.html#acbc921830578e2741be6549db716c0ce">end</a>();
+<a name="l00335"></a>00335          miItr != miEnd; ++miItr) {
+<a name="l00336"></a>00336       <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *mi = &*miItr;
+<a name="l00337"></a>00337 
+<a name="l00338"></a>00338       <span class="keywordflow">if</span> (!cp.setRegisters(mi)) {
+<a name="l00339"></a>00339         <span class="keywordflow">continue</span>; <span class="comment">// Not coalescable.</span>
+<a name="l00340"></a>00340       }
+<a name="l00341"></a>00341 
+<a name="l00342"></a>00342       <span class="keywordflow">if</span> (cp.getSrcReg() == cp.getDstReg()) {
+<a name="l00343"></a>00343         <span class="keywordflow">continue</span>; <span class="comment">// Already coalesced.</span>
+<a name="l00344"></a>00344       }
+<a name="l00345"></a>00345 
+<a name="l00346"></a>00346       <span class="keywordtype">unsigned</span> dst = cp.getDstReg(),
+<a name="l00347"></a>00347                src = cp.getSrcReg();
+<a name="l00348"></a>00348 
+<a name="l00349"></a>00349       <span class="keyword">const</span> <span class="keywordtype">float</span> copyFactor = 0.5; <span class="comment">// Cost of copy relative to load. Current</span>
+<a name="l00350"></a>00350       <span class="comment">// value plucked randomly out of the air.</span>
+<a name="l00351"></a>00351 
+<a name="l00352"></a>00352       <a class="code" href="namespacePBQP.html#a48fb0d5e4b0039c500b48f4375da8bea">PBQP::PBQPNum</a> cBenefit =
+<a name="l00353"></a>00353         copyFactor * <a class="code" href="classllvm_1_1LiveIntervals.html#a4800a53f818eac9ad6eae1043849e646">LiveIntervals::getSpillWeight</a>(<span class="keyword">false</span>, <span class="keyword">true</span>,
+<a name="l00354"></a>00354                                                    loopInfo-><a class="code" href="classllvm_1_1MachineLoopInfo.html#a77d3f9c52df47750480d4302ae639749">getLoopDepth</a>(mbb));
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356       <span class="keywordflow">if</span> (cp.isPhys()) {
+<a name="l00357"></a>00357         <span class="keywordflow">if</span> (!mf-><a class="code" href="classllvm_1_1MachineFunction.html#ab4a6ca428289b667dd691a00e9f7e334">getRegInfo</a>().<a class="code" href="classllvm_1_1MachineRegisterInfo.html#a017c4ebe5112a2521ee37dfe1e78236c">isAllocatable</a>(dst)) {
+<a name="l00358"></a>00358           <span class="keywordflow">continue</span>;
+<a name="l00359"></a>00359         }
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361         <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &allowed = p->getAllowedSet(src);
+<a name="l00362"></a>00362         <span class="keywordtype">unsigned</span> pregOpt = 0;
+<a name="l00363"></a>00363         <span class="keywordflow">while</span> (pregOpt < allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() && allowed[pregOpt] != dst) {
+<a name="l00364"></a>00364           ++pregOpt;
+<a name="l00365"></a>00365         }
+<a name="l00366"></a>00366         <span class="keywordflow">if</span> (pregOpt < allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>()) {
+<a name="l00367"></a>00367           ++pregOpt; <span class="comment">// +1 to account for spill option.</span>
+<a name="l00368"></a>00368           <a class="code" href="classPBQP_1_1Graph.html#a85c25c82dca1c222f1a10729e9e452f1">PBQP::Graph::NodeItr</a> node = p->getNodeForVReg(src);
+<a name="l00369"></a>00369           addPhysRegCoalesce(g.<a class="code" href="classPBQP_1_1Graph.html#ab2253051ce27b80d58830d0029d340cf" title="Get a node's cost vector.">getNodeCosts</a>(node), pregOpt, cBenefit);
+<a name="l00370"></a>00370         }
+<a name="l00371"></a>00371       } <span class="keywordflow">else</span> {
+<a name="l00372"></a>00372         <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> *allowed1 = &p->getAllowedSet(dst);
+<a name="l00373"></a>00373         <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> *allowed2 = &p->getAllowedSet(src);
+<a name="l00374"></a>00374         <a class="code" href="classPBQP_1_1Graph.html#a85c25c82dca1c222f1a10729e9e452f1">PBQP::Graph::NodeItr</a> node1 = p->getNodeForVReg(dst);
+<a name="l00375"></a>00375         <a class="code" href="classPBQP_1_1Graph.html#a85c25c82dca1c222f1a10729e9e452f1">PBQP::Graph::NodeItr</a> node2 = p->getNodeForVReg(src);
+<a name="l00376"></a>00376         <a class="code" href="classPBQP_1_1Graph.html#a5c5b73b7e4511af41983be5f4859ace8">PBQP::Graph::EdgeItr</a> edge = g.<a class="code" href="classPBQP_1_1Graph.html#a0262090f14fe87ebdaab45b94f86d876" title="Get the edge connecting two nodes.">findEdge</a>(node1, node2);
+<a name="l00377"></a>00377         <span class="keywordflow">if</span> (edge == g.<a class="code" href="classPBQP_1_1Graph.html#a30c1b82a5412f412cc8db280f0d6bfd8" title="End iterator for edge set.">edgesEnd</a>()) {
+<a name="l00378"></a>00378           edge = g.<a class="code" href="classPBQP_1_1Graph.html#af5c0542eb169f650f93eb990ad6ec6e6" title="Add an edge between the given nodes with the given costs.">addEdge</a>(node1, node2, <a class="code" href="classPBQP_1_1Matrix.html" title="PBQP Matrix class.">PBQP::Matrix</a>(allowed1-><a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1,
+<a name="l00379"></a>00379                                                       allowed2-><a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1,
+<a name="l00380"></a>00380                                                       0));
+<a name="l00381"></a>00381         } <span class="keywordflow">else</span> {
+<a name="l00382"></a>00382           <span class="keywordflow">if</span> (g.<a class="code" href="classPBQP_1_1Graph.html#ae93f5fc84fb0de6031df949ce563fe24" title="Get the first node connected to this edge.">getEdgeNode1</a>(edge) == node2) {
+<a name="l00383"></a>00383             <a class="code" href="namespacellvm.html#a39bdaf6372ed2ef16d951fc0f6d54dd4">std::swap</a>(node1, node2);
+<a name="l00384"></a>00384             <a class="code" href="namespacellvm.html#a39bdaf6372ed2ef16d951fc0f6d54dd4">std::swap</a>(allowed1, allowed2);
+<a name="l00385"></a>00385           }
+<a name="l00386"></a>00386         }
+<a name="l00387"></a>00387 
+<a name="l00388"></a>00388         addVirtRegCoalesce(g.<a class="code" href="classPBQP_1_1Graph.html#a2c1e6ba85256214ec0388d9c51c3ef7f" title="Get an edge's cost matrix.">getEdgeCosts</a>(edge), *allowed1, *allowed2,
+<a name="l00389"></a>00389                            cBenefit);
+<a name="l00390"></a>00390       }
+<a name="l00391"></a>00391     }
+<a name="l00392"></a>00392   }
+<a name="l00393"></a>00393 
+<a name="l00394"></a>00394   <span class="keywordflow">return</span> p;
+<a name="l00395"></a>00395 }
+<a name="l00396"></a>00396 
+<a name="l00397"></a>00397 <span class="keywordtype">void</span> PBQPBuilderWithCoalescing::addPhysRegCoalesce(<a class="code" href="classPBQP_1_1Vector.html" title="PBQP Vector class.">PBQP::Vector</a> &costVec,
+<a name="l00398"></a>00398                                                    <span class="keywordtype">unsigned</span> pregOption,
+<a name="l00399"></a>00399                                                    <a class="code" href="namespacePBQP.html#a48fb0d5e4b0039c500b48f4375da8bea">PBQP::PBQPNum</a> benefit) {
+<a name="l00400"></a>00400   costVec[pregOption] += -benefit;
+<a name="l00401"></a>00401 }
+<a name="l00402"></a>00402 
+<a name="l00403"></a>00403 <span class="keywordtype">void</span> PBQPBuilderWithCoalescing::addVirtRegCoalesce(
+<a name="l00404"></a>00404                                     <a class="code" href="classPBQP_1_1Matrix.html" title="PBQP Matrix class.">PBQP::Matrix</a> &costMat,
+<a name="l00405"></a>00405                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr1Allowed,
+<a name="l00406"></a>00406                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">PBQPRAProblem::AllowedSet</a> &vr2Allowed,
+<a name="l00407"></a>00407                                     <a class="code" href="namespacePBQP.html#a48fb0d5e4b0039c500b48f4375da8bea">PBQP::PBQPNum</a> benefit) {
+<a name="l00408"></a>00408 
+<a name="l00409"></a>00409   assert(costMat.<a class="code" href="classPBQP_1_1Matrix.html#aef97f8816fe8c90957aa77650e201f28" title="Return the number of rows in this matrix.">getRows</a>() == vr1Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1 && <span class="stringliteral">"Size mismatch."</span>);
+<a name="l00410"></a>00410   assert(costMat.<a class="code" href="classPBQP_1_1Matrix.html#a65dba0196c9167f83bd94ad1cb1ca275" title="Return the number of cols in this matrix.">getCols</a>() == vr2Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() + 1 && <span class="stringliteral">"Size mismatch."</span>);
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != vr1Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); ++i) {
+<a name="l00413"></a>00413     <span class="keywordtype">unsigned</span> preg1 = vr1Allowed[i];
+<a name="l00414"></a>00414     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> j = 0; j != vr2Allowed.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); ++j) {
+<a name="l00415"></a>00415       <span class="keywordtype">unsigned</span> preg2 = vr2Allowed[j];
+<a name="l00416"></a>00416 
+<a name="l00417"></a>00417       <span class="keywordflow">if</span> (preg1 == preg2) {
+<a name="l00418"></a>00418         costMat[i + 1][j + 1] += -benefit;
+<a name="l00419"></a>00419       }
+<a name="l00420"></a>00420     }
+<a name="l00421"></a>00421   }
+<a name="l00422"></a>00422 }
+<a name="l00423"></a>00423 
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425 <span class="keywordtype">void</span> RegAllocPBQP::getAnalysisUsage(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &au)<span class="keyword"> const </span>{
+<a name="l00426"></a>00426   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#af11a6ebf7ab3c388234cb6d5378439a3">setPreservesCFG</a>();
+<a name="l00427"></a>00427   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>>();
+<a name="l00428"></a>00428   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>>();
+<a name="l00429"></a>00429   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1SlotIndexes.html">SlotIndexes</a>>();
+<a name="l00430"></a>00430   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1SlotIndexes.html">SlotIndexes</a>>();
+<a name="l00431"></a>00431   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a>>();
+<a name="l00432"></a>00432   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1LiveIntervals.html">LiveIntervals</a>>();
+<a name="l00433"></a>00433   <span class="comment">//au.addRequiredID(SplitCriticalEdgesID);</span>
+<a name="l00434"></a>00434   <span class="keywordflow">if</span> (customPassID)
+<a name="l00435"></a>00435     au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a053677ebc731b47a534f841b11b5cf0c">addRequiredID</a>(*customPassID);
+<a name="l00436"></a>00436   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1CalculateSpillWeights.html">CalculateSpillWeights</a>>();
+<a name="l00437"></a>00437   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1LiveStacks.html">LiveStacks</a>>();
+<a name="l00438"></a>00438   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1LiveStacks.html">LiveStacks</a>>();
+<a name="l00439"></a>00439   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a>>();
+<a name="l00440"></a>00440   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1MachineDominatorTree.html">MachineDominatorTree</a>>();
+<a name="l00441"></a>00441   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00442"></a>00442   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1MachineLoopInfo.html">MachineLoopInfo</a>>();
+<a name="l00443"></a>00443   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#ae5c60fd282ee894c87ea02c3f0fcb6d0">addRequired</a><<a class="code" href="classllvm_1_1VirtRegMap.html">VirtRegMap</a>>();
+<a name="l00444"></a>00444   au.<a class="code" href="classllvm_1_1AnalysisUsage.html#a884f90190bca4bd354f2d5c91c264028">addPreserved</a><<a class="code" href="classllvm_1_1VirtRegMap.html">VirtRegMap</a>>();
+<a name="l00445"></a>00445   <a class="code" href="classllvm_1_1MachineFunctionPass.html#aa1eece37d175f86a6f4808c0c167f13b">MachineFunctionPass::getAnalysisUsage</a>(au);
+<a name="l00446"></a>00446 }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448 <span class="keywordtype">void</span> RegAllocPBQP::findVRegIntervalsToAlloc() {
+<a name="l00449"></a>00449 
+<a name="l00450"></a>00450   <span class="comment">// Iterate over all live ranges.</span>
+<a name="l00451"></a>00451   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = mri->getNumVirtRegs(); i != e; ++i) {
+<a name="l00452"></a>00452     <span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a> = <a class="code" href="classllvm_1_1TargetRegisterInfo.html#a70cd177cd3198c912817a21f373b5651">TargetRegisterInfo::index2VirtReg</a>(i);
+<a name="l00453"></a>00453     <span class="keywordflow">if</span> (mri->reg_nodbg_empty(Reg))
+<a name="l00454"></a>00454       <span class="keywordflow">continue</span>;
+<a name="l00455"></a>00455     <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> *li = &lis->getInterval(Reg);
+<a name="l00456"></a>00456 
+<a name="l00457"></a>00457     <span class="comment">// If this live interval is non-empty we will use pbqp to allocate it.</span>
+<a name="l00458"></a>00458     <span class="comment">// Empty intervals we allocate in a simple post-processing stage in</span>
+<a name="l00459"></a>00459     <span class="comment">// finalizeAlloc.</span>
+<a name="l00460"></a>00460     <span class="keywordflow">if</span> (!li-><a class="code" href="classllvm_1_1LiveInterval.html#a3653e03e9e6e5d5ae0783ea17563046e">empty</a>()) {
+<a name="l00461"></a>00461       vregsToAlloc.insert(li-><a class="code" href="classllvm_1_1LiveInterval.html#a4ec9ddf8db4481c798f557e8af82693f">reg</a>);
+<a name="l00462"></a>00462     } <span class="keywordflow">else</span> {
+<a name="l00463"></a>00463       emptyIntervalVRegs.insert(li-><a class="code" href="classllvm_1_1LiveInterval.html#a4ec9ddf8db4481c798f557e8af82693f">reg</a>);
+<a name="l00464"></a>00464     }
+<a name="l00465"></a>00465   }
+<a name="l00466"></a>00466 }
+<a name="l00467"></a>00467 
+<a name="l00468"></a>00468 <span class="keywordtype">bool</span> RegAllocPBQP::mapPBQPToRegAlloc(<span class="keyword">const</span> <a class="code" href="classllvm_1_1PBQPRAProblem.html">PBQPRAProblem</a> &problem,
+<a name="l00469"></a>00469                                      <span class="keyword">const</span> <a class="code" href="classPBQP_1_1Solution.html" title="Represents a solution to a PBQP problem.">PBQP::Solution</a> &solution) {
+<a name="l00470"></a>00470   <span class="comment">// Set to true if we have any spills</span>
+<a name="l00471"></a>00471   <span class="keywordtype">bool</span> anotherRoundNeeded = <span class="keyword">false</span>;
+<a name="l00472"></a>00472 
+<a name="l00473"></a>00473   <span class="comment">// Clear the existing allocation.</span>
+<a name="l00474"></a>00474   vrm->clearAllVirt();
+<a name="l00475"></a>00475 
+<a name="l00476"></a>00476   <span class="keyword">const</span> <a class="code" href="classPBQP_1_1Graph.html">PBQP::Graph</a> &g = problem.<a class="code" href="classllvm_1_1PBQPRAProblem.html#adf965591a9facde12a3fedd4175b1837">getGraph</a>();
+<a name="l00477"></a>00477   <span class="comment">// Iterate over the nodes mapping the PBQP solution to a register</span>
+<a name="l00478"></a>00478   <span class="comment">// assignment.</span>
+<a name="l00479"></a>00479   <span class="keywordflow">for</span> (<a class="code" href="classPBQP_1_1Graph.html#a9d61016d60da08fffe0fac7bfe080651">PBQP::Graph::ConstNodeItr</a> node = g.<a class="code" href="classPBQP_1_1Graph.html#a43d854b7e40081f10cda3f50b4aa34d6" title="Begin iterator for node set.">nodesBegin</a>(),
+<a name="l00480"></a>00480                                  nodeEnd = g.<a class="code" href="classPBQP_1_1Graph.html#a69544364070695de67557b04bd2a1633" title="End iterator for node set.">nodesEnd</a>();
+<a name="l00481"></a>00481        node != nodeEnd; ++node) {
+<a name="l00482"></a>00482     <span class="keywordtype">unsigned</span> vreg = problem.<a class="code" href="classllvm_1_1PBQPRAProblem.html#aad99826f434548c24581b2c6a62f5f6c" title="Get the virtual register corresponding to the given PBQP node.">getVRegForNode</a>(node);
+<a name="l00483"></a>00483     <span class="keywordtype">unsigned</span> alloc = solution.<a class="code" href="classPBQP_1_1Solution.html#a0512af172f636c696f256b4ed0c3f059" title="Get a node's selection.">getSelection</a>(node);
+<a name="l00484"></a>00484 
+<a name="l00485"></a>00485     <span class="keywordflow">if</span> (problem.<a class="code" href="classllvm_1_1PBQPRAProblem.html#ace90cbc433958481ac27123d0bd743db">isPRegOption</a>(vreg, alloc)) {
+<a name="l00486"></a>00486       <span class="keywordtype">unsigned</span> preg = problem.<a class="code" href="classllvm_1_1PBQPRAProblem.html#ad7ee099b5d4aff936bf698060a9d4c6d" title="Get PReg for option.">getPRegForOption</a>(vreg, alloc);
+<a name="l00487"></a>00487       <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">"VREG "</span> << <a class="code" href="classllvm_1_1PrintReg.html">PrintReg</a>(vreg, tri) << <span class="stringliteral">" -> "</span>
+<a name="l00488"></a>00488             << tri-><a class="code" href="classllvm_1_1MCRegisterInfo.html#a2546a53db9bdb717a20f9786b1c06137">getName</a>(preg) << <span class="stringliteral">"\n"</span>);
+<a name="l00489"></a>00489       assert(preg != 0 && <span class="stringliteral">"Invalid preg selected."</span>);
+<a name="l00490"></a>00490       vrm->assignVirt2Phys(vreg, preg);
+<a name="l00491"></a>00491     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (problem.<a class="code" href="classllvm_1_1PBQPRAProblem.html#a8c6db4b5eef55beaf28beefb80b7e973">isSpillOption</a>(vreg, alloc)) {
+<a name="l00492"></a>00492       vregsToAlloc.erase(vreg);
+<a name="l00493"></a>00493       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<LiveInterval*, 8></a> newSpills;
+<a name="l00494"></a>00494       <a class="code" href="classllvm_1_1LiveRangeEdit.html">LiveRangeEdit</a> LRE(&lis->getInterval(vreg), newSpills, *mf, *lis, vrm);
+<a name="l00495"></a>00495       spiller->spill(LRE);
+<a name="l00496"></a>00496 
+<a name="l00497"></a>00497       <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">"VREG "</span> << <a class="code" href="classllvm_1_1PrintReg.html">PrintReg</a>(vreg, tri) << <span class="stringliteral">" -> SPILLED (Cost: "</span>
+<a name="l00498"></a>00498                    << LRE.getParent().weight << <span class="stringliteral">", New vregs: "</span>);
+<a name="l00499"></a>00499 
+<a name="l00500"></a>00500       <span class="comment">// Copy any newly inserted live intervals into the list of regs to</span>
+<a name="l00501"></a>00501       <span class="comment">// allocate.</span>
+<a name="l00502"></a>00502       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1LiveRangeEdit.html#a88d999818454a5b4fe2953c9632309c6" title="Iterator for accessing the new registers added by this edit.">LiveRangeEdit::iterator</a> itr = LRE.begin(), <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a> = LRE.end();
+<a name="l00503"></a>00503            itr != <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>; ++itr) {
+<a name="l00504"></a>00504         assert(!(*itr)->empty() && <span class="stringliteral">"Empty spill range."</span>);
+<a name="l00505"></a>00505         <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>() << <a class="code" href="classllvm_1_1PrintReg.html">PrintReg</a>((*itr)->reg, tri) << <span class="stringliteral">" "</span>);
+<a name="l00506"></a>00506         vregsToAlloc.insert((*itr)->reg);
+<a name="l00507"></a>00507       }
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509       <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">")\n"</span>);
+<a name="l00510"></a>00510 
+<a name="l00511"></a>00511       <span class="comment">// We need another round if spill intervals were added.</span>
+<a name="l00512"></a>00512       anotherRoundNeeded |= !LRE.empty();
+<a name="l00513"></a>00513     } <span class="keywordflow">else</span> {
+<a name="l00514"></a>00514       <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(<span class="stringliteral">"Unknown allocation option."</span>);
+<a name="l00515"></a>00515     }
+<a name="l00516"></a>00516   }
+<a name="l00517"></a>00517 
+<a name="l00518"></a>00518   <span class="keywordflow">return</span> !anotherRoundNeeded;
+<a name="l00519"></a>00519 }
+<a name="l00520"></a>00520 
+<a name="l00521"></a>00521 
+<a name="l00522"></a>00522 <span class="keywordtype">void</span> RegAllocPBQP::finalizeAlloc()<span class="keyword"> const </span>{
+<a name="l00523"></a>00523   <span class="comment">// First allocate registers for the empty intervals.</span>
+<a name="l00524"></a>00524   <span class="keywordflow">for</span> (RegSet::const_iterator
+<a name="l00525"></a>00525          itr = emptyIntervalVRegs.begin(), <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a> = emptyIntervalVRegs.end();
+<a name="l00526"></a>00526          itr != <a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>; ++itr) {
+<a name="l00527"></a>00527     <a class="code" href="classllvm_1_1LiveInterval.html">LiveInterval</a> *li = &lis->getInterval(*itr);
+<a name="l00528"></a>00528 
+<a name="l00529"></a>00529     <span class="keywordtype">unsigned</span> physReg = vrm->getRegAllocPref(li-><a class="code" href="classllvm_1_1LiveInterval.html#a4ec9ddf8db4481c798f557e8af82693f">reg</a>);
+<a name="l00530"></a>00530 
+<a name="l00531"></a>00531     <span class="keywordflow">if</span> (physReg == 0) {
+<a name="l00532"></a>00532       <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *liRC = mri->getRegClass(li-><a class="code" href="classllvm_1_1LiveInterval.html#a4ec9ddf8db4481c798f557e8af82693f">reg</a>);
+<a name="l00533"></a>00533       physReg = liRC-><a class="code" href="classllvm_1_1TargetRegisterClass.html#a07f8d61b3e1ada33cf4857c5dc3baa31">getRawAllocationOrder</a>(*mf).<a class="code" href="classllvm_1_1ArrayRef.html#acffda5d90e734243696448a1818c04bc" title="front - Get the first element.">front</a>();
+<a name="l00534"></a>00534     }
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536     vrm->assignVirt2Phys(li-><a class="code" href="classllvm_1_1LiveInterval.html#a4ec9ddf8db4481c798f557e8af82693f">reg</a>, physReg);
+<a name="l00537"></a>00537   }
+<a name="l00538"></a>00538 }
+<a name="l00539"></a>00539 
+<a name="l00540"></a>00540 <span class="keywordtype">bool</span> RegAllocPBQP::runOnMachineFunction(<a class="code" href="classllvm_1_1MachineFunction.html">MachineFunction</a> &MF) {
+<a name="l00541"></a>00541 
+<a name="l00542"></a>00542   mf = &MF;
+<a name="l00543"></a>00543   tm = &mf-><a class="code" href="classllvm_1_1MachineFunction.html#a6745c3bfdfc5b0643b078b96df2db252">getTarget</a>();
+<a name="l00544"></a>00544   tri = tm->getRegisterInfo();
+<a name="l00545"></a>00545   tii = tm->getInstrInfo();
+<a name="l00546"></a>00546   mri = &mf->getRegInfo();
+<a name="l00547"></a>00547 
+<a name="l00548"></a>00548   lis = &getAnalysis<LiveIntervals>();
+<a name="l00549"></a>00549   lss = &getAnalysis<LiveStacks>();
+<a name="l00550"></a>00550   loopInfo = &getAnalysis<MachineLoopInfo>();
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552   vrm = &getAnalysis<VirtRegMap>();
+<a name="l00553"></a>00553   spiller.reset(<a class="code" href="namespacellvm.html#abc755629d1844132f222498e5c454d9b">createInlineSpiller</a>(*<span class="keyword">this</span>, MF, *vrm));
+<a name="l00554"></a>00554 
+<a name="l00555"></a>00555   mri->freezeReservedRegs(MF);
+<a name="l00556"></a>00556 
+<a name="l00557"></a>00557   <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">"PBQP Register Allocating for "</span> << mf->getName() << <span class="stringliteral">"\n"</span>);
+<a name="l00558"></a>00558 
+<a name="l00559"></a>00559   <span class="comment">// Allocator main loop:</span>
+<a name="l00560"></a>00560   <span class="comment">//</span>
+<a name="l00561"></a>00561   <span class="comment">// * Map current regalloc problem to a PBQP problem</span>
+<a name="l00562"></a>00562   <span class="comment">// * Solve the PBQP problem</span>
+<a name="l00563"></a>00563   <span class="comment">// * Map the solution back to a register allocation</span>
+<a name="l00564"></a>00564   <span class="comment">// * Spill if necessary</span>
+<a name="l00565"></a>00565   <span class="comment">//</span>
+<a name="l00566"></a>00566   <span class="comment">// This process is continued till no more spills are generated.</span>
+<a name="l00567"></a>00567 
+<a name="l00568"></a>00568   <span class="comment">// Find the vreg intervals in need of allocation.</span>
+<a name="l00569"></a>00569   findVRegIntervalsToAlloc();
+<a name="l00570"></a>00570 
+<a name="l00571"></a>00571 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00572"></a>00572 <span class="preprocessor"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1Function.html">Function</a>* func = mf->getFunction();
+<a name="l00573"></a>00573   std::string fqn =
+<a name="l00574"></a>00574     func-><a class="code" href="classllvm_1_1GlobalValue.html#a9e1fc23a17e97d2d1732e753ae9251ac">getParent</a>()-><a class="code" href="classllvm_1_1Module.html#a339f163decf5f2c881937600d1e953fa">getModuleIdentifier</a>() + <span class="stringliteral">"."</span> +
+<a name="l00575"></a>00575     func-><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="l00576"></a>00576 <span class="preprocessor">#endif</span>
+<a name="l00577"></a>00577 <span class="preprocessor"></span>
+<a name="l00578"></a>00578   <span class="comment">// If there are non-empty intervals allocate them using pbqp.</span>
+<a name="l00579"></a>00579   <span class="keywordflow">if</span> (!vregsToAlloc.empty()) {
+<a name="l00580"></a>00580 
+<a name="l00581"></a>00581     <span class="keywordtype">bool</span> pbqpAllocComplete = <span class="keyword">false</span>;
+<a name="l00582"></a>00582     <span class="keywordtype">unsigned</span> <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fac87ea230161f1f2247a5f72da886a23d" title="double round(double x);">round</a> = 0;
+<a name="l00583"></a>00583 
+<a name="l00584"></a>00584     <span class="keywordflow">while</span> (!pbqpAllocComplete) {
+<a name="l00585"></a>00585       <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">"  PBQP Regalloc round "</span> << round << <span class="stringliteral">":\n"</span>);
+<a name="l00586"></a>00586 
+<a name="l00587"></a>00587       std::auto_ptr<PBQPRAProblem> problem =
+<a name="l00588"></a>00588         builder->build(mf, lis, loopInfo, vregsToAlloc);
+<a name="l00589"></a>00589 
+<a name="l00590"></a>00590 <span class="preprocessor">#ifndef NDEBUG</span>
+<a name="l00591"></a>00591 <span class="preprocessor"></span>      <span class="keywordflow">if</span> (<a class="code" href="RegAllocPBQP_8cpp.html#a764c1c06c3d03a19a94dfecb527d077e">pbqpDumpGraphs</a>) {
+<a name="l00592"></a>00592         std::ostringstream rs;
+<a name="l00593"></a>00593         rs << <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fac87ea230161f1f2247a5f72da886a23d" title="double round(double x);">round</a>;
+<a name="l00594"></a>00594         std::string graphFileName(fqn + <span class="stringliteral">"."</span> + rs.str() + <span class="stringliteral">".pbqpgraph"</span>);
+<a name="l00595"></a>00595         std::string tmp;
+<a name="l00596"></a>00596         <a class="code" href="classllvm_1_1raw__fd__ostream.html">raw_fd_ostream</a> os(graphFileName.c_str(), tmp);
+<a name="l00597"></a>00597         <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">"Dumping graph for round "</span> << round << <span class="stringliteral">" to \""</span>
+<a name="l00598"></a>00598               << graphFileName << <span class="stringliteral">"\"\n"</span>);
+<a name="l00599"></a>00599         problem->getGraph().dump(os);
+<a name="l00600"></a>00600       }
+<a name="l00601"></a>00601 <span class="preprocessor">#endif</span>
+<a name="l00602"></a>00602 <span class="preprocessor"></span>
+<a name="l00603"></a>00603       <a class="code" href="classPBQP_1_1Solution.html" title="Represents a solution to a PBQP problem.">PBQP::Solution</a> solution =
+<a name="l00604"></a>00604         <a class="code" href="classPBQP_1_1HeuristicSolver.html" title="PBQP heuristic solver class.">PBQP::HeuristicSolver<PBQP::Heuristics::Briggs>::solve</a>(
+<a name="l00605"></a>00605           problem->getGraph());
+<a name="l00606"></a>00606 
+<a name="l00607"></a>00607       pbqpAllocComplete = mapPBQPToRegAlloc(*problem, solution);
+<a name="l00608"></a>00608 
+<a name="l00609"></a>00609       ++<a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fac87ea230161f1f2247a5f72da886a23d" title="double round(double x);">round</a>;
+<a name="l00610"></a>00610     }
+<a name="l00611"></a>00611   }
+<a name="l00612"></a>00612 
+<a name="l00613"></a>00613   <span class="comment">// Finalise allocation, allocate empty ranges.</span>
+<a name="l00614"></a>00614   finalizeAlloc();
+<a name="l00615"></a>00615   vregsToAlloc.clear();
+<a name="l00616"></a>00616   emptyIntervalVRegs.clear();
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618   <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">"Post alloc VirtRegMap:\n"</span> << *vrm << <span class="stringliteral">"\n"</span>);
+<a name="l00619"></a>00619 
+<a name="l00620"></a>00620   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00621"></a>00621 }
+<a name="l00622"></a>00622 
+<a name="l00623"></a><a class="code" href="namespacellvm.html#ace11078c1767df607c74d3ccad86e7a5">00623</a> <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a>* <a class="code" href="namespacellvm.html#ace11078c1767df607c74d3ccad86e7a5">llvm::createPBQPRegisterAllocator</a>(
+<a name="l00624"></a>00624                                            std::auto_ptr<PBQPBuilder> builder,
+<a name="l00625"></a>00625                                            <span class="keywordtype">char</span> *customPassID) {
+<a name="l00626"></a>00626   <span class="keywordflow">return</span> <span class="keyword">new</span> RegAllocPBQP(builder, customPassID);
+<a name="l00627"></a>00627 }
+<a name="l00628"></a>00628 
+<a name="l00629"></a><a class="code" href="namespacellvm.html#a9d7aa3c609702698164de3c77384bb10">00629</a> <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a>* <a class="code" href="namespacellvm.html#a9d7aa3c609702698164de3c77384bb10">llvm::createDefaultPBQPRegisterAllocator</a>() {
+<a name="l00630"></a>00630   <span class="keywordflow">if</span> (<a class="code" href="RegAllocPBQP_8cpp.html#a6e2bd69e93b33a3646cc86239e4ca575">pbqpCoalescing</a>) {
+<a name="l00631"></a>00631     <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#ace11078c1767df607c74d3ccad86e7a5">createPBQPRegisterAllocator</a>(
+<a name="l00632"></a>00632              std::auto_ptr<PBQPBuilder>(<span class="keyword">new</span> <a class="code" href="classllvm_1_1PBQPBuilderWithCoalescing.html" title="Extended builder which adds coalescing constraints to a problem.">PBQPBuilderWithCoalescing</a>()));
+<a name="l00633"></a>00633   } <span class="comment">// else</span>
+<a name="l00634"></a>00634   <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#ace11078c1767df607c74d3ccad86e7a5">createPBQPRegisterAllocator</a>(
+<a name="l00635"></a>00635            std::auto_ptr<PBQPBuilder>(<span class="keyword">new</span> <a class="code" href="classllvm_1_1PBQPBuilder.html">PBQPBuilder</a>()));
+<a name="l00636"></a>00636 }
+<a name="l00637"></a>00637 
+<a name="l00638"></a>00638 <span class="preprocessor">#undef DEBUG_TYPE</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:06 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/RegAllocPBQP_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocPBQP_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,141 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegAllocPBQP.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/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node2 -> 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 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_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 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node17 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node25 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="black",URL="$PassSupport_8h.html"];
+  Node27 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/PassRegistry.h",height=0.2,width=0.4,color="black",URL="$PassRegistry_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node29 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node18 [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"];
+  Node29 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node27 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node31 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="black",URL="$Valgrind_8h.html"];
+  Node32 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Config/llvm-config.h",height=0.2,width=0.4,color="black",URL="$llvm-config_8h.html"];
+  Node32 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="stddef.h",height=0.2,width=0.4,color="grey75"];
+  Node27 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node36 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node37 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node36 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/CodeGen/PBQP/Graph.h",height=0.2,width=0.4,color="black",URL="$Graph_8h.html"];
+  Node40 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="Math.h",height=0.2,width=0.4,color="black",URL="$Math_8h.html"];
+  Node41 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node40 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="list",height=0.2,width=0.4,color="grey75"];
+  Node40 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node40 -> 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 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/CodeGen/PBQP/Solution.h",height=0.2,width=0.4,color="black",URL="$Solution_8h.html"];
+  Node46 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="set",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegAllocRegistry_8h.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegAllocRegistry_8h.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegAllocRegistry_8h.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegAllocRegistry_8h.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,83 @@
+<!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: RegAllocRegistry.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>
+    </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">RegAllocRegistry.h File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="MachinePassRegistry_8h_source.html">llvm/CodeGen/MachinePassRegistry.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RegAllocRegistry.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="RegAllocRegistry_8h__incl.png" border="0" usemap="#RegAllocRegistry_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="RegAllocRegistry_8h__dep__incl.png" border="0" usemap="#RegAllocRegistry_8hdep" alt=""/></div>
+<!-- MAP 1 -->
+</div>
+</div>
+<p><a href="RegAllocRegistry_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_1RegisterRegAlloc.html">llvm::RegisterRegAlloc</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:39 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/Regex_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Regex_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Regex_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Regex_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,223 @@
+<!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: Regex.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">Regex.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="Regex_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- Regex.cpp - Regular Expression matcher implementation -------------===//</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 POSIX regular expression matcher.</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="Regex_8h.html">llvm/Support/Regex.h</a>"</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="ErrorHandling_8h.html">llvm/Support/ErrorHandling.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="SmallVector_8h.html">llvm/ADT/SmallVector.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="regex__impl_8h.html">regex_impl.h</a>"</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include <string></span>
+<a name="l00020"></a>00020 <span class="keyword">using namespace </span>llvm;
+<a name="l00021"></a>00021 
+<a name="l00022"></a><a class="code" href="classllvm_1_1Regex.html#a85b3b3ac828b18053b398dd335977f76">00022</a> <a class="code" href="classllvm_1_1Regex.html#a85b3b3ac828b18053b398dd335977f76">Regex::Regex</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> regex, <span class="keywordtype">unsigned</span> Flags) {
+<a name="l00023"></a>00023   <span class="keywordtype">unsigned</span> flags = 0;
+<a name="l00024"></a>00024   preg = <span class="keyword">new</span> <a class="code" href="structllvm__regex.html">llvm_regex</a>();
+<a name="l00025"></a>00025   preg-><a class="code" href="structllvm__regex.html#af5da3516ebe39b7fe40315175d49b55a">re_endp</a> = regex.<a class="code" href="classllvm_1_1StringRef.html#a9e277b660236bb0318b61ab9cdf60dc7">end</a>();
+<a name="l00026"></a>00026   <span class="keywordflow">if</span> (Flags & <a class="code" href="classllvm_1_1Regex.html#ae9c169a8a844b15663f95e052d8e1153a5f9b72100ddf65c55baa3cd82e778c4b" title="Compile for matching that ignores upper/lower case distinctions.">IgnoreCase</a>) 
+<a name="l00027"></a>00027     flags |= <a class="code" href="regex__impl_8h.html#a0c3e7b1d5bc9c2d278a544fe9b61b67a">REG_ICASE</a>;
+<a name="l00028"></a>00028   <span class="keywordflow">if</span> (Flags & <a class="code" href="classllvm_1_1Regex.html#ae9c169a8a844b15663f95e052d8e1153a58612c80b543a7e989edd919e009b25b">Newline</a>)
+<a name="l00029"></a>00029     flags |= <a class="code" href="regex__impl_8h.html#ab678ef3b27bf7de2fb82c79cb2cd9d8a">REG_NEWLINE</a>;
+<a name="l00030"></a>00030   error = <a class="code" href="regcomp_8c.html#a94efd6ce730ab2988bfd211af4319873">llvm_regcomp</a>(preg, regex.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>(), flags|<a class="code" href="regex__impl_8h.html#a5fc31e6da9b77e09ea62b4544ac4767f">REG_EXTENDED</a>|<a class="code" href="regex__impl_8h.html#a95142205890c3ac8dc12e5850cb0e946">REG_PEND</a>);
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 
+<a name="l00033"></a><a class="code" href="classllvm_1_1Regex.html#a4b32acda8c0843ee5a68ebccba4ad993">00033</a> <a class="code" href="classllvm_1_1Regex.html#a4b32acda8c0843ee5a68ebccba4ad993">Regex::~Regex</a>() {
+<a name="l00034"></a>00034   <a class="code" href="regex__impl_8h.html#a5b067957e932003b295ff3a8bbffe882">llvm_regfree</a>(preg);
+<a name="l00035"></a>00035   <span class="keyword">delete</span> preg;
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037 
+<a name="l00038"></a><a class="code" href="classllvm_1_1Regex.html#acecbf00183828ad01a34fffe18444767">00038</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1Regex.html#acecbf00183828ad01a34fffe18444767">Regex::isValid</a>(std::string &<a class="code" href="namespacellvm_1_1lltok.html#af353621f14cb4b4b3af5ffaff84076b1a3766a4dce43f4efc7208a749cc7ac605">Error</a>) {
+<a name="l00039"></a>00039   <span class="keywordflow">if</span> (!error)
+<a name="l00040"></a>00040     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00041"></a>00041   
+<a name="l00042"></a>00042   <span class="keywordtype">size_t</span> len = <a class="code" href="regerror_8c.html#a728104a5963c78e214c7b847b338ad55">llvm_regerror</a>(error, preg, NULL, 0);
+<a name="l00043"></a>00043   
+<a name="l00044"></a>00044   Error.resize(len);
+<a name="l00045"></a>00045   <a class="code" href="regerror_8c.html#a728104a5963c78e214c7b847b338ad55">llvm_regerror</a>(error, preg, &Error[0], len);
+<a name="l00046"></a>00046   <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048 <span class="comment"></span>
+<a name="l00049"></a>00049 <span class="comment">/// getNumMatches - In a valid regex, return the number of parenthesized</span>
+<a name="l00050"></a>00050 <span class="comment">/// matches it contains.</span>
+<a name="l00051"></a><a class="code" href="classllvm_1_1Regex.html#ac9bac2adf3f341ce558202e7ed138924">00051</a> <span class="comment"></span><span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1Regex.html#ac9bac2adf3f341ce558202e7ed138924">Regex::getNumMatches</a>()<span class="keyword"> const </span>{
+<a name="l00052"></a>00052   <span class="keywordflow">return</span> preg-><a class="code" href="structllvm__regex.html#ab7b9279f0acdb26e438298369f121641">re_nsub</a>;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054 
+<a name="l00055"></a><a class="code" href="classllvm_1_1Regex.html#a1ab84e9351dde64d69216811cba19ec1">00055</a> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1Regex.html#a1ab84e9351dde64d69216811cba19ec1">Regex::match</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a394bf05139245f8e3ee22865dc9c1caf">String</a>, <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<StringRef></a> *Matches){
+<a name="l00056"></a>00056   <span class="keywordtype">unsigned</span> nmatch = Matches ? preg-><a class="code" href="structllvm__regex.html#ab7b9279f0acdb26e438298369f121641">re_nsub</a>+1 : 0;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058   <span class="comment">// pmatch needs to have at least one element.</span>
+<a name="l00059"></a>00059   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<llvm_regmatch_t, 8></a> pm;
+<a name="l00060"></a>00060   pm.<a class="code" href="classllvm_1_1SmallVectorImpl.html#a102d0ad36060677286c3aefb812e5512">resize</a>(nmatch > 0 ? nmatch : 1);
+<a name="l00061"></a>00061   pm[0].rm_so = 0;
+<a name="l00062"></a>00062   pm[0].rm_eo = String.<a class="code" href="classllvm_1_1StringRef.html#af68d5ebdb576d7481ea2766151b875d4" title="size - Get the string size.">size</a>();
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064   <span class="keywordtype">int</span> rc = <a class="code" href="regex__impl_8h.html#a91460c195c399d42fa14fbb37d0465a3">llvm_regexec</a>(preg, String.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>(), nmatch, pm.<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="regex__impl_8h.html#a343ef97b721e94f5cb1a8d2e742132b1">REG_STARTEND</a>);
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066   <span class="keywordflow">if</span> (rc == <a class="code" href="regex__impl_8h.html#a183aab34192b1bdc18a56e84759aa210">REG_NOMATCH</a>)
+<a name="l00067"></a>00067     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00068"></a>00068   <span class="keywordflow">if</span> (rc != 0) {
+<a name="l00069"></a>00069     <span class="comment">// regexec can fail due to invalid pattern or running out of memory.</span>
+<a name="l00070"></a>00070     error = rc;
+<a name="l00071"></a>00071     <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00072"></a>00072   }
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074   <span class="comment">// There was a match.</span>
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076   <span class="keywordflow">if</span> (Matches) { <span class="comment">// match position requested</span>
+<a name="l00077"></a>00077     Matches-><a class="code" href="classllvm_1_1SmallVectorImpl.html#aac0ea55010b7b1a301e65a0baea057aa">clear</a>();
+<a name="l00078"></a>00078     
+<a name="l00079"></a>00079     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != nmatch; ++i) {
+<a name="l00080"></a>00080       <span class="keywordflow">if</span> (pm[i].rm_so == -1) {
+<a name="l00081"></a>00081         <span class="comment">// this group didn't match</span>
+<a name="l00082"></a>00082         Matches-><a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a>());
+<a name="l00083"></a>00083         <span class="keywordflow">continue</span>;
+<a name="l00084"></a>00084       }
+<a name="l00085"></a>00085       assert(pm[i].rm_eo >= pm[i].rm_so);
+<a name="l00086"></a>00086       Matches-><a class="code" href="classllvm_1_1SmallVectorTemplateBase.html#ae1a10b90f22c0478960fb5798ff73916">push_back</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a>(String.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>()+pm[i].rm_so,
+<a name="l00087"></a>00087                                    pm[i].rm_eo-pm[i].rm_so));
+<a name="l00088"></a>00088     }
+<a name="l00089"></a>00089   }
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091   <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093 
+<a name="l00094"></a><a class="code" href="classllvm_1_1Regex.html#a4a0c44a401f1d07ecc55a9a733093479">00094</a> std::string <a class="code" href="classllvm_1_1Regex.html#a4a0c44a401f1d07ecc55a9a733093479">Regex::sub</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> Repl, <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a394bf05139245f8e3ee22865dc9c1caf">String</a>,
+<a name="l00095"></a>00095                        std::string *<a class="code" href="namespacellvm_1_1lltok.html#af353621f14cb4b4b3af5ffaff84076b1a3766a4dce43f4efc7208a749cc7ac605">Error</a>) {
+<a name="l00096"></a>00096   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 8></a> Matches;
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098   <span class="comment">// Reset error, if given.</span>
+<a name="l00099"></a>00099   <span class="keywordflow">if</span> (Error && !Error->empty()) *Error = <span class="stringliteral">""</span>;
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101   <span class="comment">// Return the input if there was no match.</span>
+<a name="l00102"></a>00102   <span class="keywordflow">if</span> (!<a class="code" href="classllvm_1_1Regex.html#a1ab84e9351dde64d69216811cba19ec1">match</a>(String, &Matches))
+<a name="l00103"></a>00103     <span class="keywordflow">return</span> String;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105   <span class="comment">// Otherwise splice in the replacement string, starting with the prefix before</span>
+<a name="l00106"></a>00106   <span class="comment">// the match.</span>
+<a name="l00107"></a>00107   std::string Res(String.<a class="code" href="classllvm_1_1StringRef.html#a4a0abf8eb4fa5989df63172649cba99f">begin</a>(), Matches[0].<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a8a045d250952c0867382a9840ee18fdf">begin</a>());
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109   <span class="comment">// Then the replacement string, honoring possible substitutions.</span>
+<a name="l00110"></a>00110   <span class="keywordflow">while</span> (!Repl.<a class="code" href="classllvm_1_1StringRef.html#ad7e292682516000f8b472f4510a2acf7" title="empty - Check if the string is empty.">empty</a>()) {
+<a name="l00111"></a>00111     <span class="comment">// Skip to the next escape.</span>
+<a name="l00112"></a>00112     std::pair<StringRef, StringRef> <a class="code" href="SubtargetFeature_8cpp.html#aea2f934ca74dd1ab539c92107416777e">Split</a> = Repl.<a class="code" href="classllvm_1_1StringRef.html#a4bcce769239a53df854d89c4e08d0b41">split</a>(<span class="charliteral">'\\'</span>);
+<a name="l00113"></a>00113 
+<a name="l00114"></a>00114     <span class="comment">// Add the skipped substring.</span>
+<a name="l00115"></a>00115     Res += Split.first;
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117     <span class="comment">// Check for terminimation and trailing backslash.</span>
+<a name="l00118"></a>00118     <span class="keywordflow">if</span> (Split.second.empty()) {
+<a name="l00119"></a>00119       <span class="keywordflow">if</span> (Repl.<a class="code" href="classllvm_1_1StringRef.html#af68d5ebdb576d7481ea2766151b875d4" title="size - Get the string size.">size</a>() != Split.first.size() &&
+<a name="l00120"></a>00120           Error && Error->empty())
+<a name="l00121"></a>00121         *Error = <span class="stringliteral">"replacement string contained trailing backslash"</span>;
+<a name="l00122"></a>00122       <span class="keywordflow">break</span>;
+<a name="l00123"></a>00123     }
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125     <span class="comment">// Otherwise update the replacement string and interpret escapes.</span>
+<a name="l00126"></a>00126     Repl = Split.second;
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <span class="comment">// FIXME: We should have a StringExtras function for mapping C99 escapes.</span>
+<a name="l00129"></a>00129     <span class="keywordflow">switch</span> (Repl[0]) {
+<a name="l00130"></a>00130       <span class="comment">// Treat all unrecognized characters as self-quoting.</span>
+<a name="l00131"></a>00131     <span class="keywordflow">default</span>:
+<a name="l00132"></a>00132       Res += Repl[0];
+<a name="l00133"></a>00133       Repl = Repl.<a class="code" href="classllvm_1_1StringRef.html#a3d0712956e53687d1894ba17b84aeffa">substr</a>(1);
+<a name="l00134"></a>00134       <span class="keywordflow">break</span>;
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136       <span class="comment">// Single character escapes.</span>
+<a name="l00137"></a>00137     <span class="keywordflow">case</span> <span class="charliteral">'t'</span>:
+<a name="l00138"></a>00138       Res += <span class="charliteral">'\t'</span>;
+<a name="l00139"></a>00139       Repl = Repl.<a class="code" href="classllvm_1_1StringRef.html#a3d0712956e53687d1894ba17b84aeffa">substr</a>(1);
+<a name="l00140"></a>00140       <span class="keywordflow">break</span>;
+<a name="l00141"></a>00141     <span class="keywordflow">case</span> <span class="charliteral">'n'</span>:
+<a name="l00142"></a>00142       Res += <span class="charliteral">'\n'</span>;
+<a name="l00143"></a>00143       Repl = Repl.<a class="code" href="classllvm_1_1StringRef.html#a3d0712956e53687d1894ba17b84aeffa">substr</a>(1);
+<a name="l00144"></a>00144       <span class="keywordflow">break</span>;
+<a name="l00145"></a>00145 
+<a name="l00146"></a>00146       <span class="comment">// Decimal escapes are backreferences.</span>
+<a name="l00147"></a>00147     <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="l00148"></a>00148     <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="l00149"></a>00149       <span class="comment">// Extract the backreference number.</span>
+<a name="l00150"></a>00150       <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> Ref = Repl.<a class="code" href="classllvm_1_1StringRef.html#a84945a8050d1449eb630a7a1622aa76f">slice</a>(0, Repl.<a class="code" href="classllvm_1_1StringRef.html#ace8a9dc13034dc6a31a5dea627190c88">find_first_not_of</a>(<span class="stringliteral">"0123456789"</span>));
+<a name="l00151"></a>00151       Repl = Repl.<a class="code" href="classllvm_1_1StringRef.html#a3d0712956e53687d1894ba17b84aeffa">substr</a>(Ref.<a class="code" href="classllvm_1_1StringRef.html#af68d5ebdb576d7481ea2766151b875d4" title="size - Get the string size.">size</a>());
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153       <span class="keywordtype">unsigned</span> RefValue;
+<a name="l00154"></a>00154       <span class="keywordflow">if</span> (!Ref.<a class="code" href="classllvm_1_1StringRef.html#adabdc95b17da88a726555e8718151ac8">getAsInteger</a>(10, RefValue) &&
+<a name="l00155"></a>00155           RefValue < Matches.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>())
+<a name="l00156"></a>00156         Res += Matches[RefValue];
+<a name="l00157"></a>00157       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Error && Error->empty())
+<a name="l00158"></a>00158         *Error = <span class="stringliteral">"invalid backreference string '"</span> + Ref.<a class="code" href="classllvm_1_1StringRef.html#ab02cb6f4884b5c788efb97b6741dccaf" title="str - Get the contents as an std::string.">str</a>() + <span class="stringliteral">"'"</span>;
+<a name="l00159"></a>00159       <span class="keywordflow">break</span>;
+<a name="l00160"></a>00160     }
+<a name="l00161"></a>00161     }
+<a name="l00162"></a>00162   }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164   <span class="comment">// And finally the suffix.</span>
+<a name="l00165"></a>00165   Res += <a class="code" href="classllvm_1_1StringRef.html">StringRef</a>(Matches[0].<a class="code" href="namespacellvm_1_1sys_1_1path.html#a214ec2f04ffd92636ed4bd2717607a1d" title="Get end iterator over path.">end</a>(), String.<a class="code" href="classllvm_1_1StringRef.html#a9e277b660236bb0318b61ab9cdf60dc7">end</a>() - Matches[0].<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a075e34e98605d0e7c289763a104869ac">end</a>());
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167   <span class="keywordflow">return</span> Res;
+<a name="l00168"></a>00168 }
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:06 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/Regex_8h__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/Regex_8h__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/Regex_8h__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/Regex_8h__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+a3ca0c588d6ea24fb0cca86b54f3c859
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,15 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegionIterator.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="RegionInfo.cpp",height=0.2,width=0.4,color="black",URL="$RegionInfo_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="RegionPass.cpp",height=0.2,width=0.4,color="black",URL="$RegionPass_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="RegionPrinter.cpp",height=0.2,width=0.4,color="black",URL="$RegionPrinter_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="CodeExtractor.cpp",height=0.2,width=0.4,color="black",URL="$CodeExtractor_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionIterator_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,177 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegionIterator.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/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_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/Support/DataTypes.h",height=0.2,width=0.4,color="black",URL="$DataTypes_8h.html"];
+  Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="math.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="sys/types.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="inttypes.h",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="stdint.h",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node10 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node15 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Analysis/RegionInfo.h",height=0.2,width=0.4,color="black",URL="$RegionInfo_8h.html"];
+  Node16 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Analysis/DominanceFrontier.h",height=0.2,width=0.4,color="black",URL="$DominanceFrontier_8h.html"];
+  Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="black",URL="$Dominators_8h.html"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="llvm/Pass.h",height=0.2,width=0.4,color="red",URL="$Pass_8h.html"];
+  Node19 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Function.h",height=0.2,width=0.4,color="black",URL="$Function_8h.html"];
+  Node21 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="red",URL="$GlobalValue_8h.html"];
+  Node21 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node21 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Instruction.h",height=0.2,width=0.4,color="red",URL="$Instruction_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Instruction.def",height=0.2,width=0.4,color="grey75"];
+  Node24 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="red",URL="$Twine_8h.html"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Argument.h",height=0.2,width=0.4,color="red",URL="$Argument_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Attributes.h",height=0.2,width=0.4,color="red",URL="$Attributes_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node36 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="red",URL="$DenseMap_8h.html"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node38 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="red",URL="$DepthFirstIterator_8h.html"];
+  Node39 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node18 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node41 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node41 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="black",URL="$CFG_8h.html"];
+  Node43 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="black",URL="$InstrTypes_8h.html"];
+  Node44 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/OperandTraits.h",height=0.2,width=0.4,color="red",URL="$OperandTraits_8h.html"];
+  Node44 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/DerivedTypes.h",height=0.2,width=0.4,color="red",URL="$DerivedTypes_8h.html"];
+  Node46 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node47 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Analysis/PostDominators.h",height=0.2,width=0.4,color="black",URL="$PostDominators_8h.html"];
+  Node49 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node50 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionPass_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="RegionPass.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="RegionPass.cpp",height=0.2,width=0.4,color="black",URL="$RegionPass_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,172 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegionPass.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/Analysis/RegionInfo.h",height=0.2,width=0.4,color="black",URL="$RegionInfo_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Analysis/DominanceFrontier.h",height=0.2,width=0.4,color="black",URL="$DominanceFrontier_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="red",URL="$Dominators_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="black",URL="$PassSupport_8h.html"];
+  Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/PassRegistry.h",height=0.2,width=0.4,color="black",URL="$PassRegistry_8h.html"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node14 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/InitializePasses.h",height=0.2,width=0.4,color="black",URL="$InitializePasses_8h.html"];
+  Node12 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node22 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node24 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node26 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node25 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node24 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Function.h",height=0.2,width=0.4,color="black",URL="$Function_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/GlobalValue.h",height=0.2,width=0.4,color="black",URL="$GlobalValue_8h.html"];
+  Node31 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Constant.h",height=0.2,width=0.4,color="red",URL="$Constant_8h.html"];
+  Node30 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node30 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/BasicBlock.h",height=0.2,width=0.4,color="red",URL="$BasicBlock_8h.html"];
+  Node34 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Argument.h",height=0.2,width=0.4,color="red",URL="$Argument_8h.html"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Attributes.h",height=0.2,width=0.4,color="black",URL="$Attributes_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node36 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_8h.html"];
+  Node38 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node39 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node40 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node39 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node39 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node43 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Analysis/PostDominators.h",height=0.2,width=0.4,color="black",URL="$PostDominators_8h.html"];
+  Node46 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node47 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/PassManagers.h",height=0.2,width=0.4,color="black",URL="$PassManagers_8h.html"];
+  Node48 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/PrettyStackTrace.h",height=0.2,width=0.4,color="black",URL="$PrettyStackTrace_8h.html"];
+  Node49 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="deque",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionPass_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,182 @@
+<!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: RegionPass.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">RegionPass.h</div>  </div>
+</div>
+<div class="contents">
+<a href="RegionPass_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===- RegionPass.h - RegionPass class ------------------------------------===//</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 RegionPass class. All region based analysis,</span>
+<a name="l00011"></a>00011 <span class="comment">// optimization and transformation passes are derived from RegionPass.</span>
+<a name="l00012"></a>00012 <span class="comment">// This class is implemented following the some ideas of the LoopPass.h class.</span>
+<a name="l00013"></a>00013 <span class="comment">//</span>
+<a name="l00014"></a>00014 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 <span class="preprocessor">#ifndef LLVM_REGION_PASS_H</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_REGION_PASS_H</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="RegionInfo_8h.html">llvm/Analysis/RegionInfo.h</a>"</span>
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="Pass_8h.html">llvm/Pass.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="PassManagers_8h.html">llvm/PassManagers.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="Function_8h.html">llvm/Function.h</a>"</span>
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="preprocessor">#include <deque></span>
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>llvm {
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="keyword">class </span>RGPassManager;
+<a name="l00030"></a>00030 <span class="keyword">class </span>Function;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span>
+<a name="l00033"></a>00033 <span class="comment">/// @brief A pass that runs on each Region in a function.</span>
+<a name="l00034"></a>00034 <span class="comment">///</span>
+<a name="l00035"></a>00035 <span class="comment">/// RegionPass is managed by RGPassManager.</span>
+<a name="l00036"></a><a class="code" href="classllvm_1_1RegionPass.html">00036</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1RegionPass.html" title="A pass that runs on each Region in a function.">RegionPass</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1Pass.html">Pass</a> {
+<a name="l00037"></a>00037 <span class="keyword">public</span>:
+<a name="l00038"></a><a class="code" href="classllvm_1_1RegionPass.html#a64960c9ccfcfac1e3562564564c30c51">00038</a>   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1RegionPass.html#a64960c9ccfcfac1e3562564564c30c51">RegionPass</a>(<span class="keywordtype">char</span> &pid) : <a class="code" href="classllvm_1_1Pass.html">Pass</a>(<a class="code" href="namespacellvm.html#a0da955cbb4215ccd3e153c81e415b9d5a36f81b217fc99f02606d6c1e44e04815">PT_Region</a>, pid) {}
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040   <span class="comment">//===--------------------------------------------------------------------===//</span><span class="comment"></span>
+<a name="l00041"></a>00041 <span class="comment">  /// @name To be implemented by every RegionPass</span>
+<a name="l00042"></a>00042 <span class="comment">  ///</span>
+<a name="l00043"></a>00043 <span class="comment"></span><span class="comment">  //@{</span>
+<a name="l00044"></a>00044 <span class="comment"></span><span class="comment">  /// @brief Run the pass on a specific Region</span>
+<a name="l00045"></a>00045 <span class="comment"></span><span class="comment">  ///</span>
+<a name="l00046"></a>00046 <span class="comment"></span><span class="comment">  /// Accessing regions not contained in the current region is not allowed.</span>
+<a name="l00047"></a>00047 <span class="comment"></span><span class="comment">  ///</span>
+<a name="l00048"></a>00048 <span class="comment"></span><span class="comment">  /// @param R The region this pass is run on.</span>
+<a name="l00049"></a>00049 <span class="comment"></span><span class="comment">  /// @param RGM The RegionPassManager that manages this Pass.</span>
+<a name="l00050"></a>00050 <span class="comment"></span><span class="comment">  ///</span>
+<a name="l00051"></a>00051 <span class="comment"></span><span class="comment">  /// @return True if the pass modifies this Region.</span>
+<a name="l00052"></a>00052 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RegionPass.html#aebf6dc4e02bc6a1f544af50b8921ec2c" title="Run the pass on a specific Region.">runOnRegion</a>(<a class="code" href="classllvm_1_1Region.html" title="A single entry single exit Region.">Region</a> *R, <a class="code" href="classllvm_1_1RGPassManager.html" title="The pass manager to schedule RegionPasses.">RGPassManager</a> &RGM) = 0;
+<a name="l00053"></a>00053 <span class="comment"></span>
+<a name="l00054"></a>00054 <span class="comment">  /// @brief Get a pass to print the LLVM IR in the region.</span>
+<a name="l00055"></a>00055 <span class="comment">  ///</span>
+<a name="l00056"></a>00056 <span class="comment">  /// @param O      The ouput stream to print the Region.</span>
+<a name="l00057"></a>00057 <span class="comment">  /// @param Banner The banner to separate different printed passes.</span>
+<a name="l00058"></a>00058 <span class="comment">  ///</span>
+<a name="l00059"></a>00059 <span class="comment">  /// @return The pass to print the LLVM IR in the region.</span>
+<a name="l00060"></a>00060 <span class="comment"></span>  <a class="code" href="classllvm_1_1Pass.html">Pass</a> *<a class="code" href="classllvm_1_1RegionPass.html#aa857cad3bd221dc5aeec67cbde859461" title="Get a pass to print the LLVM IR in the region.">createPrinterPass</a>(<a class="code" href="classllvm_1_1raw__ostream.html">raw_ostream</a> &O, <span class="keyword">const</span> std::string &Banner) <span class="keyword">const</span>;
+<a name="l00061"></a>00061 
+<a name="l00062"></a><a class="code" href="classllvm_1_1RegionPass.html#a9d163acd3f3ae6afb96fc3d144dc1285">00062</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RegionPass.html#a9d163acd3f3ae6afb96fc3d144dc1285">doInitialization</a>(<a class="code" href="classllvm_1_1Region.html" title="A single entry single exit Region.">Region</a> *R, <a class="code" href="classllvm_1_1RGPassManager.html" title="The pass manager to schedule RegionPasses.">RGPassManager</a> &RGM) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00063"></a><a class="code" href="classllvm_1_1RegionPass.html#a851d1da395a59ef6201cd098b71f431e">00063</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RegionPass.html#a851d1da395a59ef6201cd098b71f431e">doFinalization</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }<span class="comment"></span>
+<a name="l00064"></a>00064 <span class="comment">  //@}</span>
+<a name="l00065"></a>00065 <span class="comment"></span>
+<a name="l00066"></a>00066   <span class="comment">//===--------------------------------------------------------------------===//</span><span class="comment"></span>
+<a name="l00067"></a>00067 <span class="comment">  /// @name PassManager API</span>
+<a name="l00068"></a>00068 <span class="comment">  ///</span>
+<a name="l00069"></a>00069 <span class="comment"></span><span class="comment">  //@{</span>
+<a name="l00070"></a>00070 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegionPass.html#a63c47468b6a8fec4a1bc0ddd4d4a589f" title="Check if available pass managers are suitable for this pass or not.">preparePassManager</a>(<a class="code" href="classllvm_1_1PMStack.html">PMStack</a> &PMS);
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegionPass.html#a1399fc82301c28b0c18cb4790f330d49" title="Assign pass manager to manage this pass.">assignPassManager</a>(<a class="code" href="classllvm_1_1PMStack.html">PMStack</a> &PMS,
+<a name="l00073"></a>00073     <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebb">PassManagerType</a> PMT = <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebba4f3dad21748b7d8280494f0389317358" title="RGPassManager.">PMT_RegionPassManager</a>);
+<a name="l00074"></a>00074 
+<a name="l00075"></a><a class="code" href="classllvm_1_1RegionPass.html#af5fc46477b6163d9d9f1ce258615e77e">00075</a>   <span class="keyword">virtual</span> <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebb">PassManagerType</a> <a class="code" href="classllvm_1_1RegionPass.html#af5fc46477b6163d9d9f1ce258615e77e" title="Return what kind of Pass Manager can manage this pass.">getPotentialPassManagerType</a>()<span class="keyword"> const </span>{
+<a name="l00076"></a>00076     <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebba4f3dad21748b7d8280494f0389317358" title="RGPassManager.">PMT_RegionPassManager</a>;
+<a name="l00077"></a>00077   }<span class="comment"></span>
+<a name="l00078"></a>00078 <span class="comment">  //@}</span>
+<a name="l00079"></a>00079 <span class="comment"></span>};
+<a name="l00080"></a>00080 <span class="comment"></span>
+<a name="l00081"></a>00081 <span class="comment">/// @brief The pass manager to schedule RegionPasses.</span>
+<a name="l00082"></a><a class="code" href="classllvm_1_1RGPassManager.html">00082</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1RGPassManager.html" title="The pass manager to schedule RegionPasses.">RGPassManager</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1FunctionPass.html">FunctionPass</a>, <span class="keyword">public</span> <a class="code" href="classllvm_1_1PMDataManager.html">PMDataManager</a> {
+<a name="l00083"></a>00083   std::deque<Region*> RQ;
+<a name="l00084"></a>00084   <span class="keywordtype">bool</span> skipThisRegion;
+<a name="l00085"></a>00085   <span class="keywordtype">bool</span> redoThisRegion;
+<a name="l00086"></a>00086   <a class="code" href="classllvm_1_1RegionInfo.html" title="Analysis that detects all canonical Regions.">RegionInfo</a> *RI;
+<a name="l00087"></a>00087   <a class="code" href="classllvm_1_1Region.html" title="A single entry single exit Region.">Region</a> *CurrentRegion;
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089 <span class="keyword">public</span>:
+<a name="l00090"></a><a class="code" href="classllvm_1_1RGPassManager.html#a54cd3d21f2c34100fb25d6ef4bbf881a">00090</a>   <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="classllvm_1_1RGPassManager.html#a54cd3d21f2c34100fb25d6ef4bbf881a">ID</a>;
+<a name="l00091"></a>00091   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1RGPassManager.html#a7b9ba45cb8358d1338d7ebfb3c7e0935">RGPassManager</a>();
+<a name="l00092"></a>00092 <span class="comment"></span>
+<a name="l00093"></a>00093 <span class="comment">  /// @brief Execute all of the passes scheduled for execution.</span>
+<a name="l00094"></a>00094 <span class="comment">  ///</span>
+<a name="l00095"></a>00095 <span class="comment">  /// @return True if any of the passes modifies the function.</span>
+<a name="l00096"></a>00096 <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1RGPassManager.html#acafdd2f4c3e163533c3a66d20671ebe3" title="Execute all of the passes scheduled for execution.">runOnFunction</a>(<a class="code" href="classllvm_1_1Function.html">Function</a> &<a class="code" href="LLParser_8cpp.html#a33ece1ef8074506a15d7f86eb76dbae6">F</a>);
+<a name="l00097"></a>00097 <span class="comment"></span>
+<a name="l00098"></a>00098 <span class="comment">  /// Pass Manager itself does not invalidate any analysis info.</span>
+<a name="l00099"></a>00099 <span class="comment">  /// RGPassManager needs RegionInfo.</span>
+<a name="l00100"></a>00100 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RGPassManager.html#a62489b6b83958ee3750942fd0d566740" title="Pass Manager itself does not invalidate any analysis info.">getAnalysisUsage</a>(<a class="code" href="classllvm_1_1AnalysisUsage.html">AnalysisUsage</a> &Info) <span class="keyword">const</span>;
+<a name="l00101"></a>00101 
+<a name="l00102"></a><a class="code" href="classllvm_1_1RGPassManager.html#ac11e2270c9133728c5b0c7aabbf65633">00102</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classllvm_1_1RGPassManager.html#ac11e2270c9133728c5b0c7aabbf65633">getPassName</a>()<span class="keyword"> const </span>{
+<a name="l00103"></a>00103     <span class="keywordflow">return</span> <span class="stringliteral">"Region Pass Manager"</span>;
+<a name="l00104"></a>00104   }
+<a name="l00105"></a>00105 
+<a name="l00106"></a><a class="code" href="classllvm_1_1RGPassManager.html#adb7ab627cc64cd506dabb1f50cba308f">00106</a>   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1PMDataManager.html">PMDataManager</a> *<a class="code" href="classllvm_1_1RGPassManager.html#adb7ab627cc64cd506dabb1f50cba308f">getAsPMDataManager</a>() { <span class="keywordflow">return</span> <span class="keyword">this</span>; }
+<a name="l00107"></a><a class="code" href="classllvm_1_1RGPassManager.html#a94debfd307e059d422625b9869f489e2">00107</a>   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1Pass.html">Pass</a> *<a class="code" href="classllvm_1_1RGPassManager.html#a94debfd307e059d422625b9869f489e2">getAsPass</a>() { <span class="keywordflow">return</span> <span class="keyword">this</span>; }
+<a name="l00108"></a>00108 <span class="comment"></span>
+<a name="l00109"></a>00109 <span class="comment">  /// @brief Print passes managed by this manager.</span>
+<a name="l00110"></a>00110 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RGPassManager.html#ae500bb2ca80629ea91e03ad35363d347" title="Print passes managed by this manager.">dumpPassStructure</a>(<span class="keywordtype">unsigned</span> Offset);
+<a name="l00111"></a>00111 <span class="comment"></span>
+<a name="l00112"></a>00112 <span class="comment">  /// @brief Get passes contained by this manager.</span>
+<a name="l00113"></a><a class="code" href="classllvm_1_1RGPassManager.html#a8f485e6f776f30bc266c6328d2e914ae">00113</a> <span class="comment"></span>  <a class="code" href="classllvm_1_1Pass.html">Pass</a> *<a class="code" href="classllvm_1_1RGPassManager.html#a8f485e6f776f30bc266c6328d2e914ae" title="Get passes contained by this manager.">getContainedPass</a>(<span class="keywordtype">unsigned</span> N) {
+<a name="l00114"></a>00114     assert(N < <a class="code" href="classllvm_1_1PMDataManager.html#a433bcef3e3a89059a3510632b640525d">PassVector</a>.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>() && <span class="stringliteral">"Pass number out of range!"</span>);
+<a name="l00115"></a>00115     <a class="code" href="classllvm_1_1Pass.html">Pass</a> *FP = <span class="keyword">static_cast<</span><a class="code" href="classllvm_1_1Pass.html">Pass</a> *<span class="keyword">></span>(<a class="code" href="classllvm_1_1PMDataManager.html#a433bcef3e3a89059a3510632b640525d">PassVector</a>[N]);
+<a name="l00116"></a>00116     <span class="keywordflow">return</span> FP;
+<a name="l00117"></a>00117   }
+<a name="l00118"></a>00118 
+<a name="l00119"></a><a class="code" href="classllvm_1_1RGPassManager.html#a8cb4e388467a93927193b48b1c494985">00119</a>   <span class="keyword">virtual</span> <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebb">PassManagerType</a> <a class="code" href="classllvm_1_1RGPassManager.html#a8cb4e388467a93927193b48b1c494985">getPassManagerType</a>()<span class="keyword"> const </span>{
+<a name="l00120"></a>00120     <span class="keywordflow">return</span> <a class="code" href="namespacellvm.html#a3948b4d0759f9852502b466d6cfb4ebba4f3dad21748b7d8280494f0389317358" title="RGPassManager.">PMT_RegionPassManager</a>;
+<a name="l00121"></a>00121   }
+<a name="l00122"></a>00122 };
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124 } <span class="comment">// End llvm namespace</span>
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:11 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/RegionPrinter_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegionPrinter_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegionPrinter_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegionPrinter_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,179 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegionPrinter.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/RegionInfo.h",height=0.2,width=0.4,color="black",URL="$RegionInfo_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/PointerIntPair.h",height=0.2,width=0.4,color="black",URL="$PointerIntPair_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/Support/DataTypes.h",height=0.2,width=0.4,color="red",URL="$DataTypes_8h.html"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="llvm/Analysis/DominanceFrontier.h",height=0.2,width=0.4,color="black",URL="$DominanceFrontier_8h.html"];
+  Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="llvm/Analysis/Dominators.h",height=0.2,width=0.4,color="red",URL="$Dominators_8h.html"];
+  Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="black",URL="$Atomic_8h.html"];
+  Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node14 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node9 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="black",URL="$PassAnalysisSupport_8h.html"];
+  Node16 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_8h.html"];
+  Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node20 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node17 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="red",URL="$StringRef_8h.html"];
+  Node26 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Function.h",height=0.2,width=0.4,color="red",URL="$Function_8h.html"];
+  Node27 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/DepthFirstIterator.h",height=0.2,width=0.4,color="black",URL="$DepthFirstIterator_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="black",URL="$SmallPtrSet_8h.html"];
+  Node30 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node28 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/CFG.h",height=0.2,width=0.4,color="black",URL="$CFG_8h.html"];
+  Node32 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/InstrTypes.h",height=0.2,width=0.4,color="red",URL="$InstrTypes_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="red",URL="$Twine_8h.html"];
+  Node34 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node35 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="map",height=0.2,width=0.4,color="grey75"];
+  Node7 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/Analysis/PostDominators.h",height=0.2,width=0.4,color="black",URL="$PostDominators_8h.html"];
+  Node37 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node38 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="red",URL="$MathExtras_8h.html"];
+  Node38 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Analysis/RegionIterator.h",height=0.2,width=0.4,color="black",URL="$RegionIterator_8h.html"];
+  Node40 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/Analysis/RegionPrinter.h",height=0.2,width=0.4,color="black",URL="$RegionPrinter_8h.html"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/Analysis/Passes.h",height=0.2,width=0.4,color="black",URL="$Analysis_2Passes_8h.html"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/Analysis/DOTGraphTraitsPass.h",height=0.2,width=0.4,color="black",URL="$DOTGraphTraitsPass_8h.html"];
+  Node43 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/Analysis/CFGPrinter.h",height=0.2,width=0.4,color="red",URL="$CFGPrinter_8h.html"];
+  Node44 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/ADT/Statistic.h",height=0.2,width=0.4,color="black",URL="$Statistic_8h.html"];
+  Node45 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/PostOrderIterator.h",height=0.2,width=0.4,color="black",URL="$PostOrderIterator_8h.html"];
+  Node46 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/CommandLine.h",height=0.2,width=0.4,color="black",URL="$CommandLine_8h.html"];
+  Node48 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node48 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="cstdarg",height=0.2,width=0.4,color="grey75"];
+  Node48 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,42 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegisterClassInfo.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="AggressiveAntiDepBreaker.cpp",height=0.2,width=0.4,color="black",URL="$AggressiveAntiDepBreaker_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="AllocationOrder.cpp",height=0.2,width=0.4,color="black",URL="$AllocationOrder_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="CriticalAntiDepBreaker.h",height=0.2,width=0.4,color="black",URL="$CriticalAntiDepBreaker_8h.html"];
+  Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="CriticalAntiDepBreaker.cpp",height=0.2,width=0.4,color="black",URL="$CriticalAntiDepBreaker_8cpp.html"];
+  Node4 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="PostRASchedulerList.cpp",height=0.2,width=0.4,color="black",URL="$PostRASchedulerList_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="MachineScheduler.cpp",height=0.2,width=0.4,color="black",URL="$MachineScheduler_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="RegAllocBase.h",height=0.2,width=0.4,color="black",URL="$RegAllocBase_8h.html"];
+  Node8 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="RegAllocBase.cpp",height=0.2,width=0.4,color="black",URL="$RegAllocBase_8cpp.html"];
+  Node8 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="RegAllocBasic.cpp",height=0.2,width=0.4,color="black",URL="$RegAllocBasic_8cpp.html"];
+  Node8 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="RegAllocGreedy.cpp",height=0.2,width=0.4,color="black",URL="$RegAllocGreedy_8cpp.html"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="RegAllocFast.cpp",height=0.2,width=0.4,color="black",URL="$RegAllocFast_8cpp.html"];
+  Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="RegisterClassInfo.cpp",height=0.2,width=0.4,color="black",URL="$RegisterClassInfo_8cpp.html"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="RegisterCoalescer.cpp",height=0.2,width=0.4,color="black",URL="$RegisterCoalescer_8cpp.html"];
+  Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="RegisterPressure.cpp",height=0.2,width=0.4,color="black",URL="$RegisterPressure_8cpp.html"];
+  Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="HexagonMachineScheduler.h",height=0.2,width=0.4,color="black",URL="$HexagonMachineScheduler_8h.html"];
+  Node16 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="HexagonMachineScheduler.cpp",height=0.2,width=0.4,color="black",URL="$HexagonMachineScheduler_8cpp.html"];
+  Node16 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="HexagonTargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$HexagonTargetMachine_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterClassInfo_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,170 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegisterClassInfo.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/ArrayRef.h",height=0.2,width=0.4,color="black",URL="$ArrayRef_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="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="llvm/ADT/BitVector.h",height=0.2,width=0.4,color="black",URL="$BitVector_8h.html"];
+  Node21 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> 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 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node23 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node23 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node23 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node27 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node24 [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 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node21 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$TargetRegisterInfo_8h.html"];
+  Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/MC/MCRegisterInfo.h",height=0.2,width=0.4,color="black",URL="$MCRegisterInfo_8h.html"];
+  Node31 -> 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 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node26 [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 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node7 [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 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node18 [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 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/CodeGen/MachineBasicBlock.h",height=0.2,width=0.4,color="black",URL="$MachineBasicBlock_8h.html"];
+  Node36 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="black",URL="$MachineInstr_8h.html"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/CodeGen/MachineOperand.h",height=0.2,width=0.4,color="black",URL="$MachineOperand_8h.html"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/MC/MCInstrDesc.h",height=0.2,width=0.4,color="black",URL="$MCInstrDesc_8h.html"];
+  Node39 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Target/TargetOpcodes.h",height=0.2,width=0.4,color="black",URL="$TargetOpcodes_8h.html"];
+  Node37 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/ilist.h",height=0.2,width=0.4,color="black",URL="$ilist_8h.html"];
+  Node41 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/ADT/ilist_node.h",height=0.2,width=0.4,color="black",URL="$ilist__node_8h.html"];
+  Node37 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node43 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node43 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/InlineAsm.h",height=0.2,width=0.4,color="black",URL="$InlineAsm_8h.html"];
+  Node45 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/Value.h",height=0.2,width=0.4,color="red",URL="$Value_8h.html"];
+  Node46 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/DebugLoc.h",height=0.2,width=0.4,color="black",URL="$DebugLoc_8h.html"];
+  Node37 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/ADT/GraphTraits.h",height=0.2,width=0.4,color="black",URL="$GraphTraits_8h.html"];
+  Node36 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/CodeGen/ValueTypes.h",height=0.2,width=0.4,color="black",URL="$ValueTypes_8h.html"];
+  Node49 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node22 [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"];
+  Node49 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/CallingConv.h",height=0.2,width=0.4,color="black",URL="$CallingConv_8h.html"];
+  Node30 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegisterCoalescer_8cpp__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterCoalescer_8cpp__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterCoalescer_8cpp__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterCoalescer_8cpp__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,174 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegisterCoalescer.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="RegisterCoalescer.h",height=0.2,width=0.4,color="black",URL="$RegisterCoalescer_8h.html"];
+  Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="LiveDebugVariables.h",height=0.2,width=0.4,color="black",URL="$LiveDebugVariables_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="llvm/ADT/ArrayRef.h",height=0.2,width=0.4,color="red",URL="$ArrayRef_8h.html"];
+  Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="red",URL="$SmallVector_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="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node5 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="llvm/CodeGen/MachineFunctionPass.h",height=0.2,width=0.4,color="black",URL="$MachineFunctionPass_8h.html"];
+  Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/Pass.h",height=0.2,width=0.4,color="black",URL="$Pass_8h.html"];
+  Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node13 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/PassSupport.h",height=0.2,width=0.4,color="red",URL="$PassSupport_8h.html"];
+  Node15 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/Support/Atomic.h",height=0.2,width=0.4,color="red",URL="$Atomic_8h.html"];
+  Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/Valgrind.h",height=0.2,width=0.4,color="red",URL="$Valgrind_8h.html"];
+  Node17 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="llvm/PassAnalysisSupport.h",height=0.2,width=0.4,color="red",URL="$PassAnalysisSupport_8h.html"];
+  Node18 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="VirtRegMap.h",height=0.2,width=0.4,color="black",URL="$VirtRegMap_8h.html"];
+  Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="llvm/Target/TargetRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$TargetRegisterInfo_8h.html"];
+  Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node19 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/ADT/IndexedMap.h",height=0.2,width=0.4,color="red",URL="$IndexedMap_8h.html"];
+  Node22 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node23 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node22 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="llvm/Value.h",height=0.2,width=0.4,color="black",URL="$Value_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/Use.h",height=0.2,width=0.4,color="red",URL="$Use_8h.html"];
+  Node26 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/Support/Casting.h",height=0.2,width=0.4,color="red",URL="$Casting_8h.html"];
+  Node27 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node28 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/ADT/SmallSet.h",height=0.2,width=0.4,color="black",URL="$SmallSet_8h.html"];
+  Node29 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="llvm/ADT/SmallPtrSet.h",height=0.2,width=0.4,color="red",URL="$SmallPtrSet_8h.html"];
+  Node30 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="set",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/ADT/Statistic.h",height=0.2,width=0.4,color="black",URL="$Statistic_8h.html"];
+  Node32 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Analysis/AliasAnalysis.h",height=0.2,width=0.4,color="red",URL="$AliasAnalysis_8h.html"];
+  Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/Support/CallSite.h",height=0.2,width=0.4,color="red",URL="$CallSite_8h.html"];
+  Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/CodeGen/LiveIntervalAnalysis.h",height=0.2,width=0.4,color="red",URL="$LiveIntervalAnalysis_8h.html"];
+  Node35 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="cmath",height=0.2,width=0.4,color="grey75"];
+  Node35 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/CodeGen/LiveRangeEdit.h",height=0.2,width=0.4,color="red",URL="$LiveRangeEdit_8h.html"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Target/TargetMachine.h",height=0.2,width=0.4,color="red",URL="$Target_2TargetMachine_8h.html"];
+  Node38 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Target/TargetOptions.h",height=0.2,width=0.4,color="black",URL="$TargetOptions_8h.html"];
+  Node39 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/CodeGen/MachineFrameInfo.h",height=0.2,width=0.4,color="red",URL="$MachineFrameInfo_8h.html"];
+  Node40 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/CodeGen/MachineInstr.h",height=0.2,width=0.4,color="red",URL="$MachineInstr_8h.html"];
+  Node41 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="llvm/CodeGen/MachineLoopInfo.h",height=0.2,width=0.4,color="red",URL="$MachineLoopInfo_8h.html"];
+  Node42 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="llvm/CodeGen/MachineRegisterInfo.h",height=0.2,width=0.4,color="red",URL="$MachineRegisterInfo_8h.html"];
+  Node43 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/CodeGen/Passes.h",height=0.2,width=0.4,color="black",URL="$CodeGen_2Passes_8h.html"];
+  Node44 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/CodeGen/RegisterClassInfo.h",height=0.2,width=0.4,color="red",URL="$RegisterClassInfo_8h.html"];
+  Node45 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node20 [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 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node1 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="red",URL="$ErrorHandling_8h.html"];
+  Node48 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="red",URL="$raw__ostream_8h.html"];
+  Node49 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="llvm/Target/TargetInstrInfo.h",height=0.2,width=0.4,color="red",URL="$TargetInstrInfo_8h.html"];
+  Node50 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+}

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

Added: www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,101 @@
+<!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: RegisterScavenging.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="#define-members">Defines</a>  </div>
+  <div class="headertitle">
+<div class="title">RegisterScavenging.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="RegisterScavenging_8h_source.html">llvm/CodeGen/RegisterScavenging.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="MachineFunction_8h_source.html">llvm/CodeGen/MachineFunction.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineBasicBlock_8h_source.html">llvm/CodeGen/MachineBasicBlock.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineInstr_8h_source.html">llvm/CodeGen/MachineInstr.h</a>"</code><br/>
+<code>#include "<a class="el" href="MachineRegisterInfo_8h_source.html">llvm/CodeGen/MachineRegisterInfo.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/>
+<code>#include "<a class="el" href="TargetRegisterInfo_8h_source.html">llvm/Target/TargetRegisterInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="TargetInstrInfo_8h_source.html">llvm/Target/TargetInstrInfo.h</a>"</code><br/>
+<code>#include "<a class="el" href="Target_2TargetMachine_8h_source.html">llvm/Target/TargetMachine.h</a>"</code><br/>
+<code>#include "<a class="el" href="DenseMap_8h_source.html">llvm/ADT/DenseMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallPtrSet_8h_source.html">llvm/ADT/SmallPtrSet.h</a>"</code><br/>
+<code>#include "<a class="el" href="SmallVector_8h_source.html">llvm/ADT/SmallVector.h</a>"</code><br/>
+<code>#include "<a class="el" href="STLExtras_8h_source.html">llvm/ADT/STLExtras.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RegisterScavenging.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="RegisterScavenging_8cpp__incl.png" border="0" usemap="#RegisterScavenging_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="RegisterScavenging_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="RegisterScavenging_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "reg-scavenging"</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="RegisterScavenging.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "reg-scavenging"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="RegisterScavenging_8cpp_source.html#l00017">17</a> of file <a class="el" href="RegisterScavenging_8cpp_source.html">RegisterScavenging.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RegisterScavenging_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,45 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RegisterScavenging.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="BranchFolding.cpp",height=0.2,width=0.4,color="black",URL="$BranchFolding_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="PrologEpilogInserter.cpp",height=0.2,width=0.4,color="black",URL="$PrologEpilogInserter_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="RegisterScavenging.cpp",height=0.2,width=0.4,color="black",URL="$RegisterScavenging_8cpp.html"];
+  Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="TailDuplication.cpp",height=0.2,width=0.4,color="black",URL="$TailDuplication_8cpp.html"];
+  Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="ARMBaseRegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$ARMBaseRegisterInfo_8cpp.html"];
+  Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="ARMFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$ARMFrameLowering_8cpp.html"];
+  Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="ARMLoadStoreOptimizer.cpp",height=0.2,width=0.4,color="black",URL="$ARMLoadStoreOptimizer_8cpp.html"];
+  Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="Thumb1RegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$Thumb1RegisterInfo_8cpp.html"];
+  Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="SPUFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$SPUFrameLowering_8cpp.html"];
+  Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="SPURegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$SPURegisterInfo_8cpp.html"];
+  Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="HexagonFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$HexagonFrameLowering_8cpp.html"];
+  Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="HexagonHardwareLoops.cpp",height=0.2,width=0.4,color="black",URL="$HexagonHardwareLoops_8cpp.html"];
+  Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="HexagonRegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$HexagonRegisterInfo_8cpp.html"];
+  Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="MipsSEFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$MipsSEFrameLowering_8cpp.html"];
+  Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="PPCCTRLoops.cpp",height=0.2,width=0.4,color="black",URL="$PPCCTRLoops_8cpp.html"];
+  Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="PPCFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$PPCFrameLowering_8cpp.html"];
+  Node1 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node18 [label="PPCRegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$PPCRegisterInfo_8cpp.html"];
+  Node1 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="XCoreFrameLowering.cpp",height=0.2,width=0.4,color="black",URL="$XCoreFrameLowering_8cpp.html"];
+  Node1 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="XCoreRegisterInfo.cpp",height=0.2,width=0.4,color="black",URL="$XCoreRegisterInfo_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RegisterScavenging_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,223 @@
+<!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: RegisterScavenging.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">RegisterScavenging.h</div>  </div>
+</div>
+<div class="contents">
+<a href="RegisterScavenging_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- RegisterScavenging.h - Machine register scavenging ------*- 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 declares the machine register scavenger class. It can provide</span>
+<a name="l00011"></a>00011 <span class="comment">// information such as unused register at any point in a machine basic block.</span>
+<a name="l00012"></a>00012 <span class="comment">// It also provides a mechanism to make registers availbale by evicting them</span>
+<a name="l00013"></a>00013 <span class="comment">// to spill slots.</span>
+<a name="l00014"></a>00014 <span class="comment">//</span>
+<a name="l00015"></a>00015 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 <span class="preprocessor">#ifndef LLVM_CODEGEN_REGISTER_SCAVENGING_H</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CODEGEN_REGISTER_SCAVENGING_H</span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="MachineBasicBlock_8h.html">llvm/CodeGen/MachineBasicBlock.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="MachineRegisterInfo_8h.html">llvm/CodeGen/MachineRegisterInfo.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="BitVector_8h.html">llvm/ADT/BitVector.h</a>"</span>
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>llvm {
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">class </span>MachineRegisterInfo;
+<a name="l00027"></a>00027 <span class="keyword">class </span>TargetRegisterInfo;
+<a name="l00028"></a>00028 <span class="keyword">class </span>TargetInstrInfo;
+<a name="l00029"></a>00029 <span class="keyword">class </span>TargetRegisterClass;
+<a name="l00030"></a>00030 
+<a name="l00031"></a><a class="code" href="classllvm_1_1RegScavenger.html">00031</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1RegScavenger.html">RegScavenger</a> {
+<a name="l00032"></a>00032   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterInfo.html">TargetRegisterInfo</a> *TRI;
+<a name="l00033"></a>00033   <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetInstrInfo.html">TargetInstrInfo</a> *TII;
+<a name="l00034"></a>00034   <a class="code" href="classllvm_1_1MachineRegisterInfo.html">MachineRegisterInfo</a>* MRI;
+<a name="l00035"></a>00035   <a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *MBB;
+<a name="l00036"></a>00036   <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> MBBI;
+<a name="l00037"></a>00037   <span class="keywordtype">unsigned</span> NumPhysRegs;
+<a name="l00038"></a>00038 <span class="comment"></span>
+<a name="l00039"></a>00039 <span class="comment">  /// Tracking - True if RegScavenger is currently tracking the liveness of </span>
+<a name="l00040"></a>00040 <span class="comment">  /// registers.</span>
+<a name="l00041"></a>00041 <span class="comment"></span>  <span class="keywordtype">bool</span> Tracking;
+<a name="l00042"></a>00042 <span class="comment"></span>
+<a name="l00043"></a>00043 <span class="comment">  /// ScavengingFrameIndex - Special spill slot used for scavenging a register</span>
+<a name="l00044"></a>00044 <span class="comment">  /// post register allocation.</span>
+<a name="l00045"></a>00045 <span class="comment"></span>  <span class="keywordtype">int</span> ScavengingFrameIndex;
+<a name="l00046"></a>00046 <span class="comment"></span>
+<a name="l00047"></a>00047 <span class="comment">  /// ScavengedReg - If none zero, the specific register is currently being</span>
+<a name="l00048"></a>00048 <span class="comment">  /// scavenged. That is, it is spilled to the special scavenging stack slot.</span>
+<a name="l00049"></a>00049 <span class="comment"></span>  <span class="keywordtype">unsigned</span> ScavengedReg;
+<a name="l00050"></a>00050 <span class="comment"></span>
+<a name="l00051"></a>00051 <span class="comment">  /// ScavengedRC - Register class of the scavenged register.</span>
+<a name="l00052"></a>00052 <span class="comment">  ///</span>
+<a name="l00053"></a>00053 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *ScavengedRC;
+<a name="l00054"></a>00054 <span class="comment"></span>
+<a name="l00055"></a>00055 <span class="comment">  /// ScavengeRestore - Instruction that restores the scavenged register from</span>
+<a name="l00056"></a>00056 <span class="comment">  /// stack.</span>
+<a name="l00057"></a>00057 <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classllvm_1_1MachineInstr.html">MachineInstr</a> *ScavengeRestore;
+<a name="l00058"></a>00058 <span class="comment"></span>
+<a name="l00059"></a>00059 <span class="comment">  /// CalleeSavedrRegs - A bitvector of callee saved registers for the target.</span>
+<a name="l00060"></a>00060 <span class="comment">  ///</span>
+<a name="l00061"></a>00061 <span class="comment"></span>  <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> CalleeSavedRegs;
+<a name="l00062"></a>00062 <span class="comment"></span>
+<a name="l00063"></a>00063 <span class="comment">  /// RegsAvailable - The current state of all the physical registers immediately</span>
+<a name="l00064"></a>00064 <span class="comment">  /// before MBBI. One bit per physical register. If bit is set that means it's</span>
+<a name="l00065"></a>00065 <span class="comment">  /// available, unset means the register is currently being used.</span>
+<a name="l00066"></a>00066 <span class="comment"></span>  <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> RegsAvailable;
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068   <span class="comment">// These BitVectors are only used internally to forward(). They are members</span>
+<a name="l00069"></a>00069   <span class="comment">// to avoid frequent reallocations.</span>
+<a name="l00070"></a>00070   <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> KillRegs, DefRegs;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keyword">public</span>:
+<a name="l00073"></a><a class="code" href="classllvm_1_1RegScavenger.html#adb6602585e2a1822aab3fdedaae3c81b">00073</a>   <a class="code" href="classllvm_1_1RegScavenger.html#adb6602585e2a1822aab3fdedaae3c81b">RegScavenger</a>()
+<a name="l00074"></a>00074     : MBB(NULL), NumPhysRegs(0), Tracking(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>),
+<a name="l00075"></a>00075       ScavengingFrameIndex(-1), ScavengedReg(0), ScavengedRC(NULL) {}
+<a name="l00076"></a>00076 <span class="comment"></span>
+<a name="l00077"></a>00077 <span class="comment">  /// enterBasicBlock - Start tracking liveness from the begin of the specific</span>
+<a name="l00078"></a>00078 <span class="comment">  /// basic block.</span>
+<a name="l00079"></a>00079 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#a20ef9205cdd28f324f8b04cd8a6e2c0b">enterBasicBlock</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html">MachineBasicBlock</a> *mbb);
+<a name="l00080"></a>00080 <span class="comment"></span>
+<a name="l00081"></a>00081 <span class="comment">  /// initRegState - allow resetting register state info for multiple</span>
+<a name="l00082"></a>00082 <span class="comment">  /// passes over/within the same function.</span>
+<a name="l00083"></a>00083 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#a2020f1652e642f4fe86c56a27c159ac0">initRegState</a>();
+<a name="l00084"></a>00084 <span class="comment"></span>
+<a name="l00085"></a>00085 <span class="comment">  /// forward - Move the internal MBB iterator and update register states.</span>
+<a name="l00086"></a>00086 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#afe23dbb6421b62ff369b85cd8436d483" title="forward - Move the internal MBB iterator and update register states.">forward</a>();
+<a name="l00087"></a>00087 <span class="comment"></span>
+<a name="l00088"></a>00088 <span class="comment">  /// forward - Move the internal MBB iterator and update register states until</span>
+<a name="l00089"></a>00089 <span class="comment">  /// it has processed the specific iterator.</span>
+<a name="l00090"></a><a class="code" href="classllvm_1_1RegScavenger.html#a6f2274acea772dd09fc952ed400fde3d">00090</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#a6f2274acea772dd09fc952ed400fde3d">forward</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) {
+<a name="l00091"></a>00091     <span class="keywordflow">if</span> (!Tracking && MBB-><a class="code" href="classllvm_1_1MachineBasicBlock.html#ab2d91e7bec944efcbc39d8e30644f111">begin</a>() != <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) <a class="code" href="classllvm_1_1RegScavenger.html#afe23dbb6421b62ff369b85cd8436d483" title="forward - Move the internal MBB iterator and update register states.">forward</a>();
+<a name="l00092"></a>00092     <span class="keywordflow">while</span> (MBBI != I) <a class="code" href="classllvm_1_1RegScavenger.html#afe23dbb6421b62ff369b85cd8436d483" title="forward - Move the internal MBB iterator and update register states.">forward</a>();
+<a name="l00093"></a>00093   }
+<a name="l00094"></a>00094 <span class="comment"></span>
+<a name="l00095"></a>00095 <span class="comment">  /// skipTo - Move the internal MBB iterator but do not update register states.</span>
+<a name="l00096"></a>00096 <span class="comment">  ///</span>
+<a name="l00097"></a><a class="code" href="classllvm_1_1RegScavenger.html#a6009b68a4bb84dfeaad9d3afb28c39e8">00097</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#a6009b68a4bb84dfeaad9d3afb28c39e8">skipTo</a>(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>) { MBBI = <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>; }
+<a name="l00098"></a>00098 <span class="comment"></span>
+<a name="l00099"></a>00099 <span class="comment">  /// getRegsUsed - return all registers currently in use in used.</span>
+<a name="l00100"></a>00100 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#adf1066a889ca6e807f328e84a1731a5b" title="getRegsUsed - return all registers currently in use in used.">getRegsUsed</a>(<a class="code" href="classllvm_1_1BitVector.html">BitVector</a> &used, <span class="keywordtype">bool</span> includeReserved);
+<a name="l00101"></a>00101 <span class="comment"></span>
+<a name="l00102"></a>00102 <span class="comment">  /// getRegsAvailable - Return all available registers in the register class</span>
+<a name="l00103"></a>00103 <span class="comment">  /// in Mask.</span>
+<a name="l00104"></a>00104 <span class="comment"></span>  <a class="code" href="classllvm_1_1BitVector.html">BitVector</a> <a class="code" href="classllvm_1_1RegScavenger.html#afaf92711851d9d2abd2ef7f6c1b68bf8">getRegsAvailable</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RC);
+<a name="l00105"></a>00105 <span class="comment"></span>
+<a name="l00106"></a>00106 <span class="comment">  /// FindUnusedReg - Find a unused register of the specified register class.</span>
+<a name="l00107"></a>00107 <span class="comment">  /// Return 0 if none is found.</span>
+<a name="l00108"></a>00108 <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RegScavenger.html#a3254981145bf0eba65216d0d22f9d089">FindUnusedReg</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RegClass) <span class="keyword">const</span>;
+<a name="l00109"></a>00109 <span class="comment"></span>
+<a name="l00110"></a>00110 <span class="comment">  /// setScavengingFrameIndex / getScavengingFrameIndex - accessor and setter of</span>
+<a name="l00111"></a>00111 <span class="comment">  /// ScavengingFrameIndex.</span>
+<a name="l00112"></a><a class="code" href="classllvm_1_1RegScavenger.html#aa0230958e154a761beabce131f0ab33a">00112</a> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#aa0230958e154a761beabce131f0ab33a">setScavengingFrameIndex</a>(<span class="keywordtype">int</span> FI) { ScavengingFrameIndex = FI; }
+<a name="l00113"></a><a class="code" href="classllvm_1_1RegScavenger.html#a3d73ea5872af8b3961a51497d154f48d">00113</a>   <span class="keywordtype">int</span> <a class="code" href="classllvm_1_1RegScavenger.html#a3d73ea5872af8b3961a51497d154f48d">getScavengingFrameIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ScavengingFrameIndex; }
+<a name="l00114"></a>00114 <span class="comment"></span>
+<a name="l00115"></a>00115 <span class="comment">  /// scavengeRegister - Make a register of the specific register class</span>
+<a name="l00116"></a>00116 <span class="comment">  /// available and do the appropriate bookkeeping. SPAdj is the stack</span>
+<a name="l00117"></a>00117 <span class="comment">  /// adjustment due to call frame, it's passed along to eliminateFrameIndex().</span>
+<a name="l00118"></a>00118 <span class="comment">  /// Returns the scavenged register.</span>
+<a name="l00119"></a>00119 <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RegScavenger.html#a2134bf85be7643db8d1f65d6c9cdbe91">scavengeRegister</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RegClass,
+<a name="l00120"></a>00120                             <a class="code" href="classllvm_1_1MachineBasicBlock_1_1bundle__iterator.html">MachineBasicBlock::iterator</a> <a class="code" href="namespacellvm_1_1ARM__PROC.html#aac31dd660a6f18140efdd62b351cb11ba41e4a98ca287d35fab0923aa355d63a5">I</a>, <span class="keywordtype">int</span> SPAdj);
+<a name="l00121"></a><a class="code" href="classllvm_1_1RegScavenger.html#a7769202ceb2f55a680bbb6598d5d851a">00121</a>   <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RegScavenger.html#a7769202ceb2f55a680bbb6598d5d851a">scavengeRegister</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1TargetRegisterClass.html">TargetRegisterClass</a> *RegClass, <span class="keywordtype">int</span> SPAdj) {
+<a name="l00122"></a>00122     <span class="keywordflow">return</span> <a class="code" href="classllvm_1_1RegScavenger.html#a2134bf85be7643db8d1f65d6c9cdbe91">scavengeRegister</a>(RegClass, MBBI, SPAdj);
+<a name="l00123"></a>00123   }
+<a name="l00124"></a>00124 <span class="comment"></span>
+<a name="l00125"></a>00125 <span class="comment">  /// setUsed - Tell the scavenger a register is used.</span>
+<a name="l00126"></a>00126 <span class="comment">  ///</span>
+<a name="l00127"></a>00127 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#af9e12d41075c9a8a0c4aaa9fb12c69f8" title="setUsed - Set the register and its sub-registers as being used.">setUsed</a>(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>);
+<a name="l00128"></a>00128 <span class="keyword">private</span>:<span class="comment"></span>
+<a name="l00129"></a>00129 <span class="comment">  /// isReserved - Returns true if a register is reserved. It is never "unused".</span>
+<a name="l00130"></a>00130 <span class="comment"></span>  <span class="keywordtype">bool</span> isReserved(<span class="keywordtype">unsigned</span> <a class="code" href="X86DisassemblerDecoder_8h.html#a546839a5c4bcf9f9450967155f48de41">Reg</a>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> MRI-><a class="code" href="classllvm_1_1MachineRegisterInfo.html#a008f499ae277e4936b5b897ddb4bcb7e">isReserved</a>(Reg); }
+<a name="l00131"></a>00131 <span class="comment"></span>
+<a name="l00132"></a>00132 <span class="comment">  /// isUsed / isUnused - Test if a register is currently being used.</span>
+<a name="l00133"></a>00133 <span class="comment">  ///</span>
+<a name="l00134"></a>00134 <span class="comment"></span>  <span class="keywordtype">bool</span> isUsed(<span class="keywordtype">unsigned</span> Reg)<span class="keyword"> const   </span>{
+<a name="l00135"></a>00135     <span class="keywordflow">return</span> !RegsAvailable.test(Reg) || isReserved(Reg);
+<a name="l00136"></a>00136   }
+<a name="l00137"></a>00137 <span class="comment"></span>
+<a name="l00138"></a>00138 <span class="comment">  /// isAliasUsed - Is Reg or an alias currently in use?</span>
+<a name="l00139"></a>00139 <span class="comment"></span>  <span class="keywordtype">bool</span> isAliasUsed(<span class="keywordtype">unsigned</span> Reg) <span class="keyword">const</span>;
+<a name="l00140"></a>00140 <span class="comment"></span>
+<a name="l00141"></a>00141 <span class="comment">  /// setUsed / setUnused - Mark the state of one or a number of registers.</span>
+<a name="l00142"></a>00142 <span class="comment">  ///</span>
+<a name="l00143"></a>00143 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RegScavenger.html#af9e12d41075c9a8a0c4aaa9fb12c69f8" title="setUsed - Set the register and its sub-registers as being used.">setUsed</a>(BitVector &Regs) {
+<a name="l00144"></a>00144     RegsAvailable.reset(Regs);
+<a name="l00145"></a>00145   }
+<a name="l00146"></a>00146   <span class="keywordtype">void</span> setUnused(BitVector &Regs) {
+<a name="l00147"></a>00147     RegsAvailable |= Regs;
+<a name="l00148"></a>00148   }
+<a name="l00149"></a>00149 <span class="comment"></span>
+<a name="l00150"></a>00150 <span class="comment">  /// Add Reg and all its sub-registers to BV.</span>
+<a name="l00151"></a>00151 <span class="comment"></span>  <span class="keywordtype">void</span> addRegWithSubRegs(BitVector &BV, <span class="keywordtype">unsigned</span> Reg);
+<a name="l00152"></a>00152 <span class="comment"></span>
+<a name="l00153"></a>00153 <span class="comment">  /// findSurvivorReg - Return the candidate register that is unused for the</span>
+<a name="l00154"></a>00154 <span class="comment">  /// longest after StartMI. UseMI is set to the instruction where the search</span>
+<a name="l00155"></a>00155 <span class="comment">  /// stopped.</span>
+<a name="l00156"></a>00156 <span class="comment">  ///</span>
+<a name="l00157"></a>00157 <span class="comment">  /// No more than InstrLimit instructions are inspected.</span>
+<a name="l00158"></a>00158 <span class="comment"></span>  <span class="keywordtype">unsigned</span> findSurvivorReg(<a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> StartMI,
+<a name="l00159"></a>00159                            BitVector &Candidates,
+<a name="l00160"></a>00160                            <span class="keywordtype">unsigned</span> InstrLimit,
+<a name="l00161"></a>00161                            <a class="code" href="classllvm_1_1MachineBasicBlock.html#ac51be7ff80fe8d6ae5e8c0acb194908a">MachineBasicBlock::iterator</a> &UseMI);
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163 };
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165 } <span class="comment">// End llvm namespace</span>
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:15 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/RelocVisitor_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RelocVisitor_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RelocVisitor_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RelocVisitor_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,187 @@
+<!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: RelocVisitor.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_fa3da0d1c439c169ca6589bd79bc1aee.html">Object</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">RelocVisitor.h</div>  </div>
+</div>
+<div class="contents">
+<a href="RelocVisitor_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- RelocVisitor.h - Visitor for object file relocations -*- 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 provides a wrapper around all the different types of relocations</span>
+<a name="l00011"></a>00011 <span class="comment">// in different file formats, such that a client can handle them in a unified</span>
+<a name="l00012"></a>00012 <span class="comment">// manner by only implementing a minimal number of functions.</span>
+<a name="l00013"></a>00013 <span class="comment">//</span>
+<a name="l00014"></a>00014 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 <span class="preprocessor">#ifndef _LLVM_OBJECT_RELOCVISITOR</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define _LLVM_OBJECT_RELOCVISITOR</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include "<a class="code" href="Debug_8h.html">llvm/Support/Debug.h</a>"</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="raw__ostream_8h.html">llvm/Support/raw_ostream.h</a>"</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="ObjectFile_8h.html">llvm/Object/ObjectFile.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="Object_2ELF_8h.html">llvm/Object/ELF.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="StringRef_8h.html">llvm/ADT/StringRef.h</a>"</span>
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>llvm {
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>object {
+<a name="l00027"></a>00027 
+<a name="l00028"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html">00028</a> <span class="keyword">struct </span><a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> {
+<a name="l00029"></a>00029   <span class="comment">// The computed value after applying the relevant relocations.</span>
+<a name="l00030"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">00030</a>   <a class="code" href="classint64__t.html">int64_t</a> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">Value</a>;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032   <span class="comment">// The width of the value; how many bytes to touch when applying the</span>
+<a name="l00033"></a>00033   <span class="comment">// relocation.</span>
+<a name="l00034"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">00034</a>   <span class="keywordtype">char</span> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>;
+<a name="l00035"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html#af1b4be5d7759ac9faca6c33ac6fc7a01">00035</a>   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#af1b4be5d7759ac9faca6c33ac6fc7a01">RelocToApply</a>(<span class="keyword">const</span> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> &<a class="code" href="namespacellvm_1_1tgtok.html#abbc5259d649363016626e2529fabe0c5a5fa7b4069ef3bd1ceb9f2caa315cf5ac">In</a>) : <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>(In.<a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>), <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>(In.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>) {}
+<a name="l00036"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a8e396f92f63b92a919f61ed4eb62de4e">00036</a>   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a8e396f92f63b92a919f61ed4eb62de4e">RelocToApply</a>(<a class="code" href="classint64__t.html">int64_t</a> <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>, <span class="keywordtype">char</span> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>) : Value(Value), Width(Width) {}
+<a name="l00037"></a><a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a44ad1e5c0591dea438e5e4179ef836cc">00037</a>   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a44ad1e5c0591dea438e5e4179ef836cc">RelocToApply</a>() : <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>(0), <a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>(0) {}
+<a name="l00038"></a>00038 };
+<a name="l00039"></a>00039 <span class="comment"></span>
+<a name="l00040"></a>00040 <span class="comment">/// @brief Base class for object file relocation visitors.</span>
+<a name="l00041"></a><a class="code" href="classllvm_1_1object_1_1RelocVisitor.html">00041</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classllvm_1_1object_1_1RelocVisitor.html" title="Base class for object file relocation visitors.">RelocVisitor</a> {
+<a name="l00042"></a>00042 <span class="keyword">public</span>:
+<a name="l00043"></a><a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#afc851c2bea7bde218753c50670356f85">00043</a>   <span class="keyword">explicit</span> <a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#afc851c2bea7bde218753c50670356f85">RelocVisitor</a>(<a class="code" href="classllvm_1_1StringRef.html">llvm::StringRef</a> FileFormat)
+<a name="l00044"></a>00044     : FileFormat(FileFormat), HasError(<a class="code" href="AliasAnalysisEvaluator_8cpp.html#a3898a228575af19a9b2052f2b3677dce">false</a>) {}
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046   <span class="comment">// TODO: Should handle multiple applied relocations via either passing in the</span>
+<a name="l00047"></a>00047   <span class="comment">// previously computed value or just count paired relocations as a single</span>
+<a name="l00048"></a>00048   <span class="comment">// visit.</span>
+<a name="l00049"></a><a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#a35e3e647efd0832dbf679cb09f76a0a6">00049</a>   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> <a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#a35e3e647efd0832dbf679cb09f76a0a6">visit</a>(uint32_t RelocType, <a class="code" href="classllvm_1_1object_1_1RelocationRef.html">RelocationRef</a> R, uint64_t SecAddr = 0,
+<a name="l00050"></a>00050                      uint64_t <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a> = 0) {
+<a name="l00051"></a>00051     <span class="keywordflow">if</span> (FileFormat == <span class="stringliteral">"ELF64-x86-64"</span>) {
+<a name="l00052"></a>00052       <span class="keywordflow">switch</span> (RelocType) {
+<a name="l00053"></a>00053         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1ELF.html#ac030c26e9a32f2eed4f3c22e0a876dc0a8e6087d4fce2d8d821402140d87f15d4">llvm::ELF::R_X86_64_NONE</a>:
+<a name="l00054"></a>00054           <span class="keywordflow">return</span> visitELF_X86_64_NONE(R);
+<a name="l00055"></a>00055         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1ELF.html#ac030c26e9a32f2eed4f3c22e0a876dc0a2c1537e079a92db8e760d22a88839d19">llvm::ELF::R_X86_64_64</a>:
+<a name="l00056"></a>00056           <span class="keywordflow">return</span> visitELF_X86_64_64(R, <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>);
+<a name="l00057"></a>00057         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1ELF.html#ac030c26e9a32f2eed4f3c22e0a876dc0af25805513344fa4970316391a371fb0f">llvm::ELF::R_X86_64_PC32</a>:
+<a name="l00058"></a>00058           <span class="keywordflow">return</span> visitELF_X86_64_PC32(R, <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>, SecAddr);
+<a name="l00059"></a>00059         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1ELF.html#ac030c26e9a32f2eed4f3c22e0a876dc0ab168ad2a6e86420cc608e1b94765d4ed">llvm::ELF::R_X86_64_32</a>:
+<a name="l00060"></a>00060           <span class="keywordflow">return</span> visitELF_X86_64_32(R, <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>);
+<a name="l00061"></a>00061         <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1ELF.html#ac030c26e9a32f2eed4f3c22e0a876dc0a5e8c091b14e6c2b8b08535d632a565b0">llvm::ELF::R_X86_64_32S</a>:
+<a name="l00062"></a>00062           <span class="keywordflow">return</span> visitELF_X86_64_32S(R, <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>);
+<a name="l00063"></a>00063         <span class="keywordflow">default</span>:
+<a name="l00064"></a>00064           HasError = <span class="keyword">true</span>;
+<a name="l00065"></a>00065           <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a>();
+<a name="l00066"></a>00066       }
+<a name="l00067"></a>00067     }
+<a name="l00068"></a>00068     <span class="keywordflow">return</span> <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a>();
+<a name="l00069"></a>00069   }
+<a name="l00070"></a>00070 
+<a name="l00071"></a><a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#a14ee1887a6360aa917a14753a2b0f0c2">00071</a>   <span class="keywordtype">bool</span> <a class="code" href="classllvm_1_1object_1_1RelocVisitor.html#a14ee1887a6360aa917a14753a2b0f0c2">error</a>() { <span class="keywordflow">return</span> HasError; }
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="keyword">private</span>:
+<a name="l00074"></a>00074   <a class="code" href="classllvm_1_1StringRef.html">llvm::StringRef</a> FileFormat;
+<a name="l00075"></a>00075   <span class="keywordtype">bool</span> HasError;
+<a name="l00076"></a>00076 <span class="comment"></span>
+<a name="l00077"></a>00077 <span class="comment">  /// Operations</span>
+<a name="l00078"></a>00078 <span class="comment"></span>
+<a name="l00079"></a>00079   <span class="comment">// Width is the width in bytes of the extend.</span>
+<a name="l00080"></a>00080   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> zeroExtend(<a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> r, <span class="keywordtype">char</span> Width) {
+<a name="l00081"></a>00081     <span class="keywordflow">if</span> (Width == r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>)
+<a name="l00082"></a>00082       <span class="keywordflow">return</span> r;
+<a name="l00083"></a>00083     r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">Value</a> &= (1 << ((Width * 8))) - 1;
+<a name="l00084"></a>00084     <span class="keywordflow">return</span> r;
+<a name="l00085"></a>00085   }
+<a name="l00086"></a>00086   <a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> signExtend(<a class="code" href="structllvm_1_1object_1_1RelocToApply.html">RelocToApply</a> r, <span class="keywordtype">char</span> Width) {
+<a name="l00087"></a>00087     <span class="keywordflow">if</span> (Width == r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#ab24f6d65751718d692265c65d073c774">Width</a>)
+<a name="l00088"></a>00088       <span class="keywordflow">return</span> r;
+<a name="l00089"></a>00089     <span class="keywordtype">bool</span> SignBit = r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">Value</a> & (1 << ((Width * 8) - 1));
+<a name="l00090"></a>00090     <span class="keywordflow">if</span> (SignBit) {
+<a name="l00091"></a>00091       r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">Value</a> |= ~((1 << (Width * 8)) - 1);
+<a name="l00092"></a>00092     } <span class="keywordflow">else</span> {
+<a name="l00093"></a>00093       r.<a class="code" href="structllvm_1_1object_1_1RelocToApply.html#a176d8182a6cd8e0ef8489ebf609f96af">Value</a> &= (1 << (Width * 8)) - 1;
+<a name="l00094"></a>00094     }
+<a name="l00095"></a>00095     <span class="keywordflow">return</span> r;
+<a name="l00096"></a>00096   }
+<a name="l00097"></a>00097 <span class="comment"></span>
+<a name="l00098"></a>00098 <span class="comment">  /// X86-64 ELF</span>
+<a name="l00099"></a>00099 <span class="comment"></span>  RelocToApply visitELF_X86_64_NONE(RelocationRef R) {
+<a name="l00100"></a>00100     <span class="keywordflow">return</span> RelocToApply(0, 0);
+<a name="l00101"></a>00101   }
+<a name="l00102"></a>00102   RelocToApply visitELF_X86_64_64(RelocationRef R, uint64_t Value) {
+<a name="l00103"></a>00103     <a class="code" href="classint64__t.html">int64_t</a> Addend;
+<a name="l00104"></a>00104     R.getAdditionalInfo(Addend);
+<a name="l00105"></a>00105     <span class="keywordflow">return</span> RelocToApply(Value + Addend, 8);
+<a name="l00106"></a>00106   }
+<a name="l00107"></a>00107   RelocToApply visitELF_X86_64_PC32(RelocationRef R, uint64_t Value,
+<a name="l00108"></a>00108                                     uint64_t SecAddr) {
+<a name="l00109"></a>00109     <a class="code" href="classint64__t.html">int64_t</a> Addend;
+<a name="l00110"></a>00110     R.getAdditionalInfo(Addend);
+<a name="l00111"></a>00111     uint64_t Address;
+<a name="l00112"></a>00112     R.getAddress(Address);
+<a name="l00113"></a>00113     <span class="keywordflow">return</span> RelocToApply(Value + Addend - Address, 4);
+<a name="l00114"></a>00114   }
+<a name="l00115"></a>00115   RelocToApply visitELF_X86_64_32(RelocationRef R, uint64_t Value) {
+<a name="l00116"></a>00116     <a class="code" href="classint64__t.html">int64_t</a> Addend;
+<a name="l00117"></a>00117     R.getAdditionalInfo(Addend);
+<a name="l00118"></a>00118     uint32_t Res = (Value + Addend) & 0xFFFFFFFF;
+<a name="l00119"></a>00119     <span class="keywordflow">return</span> RelocToApply(Res, 4);
+<a name="l00120"></a>00120   }
+<a name="l00121"></a>00121   RelocToApply visitELF_X86_64_32S(RelocationRef R, uint64_t Value) {
+<a name="l00122"></a>00122     <a class="code" href="classint64__t.html">int64_t</a> Addend;
+<a name="l00123"></a>00123     R.getAdditionalInfo(Addend);
+<a name="l00124"></a>00124     int32_t Res = (Value + Addend) & 0xFFFFFFFF;
+<a name="l00125"></a>00125     <span class="keywordflow">return</span> RelocToApply(Res, 4);
+<a name="l00126"></a>00126   }
+<a name="l00127"></a>00127 };
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:21 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/ResourcePriorityQueue_8cpp__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8cpp__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8cpp__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8cpp__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+fada2d57213a294316e0dd0f1229c78e
\ No newline at end of file

Added: www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8h__dep__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8h__dep__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8h__dep__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/ResourcePriorityQueue_8h__dep__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,17 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="ResourcePriorityQueue.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="ResourcePriorityQueue.cpp",height=0.2,width=0.4,color="black",URL="$ResourcePriorityQueue_8cpp.html"];
+  Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="ScheduleDAGVLIW.cpp",height=0.2,width=0.4,color="black",URL="$ScheduleDAGVLIW_8cpp.html"];
+  Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="HexagonMachineScheduler.h",height=0.2,width=0.4,color="black",URL="$HexagonMachineScheduler_8h.html"];
+  Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="HexagonMachineScheduler.cpp",height=0.2,width=0.4,color="black",URL="$HexagonMachineScheduler_8cpp.html"];
+  Node4 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="HexagonTargetMachine.cpp",height=0.2,width=0.4,color="black",URL="$HexagonTargetMachine_8cpp.html"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8cpp.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8cpp.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8cpp.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8cpp.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,112 @@
+<!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: RuntimeDyldELF.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_0fde0067d6aa3912cdffe004d64d0f35.html">RuntimeDyld</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#define-members">Defines</a> |
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">RuntimeDyldELF.cpp File Reference</div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="RuntimeDyldELF_8h_source.html">RuntimeDyldELF.h</a>"</code><br/>
+<code>#include "<a class="el" href="JITRegistrar_8h_source.html">JITRegistrar.h</a>"</code><br/>
+<code>#include "<a class="el" href="ObjectImageCommon_8h_source.html">ObjectImageCommon.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="StringRef_8h_source.html">llvm/ADT/StringRef.h</a>"</code><br/>
+<code>#include "<a class="el" href="STLExtras_8h_source.html">llvm/ADT/STLExtras.h</a>"</code><br/>
+<code>#include "<a class="el" href="IntervalMap_8h_source.html">llvm/ADT/IntervalMap.h</a>"</code><br/>
+<code>#include "<a class="el" href="ObjectFile_8h_source.html">llvm/Object/ObjectFile.h</a>"</code><br/>
+<code>#include "<a class="el" href="ObjectImage_8h_source.html">llvm/ExecutionEngine/ObjectImage.h</a>"</code><br/>
+<code>#include "<a class="el" href="ObjectBuffer_8h_source.html">llvm/ExecutionEngine/ObjectBuffer.h</a>"</code><br/>
+<code>#include "<a class="el" href="Support_2ELF_8h_source.html">llvm/Support/ELF.h</a>"</code><br/>
+<code>#include "<a class="el" href="Triple_8h_source.html">llvm/ADT/Triple.h</a>"</code><br/>
+<code>#include "<a class="el" href="Object_2ELF_8h_source.html">llvm/Object/ELF.h</a>"</code><br/>
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for RuntimeDyldELF.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="RuntimeDyldELF_8cpp__incl.png" border="0" usemap="#RuntimeDyldELF_8cpp" alt=""/></div>
+<!-- MAP 0 -->
+</div>
+</div>
+<p><a href="RuntimeDyldELF_8cpp_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 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="RuntimeDyldELF_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">DEBUG_TYPE</a>   "dyld"</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 uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a9397f764b65ce0624b895f219508a2ce">llvm::applyPPClo</a> (uint64_t value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a2300967e2543c27c2e3e03e855b53676">llvm::applyPPChi</a> (uint64_t value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#ab07f6920e39735a55f8ca37d266ff180">llvm::applyPPChigher</a> (uint64_t value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacellvm.html#a4dc9eac0a1aed3e36adc084ed0dd4cbc">llvm::applyPPChighest</a> (uint64_t value)</td></tr>
+</table>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="ad78e062f62e0d6e453941fb4ca843e4d"></a><!-- doxytag: member="RuntimeDyldELF.cpp::DEBUG_TYPE" ref="ad78e062f62e0d6e453941fb4ca843e4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DEBUG_TYPE   "dyld"</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="RuntimeDyldELF_8cpp_source.html#l00014">14</a> of file <a class="el" href="RuntimeDyldELF_8cpp_source.html">RuntimeDyldELF.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:39:39 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/RuntimeDyldELF_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8h_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8h_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldELF_8h_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,153 @@
+<!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: RuntimeDyldELF.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_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_0fde0067d6aa3912cdffe004d64d0f35.html">RuntimeDyld</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">RuntimeDyldELF.h</div>  </div>
+</div>
+<div class="contents">
+<a href="RuntimeDyldELF_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- RuntimeDyldELF.h - Run-time dynamic linker for MC-JIT ---*- 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">// ELF support for MC-JIT runtime dynamic linker.</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_RUNTIME_DYLD_ELF_H</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define LLVM_RUNTIME_DYLD_ELF_H</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="RuntimeDyldImpl_8h.html">RuntimeDyldImpl.h</a>"</span>
+<a name="l00018"></a>00018 
+<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">namespace </span>llvm {
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>{
+<a name="l00024"></a>00024   <span class="comment">// Helper for extensive error checking in debug builds.</span>
+<a name="l00025"></a>00025   <a class="code" href="classllvm_1_1error__code.html">error_code</a> <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(<a class="code" href="classllvm_1_1error__code.html">error_code</a> Err) {
+<a name="l00026"></a>00026     <span class="keywordflow">if</span> (Err) {
+<a name="l00027"></a>00027       <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(Err.<a class="code" href="classllvm_1_1error__code.html#ace3c84d83642b8e2c421f45e59187c64">message</a>());
+<a name="l00028"></a>00028     }
+<a name="l00029"></a>00029     <span class="keywordflow">return</span> Err;
+<a name="l00030"></a>00030   }
+<a name="l00031"></a>00031 } <span class="comment">// end anonymous namespace</span>
+<a name="l00032"></a>00032 
+<a name="l00033"></a><a class="code" href="classllvm_1_1RuntimeDyldELF.html">00033</a> <span class="keyword">class </span><a class="code" href="classllvm_1_1RuntimeDyldELF.html">RuntimeDyldELF</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html">RuntimeDyldImpl</a> {
+<a name="l00034"></a>00034 <span class="keyword">protected</span>:
+<a name="l00035"></a>00035   <span class="keywordtype">void</span> resolveX86_64Relocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &<a class="code" href="namespaceARMBuildAttrs.html#a581f39eb005bdc4d441c23d019618810a21b40b2b4fda35a62949da46ddadd76b">Section</a>,
+<a name="l00036"></a>00036                                uint64_t Offset,
+<a name="l00037"></a>00037                                uint64_t <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>,
+<a name="l00038"></a>00038                                uint32_t <a class="code" href="classllvm_1_1Type.html">Type</a>,
+<a name="l00039"></a>00039                                <a class="code" href="classint64__t.html">int64_t</a> Addend);
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041   <span class="keywordtype">void</span> resolveX86Relocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &Section,
+<a name="l00042"></a>00042                             uint64_t Offset,
+<a name="l00043"></a>00043                             uint32_t Value,
+<a name="l00044"></a>00044                             uint32_t Type,
+<a name="l00045"></a>00045                             int32_t Addend);
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047   <span class="keywordtype">void</span> resolveARMRelocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &Section,
+<a name="l00048"></a>00048                             uint64_t Offset,
+<a name="l00049"></a>00049                             uint32_t Value,
+<a name="l00050"></a>00050                             uint32_t Type,
+<a name="l00051"></a>00051                             int32_t Addend);
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053   <span class="keywordtype">void</span> resolveMIPSRelocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &Section,
+<a name="l00054"></a>00054                              uint64_t Offset,
+<a name="l00055"></a>00055                              uint32_t Value,
+<a name="l00056"></a>00056                              uint32_t Type,
+<a name="l00057"></a>00057                              int32_t Addend);
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059   <span class="keywordtype">void</span> resolvePPC64Relocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &Section,
+<a name="l00060"></a>00060                               uint64_t Offset,
+<a name="l00061"></a>00061                               uint64_t Value,
+<a name="l00062"></a>00062                               uint32_t Type,
+<a name="l00063"></a>00063                               <a class="code" href="classint64__t.html">int64_t</a> Addend);
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065   <span class="keyword">virtual</span> <span class="keywordtype">void</span> resolveRelocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a> &Section,
+<a name="l00066"></a>00066                                  uint64_t Offset,
+<a name="l00067"></a>00067                                  uint64_t Value,
+<a name="l00068"></a>00068                                  uint32_t Type,
+<a name="l00069"></a>00069                                  <a class="code" href="classint64__t.html">int64_t</a> Addend);
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071   <span class="keyword">virtual</span> <span class="keywordtype">void</span> processRelocationRef(<span class="keyword">const</span> <a class="code" href="classllvm_1_1ObjRelocationInfo.html">ObjRelocationInfo</a> &Rel,
+<a name="l00072"></a>00072                                     <a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> &Obj,
+<a name="l00073"></a>00073                                     <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a22b1a24bb422a0f0896dd84dff7933e2">ObjSectionToIDMap</a> &ObjSectionToID,
+<a name="l00074"></a>00074                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1StringMap.html">SymbolTableMap</a> &Symbols,
+<a name="l00075"></a>00075                                     <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a45d3097b94f4f98303ae36e6c6b7eee6">StubMap</a> &Stubs);
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077   <span class="keywordtype">unsigned</span> getCommonSymbolAlignment(<span class="keyword">const</span> <a class="code" href="classllvm_1_1object_1_1SymbolRef.html">SymbolRef</a> &Sym);
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> *createObjectImage(<a class="code" href="classllvm_1_1ObjectBuffer.html">ObjectBuffer</a> *InputBuffer);
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081   uint64_t findPPC64TOC() <span class="keyword">const</span>;
+<a name="l00082"></a>00082   <span class="keywordtype">void</span> findOPDEntrySection(<a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> &Obj,
+<a name="l00083"></a>00083                            <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a22b1a24bb422a0f0896dd84dff7933e2">ObjSectionToIDMap</a> &LocalSections,
+<a name="l00084"></a>00084                            <a class="code" href="classllvm_1_1RelocationValueRef.html">RelocationValueRef</a> &Rel);
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="keyword">public</span>:
+<a name="l00087"></a><a class="code" href="classllvm_1_1RuntimeDyldELF.html#a806d3de3111f3920437e3048289c464a">00087</a>   <a class="code" href="classllvm_1_1RuntimeDyldELF.html">RuntimeDyldELF</a>(<a class="code" href="classllvm_1_1RTDyldMemoryManager.html">RTDyldMemoryManager</a> *mm)
+<a name="l00088"></a>00088       : <a class="code" href="classllvm_1_1RuntimeDyldImpl.html">RuntimeDyldImpl</a>(mm) {}
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090   <span class="keyword">virtual</span> ~<a class="code" href="classllvm_1_1RuntimeDyldELF.html">RuntimeDyldELF</a>();
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092   <span class="keywordtype">bool</span> isCompatibleFormat(<span class="keyword">const</span> <a class="code" href="classllvm_1_1ObjectBuffer.html">ObjectBuffer</a> *Buffer) <span class="keyword">const</span>;
+<a name="l00093"></a>00093 };
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 } <span class="comment">// end namespace llvm</span>
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:22 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/RuntimeDyldImpl_8h__dep__incl.md5
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldImpl_8h__dep__incl.md5?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldImpl_8h__dep__incl.md5 (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldImpl_8h__dep__incl.md5 Fri Dec 21 00:57:24 2012
@@ -0,0 +1 @@
+757118ac978d5aa7045584b202c84659
\ No newline at end of file

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

Added: www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldMachO_8h__incl.dot
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldMachO_8h__incl.dot?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldMachO_8h__incl.dot (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyldMachO_8h__incl.dot Fri Dec 21 00:57:24 2012
@@ -0,0 +1,182 @@
+digraph G
+{
+  bgcolor="transparent";
+  edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+  node [fontname="FreeSans",fontsize="10",shape=record];
+  Node1 [label="RuntimeDyldMachO.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/IndexedMap.h",height=0.2,width=0.4,color="black",URL="$IndexedMap_8h.html"];
+  Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node3 [label="llvm/ADT/STLExtras.h",height=0.2,width=0.4,color="black",URL="$STLExtras_8h.html"];
+  Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node4 [label="cstddef",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node5 [label="cstdlib",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node6 [label="functional",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node7 [label="iterator",height=0.2,width=0.4,color="grey75"];
+  Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node8 [label="utility",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node9 [label="cassert",height=0.2,width=0.4,color="grey75"];
+  Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node10 [label="vector",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 [label="llvm/Object/MachOObject.h",height=0.2,width=0.4,color="black",URL="$MachOObject_8h.html"];
+  Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node12 [label="string",height=0.2,width=0.4,color="grey75"];
+  Node11 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node13 [label="llvm/ADT/InMemoryStruct.h",height=0.2,width=0.4,color="black",URL="$InMemoryStruct_8h.html"];
+  Node13 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 [label="llvm/ADT/OwningPtr.h",height=0.2,width=0.4,color="black",URL="$OwningPtr_8h.html"];
+  Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node15 [label="llvm/Support/Compiler.h",height=0.2,width=0.4,color="black",URL="$Compiler_8h.html"];
+  Node14 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node14 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 [label="llvm/ADT/StringRef.h",height=0.2,width=0.4,color="black",URL="$StringRef_8h.html"];
+  Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 [label="llvm/Support/type_traits.h",height=0.2,width=0.4,color="black",URL="$type__traits_8h.html"];
+  Node17 -> 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"];
+  Node17 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node17 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node19 [label="algorithm",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node20 [label="cstring",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node21 [label="limits",height=0.2,width=0.4,color="grey75"];
+  Node16 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node16 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node11 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node22 [label="llvm/Object/MachOFormat.h",height=0.2,width=0.4,color="black",URL="$MachOFormat_8h.html"];
+  Node22 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node1 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 [label="llvm/Support/Format.h",height=0.2,width=0.4,color="black",URL="$Format_8h.html"];
+  Node23 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node24 [label="cstdio",height=0.2,width=0.4,color="grey75"];
+  Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 [label="RuntimeDyldImpl.h",height=0.2,width=0.4,color="black",URL="$RuntimeDyldImpl_8h.html"];
+  Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 [label="llvm/ExecutionEngine/RuntimeDyld.h",height=0.2,width=0.4,color="black",URL="$RuntimeDyld_8h.html"];
+  Node26 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 [label="llvm/ExecutionEngine/ObjectBuffer.h",height=0.2,width=0.4,color="red",URL="$ObjectBuffer_8h.html"];
+  Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 [label="llvm/ADT/SmallVector.h",height=0.2,width=0.4,color="black",URL="$SmallVector_8h.html"];
+  Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 [label="llvm/Support/AlignOf.h",height=0.2,width=0.4,color="black",URL="$AlignOf_8h.html"];
+  Node29 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node29 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node28 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node30 [label="memory",height=0.2,width=0.4,color="grey75"];
+  Node27 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node27 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 [label="llvm/Support/raw_ostream.h",height=0.2,width=0.4,color="black",URL="$raw__ostream_8h.html"];
+  Node31 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node31 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node26 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 [label="llvm/Support/Memory.h",height=0.2,width=0.4,color="black",URL="$Memory_8h.html"];
+  Node32 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 [label="llvm/Support/system_error.h",height=0.2,width=0.4,color="red",URL="$system__error_8h.html"];
+  Node33 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node33 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node32 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 [label="llvm/ExecutionEngine/ObjectImage.h",height=0.2,width=0.4,color="black",URL="$ObjectImage_8h.html"];
+  Node34 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 [label="llvm/Object/ObjectFile.h",height=0.2,width=0.4,color="red",URL="$ObjectFile_8h.html"];
+  Node35 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 [label="llvm/Support/ErrorHandling.h",height=0.2,width=0.4,color="black",URL="$ErrorHandling_8h.html"];
+  Node36 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node36 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node35 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node34 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 [label="llvm/ADT/DenseMap.h",height=0.2,width=0.4,color="black",URL="$DenseMap_8h.html"];
+  Node37 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node38 [label="llvm/Support/MathExtras.h",height=0.2,width=0.4,color="black",URL="$MathExtras_8h.html"];
+  Node38 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 [label="llvm/Support/SwapByteOrder.h",height=0.2,width=0.4,color="black",URL="$SwapByteOrder_8h.html"];
+  Node39 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node39 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node40 [label="llvm/Support/PointerLikeTypeTraits.h",height=0.2,width=0.4,color="black",URL="$PointerLikeTypeTraits_8h.html"];
+  Node40 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 [label="llvm/ADT/DenseMapInfo.h",height=0.2,width=0.4,color="black",URL="$DenseMapInfo_8h.html"];
+  Node41 -> Node40 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node41 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node42 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node42 [label="new",height=0.2,width=0.4,color="grey75"];
+  Node37 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node43 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node43 [label="climits",height=0.2,width=0.4,color="grey75"];
+  Node37 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node37 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 [label="llvm/ADT/StringMap.h",height=0.2,width=0.4,color="black",URL="$StringMap_8h.html"];
+  Node44 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node45 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 [label="llvm/Support/Allocator.h",height=0.2,width=0.4,color="black",URL="$Allocator_8h.html"];
+  Node45 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node45 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node44 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node46 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node46 [label="llvm/ADT/Triple.h",height=0.2,width=0.4,color="black",URL="$Triple_8h.html"];
+  Node46 -> Node47 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 [label="llvm/ADT/Twine.h",height=0.2,width=0.4,color="black",URL="$Twine_8h.html"];
+  Node47 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node47 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node48 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node48 [label="llvm/Support/Debug.h",height=0.2,width=0.4,color="black",URL="$Debug_8h.html"];
+  Node25 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node49 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 [label="llvm/Support/Host.h",height=0.2,width=0.4,color="black",URL="$Host_8h.html"];
+  Node49 -> Node44 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node49 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node25 -> Node50 [color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+  Node50 [label="map",height=0.2,width=0.4,color="grey75"];
+}

Added: www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyld_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyld_8cpp_source.html?rev=170845&view=auto
==============================================================================
--- www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyld_8cpp_source.html (added)
+++ www-releases/trunk/3.2/docs/doxygen/html/RuntimeDyld_8cpp_source.html Fri Dec 21 00:57:24 2012
@@ -0,0 +1,582 @@
+<!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: RuntimeDyld.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_0fde0067d6aa3912cdffe004d64d0f35.html">RuntimeDyld</a>      </li>
+    </ul>
+  </div>
+</div>
+<div class="header">
+  <div class="headertitle">
+<div class="title">RuntimeDyld.cpp</div>  </div>
+</div>
+<div class="contents">
+<a href="RuntimeDyld_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//===-- RuntimeDyld.cpp - Run-time dynamic linker for MC-JIT ----*- 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">// Implementation of the MC-JIT runtime dynamic linker.</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><a class="code" href="RuntimeDyld_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d">00014</a> <span class="preprocessor">#define DEBUG_TYPE "dyld"</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="ObjectImageCommon_8h.html">ObjectImageCommon.h</a>"</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="RuntimeDyldImpl_8h.html">RuntimeDyldImpl.h</a>"</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="RuntimeDyldELF_8h.html">RuntimeDyldELF.h</a>"</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="RuntimeDyldMachO_8h.html">RuntimeDyldMachO.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 <span class="preprocessor">#include "<a class="code" href="MathExtras_8h.html">llvm/Support/MathExtras.h</a>"</span>
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="keyword">using namespace </span>llvm;
+<a name="l00023"></a>00023 <span class="keyword">using namespace </span>llvm::object;
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="comment">// Empty out-of-line virtual destructor as the key function.</span>
+<a name="l00026"></a><a class="code" href="classllvm_1_1RTDyldMemoryManager.html#ae4cd6caee83f0f68b4b24e3fe21bce57">00026</a> <a class="code" href="classllvm_1_1RTDyldMemoryManager.html#ae4cd6caee83f0f68b4b24e3fe21bce57">RTDyldMemoryManager::~RTDyldMemoryManager</a>() {}
+<a name="l00027"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a6ca2b002382c6a083995e5c0307a388d">00027</a> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a6ca2b002382c6a083995e5c0307a388d">RuntimeDyldImpl::~RuntimeDyldImpl</a>() {}
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="keyword">namespace </span>llvm {
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <span class="comment">// Resolve the relocations for all symbols we currently know about.</span>
+<a name="l00032"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#af32873ce4ce9becfcc874f9d34f0d793">00032</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#af32873ce4ce9becfcc874f9d34f0d793">RuntimeDyldImpl::resolveRelocations</a>() {
+<a name="l00033"></a>00033   <span class="comment">// First, resolve relocations associated with external symbols.</span>
+<a name="l00034"></a>00034   resolveExternalSymbols();
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036   <span class="comment">// Just iterate over the sections we have and resolve all the relocations</span>
+<a name="l00037"></a>00037   <span class="comment">// in them. Gross overkill, but it gets the job done.</span>
+<a name="l00038"></a>00038   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = Sections.size(); i != e; ++i) {
+<a name="l00039"></a>00039     uint64_t Addr = Sections[i].LoadAddress;
+<a name="l00040"></a>00040     <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">"Resolving relocations Section #"</span> << i
+<a name="l00041"></a>00041             << <span class="stringliteral">"\t"</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, (uint8_t *)Addr)
+<a name="l00042"></a>00042             << <span class="stringliteral">"\n"</span>);
+<a name="l00043"></a>00043     resolveRelocationList(Relocations[i], Addr);
+<a name="l00044"></a>00044   }
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 
+<a name="l00047"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a04d08776ab3e7bfefea4fed7b22c6613">00047</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a04d08776ab3e7bfefea4fed7b22c6613">RuntimeDyldImpl::mapSectionAddress</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *LocalAddress,
+<a name="l00048"></a>00048                                         uint64_t TargetAddress) {
+<a name="l00049"></a>00049   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Sections.size(); i != e; ++i) {
+<a name="l00050"></a>00050     <span class="keywordflow">if</span> (Sections[i].Address == LocalAddress) {
+<a name="l00051"></a>00051       reassignSectionAddress(i, TargetAddress);
+<a name="l00052"></a>00052       <span class="keywordflow">return</span>;
+<a name="l00053"></a>00053     }
+<a name="l00054"></a>00054   }
+<a name="l00055"></a>00055   <a class="code" href="ErrorHandling_8h.html#ace243f5c25697a1107cce46626b3dc94">llvm_unreachable</a>(<span class="stringliteral">"Attempting to remap address of unknown section!"</span>);
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 <span class="comment">// Subclasses can implement this method to create specialized image instances.</span>
+<a name="l00059"></a>00059 <span class="comment">// The caller owns the pointer that is returned.</span>
+<a name="l00060"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a3ba5b6228f944e7489c3aa28480b5720">00060</a> <a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> *<a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a3ba5b6228f944e7489c3aa28480b5720">RuntimeDyldImpl::createObjectImage</a>(<a class="code" href="classllvm_1_1ObjectBuffer.html">ObjectBuffer</a> *InputBuffer) {
+<a name="l00061"></a>00061   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classllvm_1_1ObjectImageCommon.html">ObjectImageCommon</a>(InputBuffer);
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 
+<a name="l00064"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a06533df51282290d7afd8d4641f36934">00064</a> <a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> *<a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a06533df51282290d7afd8d4641f36934">RuntimeDyldImpl::loadObject</a>(<a class="code" href="classllvm_1_1ObjectBuffer.html">ObjectBuffer</a> *InputBuffer) {
+<a name="l00065"></a>00065   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<ObjectImage></a> obj(createObjectImage(InputBuffer));
+<a name="l00066"></a>00066   <span class="keywordflow">if</span> (!obj)
+<a name="l00067"></a>00067     <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Unable to create object image from memory buffer!"</span>);
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069   Arch = (<a class="code" href="classllvm_1_1Triple.html#a547abd13f7a3c063aa72c8192a868154">Triple::ArchType</a>)obj->getArch();
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071   <span class="comment">// Symbols found in this object</span>
+<a name="l00072"></a>00072   <a class="code" href="classllvm_1_1StringMap.html">StringMap<SymbolLoc></a> LocalSymbols;
+<a name="l00073"></a>00073   <span class="comment">// Used sections from the object file</span>
+<a name="l00074"></a>00074   <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a22b1a24bb422a0f0896dd84dff7933e2">ObjSectionToIDMap</a> LocalSections;
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076   <span class="comment">// Common symbols requiring allocation, with their sizes and alignments</span>
+<a name="l00077"></a>00077   <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a88989162aeaeadf97f6562bd9a94b85c">CommonSymbolMap</a> CommonSymbols;
+<a name="l00078"></a>00078   <span class="comment">// Maximum required total memory to allocate all common symbols</span>
+<a name="l00079"></a>00079   uint64_t CommonSize = 0;
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081   <a class="code" href="classllvm_1_1error__code.html">error_code</a> err;
+<a name="l00082"></a>00082   <span class="comment">// Parse symbols</span>
+<a name="l00083"></a>00083   <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">"Parse symbols:\n"</span>);
+<a name="l00084"></a>00084   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1object_1_1content__iterator.html">symbol_iterator</a> i = obj->begin_symbols(), e = obj->end_symbols();
+<a name="l00085"></a>00085        i != e; i.increment(err)) {
+<a name="l00086"></a>00086     <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(err);
+<a name="l00087"></a>00087     <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#a2ea2ecb4f81936cc379aff129e440b04">object::SymbolRef::Type</a> SymType;
+<a name="l00088"></a>00088     <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>;
+<a name="l00089"></a>00089     <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getType(SymType));
+<a name="l00090"></a>00090     <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getName(Name));
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092     uint32_t flags;
+<a name="l00093"></a>00093     <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getFlags(flags));
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <span class="keywordtype">bool</span> isCommon = flags & <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#aca3a540eb1febf8d9ff0e3e1fba6e4b6ad0d603db292ef430449224cedf21e313">SymbolRef::SF_Common</a>;
+<a name="l00096"></a>00096     <span class="keywordflow">if</span> (isCommon) {
+<a name="l00097"></a>00097       <span class="comment">// Add the common symbols to a list.  We'll allocate them all below.</span>
+<a name="l00098"></a>00098       uint64_t Align = getCommonSymbolAlignment(*i);
+<a name="l00099"></a>00099       uint64_t Size = 0;
+<a name="l00100"></a>00100       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getSize(Size));
+<a name="l00101"></a>00101       CommonSize += Size + Align;
+<a name="l00102"></a>00102       CommonSymbols[*i] = <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a68617e4b5abbe743df9bd20083861960">CommonSymbolInfo</a>(Size, Align);
+<a name="l00103"></a>00103     } <span class="keywordflow">else</span> {
+<a name="l00104"></a>00104       <span class="keywordflow">if</span> (SymType == <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#a2ea2ecb4f81936cc379aff129e440b04a2fcf5b0171fb8526218be425765b5da1">object::SymbolRef::ST_Function</a> ||
+<a name="l00105"></a>00105           SymType == <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#a2ea2ecb4f81936cc379aff129e440b04a8a501fedaaa3e562541580b8f1db3975">object::SymbolRef::ST_Data</a> ||
+<a name="l00106"></a>00106           SymType == <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#a2ea2ecb4f81936cc379aff129e440b04a2d334a713a4916963744a0cc31ab9552">object::SymbolRef::ST_Unknown</a>) {
+<a name="l00107"></a>00107         uint64_t FileOffset;
+<a name="l00108"></a>00108         <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> SectionData;
+<a name="l00109"></a>00109         <a class="code" href="classllvm_1_1object_1_1content__iterator.html">section_iterator</a> si = obj->end_sections();
+<a name="l00110"></a>00110         <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getFileOffset(FileOffset));
+<a name="l00111"></a>00111         <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getSection(si));
+<a name="l00112"></a>00112         <span class="keywordflow">if</span> (si == obj->end_sections()) <span class="keywordflow">continue</span>;
+<a name="l00113"></a>00113         <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(si->getContents(SectionData));
+<a name="l00114"></a>00114         <span class="keyword">const</span> uint8_t* SymPtr = (<span class="keyword">const</span> uint8_t*)InputBuffer-><a class="code" href="classllvm_1_1ObjectBuffer.html#a7d9cac59ff84a51826064ba98fd8fd47">getBufferStart</a>() +
+<a name="l00115"></a>00115                                 (uintptr_t)FileOffset;
+<a name="l00116"></a>00116         uintptr_t SectOffset = (uintptr_t)(SymPtr -
+<a name="l00117"></a>00117                                            (<span class="keyword">const</span> uint8_t*)SectionData.<a class="code" href="classllvm_1_1StringRef.html#a4a0abf8eb4fa5989df63172649cba99f">begin</a>());
+<a name="l00118"></a>00118         <span class="keywordtype">unsigned</span> SectionID =
+<a name="l00119"></a>00119           findOrEmitSection(*obj,
+<a name="l00120"></a>00120                             *si,
+<a name="l00121"></a>00121                             SymType == <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#a2ea2ecb4f81936cc379aff129e440b04a2fcf5b0171fb8526218be425765b5da1">object::SymbolRef::ST_Function</a>,
+<a name="l00122"></a>00122                             LocalSections);
+<a name="l00123"></a>00123         LocalSymbols[Name.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>()] = <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a87a859a854b1c7f6ad262a5296dd112f">SymbolLoc</a>(SectionID, SectOffset);
+<a name="l00124"></a>00124         <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">"\tFileOffset: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, (uintptr_t)FileOffset)
+<a name="l00125"></a>00125                      << <span class="stringliteral">" flags: "</span> << flags
+<a name="l00126"></a>00126                      << <span class="stringliteral">" SID: "</span> << SectionID
+<a name="l00127"></a>00127                      << <span class="stringliteral">" Offset: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, SectOffset));
+<a name="l00128"></a>00128         <span class="keywordtype">bool</span> isGlobal = flags & <a class="code" href="classllvm_1_1object_1_1SymbolRef.html#aca3a540eb1febf8d9ff0e3e1fba6e4b6a768afb2904382d6419d72018c8a8a62f">SymbolRef::SF_Global</a>;
+<a name="l00129"></a>00129         <span class="keywordflow">if</span> (isGlobal)
+<a name="l00130"></a>00130           GlobalSymbolTable[<a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>] = <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a87a859a854b1c7f6ad262a5296dd112f">SymbolLoc</a>(SectionID, SectOffset);
+<a name="l00131"></a>00131       }
+<a name="l00132"></a>00132     }
+<a name="l00133"></a>00133     <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">"\tType: "</span> << SymType << <span class="stringliteral">" Name: "</span> << Name << <span class="stringliteral">"\n"</span>);
+<a name="l00134"></a>00134   }
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136   <span class="comment">// Allocate common symbols</span>
+<a name="l00137"></a>00137   <span class="keywordflow">if</span> (CommonSize != 0)
+<a name="l00138"></a>00138     emitCommonSymbols(*obj, CommonSymbols, CommonSize, LocalSymbols);
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140   <span class="comment">// Parse and process relocations</span>
+<a name="l00141"></a>00141   <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">"Parse relocations:\n"</span>);
+<a name="l00142"></a>00142   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1object_1_1content__iterator.html">section_iterator</a> si = obj->begin_sections(),
+<a name="l00143"></a>00143        se = obj->end_sections(); si != se; si.increment(err)) {
+<a name="l00144"></a>00144     <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(err);
+<a name="l00145"></a>00145     <span class="keywordtype">bool</span> isFirstRelocation = <span class="keyword">true</span>;
+<a name="l00146"></a>00146     <span class="keywordtype">unsigned</span> SectionID = 0;
+<a name="l00147"></a>00147     <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a45d3097b94f4f98303ae36e6c6b7eee6">StubMap</a> Stubs;
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1object_1_1content__iterator.html">relocation_iterator</a> i = si->begin_relocations(),
+<a name="l00150"></a>00150          e = si->end_relocations(); i != e; i.<a class="code" href="classllvm_1_1object_1_1content__iterator.html#ab9176972fae57f0d7983bd080a9016c1">increment</a>(err)) {
+<a name="l00151"></a>00151       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(err);
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153       <span class="comment">// If it's the first relocation in this section, find its SectionID</span>
+<a name="l00154"></a>00154       <span class="keywordflow">if</span> (isFirstRelocation) {
+<a name="l00155"></a>00155         SectionID = findOrEmitSection(*obj, *si, <span class="keyword">true</span>, LocalSections);
+<a name="l00156"></a>00156         <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">"\tSectionID: "</span> << SectionID << <span class="stringliteral">"\n"</span>);
+<a name="l00157"></a>00157         isFirstRelocation = <span class="keyword">false</span>;
+<a name="l00158"></a>00158       }
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160       <a class="code" href="classllvm_1_1ObjRelocationInfo.html">ObjRelocationInfo</a> RI;
+<a name="l00161"></a>00161       RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a8b2fe344513de3b86ca87782a9be6a65">SectionID</a> = SectionID;
+<a name="l00162"></a>00162       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getAdditionalInfo(RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a71ffe17d83994c16cc7466e65caf88d6">AdditionalInfo</a>));
+<a name="l00163"></a>00163       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getOffset(RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a761cda050d7922db327da90502166188">Offset</a>));
+<a name="l00164"></a>00164       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getSymbol(RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a497a99a149db496f532789fd7669bbd8">Symbol</a>));
+<a name="l00165"></a>00165       <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(i->getType(RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a769446915f796b69b0a8e4613ac571db">Type</a>));
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167       <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">"\t\tAddend: "</span> << RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a71ffe17d83994c16cc7466e65caf88d6">AdditionalInfo</a>
+<a name="l00168"></a>00168                    << <span class="stringliteral">" Offset: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, (uintptr_t)RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a761cda050d7922db327da90502166188">Offset</a>)
+<a name="l00169"></a>00169                    << <span class="stringliteral">" Type: "</span> << (uint32_t)(RI.<a class="code" href="classllvm_1_1ObjRelocationInfo.html#a769446915f796b69b0a8e4613ac571db">Type</a> & 0xffffffffL)
+<a name="l00170"></a>00170                    << <span class="stringliteral">"\n"</span>);
+<a name="l00171"></a>00171       processRelocationRef(RI, *obj, LocalSections, LocalSymbols, Stubs);
+<a name="l00172"></a>00172     }
+<a name="l00173"></a>00173   }
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175   <span class="keywordflow">return</span> obj.<a class="code" href="classllvm_1_1OwningPtr.html#ae426d4bb8423d239ab8647d23b7ab150">take</a>();
+<a name="l00176"></a>00176 }
+<a name="l00177"></a>00177 
+<a name="l00178"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a9f04140b5bbac2513228856de5c1a54d">00178</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a9f04140b5bbac2513228856de5c1a54d" title="Given the common symbols discovered in the object file, emit a new section for them and update the sy...">RuntimeDyldImpl::emitCommonSymbols</a>(<a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> &Obj,
+<a name="l00179"></a>00179                                         <span class="keyword">const</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a88989162aeaeadf97f6562bd9a94b85c">CommonSymbolMap</a> &CommonSymbols,
+<a name="l00180"></a>00180                                         uint64_t TotalSize,
+<a name="l00181"></a>00181                                         <a class="code" href="classllvm_1_1StringMap.html">SymbolTableMap</a> &SymbolTable) {
+<a name="l00182"></a>00182   <span class="comment">// Allocate memory for the section</span>
+<a name="l00183"></a>00183   <span class="keywordtype">unsigned</span> SectionID = Sections.size();
+<a name="l00184"></a>00184   uint8_t *Addr = MemMgr->allocateDataSection(TotalSize, <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*),
+<a name="l00185"></a>00185                                               SectionID);
+<a name="l00186"></a>00186   <span class="keywordflow">if</span> (!Addr)
+<a name="l00187"></a>00187     <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Unable to allocate memory for common symbols!"</span>);
+<a name="l00188"></a>00188   uint64_t Offset = 0;
+<a name="l00189"></a>00189   Sections.push_back(<a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a>(), Addr, TotalSize, TotalSize, 0));
+<a name="l00190"></a>00190   <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa9f7f1b6be1144152902121f2463d0368" title="void *memset(void *b, int c, size_t len);">memset</a>(Addr, 0, TotalSize);
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192   <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">"emitCommonSection SectionID: "</span> << SectionID
+<a name="l00193"></a>00193                << <span class="stringliteral">" new addr: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, Addr)
+<a name="l00194"></a>00194                << <span class="stringliteral">" DataSize: "</span> << TotalSize
+<a name="l00195"></a>00195                << <span class="stringliteral">"\n"</span>);
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197   <span class="comment">// Assign the address of each symbol</span>
+<a name="l00198"></a>00198   <span class="keywordflow">for</span> (CommonSymbolMap::const_iterator it = CommonSymbols.begin(),
+<a name="l00199"></a>00199        itEnd = CommonSymbols.end(); it != itEnd; it++) {
+<a name="l00200"></a>00200     uint64_t Size = it->second.first;
+<a name="l00201"></a>00201     uint64_t Align = it->second.second;
+<a name="l00202"></a>00202     <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>;
+<a name="l00203"></a>00203     it->first.getName(Name);
+<a name="l00204"></a>00204     <span class="keywordflow">if</span> (Align) {
+<a name="l00205"></a>00205       <span class="comment">// This symbol has an alignment requirement.</span>
+<a name="l00206"></a>00206       uint64_t AlignOffset = <a class="code" href="namespacellvm.html#af257c0e3adacb6cef58529b996408447">OffsetToAlignment</a>((uint64_t)Addr, Align);
+<a name="l00207"></a>00207       Addr += AlignOffset;
+<a name="l00208"></a>00208       Offset += AlignOffset;
+<a name="l00209"></a>00209       <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">"Allocating common symbol "</span> << Name << <span class="stringliteral">" address "</span> <<
+<a name="l00210"></a>00210                       <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p\n"</span>, Addr));
+<a name="l00211"></a>00211     }
+<a name="l00212"></a>00212     Obj.<a class="code" href="classllvm_1_1ObjectImage.html#aefb9fde77f2d7c649bbe095fa071a256">updateSymbolAddress</a>(it->first, (uint64_t)Addr);
+<a name="l00213"></a>00213     SymbolTable[Name.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>()] = <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a87a859a854b1c7f6ad262a5296dd112f">SymbolLoc</a>(SectionID, Offset);
+<a name="l00214"></a>00214     Offset += Size;
+<a name="l00215"></a>00215     Addr += Size;
+<a name="l00216"></a>00216   }
+<a name="l00217"></a>00217 }
+<a name="l00218"></a>00218 
+<a name="l00219"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a208a0050a4c8ec2e2ff0e4eb4ebf6966">00219</a> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a208a0050a4c8ec2e2ff0e4eb4ebf6966" title="Emits section data from the object file to the MemoryManager.">RuntimeDyldImpl::emitSection</a>(<a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> &Obj,
+<a name="l00220"></a>00220                                       <span class="keyword">const</span> <a class="code" href="classllvm_1_1object_1_1SectionRef.html">SectionRef</a> &<a class="code" href="namespaceARMBuildAttrs.html#a581f39eb005bdc4d441c23d019618810a21b40b2b4fda35a62949da46ddadd76b">Section</a>,
+<a name="l00221"></a>00221                                       <span class="keywordtype">bool</span> IsCode) {
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223   <span class="keywordtype">unsigned</span> StubBufSize = 0,
+<a name="l00224"></a>00224            StubSize = getMaxStubSize();
+<a name="l00225"></a>00225   <a class="code" href="classllvm_1_1error__code.html">error_code</a> err;
+<a name="l00226"></a>00226   <span class="keywordflow">if</span> (StubSize > 0) {
+<a name="l00227"></a>00227     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1object_1_1content__iterator.html">relocation_iterator</a> i = Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#aa26bce1b1e1ac4311247ecb87052e820">begin_relocations</a>(),
+<a name="l00228"></a>00228          e = Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#a182d9a4d0b0962d1689e5b226a3ff7ca">end_relocations</a>(); i != e; i.<a class="code" href="classllvm_1_1object_1_1content__iterator.html#ab9176972fae57f0d7983bd080a9016c1">increment</a>(err), <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(err))
+<a name="l00229"></a>00229       StubBufSize += StubSize;
+<a name="l00230"></a>00230   }
+<a name="l00231"></a>00231   <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> data;
+<a name="l00232"></a>00232   uint64_t Alignment64;
+<a name="l00233"></a>00233   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#af0ab97899979f84efd05e181181fe147">getContents</a>(data));
+<a name="l00234"></a>00234   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#ad9b67d6d3098b951aa14c772cdae03e5" title="Get the alignment of this section as the actual value (not log 2).">getAlignment</a>(Alignment64));
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236   <span class="keywordtype">unsigned</span> Alignment = (<a class="code" href="classunsigned.html">unsigned</a>)Alignment64 & 0xffffffffL;
+<a name="l00237"></a>00237   <span class="keywordtype">bool</span> IsRequired;
+<a name="l00238"></a>00238   <span class="keywordtype">bool</span> IsVirtual;
+<a name="l00239"></a>00239   <span class="keywordtype">bool</span> IsZeroInit;
+<a name="l00240"></a>00240   uint64_t DataSize;
+<a name="l00241"></a>00241   <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>;
+<a name="l00242"></a>00242   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#aaac5d454f0c2a273e1a41b57a714192d">isRequiredForExecution</a>(IsRequired));
+<a name="l00243"></a>00243   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#a8fe5753e0ff544a0624337c91064f9e5">isVirtual</a>(IsVirtual));
+<a name="l00244"></a>00244   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#acada12b9deb4f4f6532f133e1760f684">isZeroInit</a>(IsZeroInit));
+<a name="l00245"></a>00245   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#aa823037799223da66cc1895469f410e3">getSize</a>(DataSize));
+<a name="l00246"></a>00246   <a class="code" href="ARMDisassembler_8cpp.html#a5d37f23ec6bf93da60e38fda41e9a83d">Check</a>(Section.<a class="code" href="classllvm_1_1object_1_1SectionRef.html#a866a81c19bbd7274a44df57613edcb3d">getName</a>(Name));
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248   <span class="keywordtype">unsigned</span> Allocate;
+<a name="l00249"></a>00249   <span class="keywordtype">unsigned</span> SectionID = Sections.size();
+<a name="l00250"></a>00250   uint8_t *Addr;
+<a name="l00251"></a>00251   <span class="keyword">const</span> <span class="keywordtype">char</span> *pData = 0;
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253   <span class="comment">// Some sections, such as debug info, don't need to be loaded for execution.</span>
+<a name="l00254"></a>00254   <span class="comment">// Leave those where they are.</span>
+<a name="l00255"></a>00255   <span class="keywordflow">if</span> (IsRequired) {
+<a name="l00256"></a>00256     Allocate = DataSize + StubBufSize;
+<a name="l00257"></a>00257     Addr = IsCode
+<a name="l00258"></a>00258       ? MemMgr->allocateCodeSection(Allocate, Alignment, SectionID)
+<a name="l00259"></a>00259       : MemMgr->allocateDataSection(Allocate, Alignment, SectionID);
+<a name="l00260"></a>00260     <span class="keywordflow">if</span> (!Addr)
+<a name="l00261"></a>00261       <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Unable to allocate section memory!"</span>);
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     <span class="comment">// Virtual sections have no data in the object image, so leave pData = 0</span>
+<a name="l00264"></a>00264     <span class="keywordflow">if</span> (!IsVirtual)
+<a name="l00265"></a>00265       pData = data.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>();
+<a name="l00266"></a>00266 
+<a name="l00267"></a>00267     <span class="comment">// Zero-initialize or copy the data from the image</span>
+<a name="l00268"></a>00268     <span class="keywordflow">if</span> (IsZeroInit || IsVirtual)
+<a name="l00269"></a>00269       <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fa9f7f1b6be1144152902121f2463d0368" title="void *memset(void *b, int c, size_t len);">memset</a>(Addr, 0, DataSize);
+<a name="l00270"></a>00270     <span class="keywordflow">else</span>
+<a name="l00271"></a>00271       <a class="code" href="namespacellvm_1_1LibFunc.html#abf8f6830387f338fed0bce2e65108c6fad5203242bc89eaa644dc7b7ba2371c1d" title="void *memcpy(void *s1, const void *s2, size_t n);">memcpy</a>(Addr, pData, DataSize);
+<a name="l00272"></a>00272 
+<a name="l00273"></a>00273     <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">"emitSection SectionID: "</span> << SectionID
+<a name="l00274"></a>00274                  << <span class="stringliteral">" Name: "</span> << Name
+<a name="l00275"></a>00275                  << <span class="stringliteral">" obj addr: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, pData)
+<a name="l00276"></a>00276                  << <span class="stringliteral">" new addr: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, Addr)
+<a name="l00277"></a>00277                  << <span class="stringliteral">" DataSize: "</span> << DataSize
+<a name="l00278"></a>00278                  << <span class="stringliteral">" StubBufSize: "</span> << StubBufSize
+<a name="l00279"></a>00279                  << <span class="stringliteral">" Allocate: "</span> << Allocate
+<a name="l00280"></a>00280                  << <span class="stringliteral">"\n"</span>);
+<a name="l00281"></a>00281     Obj.<a class="code" href="classllvm_1_1ObjectImage.html#abbed376662eab103d3c302418a0ae10e">updateSectionAddress</a>(Section, (uint64_t)Addr);
+<a name="l00282"></a>00282   }
+<a name="l00283"></a>00283   <span class="keywordflow">else</span> {
+<a name="l00284"></a>00284     <span class="comment">// Even if we didn't load the section, we need to record an entry for it</span>
+<a name="l00285"></a>00285     <span class="comment">// to handle later processing (and by 'handle' I mean don't do anything</span>
+<a name="l00286"></a>00286     <span class="comment">// with these sections).</span>
+<a name="l00287"></a>00287     Allocate = 0;
+<a name="l00288"></a>00288     Addr = 0;
+<a name="l00289"></a>00289     <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">"emitSection SectionID: "</span> << SectionID
+<a name="l00290"></a>00290                  << <span class="stringliteral">" Name: "</span> << Name
+<a name="l00291"></a>00291                  << <span class="stringliteral">" obj addr: "</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, data.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>())
+<a name="l00292"></a>00292                  << <span class="stringliteral">" new addr: 0"</span>
+<a name="l00293"></a>00293                  << <span class="stringliteral">" DataSize: "</span> << DataSize
+<a name="l00294"></a>00294                  << <span class="stringliteral">" StubBufSize: "</span> << StubBufSize
+<a name="l00295"></a>00295                  << <span class="stringliteral">" Allocate: "</span> << Allocate
+<a name="l00296"></a>00296                  << <span class="stringliteral">"\n"</span>);
+<a name="l00297"></a>00297   }
+<a name="l00298"></a>00298 
+<a name="l00299"></a>00299   Sections.push_back(<a class="code" href="classllvm_1_1SectionEntry.html">SectionEntry</a>(Name, Addr, Allocate, DataSize,
+<a name="l00300"></a>00300           (uintptr_t)pData));
+<a name="l00301"></a>00301   <span class="keywordflow">return</span> SectionID;
+<a name="l00302"></a>00302 }
+<a name="l00303"></a>00303 
+<a name="l00304"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a0ab25cc0cb48b93f0af256869058faac">00304</a> <span class="keywordtype">unsigned</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a0ab25cc0cb48b93f0af256869058faac" title="Find Section in LocalSections. If the secton is not found - emit it and store in LocalSections.">RuntimeDyldImpl::findOrEmitSection</a>(<a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> &Obj,
+<a name="l00305"></a>00305                                             <span class="keyword">const</span> <a class="code" href="classllvm_1_1object_1_1SectionRef.html">SectionRef</a> &<a class="code" href="namespaceARMBuildAttrs.html#a581f39eb005bdc4d441c23d019618810a21b40b2b4fda35a62949da46ddadd76b">Section</a>,
+<a name="l00306"></a>00306                                             <span class="keywordtype">bool</span> IsCode,
+<a name="l00307"></a>00307                                             <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a22b1a24bb422a0f0896dd84dff7933e2">ObjSectionToIDMap</a> &LocalSections) {
+<a name="l00308"></a>00308 
+<a name="l00309"></a>00309   <span class="keywordtype">unsigned</span> SectionID = 0;
+<a name="l00310"></a>00310   ObjSectionToIDMap::iterator i = LocalSections.find(Section);
+<a name="l00311"></a>00311   <span class="keywordflow">if</span> (i != LocalSections.end())
+<a name="l00312"></a>00312     SectionID = i->second;
+<a name="l00313"></a>00313   <span class="keywordflow">else</span> {
+<a name="l00314"></a>00314     SectionID = emitSection(Obj, Section, IsCode);
+<a name="l00315"></a>00315     LocalSections[<a class="code" href="namespaceARMBuildAttrs.html#a581f39eb005bdc4d441c23d019618810a21b40b2b4fda35a62949da46ddadd76b">Section</a>] = SectionID;
+<a name="l00316"></a>00316   }
+<a name="l00317"></a>00317   <span class="keywordflow">return</span> SectionID;
+<a name="l00318"></a>00318 }
+<a name="l00319"></a>00319 
+<a name="l00320"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a9ee81c156267d67bed9008ed1a954214">00320</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a9ee81c156267d67bed9008ed1a954214">RuntimeDyldImpl::addRelocationForSection</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RelocationEntry.html">RelocationEntry</a> &RE,
+<a name="l00321"></a>00321                                               <span class="keywordtype">unsigned</span> SectionID) {
+<a name="l00322"></a>00322   Relocations[SectionID].push_back(RE);
+<a name="l00323"></a>00323 }
+<a name="l00324"></a>00324 
+<a name="l00325"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a5db8c0beafbba922f1600e24fe6898bc">00325</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a5db8c0beafbba922f1600e24fe6898bc">RuntimeDyldImpl::addRelocationForSymbol</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RelocationEntry.html">RelocationEntry</a> &RE,
+<a name="l00326"></a>00326                                              <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> SymbolName) {
+<a name="l00327"></a>00327   <span class="comment">// Relocation by symbol.  If the symbol is found in the global symbol table,</span>
+<a name="l00328"></a>00328   <span class="comment">// create an appropriate section relocation.  Otherwise, add it to</span>
+<a name="l00329"></a>00329   <span class="comment">// ExternalSymbolRelocations.</span>
+<a name="l00330"></a>00330   <a class="code" href="classllvm_1_1StringMapConstIterator.html">SymbolTableMap::const_iterator</a> Loc =
+<a name="l00331"></a>00331       GlobalSymbolTable.find(SymbolName);
+<a name="l00332"></a>00332   <span class="keywordflow">if</span> (Loc == GlobalSymbolTable.end()) {
+<a name="l00333"></a>00333     ExternalSymbolRelocations[SymbolName].push_back(RE);
+<a name="l00334"></a>00334   } <span class="keywordflow">else</span> {
+<a name="l00335"></a>00335     <span class="comment">// Copy the RE since we want to modify its addend.</span>
+<a name="l00336"></a>00336     <a class="code" href="classllvm_1_1RelocationEntry.html">RelocationEntry</a> RECopy = RE;
+<a name="l00337"></a>00337     RECopy.<a class="code" href="classllvm_1_1RelocationEntry.html#a94b3584e02f3c3d513ca90be0b8f5965">Addend</a> += Loc->second.second;
+<a name="l00338"></a>00338     Relocations[Loc->second.first].push_back(RECopy);
+<a name="l00339"></a>00339   }
+<a name="l00340"></a>00340 }
+<a name="l00341"></a>00341 
+<a name="l00342"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a0c2b44cb6471ab96304b66b0c7e9ddab">00342</a> uint8_t *<a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a0c2b44cb6471ab96304b66b0c7e9ddab" title="Emits long jump instruction to Addr.">RuntimeDyldImpl::createStubFunction</a>(uint8_t *Addr) {
+<a name="l00343"></a>00343   <span class="keywordflow">if</span> (Arch == <a class="code" href="classllvm_1_1Triple.html#a547abd13f7a3c063aa72c8192a868154a8b312a985e2504366d24a2200faf37ff">Triple::arm</a>) {
+<a name="l00344"></a>00344     <span class="comment">// TODO: There is only ARM far stub now. We should add the Thumb stub,</span>
+<a name="l00345"></a>00345     <span class="comment">// and stubs for branches Thumb - ARM and ARM - Thumb.</span>
+<a name="l00346"></a>00346     uint32_t *StubAddr = (uint32_t*)Addr;
+<a name="l00347"></a>00347     *StubAddr = 0xe51ff004; <span class="comment">// ldr pc,<label></span>
+<a name="l00348"></a>00348     <span class="keywordflow">return</span> (uint8_t*)++StubAddr;
+<a name="l00349"></a>00349   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Arch == <a class="code" href="classllvm_1_1Triple.html#a547abd13f7a3c063aa72c8192a868154a5fb4823bc5bbdad4684399b118ccace8">Triple::mipsel</a> || Arch == <a class="code" href="classllvm_1_1Triple.html#a547abd13f7a3c063aa72c8192a868154a867c596b0454c5bbeeb1ff490b9d70bc">Triple::mips</a>) {
+<a name="l00350"></a>00350     uint32_t *StubAddr = (uint32_t*)Addr;
+<a name="l00351"></a>00351     <span class="comment">// 0:   3c190000        lui     t9,%hi(addr).</span>
+<a name="l00352"></a>00352     <span class="comment">// 4:   27390000        addiu   t9,t9,%lo(addr).</span>
+<a name="l00353"></a>00353     <span class="comment">// 8:   03200008        jr      t9.</span>
+<a name="l00354"></a>00354     <span class="comment">// c:   00000000        nop.</span>
+<a name="l00355"></a>00355     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> LuiT9Instr = 0x3c190000, AdduiT9Instr = 0x27390000;
+<a name="l00356"></a>00356     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> JrT9Instr = 0x03200008, NopInstr = 0x0;
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358     *StubAddr = LuiT9Instr;
+<a name="l00359"></a>00359     StubAddr++;
+<a name="l00360"></a>00360     *StubAddr = AdduiT9Instr;
+<a name="l00361"></a>00361     StubAddr++;
+<a name="l00362"></a>00362     *StubAddr = JrT9Instr;
+<a name="l00363"></a>00363     StubAddr++;
+<a name="l00364"></a>00364     *StubAddr = NopInstr;
+<a name="l00365"></a>00365     <span class="keywordflow">return</span> Addr;
+<a name="l00366"></a>00366   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Arch == <a class="code" href="classllvm_1_1Triple.html#a547abd13f7a3c063aa72c8192a868154aab15cb6de66f724829436a3466411993">Triple::ppc64</a>) {
+<a name="l00367"></a>00367     <span class="comment">// PowerPC64 stub: the address points to a function descriptor</span>
+<a name="l00368"></a>00368     <span class="comment">// instead of the function itself. Load the function address</span>
+<a name="l00369"></a>00369     <span class="comment">// on r11 and sets it to control register. Also loads the function</span>
+<a name="l00370"></a>00370     <span class="comment">// TOC in r2 and environment pointer to r11.</span>
+<a name="l00371"></a>00371     writeInt32BE(Addr,    0x3D800000); <span class="comment">// lis   r12, highest(addr)</span>
+<a name="l00372"></a>00372     writeInt32BE(Addr+4,  0x618C0000); <span class="comment">// ori   r12, higher(addr)</span>
+<a name="l00373"></a>00373     writeInt32BE(Addr+8,  0x798C07C6); <span class="comment">// sldi  r12, r12, 32</span>
+<a name="l00374"></a>00374     writeInt32BE(Addr+12, 0x658C0000); <span class="comment">// oris  r12, r12, h(addr)</span>
+<a name="l00375"></a>00375     writeInt32BE(Addr+16, 0x618C0000); <span class="comment">// ori   r12, r12, l(addr)</span>
+<a name="l00376"></a>00376     writeInt32BE(Addr+20, 0xF8410028); <span class="comment">// std   r2,  40(r1)</span>
+<a name="l00377"></a>00377     writeInt32BE(Addr+24, 0xE96C0000); <span class="comment">// ld    r11, 0(r12)</span>
+<a name="l00378"></a>00378     writeInt32BE(Addr+28, 0xE84C0008); <span class="comment">// ld    r2,  0(r12)</span>
+<a name="l00379"></a>00379     writeInt32BE(Addr+32, 0x7D6903A6); <span class="comment">// mtctr r11</span>
+<a name="l00380"></a>00380     writeInt32BE(Addr+36, 0xE96C0010); <span class="comment">// ld    r11, 16(r2)</span>
+<a name="l00381"></a>00381     writeInt32BE(Addr+40, 0x4E800420); <span class="comment">// bctr</span>
+<a name="l00382"></a>00382 
+<a name="l00383"></a>00383     <span class="keywordflow">return</span> Addr;
+<a name="l00384"></a>00384   }
+<a name="l00385"></a>00385   <span class="keywordflow">return</span> Addr;
+<a name="l00386"></a>00386 }
+<a name="l00387"></a>00387 
+<a name="l00388"></a>00388 <span class="comment">// Assign an address to a symbol name and resolve all the relocations</span>
+<a name="l00389"></a>00389 <span class="comment">// associated with it.</span>
+<a name="l00390"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a13ed1aa385513404b0d2bcad53502041">00390</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a13ed1aa385513404b0d2bcad53502041">RuntimeDyldImpl::reassignSectionAddress</a>(<span class="keywordtype">unsigned</span> SectionID,
+<a name="l00391"></a>00391                                              uint64_t Addr) {
+<a name="l00392"></a>00392   <span class="comment">// The address to use for relocation resolution is not</span>
+<a name="l00393"></a>00393   <span class="comment">// the address of the local section buffer. We must be doing</span>
+<a name="l00394"></a>00394   <span class="comment">// a remote execution environment of some sort. Relocations can't</span>
+<a name="l00395"></a>00395   <span class="comment">// be applied until all the sections have been moved.  The client must</span>
+<a name="l00396"></a>00396   <span class="comment">// trigger this with a call to MCJIT::finalize() or</span>
+<a name="l00397"></a>00397   <span class="comment">// RuntimeDyld::resolveRelocations().</span>
+<a name="l00398"></a>00398   <span class="comment">//</span>
+<a name="l00399"></a>00399   <span class="comment">// Addr is a uint64_t because we can't assume the pointer width</span>
+<a name="l00400"></a>00400   <span class="comment">// of the target is the same as that of the host. Just use a generic</span>
+<a name="l00401"></a>00401   <span class="comment">// "big enough" type.</span>
+<a name="l00402"></a>00402   Sections[SectionID].LoadAddress = Addr;
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404 
+<a name="l00405"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a6768ad109ca358a003d4a320c92e95bb">00405</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a6768ad109ca358a003d4a320c92e95bb">RuntimeDyldImpl::resolveRelocationEntry</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1RelocationEntry.html">RelocationEntry</a> &RE,
+<a name="l00406"></a>00406                                              uint64_t <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>) {
+<a name="l00407"></a>00407   <span class="comment">// Ignore relocations for sections that were not loaded</span>
+<a name="l00408"></a>00408   <span class="keywordflow">if</span> (Sections[RE.<a class="code" href="classllvm_1_1RelocationEntry.html#aec2f9774e1098853d20912f579f501b9" title="SectionID - the section this relocation points to.">SectionID</a>].Address != 0) {
+<a name="l00409"></a>00409     <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">"\tSectionID: "</span> << RE.<a class="code" href="classllvm_1_1RelocationEntry.html#aec2f9774e1098853d20912f579f501b9" title="SectionID - the section this relocation points to.">SectionID</a>
+<a name="l00410"></a>00410           << <span class="stringliteral">" + "</span> << RE.<a class="code" href="classllvm_1_1RelocationEntry.html#acdd93b32ae169815f04b4ef108b9efd4" title="Offset - offset into the section.">Offset</a> << <span class="stringliteral">" ("</span>
+<a name="l00411"></a>00411           << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, Sections[RE.<a class="code" href="classllvm_1_1RelocationEntry.html#aec2f9774e1098853d20912f579f501b9" title="SectionID - the section this relocation points to.">SectionID</a>].Address + RE.<a class="code" href="classllvm_1_1RelocationEntry.html#acdd93b32ae169815f04b4ef108b9efd4" title="Offset - offset into the section.">Offset</a>) << <span class="stringliteral">")"</span>
+<a name="l00412"></a>00412           << <span class="stringliteral">" RelType: "</span> << RE.<a class="code" href="classllvm_1_1RelocationEntry.html#a4b339d832145cb7ea79bbb90f5233897" title="RelType - relocation type.">RelType</a>
+<a name="l00413"></a>00413           << <span class="stringliteral">" Addend: "</span> << RE.<a class="code" href="classllvm_1_1RelocationEntry.html#a94b3584e02f3c3d513ca90be0b8f5965">Addend</a>
+<a name="l00414"></a>00414           << <span class="stringliteral">"\n"</span>);
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416     resolveRelocation(Sections[RE.<a class="code" href="classllvm_1_1RelocationEntry.html#aec2f9774e1098853d20912f579f501b9" title="SectionID - the section this relocation points to.">SectionID</a>], RE.<a class="code" href="classllvm_1_1RelocationEntry.html#acdd93b32ae169815f04b4ef108b9efd4" title="Offset - offset into the section.">Offset</a>,
+<a name="l00417"></a>00417                       Value, RE.<a class="code" href="classllvm_1_1RelocationEntry.html#a4b339d832145cb7ea79bbb90f5233897" title="RelType - relocation type.">RelType</a>, RE.<a class="code" href="classllvm_1_1RelocationEntry.html#a94b3584e02f3c3d513ca90be0b8f5965">Addend</a>);
+<a name="l00418"></a>00418   }
+<a name="l00419"></a>00419 }
+<a name="l00420"></a>00420 
+<a name="l00421"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a40f413b46e7b2e713ec1997fe71b2aa1">00421</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a40f413b46e7b2e713ec1997fe71b2aa1" title="Resolves relocations from Relocs list with address from Value.">RuntimeDyldImpl::resolveRelocationList</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RelocationList</a> &Relocs,
+<a name="l00422"></a>00422                                             uint64_t <a class="code" href="classllvm_1_1Value.html" title="LLVM Value Representation.">Value</a>) {
+<a name="l00423"></a>00423   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Relocs.<a class="code" href="classllvm_1_1SmallVectorTemplateCommon.html#a22a311dfe4c28a897de8a9365a4f0a84">size</a>(); i != e; ++i) {
+<a name="l00424"></a>00424     resolveRelocationEntry(Relocs[i], Value);
+<a name="l00425"></a>00425   }
+<a name="l00426"></a>00426 }
+<a name="l00427"></a>00427 
+<a name="l00428"></a><a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a7ac78a2915073193baa8fb6ae3bf21c3">00428</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyldImpl.html#a7ac78a2915073193baa8fb6ae3bf21c3" title="Resolve relocations to external symbols.">RuntimeDyldImpl::resolveExternalSymbols</a>() {
+<a name="l00429"></a>00429   <a class="code" href="classllvm_1_1StringMap.html">StringMap<RelocationList>::iterator</a> i = ExternalSymbolRelocations.<a class="code" href="classllvm_1_1StringMap.html#a2d71dc9a645a91493dd60a723be28720">begin</a>(),
+<a name="l00430"></a>00430                                       e = ExternalSymbolRelocations.end();
+<a name="l00431"></a>00431   <span class="keywordflow">for</span> (; i != e; i++) {
+<a name="l00432"></a>00432     <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a> = i->first();
+<a name="l00433"></a>00433     <a class="code" href="classllvm_1_1SmallVector.html">RelocationList</a> &Relocs = i->second;
+<a name="l00434"></a>00434     <a class="code" href="classllvm_1_1StringMapConstIterator.html">SymbolTableMap::const_iterator</a> Loc = GlobalSymbolTable.find(Name);
+<a name="l00435"></a>00435     <span class="keywordflow">if</span> (Loc == GlobalSymbolTable.end()) {
+<a name="l00436"></a>00436       <span class="comment">// This is an external symbol, try to get it address from</span>
+<a name="l00437"></a>00437       <span class="comment">// MemoryManager.</span>
+<a name="l00438"></a>00438       uint8_t *Addr = (uint8_t*) MemMgr->getPointerToNamedFunction(Name.<a class="code" href="classllvm_1_1StringRef.html#a7d9b88d042ae1da8afd5509875c90a04">data</a>(),
+<a name="l00439"></a>00439                                                                    <span class="keyword">true</span>);
+<a name="l00440"></a>00440       <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">"Resolving relocations Name: "</span> << Name
+<a name="l00441"></a>00441               << <span class="stringliteral">"\t"</span> << <a class="code" href="namespacellvm.html#a69dc1b119f8cb95b7e36f586c5aeb372">format</a>(<span class="stringliteral">"%p"</span>, Addr)
+<a name="l00442"></a>00442               << <span class="stringliteral">"\n"</span>);
+<a name="l00443"></a>00443       resolveRelocationList(Relocs, (uintptr_t)Addr);
+<a name="l00444"></a>00444     } <span class="keywordflow">else</span> {
+<a name="l00445"></a>00445       <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Expected external symbol"</span>);
+<a name="l00446"></a>00446     }
+<a name="l00447"></a>00447   }
+<a name="l00448"></a>00448 }
+<a name="l00449"></a>00449 
+<a name="l00450"></a>00450 
+<a name="l00451"></a>00451 <span class="comment">//===----------------------------------------------------------------------===//</span>
+<a name="l00452"></a>00452 <span class="comment">// RuntimeDyld class implementation</span>
+<a name="l00453"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a97992e257766484f368a8660018d4bf1">00453</a> RuntimeDyld::RuntimeDyld(<a class="code" href="classllvm_1_1RTDyldMemoryManager.html">RTDyldMemoryManager</a> *mm) {
+<a name="l00454"></a>00454   Dyld = 0;
+<a name="l00455"></a>00455   MM = mm;
+<a name="l00456"></a>00456 }
+<a name="l00457"></a>00457 
+<a name="l00458"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#aa2313a97b3f26e7784ce066e1de44924">00458</a> <a class="code" href="classllvm_1_1RuntimeDyld.html#aa2313a97b3f26e7784ce066e1de44924">RuntimeDyld::~RuntimeDyld</a>() {
+<a name="l00459"></a>00459   <span class="keyword">delete</span> Dyld;
+<a name="l00460"></a>00460 }
+<a name="l00461"></a>00461 
+<a name="l00462"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a7f99c0ff11edce021585cf216175addf">00462</a> <a class="code" href="classllvm_1_1ObjectImage.html">ObjectImage</a> *<a class="code" href="classllvm_1_1RuntimeDyld.html#a7f99c0ff11edce021585cf216175addf">RuntimeDyld::loadObject</a>(<a class="code" href="classllvm_1_1ObjectBuffer.html">ObjectBuffer</a> *InputBuffer) {
+<a name="l00463"></a>00463   <span class="keywordflow">if</span> (!Dyld) {
+<a name="l00464"></a>00464     <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545" title="This enumeration delineates the kinds of files that LLVM knows about.">sys::LLVMFileType</a> type = <a class="code" href="namespacellvm_1_1sys.html#a271e54dc5d4a7e820553017a3042a213">sys::IdentifyFileType</a>(
+<a name="l00465"></a>00465             InputBuffer-><a class="code" href="classllvm_1_1ObjectBuffer.html#a7d9cac59ff84a51826064ba98fd8fd47">getBufferStart</a>(),
+<a name="l00466"></a>00466             <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(InputBuffer-><a class="code" href="classllvm_1_1ObjectBuffer.html#abb563b76b46a2254b60c3d6f2d4ddd67">getBufferSize</a>()));
+<a name="l00467"></a>00467     <span class="keywordflow">switch</span> (type) {
+<a name="l00468"></a>00468       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a578514b7c532e9b1678b1099448317ac" title="ELF Relocatable object file.">sys::ELF_Relocatable_FileType</a>:
+<a name="l00469"></a>00469       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a0f9d404f5acc8c8871fe2cfc888d004b" title="ELF Executable image.">sys::ELF_Executable_FileType</a>:
+<a name="l00470"></a>00470       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a746028558c081c3896bf8800def9090a" title="ELF dynamically linked shared lib.">sys::ELF_SharedObject_FileType</a>:
+<a name="l00471"></a>00471       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545aa181b51adb7853d39b8775bb1d97b54a" title="ELF core image.">sys::ELF_Core_FileType</a>:
+<a name="l00472"></a>00472         Dyld = <span class="keyword">new</span> <a class="code" href="classllvm_1_1RuntimeDyldELF.html">RuntimeDyldELF</a>(MM);
+<a name="l00473"></a>00473         <span class="keywordflow">break</span>;
+<a name="l00474"></a>00474       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545ad6ab7a140af33192563cdaa129c0a1e6" title="Mach-O Object file.">sys::Mach_O_Object_FileType</a>:
+<a name="l00475"></a>00475       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a033068c7a5fb376567e9cd4980fe43b4" title="Mach-O Executable.">sys::Mach_O_Executable_FileType</a>:
+<a name="l00476"></a>00476       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545ac0c1daf9c72a926f8e828e5d7f2cf42b" title="Mach-O Shared Lib, FVM.">sys::Mach_O_FixedVirtualMemorySharedLib_FileType</a>:
+<a name="l00477"></a>00477       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545ad6449923eaca3eacfea498d9abc56cab" title="Mach-O Core File.">sys::Mach_O_Core_FileType</a>:
+<a name="l00478"></a>00478       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a4094240755b0a7c963e53a6f56855c38" title="Mach-O Preloaded Executable.">sys::Mach_O_PreloadExecutable_FileType</a>:
+<a name="l00479"></a>00479       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a92e643ca9404b4589cc583ef0ea01d6a" title="Mach-O dynlinked shared lib.">sys::Mach_O_DynamicallyLinkedSharedLib_FileType</a>:
+<a name="l00480"></a>00480       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545ae4d01e0b400e8b5bbd33b4bc3aa649d4" title="The Mach-O dynamic linker.">sys::Mach_O_DynamicLinker_FileType</a>:
+<a name="l00481"></a>00481       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a9aac20e08a5491e5507f7e4969232e28" title="Mach-O Bundle file.">sys::Mach_O_Bundle_FileType</a>:
+<a name="l00482"></a>00482       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a79f4657dbf44e179125e4dc800ecb7f2" title="Mach-O Shared lib stub.">sys::Mach_O_DynamicallyLinkedSharedLibStub_FileType</a>:
+<a name="l00483"></a>00483       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a1bdd0e9508ef8af36bbc2642d6052d7d" title="Mach-O dSYM companion file.">sys::Mach_O_DSYMCompanion_FileType</a>:
+<a name="l00484"></a>00484         Dyld = <span class="keyword">new</span> <a class="code" href="classllvm_1_1RuntimeDyldMachO.html">RuntimeDyldMachO</a>(MM);
+<a name="l00485"></a>00485         <span class="keywordflow">break</span>;
+<a name="l00486"></a>00486       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a98a82be53b4f18405915b85188d1761c" title="Unrecognized file.">sys::Unknown_FileType</a>:
+<a name="l00487"></a>00487       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545a0c65c0c801e2bdac9741cb6cabfe7f95" title="Bitcode file.">sys::Bitcode_FileType</a>:
+<a name="l00488"></a>00488       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545ac20012002cc62c0a2fae38675bb915bc" title="ar style archive file">sys::Archive_FileType</a>:
+<a name="l00489"></a>00489       <span class="keywordflow">case</span> <a class="code" href="namespacellvm_1_1sys.html#a82ad9d4264bcca18afcc2bba9b765545acc4bd8a0b2fead4e52125d1383829fc8" title="COFF object file or lib.">sys::COFF_FileType</a>:
+<a name="l00490"></a>00490         <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Incompatible object format!"</span>);
+<a name="l00491"></a>00491     }
+<a name="l00492"></a>00492   } <span class="keywordflow">else</span> {
+<a name="l00493"></a>00493     <span class="keywordflow">if</span> (!Dyld->isCompatibleFormat(InputBuffer))
+<a name="l00494"></a>00494       <a class="code" href="namespacellvm.html#af9521f126aaffcc4bbe06c554b8b4bc1">report_fatal_error</a>(<span class="stringliteral">"Incompatible object format!"</span>);
+<a name="l00495"></a>00495   }
+<a name="l00496"></a>00496 
+<a name="l00497"></a>00497   <span class="keywordflow">return</span> Dyld->loadObject(InputBuffer);
+<a name="l00498"></a>00498 }
+<a name="l00499"></a>00499 
+<a name="l00500"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a5659ea1d0b3976643eae28a16216dfed">00500</a> <span class="keywordtype">void</span> *<a class="code" href="classllvm_1_1RuntimeDyld.html#a5659ea1d0b3976643eae28a16216dfed">RuntimeDyld::getSymbolAddress</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>) {
+<a name="l00501"></a>00501   <span class="keywordflow">return</span> Dyld->getSymbolAddress(Name);
+<a name="l00502"></a>00502 }
+<a name="l00503"></a>00503 
+<a name="l00504"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a5a827cd8ed5b41996fb7bd70b88b8da6">00504</a> uint64_t <a class="code" href="classllvm_1_1RuntimeDyld.html#a5a827cd8ed5b41996fb7bd70b88b8da6">RuntimeDyld::getSymbolLoadAddress</a>(<a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="namespacellvm_1_1GraphProgram.html#a0ad4685976f8c4d4a697a53fbe05d10b">Name</a>) {
+<a name="l00505"></a>00505   <span class="keywordflow">return</span> Dyld->getSymbolLoadAddress(Name);
+<a name="l00506"></a>00506 }
+<a name="l00507"></a>00507 
+<a name="l00508"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a4b3756c713e9a0e034b96a96ebd8ebc2">00508</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyld.html#a4b3756c713e9a0e034b96a96ebd8ebc2" title="Resolve the relocations for all symbols we currently know about.">RuntimeDyld::resolveRelocations</a>() {
+<a name="l00509"></a>00509   Dyld->resolveRelocations();
+<a name="l00510"></a>00510 }
+<a name="l00511"></a>00511 
+<a name="l00512"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a30ce7d72b88e0bc27b8c9e416e9a096c">00512</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyld.html#a30ce7d72b88e0bc27b8c9e416e9a096c">RuntimeDyld::reassignSectionAddress</a>(<span class="keywordtype">unsigned</span> SectionID,
+<a name="l00513"></a>00513                                          uint64_t Addr) {
+<a name="l00514"></a>00514   Dyld->reassignSectionAddress(SectionID, Addr);
+<a name="l00515"></a>00515 }
+<a name="l00516"></a>00516 
+<a name="l00517"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#a0b3c521130df594d63177bda62de400d">00517</a> <span class="keywordtype">void</span> <a class="code" href="classllvm_1_1RuntimeDyld.html#a0b3c521130df594d63177bda62de400d">RuntimeDyld::mapSectionAddress</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *LocalAddress,
+<a name="l00518"></a>00518                                     uint64_t TargetAddress) {
+<a name="l00519"></a>00519   Dyld->mapSectionAddress(LocalAddress, TargetAddress);
+<a name="l00520"></a>00520 }
+<a name="l00521"></a>00521 
+<a name="l00522"></a><a class="code" href="classllvm_1_1RuntimeDyld.html#add134b6e2d6db80ec96cec44eef17552">00522</a> <a class="code" href="classllvm_1_1StringRef.html">StringRef</a> <a class="code" href="classllvm_1_1RuntimeDyld.html#add134b6e2d6db80ec96cec44eef17552">RuntimeDyld::getErrorString</a>() {
+<a name="l00523"></a>00523   <span class="keywordflow">return</span> Dyld->getErrorString();
+<a name="l00524"></a>00524 }
+<a name="l00525"></a>00525 
+<a name="l00526"></a>00526 } <span class="comment">// end namespace llvm</span>
+</pre></div></div>
+</div>
+<hr>
+<p class="footer">
+Generated on Fri Dec 21 2012 00:37:22 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