<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/codegen/align-struct.rs, branch 1.45.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.45.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.45.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-05-17T00:15:24+00:00</updated>
<entry>
<title>Disable MIR optimization for alignment codegen tests</title>
<updated>2020-05-17T00:15:24+00:00</updated>
<author>
<name>Dylan MacKenzie</name>
<email>ecstaticmorse@gmail.com</email>
</author>
<published>2020-05-16T20:42:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8c710118f631af9b075bbc2e24c4a61fd901a130'/>
<id>urn:sha1:8c710118f631af9b075bbc2e24c4a61fd901a130</id>
<content type='text'>
NRVO optimizes away the locals whose alignment is tested. I don't think
this affects the purpose of the test.
</content>
</entry>
<entry>
<title>Update the minimum external LLVM to 7</title>
<updated>2019-12-02T19:36:21+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2019-12-02T19:35:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2304c25f31fb69c279110ecaf51627cc36bffd55'/>
<id>urn:sha1:2304c25f31fb69c279110ecaf51627cc36bffd55</id>
<content type='text'>
LLVM 7 is over a year old, which should be plenty for compatibility. The
last LLVM 6 holdout was llvm-emscripten, which went away in #65501.

I've also included a fix for LLVM 8 lacking `MemorySanitizerOptions`,
which was broken by #66522.
</content>
</entry>
<entry>
<title>Remove licenses</title>
<updated>2018-12-26T04:08:33+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2018-12-25T15:56:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2a663555ddf36f6b041445894a8c175cd1bc718c'/>
<id>urn:sha1:2a663555ddf36f6b041445894a8c175cd1bc718c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rely only on base alignment and offset for computing field alignment</title>
<updated>2018-09-25T03:09:44+00:00</updated>
<author>
<name>Colin Pronovost</name>
<email>colin.pron@live.com</email>
</author>
<published>2018-09-25T03:09:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=06b8c3ee5b52dc849259655578afca70cb32dda3'/>
<id>urn:sha1:06b8c3ee5b52dc849259655578afca70cb32dda3</id>
<content type='text'>
Fix #54028
</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>Use ScalarPair for tagged enums</title>
<updated>2018-04-26T07:30:28+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2018-03-27T14:44:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3ca6ad922eb6d8c3139d961c844a0194eaf58770'/>
<id>urn:sha1:3ca6ad922eb6d8c3139d961c844a0194eaf58770</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stabilized `#[repr(align(x))]` attribute (RFC 1358)</title>
<updated>2018-01-22T21:36:13+00:00</updated>
<author>
<name>Cameron Hart</name>
<email>cameron.hart@gmail.com</email>
</author>
<published>2017-12-25T23:24:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=651ea8ea44d8ac8a02dc357412eb73f830057cae'/>
<id>urn:sha1:651ea8ea44d8ac8a02dc357412eb73f830057cae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc: don't use union layouts for tagged union enums.</title>
<updated>2017-12-26T20:36:20+00:00</updated>
<author>
<name>Eduard-Mihai Burtescu</name>
<email>edy.burt@gmail.com</email>
</author>
<published>2017-12-25T23:40:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=97228f5e7b0d6a0dc5c97fa73fa7ab096e4eb58d'/>
<id>urn:sha1:97228f5e7b0d6a0dc5c97fa73fa7ab096e4eb58d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc_trans: approximate ABI alignment for padding/union fillers.</title>
<updated>2017-12-15T09:35:32+00:00</updated>
<author>
<name>Eduard-Mihai Burtescu</name>
<email>edy.burt@gmail.com</email>
</author>
<published>2017-12-10T15:35:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8a26e0422dc55b82577de3027800ca29a4d522b7'/>
<id>urn:sha1:8a26e0422dc55b82577de3027800ca29a4d522b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid unnecessary copies of arguments that are simple bindings</title>
<updated>2017-10-26T10:54:34+00:00</updated>
<author>
<name>Björn Steinbrink</name>
<email>bsteinbr@gmail.com</email>
</author>
<published>2017-10-11T18:49:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0473a4f1d8f5e10c1ec97b1f7b4918308e1c1090'/>
<id>urn:sha1:0473a4f1d8f5e10c1ec97b1f7b4918308e1c1090</id>
<content type='text'>
Initially MIR differentiated between arguments and locals, which
introduced a need to add extra copies assigning the argument to a
local, even for simple bindings. This differentiation no longer exists,
but we're still creating those copies, bloating the MIR and LLVM IR we
emit.

Additionally, the current approach means that we create debug info for
both the incoming argument (marking it as an argument), and then
immediately shadow it a local that goes by the same name. This can be
confusing when using e.g. "info args" in gdb, or when e.g. a debugger
with a GUI displays the function arguments separately from the local
variables, especially when the binding is mutable, because the argument
doesn't change, while the local variable does.
</content>
</entry>
</feed>
