about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorErik Desjardins <erikdesjardins@users.noreply.github.com>2023-07-29 16:12:27 -0400
committerErik Desjardins <erikdesjardins@users.noreply.github.com>2023-07-29 16:12:27 -0400
commit1d7f728901090e3343e9c284886f9983a052edef (patch)
tree026ecf403fa32a4bb19a2a6e412508a162ae808c /compiler/rustc_codegen_llvm/src
parent04303cfb3af3a8019ef913b1a07a94cfb683a5ab (diff)
downloadrust-1d7f728901090e3343e9c284886f9983a052edef.tar.gz
rust-1d7f728901090e3343e9c284886f9983a052edef.zip
cg_llvm: stop identifying ADTs in LLVM IR
Now that we use opaque pointers, ADTs can no longer be recursive, so we
do not need to name them. Previously, this would be necessary if you had
a struct like

```rs
struct Foo(Box<Foo>, u64, u64);
```

which would be represented with something like

```ll
%Foo = type { %Foo*, i64, i64 }
```

which is now just

```ll
{ ptr, i64, i64 }
```
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
-rw-r--r--compiler/rustc_codegen_llvm/src/type_of.rs3
1 files changed, 0 insertions, 3 deletions
diff --git a/compiler/rustc_codegen_llvm/src/type_of.rs b/compiler/rustc_codegen_llvm/src/type_of.rs
index ac18fdfe07f..b6cf22b4cca 100644
--- a/compiler/rustc_codegen_llvm/src/type_of.rs
+++ b/compiler/rustc_codegen_llvm/src/type_of.rs
@@ -61,9 +61,6 @@ fn uncached_llvm_type<'a, 'tcx>(
             }
             Some(name)
         }
-        // Use identified structure types for ADT. Due to pointee types in LLVM IR their definition
-        // might be recursive. Other cases are non-recursive and we can use literal structure types.
-        ty::Adt(..) => Some(String::new()),
         _ => None,
     };