forked from OSchip/llvm-project
* 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 llvm-svn: 18472
This commit is contained in:
parent
e175aa5cc1
commit
8d9a83a908
|
@ -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 <iostream>?
|
||||
</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
|
||||
<iostream>?</p>
|
||||
</div>
|
||||
|
||||
<div class="answer">
|
||||
<p>
|
||||
If you #include the <iostream> header into a C++ translation unit, the
|
||||
|
||||
<p>If you #include the <iostream> 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 <iostream>. 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><iostream></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>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
|
|
Loading…
Reference in New Issue