[llvm-dev] llvm-link unifies identified structs?

Robin Sommer via llvm-dev llvm-dev at lists.llvm.org
Sat Jul 30 11:23:48 PDT 2016


Any suggestions? It's not a problem for me, I'm mostly curious as it
makes it harder to read the IR. Feel free to point me to other
documentation if I'm missing something. Thanks,

Robin

On Wed, Jul 27, 2016 at 08:10 -0700, I wrote:

> The language reference says: "identified [structure] types are never
> uniqued". But llvm-link seems to do just that at link-time:
> 
>     > cat x.ll
> 
>     %A = type {}
>     %B = type {}
>     %C = type { %A*, %B* }
> 
>     define void @foo(%C* %c) {
>       ret void
>     }
> 
>     >  llvm-link x.ll | llvm-dis
>     ; ModuleID = '<stdin>'
>     source_filename = "llvm-link"
> 
>     %C = type { %A*, %A* }
>     %A = type {}
> 
>     define void @foo(%C* %c) {
>         ret void
>     }
> 
> Does the statement in the language reference not apply to linking?
> 
> (This is with a recent 3.9).
> 
> Robin
> 
> -- 
> Robin Sommer * ICSI/LBNL * robin at icir.org * www.icir.org/robin


-- 
Robin Sommer * ICSI/LBNL * robin at icir.org * www.icir.org/robin


More information about the llvm-dev mailing list