diff options
| author | Reid Kleckner <reid@kleckner.net> | 2014-03-05 02:21:50 +0000 |
|---|---|---|
| committer | Reid Kleckner <reid@kleckner.net> | 2014-03-05 02:21:50 +0000 |
| commit | 7c84d1d3f70703a8e438db1ffd139b40c48837c8 (patch) | |
| tree | beab213281e4993f28074b27f374292d436c2c17 /llvm | |
| parent | e44d952479889c682485117605306013d70a4aaf (diff) | |
| download | bcm5719-llvm-7c84d1d3f70703a8e438db1ffd139b40c48837c8.tar.gz bcm5719-llvm-7c84d1d3f70703a8e438db1ffd139b40c48837c8.zip | |
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!
llvm-svn: 202927
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/docs/LangRef.rst | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 52f916e2375..06e6de65f07 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -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 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. -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: +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: |

