<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/debuginfo, branch 1.73.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.73.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.73.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-08-09T06:17:54+00:00</updated>
<entry>
<title>rustc: Move `crate_types` from `Session` to `GlobalCtxt`</title>
<updated>2023-08-09T06:17:54+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2023-08-08T10:28:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0b89aac08d7190961544ced9e868cc20ce24d786'/>
<id>urn:sha1:0b89aac08d7190961544ced9e868cc20ce24d786</id>
<content type='text'>
Removes a piece of mutable state.
Follow up to #114578.
</content>
</entry>
<entry>
<title>Use upvar_tys in more places, make it a list</title>
<updated>2023-08-01T23:19:31+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2023-07-25T23:31:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=99969d282bd853442d7539b83833816b73e642e1'/>
<id>urn:sha1:99969d282bd853442d7539b83833816b73e642e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #105545 - erikdesjardins:ptrclean, r=bjorn3</title>
<updated>2023-08-01T19:44:17+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-08-01T19:44:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=abd3637e42bdccc4afd5d5ae9a96d9a0e7246e67'/>
<id>urn:sha1:abd3637e42bdccc4afd5d5ae9a96d9a0e7246e67</id>
<content type='text'>
cleanup: remove pointee types

This can't be merged until the oldest LLVM version we support uses opaque pointers, which will be the case after #114148. (Also note `-Cllvm-args="-opaque-pointers=0"` can technically be used in LLVM 15, though I don't think we should support that configuration.)

I initially hoped this would provide some minor perf win, but in https://github.com/rust-lang/rust/pull/105412#issuecomment-1341224450 it had very little impact, so this is only valuable as a cleanup.

As a followup, this will enable #96242 to be resolved.

r? `@ghost`

`@rustbot` label S-blocked
</content>
</entry>
<entry>
<title>inline format!() args up to and including rustc_codegen_llvm</title>
<updated>2023-07-30T12:22:50+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2023-07-25T21:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3ce90b16490490aea6da61f913fb0ecbc5d4ec7a'/>
<id>urn:sha1:3ce90b16490490aea6da61f913fb0ecbc5d4ec7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cg_llvm: remove pointee types and pointercast/bitcast-of-ptr</title>
<updated>2023-07-29T17:18:17+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-12-06T05:07:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b6540777fed3ca92a7c306be6c6ab4b074a033b2'/>
<id>urn:sha1:b6540777fed3ca92a7c306be6c6ab4b074a033b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support `.comment` section like GCC/Clang (`!llvm.ident`)</title>
<updated>2023-07-21T20:01:50+00:00</updated>
<author>
<name>Miguel Ojeda</name>
<email>ojeda@kernel.org</email>
</author>
<published>2022-05-28T23:10:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=74b8d324eb77a8f337b35dc68ac91b0c2c06debc'/>
<id>urn:sha1:74b8d324eb77a8f337b35dc68ac91b0c2c06debc</id>
<content type='text'>
Both GCC and Clang write by default a `.comment` section with compiler
information:

```txt
$ gcc -c -xc /dev/null &amp;&amp; readelf -p '.comment' null.o

String dump of section '.comment':
  [     1]  GCC: (GNU) 11.2.0

$ clang -c -xc /dev/null &amp;&amp; readelf -p '.comment' null.o

String dump of section '.comment':
  [     1]  clang version 14.0.1 (https://github.com/llvm/llvm-project.git c62053979489ccb002efe411c3af059addcb5d7d)
```

They also implement the `-Qn` flag to avoid doing so:

```txt
$ gcc -Qn -c -xc /dev/null &amp;&amp; readelf -p '.comment' null.o
readelf: Warning: Section '.comment' was not dumped because it does not exist!

$ clang -Qn -c -xc /dev/null &amp;&amp; readelf -p '.comment' null.o
readelf: Warning: Section '.comment' was not dumped because it does not exist!
```

So far, `rustc` only does it for WebAssembly targets and only
when debug info is enabled:

```txt
$ echo 'fn main(){}' | rustc --target=wasm32-unknown-unknown --emit=llvm-ir -Cdebuginfo=2 - &amp;&amp; grep llvm.ident rust_out.ll
!llvm.ident = !{!27}
```

In the RFC part of this PR it was decided to always add
the information, which gets us closer to other popular compilers.
An opt-out flag like GCC and Clang may be added later on if deemed
necessary.

Implementation-wise, this covers both `ModuleLlvm::new()` and
`ModuleLlvm::new_metadata()` cases by moving the addition to
`context::create_module` and adds a few test cases.

ThinLTO also sees the `llvm.ident` named metadata duplicated (in
temporary outputs), so this deduplicates it like it is done for
`wasm.custom_sections`. The tests also check this duplication does
not take place.

Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;
</content>
</entry>
<entry>
<title>refactor(rustc_middle): Substs -&gt; GenericArg</title>
<updated>2023-07-14T12:27:35+00:00</updated>
<author>
<name>Mahdi Dibaiee</name>
<email>mdibaiee@pm.me</email>
</author>
<published>2023-07-11T21:35:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e55583c4b831c601452117a8eb20af59779ef582'/>
<id>urn:sha1:e55583c4b831c601452117a8eb20af59779ef582</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Re-format let-else per rustfmt update</title>
<updated>2023-07-13T01:49:27+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2023-07-13T01:49:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cc907f80b95c6ec530c5ee1b05b044a468f07eca'/>
<id>urn:sha1:cc907f80b95c6ec530c5ee1b05b044a468f07eca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #113377 - BoxyUwU:move_ty_ctors_to_ty, r=compiler-errors</title>
<updated>2023-07-06T08:10:42+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-07-06T08:10:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4dd1719b3406d80f539d2f49e9842f3563908632'/>
<id>urn:sha1:4dd1719b3406d80f539d2f49e9842f3563908632</id>
<content type='text'>
Move `TyCtxt::mk_x` to `Ty::new_x` where applicable

Part of rust-lang/compiler-team#616

turns out there's a lot of places we construct `Ty` this is a ridiculously huge PR :S

r? `@oli-obk`
</content>
</entry>
<entry>
<title>Move `TyCtxt::mk_x` to `Ty::new_x` where applicable</title>
<updated>2023-07-05T19:27:07+00:00</updated>
<author>
<name>Boxy</name>
<email>supbscripter@gmail.com</email>
</author>
<published>2023-07-05T19:13:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=12138b8e5e840b7446a0893e3cb02a9c05095930'/>
<id>urn:sha1:12138b8e5e840b7446a0893e3cb02a9c05095930</id>
<content type='text'>
</content>
</entry>
</feed>
