[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