<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/debuginfo, branch 1.56.1</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.56.1</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.56.1'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2021-08-27T09:50:44+00:00</updated>
<entry>
<title>Path remapping: Make behavior of diagnostics output dependent on presence of --remap-path-prefix.</title>
<updated>2021-08-27T09:50:44+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2021-08-26T10:46:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=af1b65cb18d5fa1358d1ae7a8ed3b1f7c635b6b5'/>
<id>urn:sha1:af1b65cb18d5fa1358d1ae7a8ed3b1f7c635b6b5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>review</title>
<updated>2021-08-26T09:14:31+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2021-08-02T07:56:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f3996f6a88c7a4f24b673809aa50897fb2615691'/>
<id>urn:sha1:f3996f6a88c7a4f24b673809aa50897fb2615691</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update `TypeFlags` to deal with missing ct substs</title>
<updated>2021-08-26T09:00:30+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2021-07-17T16:48:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ab9108b70f25ecd9cce1ab756b82cb00de6c6927'/>
<id>urn:sha1:ab9108b70f25ecd9cce1ab756b82cb00de6c6927</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Include (potentially remapped) working dir in crate hash</title>
<updated>2021-08-15T20:17:37+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2021-08-12T20:30:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a895069c5023a82e9316d21854a81172c69d1418'/>
<id>urn:sha1:a895069c5023a82e9316d21854a81172c69d1418</id>
<content type='text'>
Fixes #85019

A `SourceFile` created during compilation may have a relative
path (e.g. if rustc itself is invoked with a relative path).
When we write out crate metadata, we convert all relative paths
to absolute paths using the current working direction.

However, the working directory is not included in the crate hash.
This means that the crate metadata can change while the crate
hash remains the same. Among other problems, this can cause a
fingerprint mismatch ICE, since incremental compilation uses
the crate metadata hash to determine if a foreign query is green.

This commit moves the field holding the working directory from
`Session` to `Options`, including it as part of the crate hash.
</content>
</entry>
<entry>
<title>Auto merge of #85020 - lrh2000:named-upvars, r=tmandry</title>
<updated>2021-08-14T07:01:36+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-08-14T07:01:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=99efc51dae1dbe9d741707a7ddef84c29e654df5'/>
<id>urn:sha1:99efc51dae1dbe9d741707a7ddef84c29e654df5</id>
<content type='text'>
Name the captured upvars for closures/generators in debuginfo

Previously, debuggers print closures as something like
```
y::main::closure-0 (0x7fffffffdd34)
```
The pointer actually references to an upvar. It is not very obvious, especially for beginners.

It's because upvars don't have names before, as they are packed into a tuple. This PR names the upvars, so we can expect to see something like
```
y::main::closure-0 {_captured_ref__b: 0x[...]}
```

r? `@tmandry`
Discussed at https://github.com/rust-lang/rust/pull/84752#issuecomment-831639489 .
</content>
</entry>
<entry>
<title>Prepare inbounds_gep for opaque pointers</title>
<updated>2021-08-04T13:51:30+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2021-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=77e5e17231af060cc5ab17ec63494064ecc51076'/>
<id>urn:sha1:77e5e17231af060cc5ab17ec63494064ecc51076</id>
<content type='text'>
Implement inbounds_gep using LLVMBuildInBoundsGEP2 which takes an
explicit type argument instead of deriving it from a pointer type.
</content>
</entry>
<entry>
<title>Pass type when creating load</title>
<updated>2021-07-09T20:14:44+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2021-07-04T16:53:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4560efe46c476cf794fa0ce4efb8db5aa55a3351'/>
<id>urn:sha1:4560efe46c476cf794fa0ce4efb8db5aa55a3351</id>
<content type='text'>
This makes load generation compatible with opaque pointers.

The generation of nontemporal copies still accesses the pointer
element type, as fixing this requires more movement.
</content>
</entry>
<entry>
<title>Avoid unnecessary `String::clone`</title>
<updated>2021-07-09T15:09:50+00:00</updated>
<author>
<name>lrh2000</name>
<email>lrh2000@pku.edu.cn</email>
</author>
<published>2021-07-09T13:00:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0cb6f07ef2690b9ad5941c33a0928bf72788829d'/>
<id>urn:sha1:0cb6f07ef2690b9ad5941c33a0928bf72788829d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Store names of captured variables in `optimized_mir`</title>
<updated>2021-07-09T15:09:48+00:00</updated>
<author>
<name>lrh2000</name>
<email>lrh2000@pku.edu.cn</email>
</author>
<published>2021-05-15T11:01:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cda90f55419ce449f3a9db327465d9b2ae7dfce9'/>
<id>urn:sha1:cda90f55419ce449f3a9db327465d9b2ae7dfce9</id>
<content type='text'>
- Closures in external crates may get compiled in because of
  monomorphization. We should store names of captured variables
  in `optimized_mir`, so that they are written into the metadata
  file and we can use them to generate debuginfo.

- If there are breakpoints inside closures, the names of captured
  variables stored in `optimized_mir` can be used to print them.
  Now the name is more precise when disjoint fields are captured.
</content>
</entry>
<entry>
<title>Name the captured upvars for closures/generators in debuginfo</title>
<updated>2021-07-09T15:06:53+00:00</updated>
<author>
<name>lrh2000</name>
<email>lrh2000@pku.edu.cn</email>
</author>
<published>2021-05-05T15:50:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=29856acffeb87541bb167c33f4fdb13c31ba6de0'/>
<id>urn:sha1:29856acffeb87541bb167c33f4fdb13c31ba6de0</id>
<content type='text'>
Previously, debuggers print closures as something like
```
y::main::closure-0 (0x7fffffffdd34)
```
The pointer actually references to an upvar. It is not
very obvious, especially for beginners.

It's because upvars don't have names before, as they
are packed into a tuple. This commit names the upvars,
so we can expect to see something like
```
y::main::closure-0 {_captured_ref__b: 0x[...]}
```
</content>
</entry>
</feed>
