<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp, branch 1.68.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.68.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.68.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-01-22T04:20:58+00:00</updated>
<entry>
<title>Rollup merge of #106113 - krasimirgg:llvm-16-ext-tyid, r=nikic</title>
<updated>2023-01-22T04:20:58+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2023-01-22T04:20:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2504c8d1ee4f904d3ecd95ec19cbed22ed046295'/>
<id>urn:sha1:2504c8d1ee4f904d3ecd95ec19cbed22ed046295</id>
<content type='text'>
llvm-wrapper: adapt for LLVM API change

No functional changes intended.

The LLVM commit https://github.com/llvm/llvm-project/commit/e6b02214c68df2c9f826e02310c9352ac652e456 added `TargetExtTyID` to the `TypeID` enum. This adapts `RustWrapper` accordingly.
</content>
</entry>
<entry>
<title>rustc_llvm: replace llvm::makeArrayRef with ArrayRef constructors.</title>
<updated>2023-01-11T16:25:15+00:00</updated>
<author>
<name>Dmitri Gribenko</name>
<email>dmitrig@google.com</email>
</author>
<published>2023-01-11T15:39:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4f0c88f8bda92e16db9b59e5c585ae882dd4a086'/>
<id>urn:sha1:4f0c88f8bda92e16db9b59e5c585ae882dd4a086</id>
<content type='text'>
LLVM upstream has deprecated llvm::makeArrayRef and will remove it.
</content>
</entry>
<entry>
<title>llvm-wrapper: adapt for LLVM API change</title>
<updated>2023-01-02T14:31:05+00:00</updated>
<author>
<name>Krasimir Georgiev</name>
<email>krasimir@google.com</email>
</author>
<published>2022-12-24T08:19:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=799fa60c07784bb033d1e1bcdcc7f671ea47d617'/>
<id>urn:sha1:799fa60c07784bb033d1e1bcdcc7f671ea47d617</id>
<content type='text'>
No functional changes intended.

The LLVM commit https://github.com/llvm/llvm-project/commit/e6b02214c68df2c9f826e02310c9352ac652e456 added `TargetExtTyID` to the `TypeID` enum. This adapts `RustWrapper` accordingly.
</content>
</entry>
<entry>
<title>llvm-wrapper: adapt for LLVM API changes</title>
<updated>2022-12-11T09:14:50+00:00</updated>
<author>
<name>Krasimir Georgiev</name>
<email>krasimir@google.com</email>
</author>
<published>2022-12-11T09:14:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cbdc00f6e61132cbb74397cbb91171756e5d5834'/>
<id>urn:sha1:cbdc00f6e61132cbb74397cbb91171756e5d5834</id>
<content type='text'>
This is a follow-up of
https://github.com/rust-lang/rust/commit/75aec4703dea7ef8e13924ccfa3a3d2e8c5c7cff.
There, I updated the wrapper to only include llvm/ADT/Optional.h for
LLVM version below 16. But I missed updating some of the None references.

Found by our experimental rust + llvm at HEAD bot:
https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15587#0185006b-e0af-49e5-8b06-280ed125ff0d/200-539
</content>
</entry>
<entry>
<title>Rollup merge of #105109 - rcvalle:rust-kcfi, r=bjorn3</title>
<updated>2022-12-10T08:24:43+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2022-12-10T08:24:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=947fe7e341c2c3c0bdb220fd31bb650ac24c7054'/>
<id>urn:sha1:947fe7e341c2c3c0bdb220fd31bb650ac24c7054</id>
<content type='text'>
Add LLVM KCFI support to the Rust compiler

This PR adds LLVM Kernel Control Flow Integrity (KCFI) support to the Rust compiler. It initially provides forward-edge control flow protection for operating systems kernels for Rust-compiled code only by aggregating function pointers in groups identified by their return and parameter types. (See llvm/llvm-project@cff5bef.)

