<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/debuginfo, branch 1.70.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.70.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.70.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-05-20T00:01:39+00:00</updated>
<entry>
<title>debuginfo: split method declaration and definition</title>
<updated>2023-05-20T00:01:39+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2023-05-03T22:52:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec1d458777fbb49ae4be1e285da8206cbb6c3456'/>
<id>urn:sha1:ec1d458777fbb49ae4be1e285da8206cbb6c3456</id>
<content type='text'>
When we're adding a method to a type DIE, we only want a DW_AT_declaration
there, because LLVM LTO can't unify type definitions when a child DIE is a
full subprogram definition. Now the subprogram definition gets added at the
CU level with a specification link back to the abstract declaration.

(cherry picked from commit 10b69dde3fd15334ea2382d2dc9e9a261de1afaf)
</content>
</entry>
<entry>
<title>Auto merge of #109862 - klensy:llvm-dd, r=nikic</title>
<updated>2023-04-08T15:57:59+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-04-08T15:57:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dd2b19539ea4d62a150cf13d45942e58b6b44e54'/>
<id>urn:sha1:dd2b19539ea4d62a150cf13d45942e58b6b44e54</id>
<content type='text'>
llvm: replace some deprecated functions, add fixmes

Replace some deprecated llvm functions, add FIXME's (for simpler future work), replace some rust custom functions with llvm ones.
</content>
</entry>
<entry>
<title>review</title>
<updated>2023-04-05T12:08:17+00:00</updated>
<author>
<name>klensy</name>
<email>klensy@users.noreply.github.com</email>
</author>
<published>2023-04-05T12:08:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c0bc00174f0b033a689a12c108f0abddc3420f9f'/>
<id>urn:sha1:c0bc00174f0b033a689a12c108f0abddc3420f9f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #109808 - jyn514:debuginfo-options, r=michaelwoerister</title>
<updated>2023-04-04T20:01:05+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-04-04T20:01:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=700938c0781c9f135244bb1ec846fe1a5e03ae7d'/>
<id>urn:sha1:700938c0781c9f135244bb1ec846fe1a5e03ae7d</id>
<content type='text'>
Extend -Cdebuginfo with new options and named aliases

This is a rebase of https://github.com/rust-lang/rust/pull/83947, along with my best guess at what the new options mean. I tried to follow the LLVM source code to get a better idea but ran into quite a lot of trouble (https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm/topic/go-to-definition.20in.20src.2Fllvm-project.3F). The description for the original PR follows below.

Note that the changes in this PR have already been through FCP: https://github.com/rust-lang/rust/pull/83947#issuecomment-878384979

Closes https://github.com/rust-lang/rust/pull/109311. Helps with https://github.com/rust-lang/rust/pull/104968.
r? `@michaelwoerister` cc `@cuviper`

---

The -Cdebuginfo=1 option was never line tables only and can't be due to backwards compatibility issues. This was clarified and an option for emitting line tables only was added. Additionally an option for emitting line info directives only was added, which is needed for some targets, i.e. nvptx. The debug info options should now behave similarly to clang's debug info options.

Fix https://github.com/rust-lang/rust/issues/60020
Fix https://github.com/rust-lang/rust/issues/64405
</content>
</entry>
<entry>
<title>replace LLVMRustMetadataAsValue with LLVMMetadataAsValue</title>
<updated>2023-04-04T12:12:35+00:00</updated>
<author>
<name>klensy</name>
<email>klensy@users.noreply.github.com</email>
</author>
<published>2023-04-02T14:52:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c53a9faa6fdcdf8776646e837272ea0a85bf8179'/>
<id>urn:sha1:c53a9faa6fdcdf8776646e837272ea0a85bf8179</id>
<content type='text'>
</content>
</entry>
<entry>
<title>replace deprecated LLVMSetCurrentDebugLocation with LLVMSetCurrentDebugLocation2</title>
<updated>2023-04-04T12:12:32+00:00</updated>
<author>
<name>klensy</name>
<email>klensy@users.noreply.github.com</email>
</author>
<published>2023-04-02T12:20:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0b5f9ac73e087b3728f0fcf53d541d4e80773732'/>
<id>urn:sha1:0b5f9ac73e087b3728f0fcf53d541d4e80773732</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use `&amp;IndexSlice` instead of `&amp;IndexVec` where possible</title>
<updated>2023-04-03T00:35:37+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2023-03-31T07:32:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a2ee7592d6b7c0daa62b7870ade85e0cc0acca05'/>
<id>urn:sha1:a2ee7592d6b7c0daa62b7870ade85e0cc0acca05</id>
<content type='text'>
All the same reasons as for `[T]`: more general, less pointer chasing, and `&amp;mut IndexSlice` emphasizes that it doesn't change *length*.
</content>
</entry>
<entry>
<title>Preserve, clarify, and extend debug information</title>
<updated>2023-03-31T11:28:39+00:00</updated>
<author>
<name>Julia Tatz</name>
<email>tatz.j@northeastern.edu</email>
</author>
<published>2021-04-06T20:00:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0504a333837e10f19454901fd060c0f99bf8f5b7'/>
<id>urn:sha1:0504a333837e10f19454901fd060c0f99bf8f5b7</id>
<content type='text'>
`-Cdebuginfo=1` was never line tables only and
can't be due to backwards compatibility issues.
This was clarified and an option for line tables only
was added. Additionally an option for line info
directives only was added, which is well needed for
some targets. The debug info options should now
behave the same as clang's debug info options.
</content>
</entry>
<entry>
<title>Update `ty::VariantDef` to use `IndexVec&lt;FieldIdx, FieldDef&gt;`</title>
<updated>2023-03-30T16:23:40+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2023-03-29T06:32:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4abb45552992da2c30df9626c1b522b3d10f789b'/>
<id>urn:sha1:4abb45552992da2c30df9626c1b522b3d10f789b</id>
<content type='text'>
And while doing the updates for that, also uses `FieldIdx` in `ProjectionKind::Field` and `TypeckResults::field_indices`.

There's more places that could use it (like `rustc_const_eval` and `LayoutS`), but I tried to keep this PR from exploding to *even more* places.

Part 2/? of https://github.com/rust-lang/compiler-team/issues/606
</content>
</entry>
<entry>
<title>Move `mir::Field` → `abi::FieldIdx`</title>
<updated>2023-03-29T05:22:37+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2023-03-28T19:32:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5bbaeadc013cae79e440fb5d3da2175c83cb36e4'/>
<id>urn:sha1:5bbaeadc013cae79e440fb5d3da2175c83cb36e4</id>
<content type='text'>
The first PR for https://github.com/rust-lang/compiler-team/issues/606

This is just the move-and-rename, because it's plenty big-and-bitrotty already.  Future PRs will start using `FieldIdx` more broadly, and concomitantly removing `FieldIdx::new`s.
</content>
</entry>
</feed>
