<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_codegen_llvm/attributes.rs, branch 1.30.1</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.30.1</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.30.1'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-09-12T04:17:22+00:00</updated>
<entry>
<title>Rollup merge of #52514 - DiamondLovesYou:amdgpu-fixes, r=eddyb</title>
<updated>2018-09-12T04:17:22+00:00</updated>
<author>
<name>kennytm</name>
<email>kennytm@gmail.com</email>
</author>
<published>2018-09-12T04:17:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6b55f04725b3645509b330e49f32a3ab943c9fd9'/>
<id>urn:sha1:6b55f04725b3645509b330e49f32a3ab943c9fd9</id>
<content type='text'>
Fix a few AMDGPU related issues

* AMDGPU ignores `noinline` and sadly doesn't clear the attribute when it slaps `alwaysinline` on everything,
* an AMDGPU related load bit range metadata assertion,
* I didn't enable the `amdgpu` component in the `librustc_llvm` build script,
* Add AMDGPU call abi info.
</content>
</entry>
<entry>
<title>Fix warnings about the `native` target-cpu</title>
<updated>2018-08-28T20:32:11+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-08-23T18:03:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fd45a13dee17701fc0aeaa847c1919d485d09fd'/>
<id>urn:sha1:1fd45a13dee17701fc0aeaa847c1919d485d09fd</id>
<content type='text'>
This fixes a regression from #53031 where specifying `-C target-cpu=native` is
printing a lot of warnings from LLVM about `native` being an unknown CPU. It
turns out that `native` is indeed an unknown CPU and we have to perform a
mapping to an actual CPU name, but this mapping is only performed in one
location rather than all locations we inform LLVM about the target CPU.

This commit centralizes the mapping of `native` to LLVM's value of the native
CPU, ensuring that all locations we inform LLVM about the `target-cpu` it's
never `native`.

Closes #53322
</content>
</entry>
<entry>
<title>AMDGPU ignores `noinline` when it slaps `alwaysinline` everywhere.</title>
<updated>2018-08-23T19:30:57+00:00</updated>
<author>
<name>Richard Diamond</name>
<email>wichard@vitalitystudios.com</email>
</author>
<published>2018-07-19T03:04:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bfddedee37d69a4d2180f8c5e7dba000762618e9'/>
<id>urn:sha1:bfddedee37d69a4d2180f8c5e7dba000762618e9</id>
<content type='text'>
Allow target specs to disable that attribute.
</content>
</entry>
<entry>
<title>Set more llvm function attributes for __rust_try</title>
<updated>2018-08-16T20:23:35+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-08-16T20:19:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=31884427eb6677703b370426617926e8ae0123d0'/>
<id>urn:sha1:31884427eb6677703b370426617926e8ae0123d0</id>
<content type='text'>
This shim is generated elsewhere in the compiler so this commit adds support to
ensure it goes through similar paths as the rest of the compiler to set llvm
function attributes like target features.

cc #53372
</content>
</entry>
<entry>
<title>Introduce SmallCStr and use it where applicable.</title>
<updated>2018-08-10T09:13:00+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-08-07T14:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=88d84b38f19eff3c25ec88931f04bf2640edf2b5'/>
<id>urn:sha1:88d84b38f19eff3c25ec88931f04bf2640edf2b5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce const_cstr!() macro and use it where applicable.</title>
<updated>2018-08-10T08:22:44+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-08-07T14:03:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9585c5dc1fa3cef34ebdc5a5d39af88db60c6f15'/>
<id>urn:sha1:9585c5dc1fa3cef34ebdc5a5d39af88db60c6f15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Annotate functions in LLVM with target-cpu, same as Clang does.</title>
<updated>2018-08-07T12:48:20+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-08-02T16:10:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b27a161939620626ca5fdcb9f4dd486a6ed1e827'/>
<id>urn:sha1:b27a161939620626ca5fdcb9f4dd486a6ed1e827</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc_codegen_llvm: use safe references for Value.</title>
<updated>2018-07-30T16:49:18+00:00</updated>
<author>
<name>Irina Popa</name>
<email>irinagpopa@gmail.com</email>
</author>
<published>2018-07-10T10:28:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f375185314e94a266f76ad7ffdd61b2d4608e97d'/>
<id>urn:sha1:f375185314e94a266f76ad7ffdd61b2d4608e97d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc: Stabilize #[wasm_import_module] as #[link(...)]</title>
<updated>2018-07-18T14:50:08+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-07-16T18:31:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b9024f8a75a554f44063ab0c7a4c65c3087e12b6'/>
<id>urn:sha1:b9024f8a75a554f44063ab0c7a4c65c3087e12b6</id>
<content type='text'>
This commit stabilizes the `#[wasm_import_module]` attribute as
`#[link(wasm_import_module = "...")]`. Tracked by #52090 this new directive in
the `#[link]` attribute is used to configured the module name that the imports
are listed with. The WebAssembly specification indicates two utf-8 names are
associated with all imported items, one for the module the item comes from and
one for the item itself. The item itself is configurable in Rust via its
identifier or `#[link_name = "..."]`, but the module name was previously not
configurable and defaulted to `"env"`. This commit ensures that this is also
configurable.

Closes #52090
</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>
</feed>
