Skip to content

Commit

Permalink
cg_llvm: stop identifying ADTs in LLVM IR
Browse files Browse the repository at this point in the history
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 }
```
  • Loading branch information
erikdesjardins committed Jul 29, 2023
1 parent 04303cf commit 1d7f728
Showing 1 changed file with 0 additions and 3 deletions.
3 changes: 0 additions & 3 deletions compiler/rustc_codegen_llvm/src/type_of.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};

Expand Down

0 comments on commit 1d7f728

Please sign in to comment.