<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp, branch 1.81.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.81.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.81.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-07-12T20:15:10+00:00</updated>
<entry>
<title>Remove LLVMRustDIBuilderInsertDeclareAtEnd return value</title>
<updated>2024-07-12T20:15:10+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-07-12T12:52:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8dfd3a455dc7d309f0c82dcb2e2f41da14f6c4af'/>
<id>urn:sha1:8dfd3a455dc7d309f0c82dcb2e2f41da14f6c4af</id>
<content type='text'>
The return value changed from an Instruction to a DbgRecord in
LLVM 19. As we don't actually use the result, drop the return
value entirely to support both.
</content>
</entry>
<entry>
<title>Format C++ files in `llvm-wrapper`</title>
<updated>2024-06-26T12:18:49+00:00</updated>
<author>
<name>DianQK</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2024-06-04T14:46:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e17c16d55b20b9d2702fafa017263406d1e94042'/>
<id>urn:sha1:e17c16d55b20b9d2702fafa017263406d1e94042</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #121298 - nikic:writable, r=cuviper</title>
<updated>2024-04-25T04:31:56+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2024-04-25T04:31:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=284f94f9c0f77ad4ef85323a634cfda29c1a801d'/>
<id>urn:sha1:284f94f9c0f77ad4ef85323a634cfda29c1a801d</id>
<content type='text'>
Set writable and dead_on_unwind attributes for sret arguments

Set the `writable` and `dead_on_unwind` attributes for `sret` arguments. This allows call slot optimization to remove more memcpy's.

See https://llvm.org/docs/LangRef.html#parameter-attributes for the specification of these attributes. In short, the statement we're making here is that:

 * The return slot is writable.
 * The return slot will not be read if the function unwinds.

Fixes https://github.com/rust-lang/rust/issues/90595.
</content>
</entry>
<entry>
<title>Set writable and dead_on_unwind attributes for sret arguments</title>
<updated>2024-04-25T02:43:47+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-02-19T14:02:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3695af697efa26b0ea3b67739ade3ecc3929154e'/>
<id>urn:sha1:3695af697efa26b0ea3b67739ade3ecc3929154e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #124132 - RalfJung:OpBundlesIndirect, r=Mark-Simulacrum</title>
<updated>2024-04-20T20:45:37+00:00</updated>
<author>
<name>许杰友 Jieyou Xu (Joe)</name>
<email>39484203+jieyouxu@users.noreply.github.com</email>
</author>
<published>2024-04-20T20:45:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=726361caf463d1419e99b34d82df5d1656a583e4'/>
<id>urn:sha1:726361caf463d1419e99b34d82df5d1656a583e4</id>
<content type='text'>
llvm RustWrapper: explain OpBundlesIndirect argument type

Follow-up to https://github.com/rust-lang/rust/pull/123941

r? ``@Mark-Simulacrum``
</content>
</entry>
<entry>
<title>coverage. Lowering MC/DC statements to llvm-ir</title>
<updated>2024-04-19T16:34:40+00:00</updated>
<author>
<name>zhuyunxing</name>
<email>zhuyunxing.zyx@alibaba-inc.com</email>
</author>
<published>2024-04-19T02:58:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=439dbfa1ecb1b45db0acc728094d6e8ed3dc3080'/>
<id>urn:sha1:439dbfa1ecb1b45db0acc728094d6e8ed3dc3080</id>
<content type='text'>
</content>
</entry>
<entry>
<title>llvm RustWrapper: explain OpBundlesIndirect argument type</title>
<updated>2024-04-18T19:43:52+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-04-18T19:43:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=61def018c141964671c2a08180e234d46f188b0d'/>
<id>urn:sha1:61def018c141964671c2a08180e234d46f188b0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix UB in LLVM FFI when passing zero or &gt;1 bundle</title>
<updated>2024-04-15T02:18:33+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2024-04-14T19:48:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf3deccdadffbd5903268cca74a60f7101f7e9c3'/>
<id>urn:sha1:bf3deccdadffbd5903268cca74a60f7101f7e9c3</id>
<content type='text'>
Rust passes a *const &amp;OperandBundleDef to these APIs, usually from a
Vec&lt;&amp;OperandBundleDef&gt; or so. Previously we were dereferencing that
pointer and passing it to the ArrayRef constructor with some length (N).

This meant that if the length was 0, we were dereferencing a pointer to
nowhere, and if the length was &gt;1 then loading the *second* element
somewhere in LLVM would've been reading past the end.

Since Rust can't hold OperandBundleDef by-value we're forced to indirect
through a vector that copies out the OperandBundleDefs from the
by-reference list on the Rust side in order to match the LLVM expected
API.
</content>
</entry>
<entry>
<title>Rollup merge of #123612 - kxxt:riscv-target-abi, r=jieyouxu,nikic,DianQK</title>
<updated>2024-04-10T02:27:40+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-04-10T02:27:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2ddf984594519c62ee23f0289a1a0afebb90186b'/>
<id>urn:sha1:2ddf984594519c62ee23f0289a1a0afebb90186b</id>
<content type='text'>
Set target-abi module flag for RISC-V targets

Fixes cross-language LTO on RISC-V targets (Fixes #121924)
</content>
</entry>
<entry>
<title>Pass value and valueLen to create a StringRef</title>
<updated>2024-04-09T06:53:11+00:00</updated>
<author>
<name>Levi Zim</name>
<email>rsworktech@outlook.com</email>
</author>
<published>2024-04-09T06:47:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=33db20978e8157f53ca24fce1c54a7b5e07159cf'/>
<id>urn:sha1:33db20978e8157f53ca24fce1c54a7b5e07159cf</id>
<content type='text'>
Instead of creating a cstring.

Co-authored-by: LoveSy &lt;shana@zju.edu.cn&gt;
</content>
</entry>
</feed>