Forward-edge control flow protection for C or C++ and Rust -compiled code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code share the same virtual address space) will be provided in later work as part of this project by identifying C char and integer type uses at the time types are encoded (see Type metadata in the design document in the tracking issue #89653).

LLVM KCFI can be enabled with -Zsanitizer=kcfi.

Thank you again, `@bjorn3,` `@eddyb,` `@nagisa,` and `@ojeda,` for all the help!
</content>
</entry>
<entry>
<title>Add LLVM KCFI support to the Rust compiler</title>
<updated>2022-12-09T01:24:39+00:00</updated>
<author>
<name>Ramon de C Valle</name>
<email>rcvalle@users.noreply.github.com</email>
</author>
<published>2022-11-22T05:29:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=65698ae9f30f5ad72224edd1884fb4ddd1279366'/>
<id>urn:sha1:65698ae9f30f5ad72224edd1884fb4ddd1279366</id>
<content type='text'>
This commit adds LLVM Kernel Control Flow Integrity (KCFI) support to
the Rust compiler. It initially provides forward-edge control flow
protection for operating systems kernels for Rust-compiled code only by
aggregating function pointers in groups identified by their return and
parameter types. (See llvm/llvm-project@cff5bef.)

Forward-edge control flow protection for C or C++ and Rust -compiled
code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code
share the same virtual address space) will be provided in later work as
part of this project by identifying C char and integer type uses at the
time types are encoded (see Type metadata in the design document in the
tracking issue #89653).

LLVM KCFI can be enabled with -Zsanitizer=kcfi.

Co-authored-by: bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Rollup merge of #105298 - krasimirgg:llvm-16-dec-1, r=cuviper</title>
<updated>2022-12-06T22:13:49+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2022-12-06T22:13:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e434f613fddec939f357e5afad79c90b6fc4a7a1'/>
<id>urn:sha1:e434f613fddec939f357e5afad79c90b6fc4a7a1</id>
<content type='text'>
llvm-wrapper: adapt for an LLVM API change

Adapts llvm-wrapper for https://github.com/llvm/llvm-project/commit/8c7c20f033c7036a8bf231ca6f9e02172cb581f0.
No functional changes intended.

Found via our experimental rust + llvm @ HEAD bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15404#0184d95d-5a68-4db6-ad32-51ddbc3ab543/202-571
</content>
</entry>
<entry>
<title>llvm-wrapper: adapt for and LLVM API change</title>
<updated>2022-12-06T18:25:33+00:00</updated>
<author>
<name>Krasimir Georgiev</name>
<email>krasimir@google.com</email>
</author>
<published>2022-12-05T12:04:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=75aec4703dea7ef8e13924ccfa3a3d2e8c5c7cff'/>
<id>urn:sha1:75aec4703dea7ef8e13924ccfa3a3d2e8c5c7cff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rewrite LLVM's archive writer in Rust</title>
<updated>2022-11-26T19:35:32+00:00</updated>
<author>
<name>bjorn3</name>
<email>bjorn3@users.noreply.github.com</email>
</author>
<published>2022-05-28T10:43:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=be6708428fdf6693188e2c2f10f05d1b1aaa5750'/>
<id>urn:sha1:be6708428fdf6693188e2c2f10f05d1b1aaa5750</id>
<content type='text'>
This allows it to be used by other codegen backends
</content>
</entry>
<entry>
<title>Auto merge of #102717 - beetrees:repr128-c-style-debuginfo, r=nagisa</title>
<updated>2022-11-21T01:44:12+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-11-21T01:44:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ccde51a912e89478a649dc9e64b5584a5971f75f'/>
<id>urn:sha1:ccde51a912e89478a649dc9e64b5584a5971f75f</id>
<content type='text'>
Pass 128-bit C-style enum enumerator values to LLVM

Pass the full 128 bits of C-style enum enumerators through to LLVM. This means that debuginfo for C-style repr128 enums is now emitted correctly for DWARF platforms (as compared to not being correctly emitted on any platform).

Tracking issue: #56071
</content>
</entry>
</feed>
