aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-08-07 14:34:28 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-08-07 14:34:28 +0000
commit2c45228651bc3bfbec214343f6896841c3cb1d04 (patch)
treee4580e471149a14e6e3642007fab0bfa562cd139 /docs
parentf48a88054a6a72ceff4e79a5f4b480f1ae634453 (diff)
downloadexternal_llvm-2c45228651bc3bfbec214343f6896841c3cb1d04.zip
external_llvm-2c45228651bc3bfbec214343f6896841c3cb1d04.tar.gz
external_llvm-2c45228651bc3bfbec214343f6896841c3cb1d04.tar.bz2
Describe the global/local naming convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40890 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.html24
1 files changed, 13 insertions, 11 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 35990bd..bf9464b 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -296,25 +296,27 @@ the parser.</p>
<div class="doc_text">
-<p>LLVM uses three different forms of identifiers, for different
-purposes:</p>
+ <p>LLVM identifiers come in two basic types: global and local. Global
+ identifiers (functions, global variables) begin with the @ character. Local
+ identifiers (register names, types) begin with the % character. Additionally,
+ there are three different formats for identifiers, for different purposes:
<ol>
- <li>Named values are represented as a string of characters with a '%' prefix.
- For example, %foo, %DivisionByZero, %a.really.long.identifier. The actual
- regular expression used is '<tt>%[a-zA-Z$._][a-zA-Z$._0-9]*</tt>'.
+ <li>Named values are represented as a string of characters with their prefix.
+ For example, %foo, @DivisionByZero, %a.really.long.identifier. The actual
+ regular expression used is '<tt>[%@][a-zA-Z$._][a-zA-Z$._0-9]*</tt>'.
Identifiers which require other characters in their names can be surrounded
- with quotes. In this way, anything except a <tt>&quot;</tt> character can be used
- in a name.</li>
+ with quotes. In this way, anything except a <tt>&quot;</tt> character can
+ be used in a named value.</li>
- <li>Unnamed values are represented as an unsigned numeric value with a '%'
- prefix. For example, %12, %2, %44.</li>
+ <li>Unnamed values are represented as an unsigned numeric value with their
+ prefix. For example, %12, @2, %44.</li>
<li>Constants, which are described in a <a href="#constants">section about
constants</a>, below.</li>
</ol>
-<p>LLVM requires that values start with a '%' sign for two reasons: Compilers
+<p>LLVM requires that values start with a prefix for two reasons: Compilers
don't need to worry about name clashes with reserved words, and the set of
reserved words may be expanded in the future without penalty. Additionally,
unnamed identifiers allow a compiler to quickly come up with a temporary
@@ -327,7 +329,7 @@ languages. There are keywords for different opcodes
'<tt><a href="#i_ret">ret</a></tt>', etc...), for primitive type names ('<tt><a
href="#t_void">void</a></tt>', '<tt><a href="#t_primitive">i32</a></tt>', etc...),
and others. These reserved words cannot conflict with variable names, because
-none of them start with a '%' character.</p>
+none of them start with a prefix character ('%' or '@').</p>
<p>Here is an example of LLVM code to multiply the integer variable
'<tt>%X</tt>' by 8:</p>