From 78e00bcb7647913155e8dcabe75ebf50e5be2943 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 28 Apr 2010 00:13:42 +0000 Subject: [PATCH] improve the global variable alignment description. it is not generally valid for targets to overalign them when an alignment is specified. llvm-svn: 102474 --- llvm/docs/LangRef.html | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/llvm/docs/LangRef.html b/llvm/docs/LangRef.html index 414c7a01a3ca..05637ab3306e 100644 --- a/llvm/docs/LangRef.html +++ b/llvm/docs/LangRef.html @@ -851,11 +851,14 @@ define i32 @main() { ; i32()*

LLVM allows an explicit section to be specified for globals. If the target supports it, it will emit globals to the section specified.

-

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.

+

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.

For example, the following defines a global in a numbered address space with an initializer, section, and alignment: