[LLVMdev] Linking opaque types

Anton Lokhmotov Anton.Lokhmotov at arm.com
Mon Jul 25 08:52:21 PDT 2011

There is an issue with representing opaque types in LLVM IR modules: if two
modules are using the same opaque type (which is only going to be
specialised at some later stage), it is only identified by its name.  But
the current module linker "resolves" this as if there is a name clash, and
one of that opaque types is renamed.  It contradicts an intuitively expected
identifier behaviour and makes it literally impossible to use opaque types
for identifying underspecified types across different modules. 

Our position is that structure type names should be treated as proper
identifiers, as long as types are structurally equivalent, and all the
opaque types are structurally equivalent unless they're specialised.

Could anyone familiar with the linker comment please?

Many thanks,

More information about the llvm-dev mailing list