<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/errors.rs, branch 1.72.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.72.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.72.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-06-01T14:45:18+00:00</updated>
<entry>
<title>Use translatable diagnostics in `rustc_const_eval`</title>
<updated>2023-06-01T14:45:18+00:00</updated>
<author>
<name>Deadbeef</name>
<email>ent3rm4n@gmail.com</email>
</author>
<published>2023-05-17T10:30:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4f83717cf768adb0b0dfe23b8eecf2b259eec354'/>
<id>urn:sha1:4f83717cf768adb0b0dfe23b8eecf2b259eec354</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #111203 - Kobzol:remark-print-kind, r=tmiasko</title>
<updated>2023-05-06T21:32:02+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2023-05-06T21:32:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e4eaf319c1d87eaaca70b608f850110e7f607ad1'/>
<id>urn:sha1:e4eaf319c1d87eaaca70b608f850110e7f607ad1</id>
<content type='text'>
Output LLVM optimization remark kind in `-Cremark` output

Since https://github.com/rust-lang/rust/pull/90833, the optimization remark kind has not been printed. Therefore it wasn't possible to easily determine from the log (in a programmatic way) which remark kind was produced. I think that the most interesting remarks are the missed ones, which can lead users to some code optimization.

Maybe we could also change the format closer to the "old" one:
```
note: optimization remark for tailcallelim at /checkout/src/libcore/num/mod.rs:1:0: marked this call a tail call candidate
```

I wanted to programatically parse the remarks so that they could work e.g. with https://github.com/OfekShilon/optview2. However, now that I think about it, probably the proper solution is to tell rustc to output them to YAML and then use the YAML as input for the opt remark visualization tools. The flag for enabling this does not seem to work though (https://github.com/rust-lang/rust/issues/96705#issuecomment-1117632322).

Still I think that it's good to output the remark kind anyway, it's an important piece of information.

r? ```@tmiasko```
</content>
</entry>
<entry>
<title>Output LLVM optimization remark kind in `-Cremark` output</title>
<updated>2023-05-04T13:39:21+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2023-05-04T13:39:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=00ac29d7b2e7a9a2da79f8754efc8e0d51e81886'/>
<id>urn:sha1:00ac29d7b2e7a9a2da79f8754efc8e0d51e81886</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stablize raw-dylib, link_ordinal and -Cdlltool</title>
<updated>2023-04-18T18:01:07+00:00</updated>
<author>
<name>Daniel Paoliello</name>
<email>danpao@microsoft.com</email>
</author>
<published>2023-03-27T17:42:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1ece1ea48c0d9e4c8414abf872626f7a54747976'/>
<id>urn:sha1:1ece1ea48c0d9e4c8414abf872626f7a54747976</id>
<content type='text'>
</content>
</entry>
<entry>
<title>errors: generate typed identifiers in each crate</title>
<updated>2023-02-22T09:15:53+00:00</updated>
<author>
<name>David Wood</name>
<email>david.wood@huawei.com</email>
</author>
<published>2022-10-13T09:13:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d1fcf611175e695c35c6cc0537d710277c1a5c6f'/>
<id>urn:sha1:d1fcf611175e695c35c6cc0537d710277c1a5c6f</id>
<content type='text'>
Instead of loading the Fluent resources for every crate in
`rustc_error_messages`, each crate generates typed identifiers for its
own diagnostics and creates a static which are pulled together in the
`rustc_driver` crate and provided to the diagnostic emitter.

Signed-off-by: David Wood &lt;david.wood@huawei.com&gt;
</content>
</entry>
<entry>
<title>session: diagnostic migration lint on more fns</title>
<updated>2023-01-30T17:11:35+00:00</updated>
<author>
<name>David Wood</name>
<email>david.wood@huawei.com</email>
</author>
<published>2022-08-19T13:48:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2575b1abc97e1352b307163ac7de2142aded22a5'/>
<id>urn:sha1:2575b1abc97e1352b307163ac7de2142aded22a5</id>
<content type='text'>
Apply the diagnostic migration lint to more functions on `Session`.

Signed-off-by: David Wood &lt;david.wood@huawei.com&gt;
</content>
</entry>
<entry>
<title>Remove backwards compat for LLVM 12 coverage format</title>
<updated>2023-01-09T15:31:24+00:00</updated>
<author>
<name>Arpad Borsos</name>
<email>swatinem@swatinem.de</email>
</author>
<published>2023-01-09T08:31:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9f5a933f00e0aba526edac2cf1804b4360059e55'/>
<id>urn:sha1:9f5a933f00e0aba526edac2cf1804b4360059e55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #105421 - jacobbramley:jb/branch-prot-check, r=nagisa</title>
<updated>2022-12-17T12:10:27+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-12-17T12:10:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=aef17b7ae6160352e2814c8686f7e4b2ee04d9e4'/>
<id>urn:sha1:aef17b7ae6160352e2814c8686f7e4b2ee04d9e4</id>
<content type='text'>
Check AArch64 branch-protection earlier in the pipeline.

As suggested in #93516.

r? `@nagisa`
</content>
</entry>
<entry>
<title>Check AArch64 branch-protection earlier in the pipeline.</title>
<updated>2022-12-06T15:51:57+00:00</updated>
<author>
<name>Jacob Bramley</name>
<email>jacob.bramley@arm.com</email>
</author>
<published>2022-11-21T16:05:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=49f3c0b73689eed49df9ef822f9fd437db93ce9e'/>
<id>urn:sha1:49f3c0b73689eed49df9ef822f9fd437db93ce9e</id>
<content type='text'>
As suggested in #93516.
</content>
</entry>
<entry>
<title>Move linkage type check to HIR analysis and fix semantics issues.</title>
<updated>2022-12-05T23:05:43+00:00</updated>
<author>
<name>Peter Collingbourne</name>
<email>pcc@google.com</email>
</author>
<published>2022-11-24T02:13:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5873ebeef3a4497c14b4199abba705fe7b530935'/>
<id>urn:sha1:5873ebeef3a4497c14b4199abba705fe7b530935</id>
<content type='text'>
This ensures that the error is printed even for unused variables,
as well as unifying the handling between the LLVM and GCC backends.

This also fixes unusual behavior around exported Rust-defined variables
with linkage attributes. With the previous behavior, it appears to be
impossible to define such a variable such that it can actually be imported
and used by another crate. This is because on the importing side, the
variable is required to be a pointer, but on the exporting side, the
type checker rejects static variables of pointer type because they do
not implement `Sync`. Even if it were possible to import such a type, it
appears that code generation on the importing side would add an unexpected
additional level of pointer indirection, which would break type safety.

This highlighted that the semantics of linkage on Rust-defined variables
is different to linkage on foreign items. As such, we now model the
difference with two different codegen attributes: linkage for Rust-defined
variables, and import_linkage for foreign items.

This change gives semantics to the test
src/test/ui/linkage-attr/auxiliary/def_illtyped_external.rs which was
previously expected to fail to compile. Therefore, convert it into a
test that is expected to successfully compile.

The update to the GCC backend is speculative and untested.
</content>
</entry>
</feed>
