<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp, branch 1.62.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.62.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.62.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2022-04-20T07:36:02+00:00</updated>
<entry>
<title>Stub out more PassManagerBuilder functions</title>
<updated>2022-04-20T07:36:02+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2022-04-20T07:25:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6dc0bcc5db00524af73eb7dd2f6e24f38736f1aa'/>
<id>urn:sha1:6dc0bcc5db00524af73eb7dd2f6e24f38736f1aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stub out various legacy PM functions with LLVM 15</title>
<updated>2022-04-20T07:25:47+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2022-04-19T11:22:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=890cabac8acb566dee2d01bdfd9198546adfa310'/>
<id>urn:sha1:890cabac8acb566dee2d01bdfd9198546adfa310</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Respect -Z verify-llvm-ir and other flags that add extra passes when combined with -C no-prepopulate-passes in the new LLVM Pass Manager.</title>
<updated>2022-04-10T19:40:16+00:00</updated>
<author>
<name>Luqman Aden</name>
<email>me@luqman.ca</email>
</author>
<published>2022-04-10T19:30:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=84fb481bf51ed69e5cf0780319ba72ead5420732'/>
<id>urn:sha1:84fb481bf51ed69e5cf0780319ba72ead5420732</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove LLVMRustMarkAllFunctionsNounwind</title>
<updated>2022-01-14T00:36:12+00:00</updated>
<author>
<name>Amanieu d'Antras</name>
<email>amanieu@gmail.com</email>
</author>
<published>2022-01-14T00:10:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=606d9c0c0e54b7ed6ec962f3eb492f335c6afe81'/>
<id>urn:sha1:606d9c0c0e54b7ed6ec962f3eb492f335c6afe81</id>
<content type='text'>
This was originally introduced in #10916 as a way to remove all landing
pads when performing LTO. However this is no longer necessary today
since rustc properly marks all functions and call-sites as nounwind
where appropriate.

In fact this is incorrect in the presence of `extern "C-unwind"` which
must create a landing pad when compiled with `-C panic=abort` so that
foreign exceptions are caught and properly turned into aborts.
</content>
</entry>
<entry>
<title>Use the existing llvm-plugins option for both legacy and new pm registration</title>
<updated>2021-12-13T09:41:43+00:00</updated>
<author>
<name>Axel Cohen</name>
<email>axel.cohen@eshard.com</email>
</author>
<published>2021-11-24T10:43:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c4f29fa0ed738b52e7d8ef372c2d09300755dfef'/>
<id>urn:sha1:c4f29fa0ed738b52e7d8ef372c2d09300755dfef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a codegen option to allow loading LLVM pass plugins</title>
<updated>2021-12-13T09:40:44+00:00</updated>
<author>
<name>Axel Cohen</name>
<email>axel.cohen@eshard.com</email>
</author>
<published>2021-11-19T16:01:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=97cf461b8f4c0ed0de8fdc1c441b904ddb8b3194'/>
<id>urn:sha1:97cf461b8f4c0ed0de8fdc1c441b904ddb8b3194</id>
<content type='text'>
</content>
</entry>
<entry>
<title>PassWrapper: additional sanitizer update to match clang</title>
<updated>2021-11-11T14:05:21+00:00</updated>
<author>
<name>Krasimir Georgiev</name>
<email>krasimir@google.com</email>
</author>
<published>2021-11-11T14:03:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d9f2d5f0e9c55f440d043c3614b164d7c9fa70ce'/>
<id>urn:sha1:d9f2d5f0e9c55f440d043c3614b164d7c9fa70ce</id>
<content type='text'>
This happened later in the stream than the other changes, but the fix is
overlapping. Fix taken from a55c4ec1cee7683d9095327d9d33e7137ec25292 in
LLVM.
</content>
</entry>
<entry>
<title>Didn't mean to invert this boolean.</title>
<updated>2021-11-09T15:18:13+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-11-04T22:08:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d440ce6a9f6d8cfa532007add77754d956038407'/>
<id>urn:sha1:d440ce6a9f6d8cfa532007add77754d956038407</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc_llvm: update PassWrapper for recent LLVM</title>
<updated>2021-11-09T15:18:13+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-11-04T21:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6234a5694936cb0f7c9a3fb456ae4c0aeee69f11'/>
<id>urn:sha1:6234a5694936cb0f7c9a3fb456ae4c0aeee69f11</id>
<content type='text'>
Now AddressSanitizerOptions is a struct, but at least the change was
tiny.

r? nikic
</content>
</entry>
<entry>
<title>Initialize LLVM time trace profiler on each code generation thread</title>
<updated>2021-11-05T16:47:11+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2021-11-05T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5a09e1213543fca0cbc9a0a61643e8d1bd4fccd8'/>
<id>urn:sha1:5a09e1213543fca0cbc9a0a61643e8d1bd4fccd8</id>
<content type='text'>
In https://reviews.llvm.org/D71059 LLVM 11, the time trace profiler was
extended to support multiple threads.

`timeTraceProfilerInitialize` creates a thread local profiler instance.
When a thread finishes `timeTraceProfilerFinishThread` moves a thread
local instance into a global collection of instances. Finally when all
codegen work is complete `timeTraceProfilerWrite` writes data from the
current thread local instance and the instances in global collection
of instances.

Previously, the profiler was intialized on a single thread only. Since
this thread performs no code generation on its own, the resulting
profile was empty.

Update LLVM codegen to initialize &amp; finish time trace profiler on each
code generation thread.
</content>
</entry>
</feed>
