mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
add an entry, add links to entries for demo page.
llvm-svn: 20328
This commit is contained in:
parent
9340ba4bf9
commit
ea8835f35b
@ -72,12 +72,13 @@
|
||||
|
||||
<li><a href="#cfe_code">Questions about code generated by the GCC front-end</a>
|
||||
<ol>
|
||||
<li>What is this <tt>__main()</tt> call that gets inserted into
|
||||
<tt>main()</tt>?</li>
|
||||
<li>Where did all of my code go??</li>
|
||||
<li>What is this <tt>llvm.global_ctors</tt> and
|
||||
<li><a href="#__main">What is this <tt>__main()</tt> call that gets inserted into
|
||||
<tt>main()</tt>?</a></li>
|
||||
<li><a href="#iosinit">What is this <tt>llvm.global_ctors</tt> and
|
||||
<tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I
|
||||
#include <iostream>?</li>
|
||||
#include <iostream>?</a></li>
|
||||
<li><a href="#codedce">Where did all of my code go??</a></li>
|
||||
<li><a href="#undef">What is this "<tt>undef</tt>" thing that shows up in my code?</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
@ -448,6 +449,7 @@ correct this, do:</p>
|
||||
</div>
|
||||
|
||||
<div class="question"><p>
|
||||
<a name="__main"></a>
|
||||
What is this <tt>__main()</tt> call that gets inserted into <tt>main()</tt>?
|
||||
</p></div>
|
||||
|
||||
@ -469,29 +471,8 @@ linked in automatically when you link the program.
|
||||
|
||||
<!--=========================================================================-->
|
||||
|
||||
<div class="question"><p>
|
||||
Where did all of my code go??
|
||||
</p></div>
|
||||
|
||||
<div class="answer">
|
||||
<p>
|
||||
If you are using the LLVM demo page, you may often wonder what happened to all
|
||||
of the code that you typed in. Remember that the demo script is running the
|
||||
code through the LLVM optimizers, so if your code doesn't actually do anything
|
||||
useful, it might all be deleted.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To prevent this, make sure that the code is actually needed. For example, if
|
||||
you are computing some expression, return the value from the function instead of
|
||||
leaving it in a local variable. If you really want to constrain the optimizer,
|
||||
you can read from and assign to <tt>volatile</tt> global variables.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!--=========================================================================-->
|
||||
|
||||
<div class="question">
|
||||
<a name="iosinit"></a>
|
||||
<p> What is this <tt>llvm.global_ctors</tt> and
|
||||
<tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I #include
|
||||
<iostream>?</p>
|
||||
@ -520,6 +501,51 @@ instead of <tt>iostream</tt>s to print values.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!--=========================================================================-->
|
||||
|
||||
<div class="question"><p>
|
||||
<a name="codedce"></a>
|
||||
Where did all of my code go??
|
||||
</p></div>
|
||||
|
||||
<div class="answer">
|
||||
<p>
|
||||
If you are using the LLVM demo page, you may often wonder what happened to all
|
||||
of the code that you typed in. Remember that the demo script is running the
|
||||
code through the LLVM optimizers, so if your code doesn't actually do anything
|
||||
useful, it might all be deleted.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To prevent this, make sure that the code is actually needed. For example, if
|
||||
you are computing some expression, return the value from the function instead of
|
||||
leaving it in a local variable. If you really want to constrain the optimizer,
|
||||
you can read from and assign to <tt>volatile</tt> global variables.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!--=========================================================================-->
|
||||
|
||||
<div class="question"><p>
|
||||
<a name="undef"></a>
|
||||
<p>What is this "<tt>undef</tt>" thing that shows up in my code?
|
||||
</p></div>
|
||||
|
||||
<div class="answer">
|
||||
<p>
|
||||
<a href="LangRef.html#undef"><tt>undef</tt></a> is the LLVM way of representing
|
||||
a value that is not defined. You can get these if you do not initialize a
|
||||
variable before you use it. For example, the C function:</p>
|
||||
|
||||
<div class="doc_code">
|
||||
<tt>int X() { int i; return i; }</tt>
|
||||
</div>
|
||||
|
||||
<p>Is compiled to "<tt>ret int undef</tt>" because "i" never has a value
|
||||
specified for it.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<hr>
|
||||
|
Loading…
x
Reference in New Issue
Block a user