* 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">
<p>Yes. The modified source distribution must retain the copyright notice and
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 class="question">
@ -519,34 +519,33 @@ you can read from and assign to <tt>volatile</tt> global variables.
<!--=========================================================================-->
<div class="question"><p>
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></div>
<div class="question">
<p> 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>
</div>
<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
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
.cpp file used <tt>std::cout</tt>, for example, the object would not necessarily
be automatically initialized before your use.
</p>
be automatically initialized before your use.</p>
<p>
To make <tt>std::cout</tt> and friends work correctly in these scenarios, the
<p>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
unit that includes &lt;iostream&gt;. This object has a static constructor and
destructor that initializes and destroys the global iostream objects before they
could possibly be used in the file. The code that you see in the .ll file
corresponds to the constructor and destructor registration code.
unit that includes <tt>&lt;iostream&gt;</tt>. This object has a static
constructor and destructor that initializes and destroys the global iostream
objects before they could possibly be used in the file. The code that you see
in the .ll file corresponds to the constructor and destructor registration code.
</p>
<p>
If you would like to make it easier to <b>understand</b> the LLVM code generated
by the compiler in the demo page, consider using printf instead of iostreams to
print values.
</p>
<p>If you would like to make it easier to <b>understand</b> the LLVM code
generated by the compiler in the demo page, consider using <tt>printf()</tt>
instead of <tt>iostream</tt>s to print values.</p>
</div>
<!-- *********************************************************************** -->