<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp, branch 1.61.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.61.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.61.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2022-03-10T16:16:33+00:00</updated>
<entry>
<title>RustWrapper: add missing include</title>
<updated>2022-03-10T16:16:33+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2022-03-10T16:16:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=185e3b95ca198ec10e6777d31e2c8d92c43f2ce2'/>
<id>urn:sha1:185e3b95ca198ec10e6777d31e2c8d92c43f2ce2</id>
<content type='text'>
This is required after LLVM change 3c4410dfcaaf (aka
https://reviews.llvm.org/D121168) did some includes cleanup.
</content>
</entry>
<entry>
<title>Pass LLVM string attributes as string slices</title>
<updated>2022-03-02T23:28:50+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2022-03-03T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=926bf1a3718fc408b2d75a7536b7a2ed3d2d070b'/>
<id>urn:sha1:926bf1a3718fc408b2d75a7536b7a2ed3d2d070b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #94229 - erikdesjardins:rem2, r=nikic</title>
<updated>2022-03-02T08:48:33+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-03-02T08:48:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c42d846add941a26bd254911e16f02c4a3f9346f'/>
<id>urn:sha1:c42d846add941a26bd254911e16f02c4a3f9346f</id>
<content type='text'>
Remove LLVM attribute removal

This was necessary before, because `declare_raw_fn` would always apply
the default optimization attributes to every declared function.
Then `attributes::from_fn_attrs` would have to remove the default
attributes in the case of, e.g. `#[optimize(speed)]` in a `-Os` build.
(see [`src/test/codegen/optimize-attr-1.rs`](https://github.com/rust-lang/rust/blob/03a8cc7df1d65554a4d40825b0490c93ac0f0236/src/test/codegen/optimize-attr-1.rs#L33))

However, every relevant callsite of `declare_raw_fn` (i.e. where we
actually generate code for the function, and not e.g. a call to an
intrinsic, where optimization attributes don't [?] matter)
calls `from_fn_attrs`, so we can remove the attribute setting
from `declare_raw_fn`, and rely on `from_fn_attrs` to apply the correct
attributes all at once.

r? `@ghost` (blocked on #94221)
`@rustbot` label S-blocked
</content>
</entry>
<entry>
<title>Remove LLVM attribute removal</title>
<updated>2022-02-28T05:02:11+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-02-21T19:47:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dce14cfacc232e80dbed68430183085fd39dea02'/>
<id>urn:sha1:dce14cfacc232e80dbed68430183085fd39dea02</id>
<content type='text'>
This was necessary before, because `declare_raw_fn` would always apply
the default optimization attributes to every declared function,
and then `attributes::from_fn_attrs` would have to remove the default
attributes in the case of, e.g. `#[optimize(speed)]` in a `-Os` build.

However, every relevant callsite of `declare_raw_fn` (i.e. where we
actually generate code for the function, and not e.g. a call to an
intrinsic, where optimization attributes don't [?] matter)
calls `from_fn_attrs`, so we can simply remove the attribute setting
from `declare_raw_fn`, and rely on `from_fn_attrs` to apply the correct
attributes all at once.
</content>
</entry>
<entry>
<title>Revert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"</title>
<updated>2022-02-28T04:11:03+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-02-26T17:52:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=851fcc7a54262748b1aa9e16de91453998d896f3'/>
<id>urn:sha1:851fcc7a54262748b1aa9e16de91453998d896f3</id>
<content type='text'>
This reverts commit 4f49627c6fe2a32d1fed6310466bb0e1c535c0c0, reversing
changes made to 028c6f1454787c068ff5117e9000a1de4fd98374.
</content>
</entry>
<entry>
<title>AttrBuilder doesn't take a context in old LLVM</title>
<updated>2022-02-26T22:16:01+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-02-26T22:16:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0d0cc4f6a0cb48600f183c382986df1897bdb7dc'/>
<id>urn:sha1:0d0cc4f6a0cb48600f183c382986df1897bdb7dc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use attrbuilder to remove attrs in old LLVM</title>
<updated>2022-02-26T21:58:45+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-02-26T21:58:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ac9f4f7d0de3986246a19678919ff15252870b15'/>
<id>urn:sha1:ac9f4f7d0de3986246a19678919ff15252870b15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add LLVM attributes in batches instead of individually</title>
<updated>2022-02-26T18:14:55+00:00</updated>
<author>
<name>Erik Desjardins</name>
<email>erikdesjardins@users.noreply.github.com</email>
</author>
<published>2022-02-21T16:19:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=30d3ce06742fc5d0eb844239652a0af4d47bb095'/>
<id>urn:sha1:30d3ce06742fc5d0eb844239652a0af4d47bb095</id>
<content type='text'>
This should improve performance.
</content>
</entry>
<entry>
<title>Rollup merge of #91675 - ivanloz:memtagsan, r=nagisa</title>
<updated>2022-02-18T22:23:03+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2022-02-18T22:23:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0bb72a2c66d0daa417baa27eaf2d276d835b87a2'/>
<id>urn:sha1:0bb72a2c66d0daa417baa27eaf2d276d835b87a2</id>
<content type='text'>
Add MemTagSanitizer Support

Add support for the LLVM [MemTagSanitizer](https://llvm.org/docs/MemTagSanitizer.html).

On hardware which supports it (see caveats below), the MemTagSanitizer can catch bugs similar to AddressSanitizer and HardwareAddressSanitizer, but with lower overhead.

On a tag mismatch, a SIGSEGV is signaled with code SEGV_MTESERR / SEGV_MTEAERR.

# Usage

`-Zsanitizer=memtag -C target-feature="+mte"`

# Comments/Caveats

* MemTagSanitizer is only supported on AArch64 targets with hardware support
* Requires `-C target-feature="+mte"`
* LLVM MemTagSanitizer currently only performs stack tagging.

# TODO

* Tests
* Example
</content>
</entry>
<entry>
<title>MemTagSanitizer Support</title>
<updated>2022-02-16T14:39:03+00:00</updated>
<author>
<name>Ivan Lozano</name>
<email>ivanlozano@google.com</email>
</author>
<published>2021-12-03T21:11:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=568aeda9e955ca2a4c043bc2ae7f854e60f6103a'/>
<id>urn:sha1:568aeda9e955ca2a4c043bc2ae7f854e60f6103a</id>
<content type='text'>
Adds support for the LLVM MemTagSanitizer.
</content>
</entry>
</feed>
