rust/compiler/rustc_llvm/llvm-wrapper
bors 84c08f82b4 Auto merge of #83044 - kubo39:set-llvm-code-model, r=nikic
Add support for storing code model to LLVM module IR

This patch avoids undefined behavior by linking different object files.
Also this would it could be propagated properly to LTO.

See https://reviews.llvm.org/D52322 and https://reviews.llvm.org/D52323.

This patch is based on https://github.com/rust-lang/rust/pull/74002
2021-03-14 11:46:57 +00:00
..
.editorconfig
ArchiveWrapper.cpp
CoverageMappingWrapper.cpp Don't directly expose coverage::CounterMappingRegion via FFI 2021-03-01 23:35:35 +01:00
Linker.cpp
LLVMWrapper.h Mark pure asm as willreturn 2021-03-01 23:35:35 +01:00
PassWrapper.cpp Auto merge of #83044 - kubo39:set-llvm-code-model, r=nikic 2021-03-14 11:46:57 +00:00
README
RustWrapper.cpp Mark pure asm as willreturn 2021-03-01 23:35:35 +01:00

This directory currently contains some LLVM support code. This will generally
be sent upstream to LLVM in time; for now it lives here.

NOTE: the LLVM C++ ABI is subject to between-version breakage and must *never*
be exposed to Rust. To allow for easy auditing of that, all Rust-exposed types
must be typedef-ed as "LLVMXyz", or "LLVMRustXyz" if they were defined here.

Functions that return a failure status and leave the error in
the LLVM last error should return an LLVMRustResult rather than an
int or anything to avoid confusion.

When translating enums, add a single `Other` variant as the first
one to allow for new variants to be added. It should abort when used
as an input.

All other types must not be typedef-ed as such.