mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
Document the newly generalized model for constant globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20136 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e6f8c5a716
commit
3689a34489
@ -423,12 +423,22 @@ to have any linkage type other than "externally visible".</a></p>
|
|||||||
|
|
||||||
<div class="doc_text">
|
<div class="doc_text">
|
||||||
|
|
||||||
<p>Global variables define regions of memory allocated at compilation
|
<p>Global variables define regions of memory allocated at compilation time
|
||||||
time instead of run-time. Global variables may optionally be
|
instead of run-time. Global variables may optionally be initialized. A
|
||||||
initialized. A variable may be defined as a global "constant", which
|
variable may be defined as a global "constant", which indicates that the
|
||||||
indicates that the contents of the variable will never be modified
|
contents of the variable will <b>never</b> be modified (enabling better
|
||||||
(enabling better optimization, allowing the global data to be placed in the
|
optimization, allowing the global data to be placed in the read-only section of
|
||||||
read-only section of an executable, etc).</p>
|
an executable, etc). Note that variables that need runtime initialization
|
||||||
|
cannot be marked "constant", as there is a store to the variable.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
LLVM explicitly allows <em>declarations</em> of global variables to be marked
|
||||||
|
constant, even if the final definition of the global is not. This capability
|
||||||
|
can be used to enable slightly better optimization of the program, but requires
|
||||||
|
the language definition to guarantee that optimizations based on the
|
||||||
|
'constantness' are valid for the translation units that do not include the
|
||||||
|
definition.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>As SSA values, global variables define pointer values that are in
|
<p>As SSA values, global variables define pointer values that are in
|
||||||
scope (i.e. they dominate) all basic blocks in the program. Global
|
scope (i.e. they dominate) all basic blocks in the program. Global
|
||||||
|
Loading…
Reference in New Issue
Block a user