about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/asm.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-07-10 19:01:41 +0000
committerbors <bors@rust-lang.org>2021-07-10 19:01:41 +0000
commit432e145bd5a974c5b6f4dd9b352891bd7502b69d (patch)
treed183ea94a9b3b6687739e2d5280ee0eae1d25d42 /compiler/rustc_codegen_llvm/src/asm.rs
parenta31431fce770ff90a347fd6114ac294e4568cbd8 (diff)
parent2ce1addeba5030eaa5d5dbdf2cc2a9c53a107c06 (diff)
downloadrust-432e145bd5a974c5b6f4dd9b352891bd7502b69d.tar.gz
rust-432e145bd5a974c5b6f4dd9b352891bd7502b69d.zip
Auto merge of #86873 - nikic:opaque-ptrs, r=nagisa
Improve opaque pointers support

Opaque pointers are coming, and rustc is not ready.

This adds partial support by passing an explicit load type to LLVM. Two issues I've encountered:
 * The necessary type was not available at the point where non-temporal copies were generated. I've pushed the code for that upwards out of the memcpy implementation and moved the position of a cast to make do with the types we have available. (I'm not sure that cast is needed at all, but have retained it in the interest of conservativeness.)
 * The `PlaceRef::project_deref()` function used during debuginfo generation seems to be buggy in some way -- though I haven't figured out specifically what it does wrong. Replacing it with `load_operand().deref()` did the trick, but I don't really know what I'm doing here.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/asm.rs')
0 files changed, 0 insertions, 0 deletions