<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src, branch 1.83.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.83.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.83.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-10-13T02:38:38+00:00</updated>
<entry>
<title>Rollup merge of #131626 - matthiaskrgr:dont_string, r=lqd</title>
<updated>2024-10-13T02:38:38+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>t.gross35@gmail.com</email>
</author>
<published>2024-10-13T02:38:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=39071fdc586adccf18c01e5e3a1faa39bbc00c3a'/>
<id>urn:sha1:39071fdc586adccf18c01e5e3a1faa39bbc00c3a</id>
<content type='text'>
remove a couple of redundant String to String conversion
</content>
</entry>
<entry>
<title>remove a couple of redundant String to String conversion</title>
<updated>2024-10-12T20:07:46+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-10-12T20:07:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4bc21e318cc26f688468188b88758202071b0a19'/>
<id>urn:sha1:4bc21e318cc26f688468188b88758202071b0a19</id>
<content type='text'>
</content>
</entry>
<entry>
<title>`LLVMConstInt` only allows integer types</title>
<updated>2024-10-12T15:02:15+00:00</updated>
<author>
<name>DianQK</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2024-10-12T14:36:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1efffe720d40e0c88efe820da01f99d031a4c4d1'/>
<id>urn:sha1:1efffe720d40e0c88efe820da01f99d031a4c4d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #124874 - jedbrown:float-mul-add-fast, r=saethlin</title>
<updated>2024-10-12T03:57:44+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>t.gross35@gmail.com</email>
</author>
<published>2024-10-12T03:57:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3f9aa50b70e8833656d557aa963e339faca0a4c6'/>
<id>urn:sha1:3f9aa50b70e8833656d557aa963e339faca0a4c6</id>
<content type='text'>
intrinsics fmuladdf{32,64}: expose llvm.fmuladd.* semantics

Add intrinsics `fmuladd{f32,f64}`. This computes `(a * b) + c`, to be fused if the code generator determines that (i) the target instruction set has support for a fused operation, and (ii) that the fused operation is more efficient than the equivalent, separate pair of `mul` and `add` instructions.

https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic

The codegen_cranelift uses the `fma` function from libc, which is a correct implementation, but without the desired performance semantic. I think this requires an update to cranelift to expose a suitable instruction in its IR.

I have not tested with codegen_gcc, but it should behave the same way (using `fma` from libc).

---
This topic has been discussed a few times on Zulip and was suggested, for example, by `@workingjubilee` in [Effect of fma disabled](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Effect.20of.20fma.20disabled/near/274179331).
</content>
</entry>
<entry>
<title>Rollup merge of #131543 - Zalathar:goodbye-llvm-17, r=petrochenkov</title>
<updated>2024-10-11T21:53:49+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>t.gross35@gmail.com</email>
</author>
<published>2024-10-11T21:53:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2c385ba329606b4f21085b8983db0da57bccb2ac'/>
<id>urn:sha1:2c385ba329606b4f21085b8983db0da57bccb2ac</id>
<content type='text'>
coverage: Remove code related to LLVM 17

In-tree LLVM is 19, and the minimum external LLVM was increased to 18 in #130487.
</content>
</entry>
<entry>
<title>intrinsics.fmuladdf{16,32,64,128}: expose llvm.fmuladd.* semantics</title>
<updated>2024-10-11T21:32:56+00:00</updated>
<author>
<name>Jed Brown</name>
<email>jed@jedbrown.org</email>
</author>
<published>2024-01-06T04:04:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0d8a978e8a55b08778ec6ee861c2c5ed6703eb6c'/>
<id>urn:sha1:0d8a978e8a55b08778ec6ee861c2c5ed6703eb6c</id>
<content type='text'>
Add intrinsics `fmuladd{f16,f32,f64,f128}`. This computes `(a * b) +
c`, to be fused if the code generator determines that (i) the target
instruction set has support for a fused operation, and (ii) that the
fused operation is more efficient than the equivalent, separate pair
of `mul` and `add` instructions.

https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic

MIRI support is included for f32 and f64.

The codegen_cranelift uses the `fma` function from libc, which is a
correct implementation, but without the desired performance semantic. I
think this requires an update to cranelift to expose a suitable
instruction in its IR.

I have not tested with codegen_gcc, but it should behave the same
way (using `fma` from libc).
</content>
</entry>
<entry>
<title>Rollup merge of #131519 - davidlattimore:intrinsics-default-vis, r=Urgau</title>
<updated>2024-10-11T13:36:52+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-10-11T13:36:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=33b1264540bade1e9122cfff7c95a7a9e20f5529'/>
<id>urn:sha1:33b1264540bade1e9122cfff7c95a7a9e20f5529</id>
<content type='text'>
Use Default visibility for rustc-generated C symbol declarations

Non-default visibilities should only be used for definitions, not declarations, otherwise linking can fail.

This is based on https://github.com/rust-lang/rust/pull/123994.

Issue https://github.com/rust-lang/rust/issues/123427

When I changed `default-hidden-visibility` to `default-visibility` in https://github.com/rust-lang/rust/pull/130005, I updated all places in the code that used `default-hidden-visibility`, replicating the hidden-visibility bug to also happen for protected visibility.

Without this change, trying to build rustc with `-Z default-visibility=protected` fails with a link error.
</content>
</entry>
<entry>
<title>coverage: Remove code related to LLVM 17</title>
<updated>2024-10-11T10:44:36+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2024-10-11T10:44:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9357277de7d452fb542abd0264e9d71bb2403c20'/>
<id>urn:sha1:9357277de7d452fb542abd0264e9d71bb2403c20</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use Default visibility for rustc-generated C symbol declarations</title>
<updated>2024-10-10T21:43:27+00:00</updated>
<author>
<name>David Lattimore</name>
<email>dvdlttmr@gmail.com</email>
</author>
<published>2024-10-10T20:58:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=42c0494499b3ee271bafa68bbfe5eb5176442c4d'/>
<id>urn:sha1:42c0494499b3ee271bafa68bbfe5eb5176442c4d</id>
<content type='text'>
Non-default visibilities should only be used for definitions, not
declarations, otherwise linking can fail.

Co-authored-by: Collin Baker &lt;collinbaker@chromium.org&gt;
</content>
</entry>
<entry>
<title>Rollup merge of #130741 - mrkajetanp:detect-b16b16, r=Amanieu</title>
<updated>2024-10-10T20:00:48+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-10-10T20:00:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=edb669350a59ce48586152cf87b1d1f2841cea62'/>
<id>urn:sha1:edb669350a59ce48586152cf87b1d1f2841cea62</id>
<content type='text'>
rustc_target: Add sme-b16b16 as an explicit aarch64 target feature

LLVM 20 split out what used to be called b16b16 and correspond to aarch64
FEAT_SVE_B16B16 into sve-b16b16 and sme-b16b16.
Add sme-b16b16 as an explicit feature and update the codegen accordingly.

Resolves https://github.com/rust-lang/rust/pull/129894.
</content>
</entry>
</feed>
