[llvm] r202927 - LangRef: Remove stale docs on LLVM types in module structure

Reid Kleckner reid at kleckner.net
Tue Mar 4 18:21:50 PST 2014

Author: rnk
Date: Tue Mar  4 20:21:50 2014
New Revision: 202927

URL: http://llvm.org/viewvc/llvm-project?rev=202927&view=rev
LangRef: Remove stale docs on LLVM types in module structure

The distinction between "identified" and "literal" struct types is fully
documented in a later section.

Patch by Philip Reames!


Modified: llvm/trunk/docs/LangRef.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.rst?rev=202927&r1=202926&r2=202927&view=diff
--- llvm/trunk/docs/LangRef.rst (original)
+++ llvm/trunk/docs/LangRef.rst Tue Mar  4 20:21:50 2014
@@ -471,31 +471,22 @@ DLL storage class:
     exists for defining a dll interface, the compiler, assembler and linker know
     it is externally referenced and must refrain from deleting the symbol.
-Named Types
+Structure Types
-LLVM IR allows you to specify name aliases for certain types. This can
-make it easier to read the IR and make the IR more condensed
-(particularly when recursive types are involved). An example of a name
-specification is:
+LLVM IR allows you to specify both "identified" and "literal" :ref:`structure
+types <t_struct>`.  Literal types are uniqued structurally, but identified types
+are never uniqued.  An :ref:`opaque structural type <t_opaque>` can also be used
+to forward declare a type which is not yet available.
+An example of a identified structure specification is:
 .. code-block:: llvm
     %mytype = type { %mytype*, i32 }
-You may give a name to any :ref:`type <typesystem>` except
-":ref:`void <t_void>`". Type name aliases may be used anywhere a type is
-expected with the syntax "%mytype".
-Note that type names are aliases for the structural type that they
-indicate, and that you can therefore specify multiple names for the same
-type. This often leads to confusing behavior when dumping out a .ll
-file. Since LLVM IR uses structural typing, the name is not part of the
-type. When printing out LLVM IR, the printer will pick *one name* to
-render all types of a particular shape. This means that if you have code
-where two different source types end up having the same LLVM type, that
-the dumper will sometimes print the "wrong" or unexpected type. This is
-an important design point and isn't going to change.
+Prior to the LLVM 3.0 release, identified types were structurally uniqued.  Only
+literal types are uniqued in recent versions of LLVM.
 .. _globalvars:

More information about the llvm-commits mailing list