<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_cranelift/src/lib.rs, branch perf-tmp</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-28T17:57:33+00:00</updated>
<entry>
<title>Add a leading dash to linker plugin arguments in the gcc codegen</title>
<updated>2025-09-28T17:57:33+00:00</updated>
<author>
<name>Antoni Boucher</name>
<email>bouanto@zoho.com</email>
</author>
<published>2025-09-28T16:08:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7fcbc5ea465a4e280d3b7a84fc3f781e9a120ed0'/>
<id>urn:sha1:7fcbc5ea465a4e280d3b7a84fc3f781e9a120ed0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cranelift: fix target feature name type: "fxsr"</title>
<updated>2025-06-22T14:32:54+00:00</updated>
<author>
<name>Martin Liska</name>
<email>martin.liska@hey.com</email>
</author>
<published>2025-06-22T14:32:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=75674e2c2a21986ca07507fc98129e5be164e7ca'/>
<id>urn:sha1:75674e2c2a21986ca07507fc98129e5be164e7ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move metadata object generation for dylibs to the linker code</title>
<updated>2025-06-03T10:04:34+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-05-30T12:51:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0bd7aa1116c42a96d1c692065ae500a3d2d75484'/>
<id>urn:sha1:0bd7aa1116c42a96d1c692065ae500a3d2d75484</id>
<content type='text'>
This deduplicates some code between codegen backends and may in the
future allow adding extra metadata that is only known at link time.
</content>
</entry>
<entry>
<title>Only borrow EncodedMetadata in codegen_crate</title>
<updated>2025-06-03T10:04:34+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-05-30T11:55:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=badabab01f15f156dbb6ce39df4a339006fbfae1'/>
<id>urn:sha1:badabab01f15f156dbb6ce39df4a339006fbfae1</id>
<content type='text'>
And move passing it to the linker to the driver code.
</content>
</entry>
<entry>
<title>Merge commit '979dcf8e2f213e4f4b645cb62e7fe9f4f2c0c785' into sync_cg_clif-2025-05-25</title>
<updated>2025-05-25T18:51:16+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-05-25T18:51:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3816385b09db445ab580043ed45218df8c1198ad'/>
<id>urn:sha1:3816385b09db445ab580043ed45218df8c1198ad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement the internal feature `cfg_target_has_reliable_f16_f128`</title>
<updated>2025-04-27T19:58:44+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2025-04-24T22:11:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6ceeb0849e181999fc6ecc2cb9dcfdc65b5effd3'/>
<id>urn:sha1:6ceeb0849e181999fc6ecc2cb9dcfdc65b5effd3</id>
<content type='text'>
Support for `f16` and `f128` is varied across targets, backends, and
backend versions. Eventually we would like to reach a point where all
backends support these approximately equally, but until then we have to
work around some of these nuances of support being observable.

Introduce the `cfg_target_has_reliable_f16_f128` internal feature, which
provides the following new configuration gates:

* `cfg(target_has_reliable_f16)`
* `cfg(target_has_reliable_f16_math)`
* `cfg(target_has_reliable_f128)`
* `cfg(target_has_reliable_f128_math)`

`reliable_f16` and `reliable_f128` indicate that basic arithmetic for
the type works correctly. The `_math` versions indicate that anything
relying on `libm` works correctly, since sometimes this hits a separate
class of codegen bugs.

These options match configuration set by the build script at [1]. The
logic for LLVM support is duplicated as-is from the same script. There
are a few possible updates that will come as a follow up.

The config introduced here is not planned to ever become stable, it is
only intended to replace the build scripts for `std` tests and
`compiler-builtins` that don't have any way to configure based on the
codegen backend.

MCP: https://github.com/rust-lang/compiler-team/issues/866
Closes: https://github.com/rust-lang/compiler-team/issues/866

[1]: https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186
</content>
</entry>
<entry>
<title>Prepend temp files with a string per invocation of rustc</title>
<updated>2025-04-07T20:48:40+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-04-06T23:50:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9c372d8940a8dad14d586f6bd4dd42541f25cd80'/>
<id>urn:sha1:9c372d8940a8dad14d586f6bd4dd42541f25cd80</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit 'ba315abda789c9f59f2100102232bddb30b0d3d3' into sync_cg_clif-2025-03-30</title>
<updated>2025-03-30T15:43:48+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-03-30T15:43:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1111a9788650b6cde6f78250a81328f6ab211b51'/>
<id>urn:sha1:1111a9788650b6cde6f78250a81328f6ab211b51</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove implicit #[no_mangle] for #[rustc_std_internal_symbol]</title>
<updated>2025-03-17T14:08:09+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2023-12-02T14:17:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b754ef727ca87050a8d758fc44f524cfb4310eff'/>
<id>urn:sha1:b754ef727ca87050a8d758fc44f524cfb4310eff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change signature of `target_features_cfg`.</title>
<updated>2025-03-04T22:49:17+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-25T04:25:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=936a8232df56cf6fbf41beb3b2329a99498d2167'/>
<id>urn:sha1:936a8232df56cf6fbf41beb3b2329a99498d2167</id>
<content type='text'>
Currently it is called twice, once with `allow_unstable` set to true and
once with it set to false. This results in some duplicated work. Most
notably, for the LLVM backend, `LLVMRustHasFeature` is called twice for
every feature, and it's moderately slow. For very short running
compilations on platforms with many features (e.g. a `check` build of
hello-world on x86) this is a significant fraction of runtime.

This commit changes `target_features_cfg` so it is only called once, and
it now returns a pair of feature sets. This halves the number of
`LLVMRustHasFeature` calls.
</content>
</entry>
</feed>
