* Link to the license file from release 1.3 (should we link to CVS version

instead?)
* Encapsulate code and header file names with <tt> and </tt>
* Arrange <p> and </p> tags to be inline with the text they contain


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18472 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Misha Brukman 2004-12-03 23:58:18 +00:00
parent 642d1021da
commit 237dc2a807

View File

@ -123,7 +123,7 @@ Source Initiative (OSI).</p>
<div class="answer"> <div class="answer">
<p>Yes. The modified source distribution must retain the copyright notice and <p>Yes. The modified source distribution must retain the copyright notice and
follow the three bulletted conditions listed in the <a follow the three bulletted conditions listed in the <a
href="http://llvm.cs.uiuc.edu/releases/1.2/LICENSE.TXT">LLVM license</a>.</p> href="http://llvm.cs.uiuc.edu/releases/1.3/LICENSE.TXT">LLVM license</a>.</p>
</div> </div>
<div class="question"> <div class="question">
@ -519,34 +519,33 @@ you can read from and assign to <tt>volatile</tt> global variables.
<!--=========================================================================--> <!--=========================================================================-->
<div class="question"><p> <div class="question">
What is this <tt>llvm.global_ctors</tt> and <tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I #include &lt;iostream&gt;? <p> What is this <tt>llvm.global_ctors</tt> and
</p></div> <tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I #include
&lt;iostream&gt;?</p>
</div>
<div class="answer"> <div class="answer">
<p>
If you #include the &lt;iostream&gt; header into a C++ translation unit, the <p>If you #include the &lt;iostream&gt; header into a C++ translation unit, the
file will probably use the <tt>std::cin</tt>/<tt>std::cout</tt>/... global file will probably use the <tt>std::cin</tt>/<tt>std::cout</tt>/... global
objects. However, C++ does not guarantee an order of initialization between objects. However, C++ does not guarantee an order of initialization between
static objects in different translation units, so if a static ctor/dtor in your static objects in different translation units, so if a static ctor/dtor in your
.cpp file used <tt>std::cout</tt>, for example, the object would not necessarily .cpp file used <tt>std::cout</tt>, for example, the object would not necessarily
be automatically initialized before your use. be automatically initialized before your use.</p>
</p>
<p> <p>To make <tt>std::cout</tt> and friends work correctly in these scenarios, the
To make <tt>std::cout</tt> and friends work correctly in these scenarios, the
STL that we use declares a static object that gets created in every translation STL that we use declares a static object that gets created in every translation
unit that includes &lt;iostream&gt;. This object has a static constructor and unit that includes <tt>&lt;iostream&gt;</tt>. This object has a static
destructor that initializes and destroys the global iostream objects before they constructor and destructor that initializes and destroys the global iostream
could possibly be used in the file. The code that you see in the .ll file objects before they could possibly be used in the file. The code that you see
corresponds to the constructor and destructor registration code. in the .ll file corresponds to the constructor and destructor registration code.
</p> </p>
<p> <p>If you would like to make it easier to <b>understand</b> the LLVM code
If you would like to make it easier to <b>understand</b> the LLVM code generated generated by the compiler in the demo page, consider using <tt>printf()</tt>
by the compiler in the demo page, consider using printf instead of iostreams to instead of <tt>iostream</tt>s to print values.</p>
print values.
</p>
</div> </div>
<!-- *********************************************************************** --> <!-- *********************************************************************** -->