<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/rustllvm/PassWrapper.cpp, branch 1.28.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.28.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.28.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-05-17T12:08:30+00:00</updated>
<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>
<entry>
<title>Set PrepareForThinLTO flag when using ThinLTO</title>
<updated>2018-05-12T12:07:20+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2018-05-12T12:07:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a70ef4cb49295563a09b254de4751c016c79e262'/>
<id>urn:sha1:a70ef4cb49295563a09b254de4751c016c79e262</id>
<content type='text'>
The LLVM PassManager has a PrepareForThinLTO flag, which is intended
when compilation occurs in conjunction with linking by ThinLTO. The
flag has two effects:

 * The NameAnonGlobal pass is run after all other passes, which
   ensures that all globals have a name.
 * In optimized builds, a number of late passes (mainly related to
   vectorization and unrolling) are disabled, on the rationale that
   these a) will increase codesize of the intermediate artifacts
   and b) will be run by ThinLTO again anyway.

This patch enables the use of PrepareForThinLTO if Thin or ThinLocal
linking is used.

The background for this change is the CI failure in #49479, which
we assume to be caused by the NameAnonGlobal pass not being run.
As this changes which passes LLVM runs, this might have performance
(or other) impact, so we want to land this separately.
</content>
</entry>
<entry>
<title>Enable target_feature on any LLVM 6+</title>
<updated>2018-03-27T19:27:45+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2018-03-27T19:27:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a93a4d259ae3670d748859f430aba94f065ea6df'/>
<id>urn:sha1:a93a4d259ae3670d748859f430aba94f065ea6df</id>
<content type='text'>
In `LLVMRustHasFeature()`, rather than using `MCInfo-&gt;getFeatureTable()`
that is specific to Rust's LLVM fork, we can use this in LLVM 6:

    /// Check whether the subtarget features are enabled/disabled as per
    /// the provided string, ignoring all other features.
    bool checkFeatures(StringRef FS) const;

Now rustc using external LLVM can also have `target_feature`.
</content>
</entry>
<entry>
<title>try to fix the build on older LLVM versions.</title>
<updated>2018-03-25T01:30:06+00:00</updated>
<author>
<name>Emilio Cobos Álvarez</name>
<email>emilio@crisal.io</email>
</author>
<published>2018-03-15T15:56:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e155ecdc9714f3ac76b554dc15ba06e219f576e0'/>
<id>urn:sha1:e155ecdc9714f3ac76b554dc15ba06e219f576e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc_llvm: rustc_trans: Thread the PGO config down to the pass manager builder.</title>
<updated>2018-03-25T01:30:04+00:00</updated>
<author>
<name>Emilio Cobos Álvarez</name>
<email>emilio@crisal.io</email>
</author>
<published>2018-02-19T00:57:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=324ca7acd59be59abe0562287d5493f78a60823a'/>
<id>urn:sha1:324ca7acd59be59abe0562287d5493f78a60823a</id>
<content type='text'>
Signed-off-by: Emilio Cobos Álvarez &lt;emilio@crisal.io&gt;
</content>
</entry>
<entry>
<title>rustc: Add some defines for LLVM 7 compat</title>
<updated>2018-01-30T20:11:31+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-01-30T19:53:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d492fe0a00b4afb99c7ba6292961d6d98698373c'/>
<id>urn:sha1:d492fe0a00b4afb99c7ba6292961d6d98698373c</id>
<content type='text'>
I was testing out the tip support to see what's going on with wasm, and this was
I believe the only issue encountered with LLVM 7 support so far.
</content>
</entry>
<entry>
<title>llvm6: Missing include for LLVM 6 in PassWrapper.cpp</title>
<updated>2018-01-24T15:18:01+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-01-23T01:28:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2a7ed74d96168fe1c187fbaa0d74dc52974b6ecf'/>
<id>urn:sha1:2a7ed74d96168fe1c187fbaa0d74dc52974b6ecf</id>
<content type='text'>
Just bog-standard compile error fixed by adding some new header files
</content>
</entry>
<entry>
<title>llvm6: CodeModel::{JIT,}Default no longer exists</title>
<updated>2018-01-24T15:18:01+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-01-23T01:01:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=03f86ae9829a0a5c6f4fbef0530809b1d24ede3c'/>
<id>urn:sha1:03f86ae9829a0a5c6f4fbef0530809b1d24ede3c</id>
<content type='text'>
LLVM has since removed the `CodeModel::Default` enum value in favor of an
`Optional` implementationg throughout LLVM. Let's mirror the same change in Rust
and update the various bindings we call accordingly.

Removed in llvm-mirror/llvm@9aafb854c
</content>
</entry>
<entry>
<title>rustc_trans: remove unused `TargetDataRef` accessor.</title>
<updated>2018-01-14T06:52:16+00:00</updated>
<author>
<name>Eduard-Mihai Burtescu</name>
<email>edy.burt@gmail.com</email>
</author>
<published>2018-01-05T04:21:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7b3ac2142762b9246005080dce6bb8176936f3db'/>
<id>urn:sha1:7b3ac2142762b9246005080dce6bb8176936f3db</id>
<content type='text'>
</content>
</entry>
</feed>
