Document that dllexported symbols are preserved by optimization passes.

llvm-svn: 196523
This commit is contained in:
Yunzhong Gao 2013-12-05 18:37:54 +00:00
parent cdbde3aacc
commit f5b769e4f2
1 changed files with 5 additions and 3 deletions

View File

@ -289,7 +289,9 @@ symbols from (to) DLLs (Dynamic Link Libraries).
pointer to a pointer in a DLL, so that it can be referenced with the
``dllimport`` attribute. On Microsoft Windows targets, the pointer
name is formed by combining ``__imp_`` and the function or variable
name.
name. Since this linkage exists for defining a dll interface, the
compiler, assembler and linker know it is externally referenced and
must refrain from deleting the symbol.
It is illegal for a function *declaration* to have any linkage type
other than ``external``, ``dllimport`` or ``extern_weak``.
@ -501,8 +503,8 @@ variables defined within the module are not modified from their
initial values before the start of the global initializer. This is
true even for variables potentially accessible from outside the
module, including those with external linkage or appearing in
``@llvm.used``. This assumption may be suppressed by marking the
variable with ``externally_initialized``.
``@llvm.used`` or dllexported variables. This assumption may be suppressed
by marking the variable with ``externally_initialized``.
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