<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/rustllvm/PassWrapper.cpp, branch 1.29.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.29.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.29.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-07-23T13:42:23+00:00</updated>
<entry>
<title>Auto merge of #52506 - alexcrichton:dont-duplicate-wasm-sections, r=michaelwoerister</title>
<updated>2018-07-23T13:42:23+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2018-07-23T13:42:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5665a2d36778693ca19215540a518ccf04eb0b1a'/>
<id>urn:sha1:5665a2d36778693ca19215540a518ccf04eb0b1a</id>
<content type='text'>
rustc: Work around an upstream wasm ThinLTO bug

This commit implements a workaround for an [upstream LLVM bug][1] where custom
sections were accidentally duplicated amongst codegen units when ThinLTO passes
were performed. This is due to the fact that custom sections for wasm are stored
as metadata nodes which are automatically imported into modules when ThinLTO
happens. The fix here is to forcibly delete the metadata node from imported
modules before LLVM has a chance to try to copy it over.

[1]: https://bugs.llvm.org/show_bug.cgi?id=38184
</content>
</entry>
<entry>
<title>rustc: Work around an upstream wasm ThinLTO bug</title>
<updated>2018-07-18T19:12:53+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-07-18T19:12:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e08fcbbd8d241ab68d72dc8b288ca55b8c1114fe'/>
<id>urn:sha1:e08fcbbd8d241ab68d72dc8b288ca55b8c1114fe</id>
<content type='text'>
This commit implements a workaround for an [upstream LLVM bug][1] where custom
sections were accidentally duplicated amongst codegen units when ThinLTO passes
were performed. This is due to the fact that custom sections for wasm are stored
as metadata nodes which are automatically imported into modules when ThinLTO
happens. The fix here is to forcibly delete the metadata node from imported
modules before LLVM has a chance to try to copy it over.

[1]: https://bugs.llvm.org/show_bug.cgi?id=38184
</content>
</entry>
<entry>
<title>rustc: Remove a workaroudn in ThinLTO fixed upstream</title>
<updated>2018-07-18T18:37:56+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-07-18T18:37:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=829bc268a9e3ef4d0f8ec4f6a2fadd604bdc7b8d'/>
<id>urn:sha1:829bc268a9e3ef4d0f8ec4f6a2fadd604bdc7b8d</id>
<content type='text'>
This commit removes a hack in our ThinLTO passes which removes available
externally functions manually. The [upstream bug][1] has long since been fixed,
so we should be able to rely on LLVM natively for this now!

[1]: https://bugs.llvm.org/show_bug.cgi?id=35736
</content>
</entry>
<entry>
<title>Revert "Provide a way of accessing the ThinLTO module import map in rustc."</title>
<updated>2018-07-16T06:59:10+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-07-16T06:59:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d992090a702dff976a6d05a9b53b0d7b82199d14'/>
<id>urn:sha1:d992090a702dff976a6d05a9b53b0d7b82199d14</id>
<content type='text'>
This reverts commit 9df56ca0eea1a8f5af945df25ce23e276b1d48a7.
</content>
</entry>
<entry>
<title>Revert "Use callback-based interface to load ThinLTO import data into rustc."</title>
<updated>2018-07-16T06:57:49+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-07-16T06:57:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b822e699c3e811f929fd69046095c1d6eb9abd22'/>
<id>urn:sha1:b822e699c3e811f929fd69046095c1d6eb9abd22</id>
<content type='text'>
This reverts commit e045a6cd8c0235a26ef11e6cd9a13ebd817f1265.
</content>
</entry>
<entry>
<title>Use callback-based interface to load ThinLTO import data into rustc.</title>
<updated>2018-07-13T10:41:22+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-07-13T10:41:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e045a6cd8c0235a26ef11e6cd9a13ebd817f1265'/>
<id>urn:sha1:e045a6cd8c0235a26ef11e6cd9a13ebd817f1265</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Provide a way of accessing the ThinLTO module import map in rustc.</title>
<updated>2018-07-11T15:51:36+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-07-09T13:58:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9df56ca0eea1a8f5af945df25ce23e276b1d48a7'/>
<id>urn:sha1:9df56ca0eea1a8f5af945df25ce23e276b1d48a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Upgrade to LLVM's master branch (LLVM 7)</title>
<updated>2018-07-10T20:43:01+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-06-01T17:20:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=42eb85002ae4bda9899216805d03fa7d77279ede'/>
<id>urn:sha1:42eb85002ae4bda9899216805d03fa7d77279ede</id>
<content type='text'>
This commit upgrades the main LLVM submodule to LLVM's current master branch.
The LLD submodule is updated in tandem as well as compiler-builtins.

Along the way support was also added for LLVM 7's new features. This primarily
includes the support for custom section concatenation natively in LLD so we now
add wasm custom sections in LLVM IR rather than having custom support in rustc
itself for doing so.

Some other miscellaneous changes are:

* We now pass `--gc-sections` to `wasm-ld`
* The optimization level is now passed to `wasm-ld`
* A `--stack-first` option is passed to LLD to have stack overflow always cause
  a trap instead of corrupting static data
* The wasm target for LLVM switched to `wasm32-unknown-unknown`.
* The syntax for aligned pointers has changed in LLVM IR and tests are updated
  to reflect this.
* The `thumbv6m-none-eabi` target is disabled due to an [LLVM bug][llbug]

Nowadays we've been mostly only upgrading whenever there's a major release of
LLVM but enough changes have been happening on the wasm target that there's been
growing motivation for quite some time now to upgrade out version of LLD. To
upgrade LLD, however, we need to upgrade LLVM to avoid needing to build yet
another version of LLVM on the builders.

The revision of LLVM in use here is arbitrarily chosen. We will likely need to
continue to update it over time if and when we discover bugs. Once LLVM 7 is
fully released we can switch to that channel as well.

[llbug]: https://bugs.llvm.org/show_bug.cgi?id=37382
</content>
</entry>
<entry>
<title>Rename trans to codegen everywhere.</title>
<updated>2018-05-17T12:08:30+00:00</updated>
<author>
<name>Irina Popa</name>
<email>irinagpopa@gmail.com</email>
</author>
<published>2018-05-08T13:10:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b63d7e2b1c4019e40051036bcb1fd5f254a8f6e2'/>
<id>urn:sha1:b63d7e2b1c4019e40051036bcb1fd5f254a8f6e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reenable the MergeFunctions pass</title>
<updated>2018-05-15T19:10:40+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2018-03-29T07:41:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5701779b8e1ad05dc5eb165b4b00188fb43ebbf2'/>
<id>urn:sha1:5701779b8e1ad05dc5eb165b4b00188fb43ebbf2</id>
<content type='text'>
The crash that happened in #23566 doesn't happen anymore with the LLVM mergefunc
pass enabled and it hugely reduces code size (for example it shaves off 10% of the
final Servo executable). This patch reenables it.
</content>
</entry>
</feed>
