[llvm] r196300 - Teach the internalize pass to skip dllexported symbols because they could be
Rafael EspĂndola
rafael.espindola at gmail.com
Thu Dec 5 08:36:51 PST 2013
LGTM
On 4 December 2013 17:16, Gao, Yunzhong
<yunzhong_gao at playstation.sony.com> wrote:
> Hi,
> Many thanks to Rafael for pointing this out and researching on the exported symbols. Please
> review the doc changes below, which I plan to submit against LangRef.rst.
> - Gao.
>
> Index: llvm/docs/LangRef.rst
> ===================================================================
> --- llvm/docs/LangRef.rst (revision 196419)
> +++ llvm/docs/LangRef.rst (working copy)
> @@ -289,7 +289,9 @@
> 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 @@
> 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
>
More information about the llvm-commits
mailing list