improve the global variable alignment description.
authorChris Lattner <sabre@nondot.org>
Wed, 28 Apr 2010 00:13:42 +0000 (00:13 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 28 Apr 2010 00:13:42 +0000 (00:13 +0000)
it is not generally valid for targets to overalign
them when an alignment is specified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102474 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 414c7a01a3cafed29a8c221203a6764bdef4d861..05637ab3306e0d8b2d474e910235dc944139d529 100644 (file)
@@ -851,11 +851,14 @@ define i32 @main() {                                        <i>; i32()* </i>
 <p>LLVM allows an explicit section to be specified for globals.  If the target
    supports it, it will emit globals to the section specified.</p>
 
-<p>An explicit alignment may be specified for a global.  If not present, or if
-   the alignment is set to zero, the alignment of the global is set by the
-   target to whatever it feels convenient.  If an explicit alignment is
-   specified, the global is forced to have at least that much alignment.  All
-   alignments must be a power of 2.</p>
+<p>An explicit alignment may be specified for a global, which must be a power
+   of 2.  If not present, or if the alignment is set to zero, the alignment of
+   the global is set by the target to whatever it feels convenient.  If an
+   explicit alignment is specified, the global is forced to have exactly that
+   alignment.  Targets are not allowed to over-align the global in cases where
+   it is observable: for example, overaligning a global is observable if it has
+   an assigned section and higher alignment could cause holes between
+   consequtive globals.</p>
 
 <p>For example, the following defines a global in a numbered address space with
    an initializer, section, and alignment:</p>