<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp, branch 1.57.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.57.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.57.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2021-10-08T03:26:11+00:00</updated>
<entry>
<title>Rollup merge of #89025 - ricobbe:raw-dylib-link-ordinal, r=michaelwoerister</title>
<updated>2021-10-08T03:26:11+00:00</updated>
<author>
<name>Jubilee</name>
<email>46493976+workingjubilee@users.noreply.github.com</email>
</author>
<published>2021-10-08T03:26:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6c17601a2e6fa55e5d2ec7284359bee931c0c61a'/>
<id>urn:sha1:6c17601a2e6fa55e5d2ec7284359bee931c0c61a</id>
<content type='text'>
Implement `#[link_ordinal(n)]`

Allows the use of `#[link_ordinal(n)]` with `#[link(kind = "raw-dylib")]`, allowing Rust to link against DLLs that export symbols by ordinal rather than by name.  As long as the ordinal matches, the name of the function in Rust is not required to match the name of the corresponding function in the exporting DLL.

Part of #58713.
</content>
</entry>
<entry>
<title>RustWrapper: adapt for LLVM API change of fatal_error_handler_t</title>
<updated>2021-10-05T14:31:36+00:00</updated>
<author>
<name>Krasimir Georgiev</name>
<email>krasimir@google.com</email>
</author>
<published>2021-10-05T14:31:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=67a82e20cfdc6119f65ddfbfa179d0b5426ee753'/>
<id>urn:sha1:67a82e20cfdc6119f65ddfbfa179d0b5426ee753</id>
<content type='text'>
No functional changes intended.

The LLVM commit
https://github.com/llvm/llvm-project/commit/e463b69736da8b0a950ecd937cf990401bdfcdeb
changed an argument of fatal_error_handler_t from std::string to char*.
This adapts RustWrapper accordingly.
</content>
</entry>
<entry>
<title>Implement #[link_ordinal] attribute in the context of #[link(kind = "raw-dylib")].</title>
<updated>2021-09-20T21:50:35+00:00</updated>
<author>
<name>Richard Cobbe</name>
<email>ricobbe@microsoft.com</email>
</author>
<published>2021-09-11T00:34:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=142f6c0b078ceef1dc817c418f628d350551f6e4'/>
<id>urn:sha1:142f6c0b078ceef1dc817c418f628d350551f6e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RustWrapper: remove some uses of AttrBuilder</title>
<updated>2021-09-08T14:47:41+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-09-08T14:47:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4d045406d1ee4c011e476fbeae81976c8012e886'/>
<id>urn:sha1:4d045406d1ee4c011e476fbeae81976c8012e886</id>
<content type='text'>
Turns out we can also use Attribute::get*() methods here, and avoid the
AttrBuilder and an extra helper method here.
</content>
</entry>
<entry>
<title>RustWrapper: just use the *AtIndex funcs directly</title>
<updated>2021-09-07T20:15:02+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-09-07T20:15:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=484b79b950b1077d1bbfe6c4edf3bfe070d820b4'/>
<id>urn:sha1:484b79b950b1077d1bbfe6c4edf3bfe070d820b4</id>
<content type='text'>
Otherwise we're kind of reimplementing the inverse of the well-named
methods, and that's not a direction we want to go.
</content>
</entry>
<entry>
<title>RustWrapper: avoid deleted unclear attribute methods</title>
<updated>2021-09-07T19:30:42+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-09-07T18:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=532bb80f7fd22bbc9896d9233f2a9ed79071716c'/>
<id>urn:sha1:532bb80f7fd22bbc9896d9233f2a9ed79071716c</id>
<content type='text'>
These were deleted in https://reviews.llvm.org/D108614, and in C++ I
definitely see the argument for their removal. I didn't try and
propagate the changes up into higher layers of rustc in this change
because my initial goal was to get rustc working against LLVM HEAD
promptly, but I'm happy to follow up with some refactoring to make the
API on the Rust side match the LLVM API more directly (though the way
the enum works in Rust makes the API less scary IMO).

r? @nagisa cc @nikic
</content>
</entry>
<entry>
<title>RustWrapper: adapt to LLVM change 0f45c16f2caa</title>
<updated>2021-08-26T14:40:27+00:00</updated>
<author>
<name>Augie Fackler</name>
<email>augie@google.com</email>
</author>
<published>2021-08-24T13:44:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=027db5d036768ba8b0e36cb1b9f3f0ed1e3da000'/>
<id>urn:sha1:027db5d036768ba8b0e36cb1b9f3f0ed1e3da000</id>
<content type='text'>
The above-mentioned commit (part of the LLVM 14 development cycle)
removes a method that rustc uses somewhat extensively. We mostly switch
to lower-level methods that exist in all versions of LLVM we use, so no
new ifdef logic is required in most cases.
</content>
</entry>
<entry>
<title>Handle SrcMgr diagnostics</title>
<updated>2021-08-16T16:28:17+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2021-07-28T19:31:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=621f5146c331ada06c6ff581edd0dbc23ffbb763'/>
<id>urn:sha1:621f5146c331ada06c6ff581edd0dbc23ffbb763</id>
<content type='text'>
This is how InlineAsm diagnostics with source information are
reported now. Previously a separate InlineAsm diagnostic handler
was used.
</content>
</entry>
<entry>
<title>Prepare call/invoke for opaque pointers</title>
<updated>2021-08-05T17:58:55+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2021-08-03T22:09:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=183d79cc09ad81bc2dc7b47cb8880046201e52a2'/>
<id>urn:sha1:183d79cc09ad81bc2dc7b47cb8880046201e52a2</id>
<content type='text'>
Rather than relying on `getPointerElementType()` from LLVM function
pointers, we now pass the function type explicitly when building `call`
or `invoke` instructions.
</content>
</entry>
<entry>
<title>Replace LLVMConstInBoundsGEP with LLVMConstInBoundsGEP2*</title>
<updated>2021-08-04T13:51:30+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2021-07-31T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8e0df32ad6dd4e171742dc159a08f247c1a256ab'/>
<id>urn:sha1:8e0df32ad6dd4e171742dc159a08f247c1a256ab</id>
<content type='text'>
A custom reimplementation of LLVMConstInBoundsGEP2 is used, since the
LLVM contains a declaration of LLVMConstInBoundsGEP2 but not the
implementation.
</content>
</entry>
</feed>
