<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/debuginfo, branch 1.50.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.50.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.50.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-12-16T10:33:52+00:00</updated>
<entry>
<title>cg_llvm: split dwarf filename and comp dir</title>
<updated>2020-12-16T10:33:52+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-11-08T17:17:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ee073b5ec54a13b393071298acc54e1fd28cfcdf'/>
<id>urn:sha1:ee073b5ec54a13b393071298acc54e1fd28cfcdf</id>
<content type='text'>
llvm-dwp concatenates `DW_AT_comp_dir` with `DW_AT_GNU_dwo_name` (only
when `DW_AT_comp_dir` exists), which can result in it failing to find
the DWARF object files.

In earlier testing, `DW_AT_comp_dir` wasn't present in the final
object and the current directory was the output directory.

When running tests through compiletest, the working directory of the
compilation is different from output directory and that resulted in
`DW_AT_comp_dir` being in the object file (and set to the current
working directory, rather than the output directory), and
`DW_AT_GNU_dwo_name` being set to the full path (rather than just
the filename), so llvm-dwp was failing.

This commit changes the compilation directory provided to LLVM to match
the output directory, where DWARF objects are output; and ensures that
only the filename is used for `DW_AT_GNU_dwo_name`.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>cg_llvm: implement split dwarf support</title>
<updated>2020-12-16T10:33:47+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-09-23T16:33:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e3fdae9d81052cf521298d19f8bb32ba0332b589'/>
<id>urn:sha1:e3fdae9d81052cf521298d19f8bb32ba0332b589</id>
<content type='text'>
This commit implements Split DWARF support, wiring up the flag (added in
earlier commits) to the modified FFI wrapper (also from earlier
commits).

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>llvm: update ffi bindings for split dwarf</title>
<updated>2020-12-16T10:31:42+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-09-23T15:25:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=341aa97adb20ca22e0fcb0851014bfa2297ff932'/>
<id>urn:sha1:341aa97adb20ca22e0fcb0851014bfa2297ff932</id>
<content type='text'>
This commit modifies the FFI bindings to LLVM required for Split DWARF
support in rustc. In particular:

- `addPassesToEmitFile`'s wrapper, `LLVMRustWriteOutputFile` now takes
  a `DwoPath` `const char*`. When disabled, `nullptr` should be provided
  which will preserve existing behaviour. When enabled, the path to the
  `.dwo` file should be provided.
- `createCompileUnit`'s wrapper, `LLVMRustDIBuilderCreateCompileUnit`
  now has two additional arguments, for the `DWOId` and to enable
  `SplitDebugInlining`. `DWOId` should always be zero.
- `createTargetMachine`'s wrapper, `LLVMRustCreateTargetMachine` has an
  additional argument which should be provided the path to the `.dwo`
  when enabled.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>[mir-opt] Allow debuginfo to be generated for a constant or a Place</title>
<updated>2020-12-07T01:48:25+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2020-05-30T19:02:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=01aec8d18556be5e8d498c2f331b9015b7befde2'/>
<id>urn:sha1:01aec8d18556be5e8d498c2f331b9015b7befde2</id>
<content type='text'>
Prior to this commit, debuginfo was always generated by mapping a name
to a Place. This has the side-effect that `SimplifyLocals` cannot remove
locals that are only used for debuginfo because their other uses have
been const-propagated.

To allow these locals to be removed, we now allow debuginfo to point to
a constant value. The `ConstProp` pass detects when debuginfo points to
a local with a known constant value and replaces it with the value. This
allows the later `SimplifyLocals` pass to remove the local.
</content>
</entry>
<entry>
<title>Use Option::map instead of open coding it</title>
<updated>2020-11-23T03:58:21+00:00</updated>
<author>
<name>LingMan</name>
<email>LingMan@users.noreply.github.com</email>
</author>
<published>2020-11-23T03:58:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cd8973250dff50a2b71641659baa36c70ab3d57e'/>
<id>urn:sha1:cd8973250dff50a2b71641659baa36c70ab3d57e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>compiler: fold by value</title>
<updated>2020-11-16T21:34:57+00:00</updated>
<author>
<name>Bastian Kauschke</name>
<email>bastian_kauschke@hotmail.de</email>
</author>
<published>2020-10-24T00:21:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2bf93bd852f0636eb4d052ee155bdb6cec592c53'/>
<id>urn:sha1:2bf93bd852f0636eb4d052ee155bdb6cec592c53</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Collapse all uses of `target.options.foo` into `target.foo`</title>
<updated>2020-11-08T14:29:13+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2020-11-08T11:27:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf66988aa1677d018928c271fed563792f921d28'/>
<id>urn:sha1:bf66988aa1677d018928c271fed563792f921d28</id>
<content type='text'>
with an eye on merging `TargetOptions` into `Target`.

`TargetOptions` as a separate structure is mostly an implementation detail of `Target` construction, all its fields logically belong to `Target` and available from `Target` through `Deref` impls.
</content>
</entry>
<entry>
<title>`u128` truncation and sign extension are not just interpreter related</title>
<updated>2020-11-04T13:41:58+00:00</updated>
<author>
<name>oli</name>
<email>github35764891676564198441@oli-obk.de</email>
</author>
<published>2020-11-04T13:41:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=abacaf2aef26043ce09e3aee176a9587bb87eaf6'/>
<id>urn:sha1:abacaf2aef26043ce09e3aee176a9587bb87eaf6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #77950 - arlosi:sha256, r=eddyb</title>
<updated>2020-11-03T18:32:26+00:00</updated>
<author>
<name>Mara Bos</name>
<email>m-ou.se@m-ou.se</email>
</author>
<published>2020-11-03T18:32:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=52405f7c0cc3e8cc52293ea19b78da88eb79af2d'/>
<id>urn:sha1:52405f7c0cc3e8cc52293ea19b78da88eb79af2d</id>
<content type='text'>
Add support for SHA256 source file hashing

Adds support for `-Z src-hash-algorithm sha256`, which became available in LLVM 11.

Using an older version of LLVM will cause an error `invalid checksum kind` if the hash algorithm is set to sha256.

r? `@eddyb`
cc #70401 `@est31`
</content>
</entry>
<entry>
<title>Fix even more clippy warnings</title>
<updated>2020-10-30T14:13:39+00:00</updated>
<author>
<name>Joshua Nelson</name>
<email>jyn514@gmail.com</email>
</author>
<published>2020-10-27T01:02:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=57c6ed0c07aaea9c89a192e54b3274464ebe6fbf'/>
<id>urn:sha1:57c6ed0c07aaea9c89a192e54b3274464ebe6fbf</id>
<content type='text'>
</content>
</entry>
</feed>
