<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/debuginfo/metadata, branch 1.86.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.86.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.86.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-02-12T18:01:42+00:00</updated>
<entry>
<title>debuginfo: Set bitwidth appropriately in enum variant tags</title>
<updated>2025-02-12T18:01:42+00:00</updated>
<author>
<name>Matthew Maurer</name>
<email>mmaurer@google.com</email>
</author>
<published>2025-02-12T00:37:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d82219a4fa06bfa47fc5aac64844c461905ae77d'/>
<id>urn:sha1:d82219a4fa06bfa47fc5aac64844c461905ae77d</id>
<content type='text'>
Previously, we unconditionally set the bitwidth to 128-bits, the largest
an discrimnator would possibly be. Then, LLVM would cut down the constant by
chopping off leading zeroes before emitting the DWARF. LLVM only
supported 64-bit descriminators, so this would also have occasionally
resulted in truncated data (or an assert) if more than 64-bits were
used.

LLVM added support for 128-bit enumerators in llvm/llvm-project#125578

That patchset also trusts the constant to describe how wide the variant tag is.
As a result, we went from emitting tags that looked like:
DW_AT_discr_value     (0xfe)

(`form1`)

to emitting tags that looked like:
DW_AT_discr_value	(&lt;0x10&gt; fe ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 )

This makes the `DW_AT_discr_value` encode at the bitwidth of the tag,
which:
1. Is probably closer to our intentions in terms of describing the data.
2. Doesn't invoke the 128-bit support which may not be supported by all
   debuggers / downstream tools.
3. Will result in smaller debug information.
</content>
</entry>
<entry>
<title>Use ExistentialTraitRef throughout codegen</title>
<updated>2025-01-30T15:34:00+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-01-10T20:26:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9dc41a048d7dc765b28102d557eec40ff050e6ab'/>
<id>urn:sha1:9dc41a048d7dc765b28102d557eec40ff050e6ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use gimli to get the values of DWARF constants needed by codegen</title>
<updated>2025-01-05T11:07:48+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-01-05T00:38:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e26710610490da43b30e66747c713b382fe62794'/>
<id>urn:sha1:e26710610490da43b30e66747c713b382fe62794</id>
<content type='text'>
The `gimli` crate is already a dependency of `thorin-dwp`, which is already a
dependency of `rustc_codegen_ssa`.
</content>
</entry>
<entry>
<title>force enum `DISCR_*` to `const u64` to allow for inspection via LLDB's `SBTypeStaticField::GetConstantValue()`</title>
<updated>2024-12-31T01:01:48+00:00</updated>
<author>
<name>Walnut</name>
<email>39544927+Walnut356@users.noreply.github.com</email>
</author>
<published>2024-12-06T16:50:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a1191e30b6cfdad8e5763eae808e138818d9b56d'/>
<id>urn:sha1:a1191e30b6cfdad8e5763eae808e138818d9b56d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix outdated comment</title>
<updated>2024-12-18T10:01:54+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-12-07T17:37:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=397ae3cdf641b8d303ab9d004013f956c2991727'/>
<id>urn:sha1:397ae3cdf641b8d303ab9d004013f956c2991727</id>
<content type='text'>
Co-authored-by: Camille Gillot &lt;gillot.camille@gmail.com&gt;</content>
</entry>
<entry>
<title>make no-variant types a dedicated Variants variant</title>
<updated>2024-12-18T10:01:54+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-12-01T16:33:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e023590de407f417e0f3da675a372eca7acf60c6'/>
<id>urn:sha1:e023590de407f417e0f3da675a372eca7acf60c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Variants::Single: do not use invalid VariantIdx for uninhabited enums</title>
<updated>2024-12-18T10:00:21+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-12-01T12:12:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=21de42bf8ddd0f39c766c7705990152302ae1f3b'/>
<id>urn:sha1:21de42bf8ddd0f39c766c7705990152302ae1f3b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #104342 - mweber15:add_file_location_to_more_types, r=wesleywiser</title>
<updated>2024-12-03T12:49:57+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2024-12-03T12:49:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8575f8f91bbd7dca529d362afc8117db74661c3b'/>
<id>urn:sha1:8575f8f91bbd7dca529d362afc8117db74661c3b</id>
<content type='text'>
Require `type_map::stub` callers to supply file information

This change attaches file information (`DIFile` reference and line number) to struct debug info nodes.

Before:

```
; foo.ll
...
!5 = !DIFile(filename: "&lt;unknown&gt;", directory: "")
...
!16 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyType", scope: !2, file: !5, size: 32, align: 32, elements: !17, templateParams: !19, identifier: "4cb373851db92e732c4cb5651b886dd0")
...
```

After:

```
; foo.ll
...
!3 = !DIFile(filename: "foo.rs", directory: "/home/matt/src/rust98678", checksumkind: CSK_SHA1, checksum: "bcb9f08512c8f3b8181ef4726012bc6807bc9be4")
...
!16 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyType", scope: !2, file: !3, line: 3, size: 32, align: 32, elements: !17, templateParams: !19, identifier: "9e5968c7af39c148acb253912b7f409f")
...
```

Fixes #98678

r? `@wesleywiser`
</content>
</entry>
<entry>
<title>use `TypingEnv` when no `infcx` is available</title>
<updated>2024-11-18T09:38:56+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2024-11-15T12:53:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9cba14b95bb07a5b31ed1aac2bf4eadd248232da'/>
<id>urn:sha1:9cba14b95bb07a5b31ed1aac2bf4eadd248232da</id>
<content type='text'>
the behavior of the type system not only depends on the current
assumptions, but also the currentnphase of the compiler. This is
mostly necessary as we need to decide whether and how to reveal
opaque types. We track this via the `TypingMode`.
</content>
</entry>
<entry>
<title>Clean up use requirements after rebasing</title>
<updated>2024-11-07T03:26:18+00:00</updated>
<author>
<name>Matt Weber</name>
<email>30441572+mweber15@users.noreply.github.com</email>
</author>
<published>2024-11-07T02:46:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8286299742e16b20ef7c6fbd65921cb19b79038a'/>
<id>urn:sha1:8286299742e16b20ef7c6fbd65921cb19b79038a</id>
<content type='text'>
</content>
</entry>
</feed>
