rust/src/rustllvm
Alex Crichton 9d54bf8df2 Buffer LLVM's object output stream
In some profiling on OSX I saw the `write` syscall as quite high up on
the profiling graph, which is definitely not good! It looks like we're
setting the output stream of an object file as directly to a file
descriptor which means that we run the risk of doing lots of little
writes rather than a few large writes.

This commit fixes this issue by adding a buffered stream on the output,
causing the `write` syscall to disappear from the profiles on OSX.
2018-08-19 23:46:32 -07:00
..
.editorconfig Add .editorconfig to src/rustllvm 2017-06-30 23:13:40 +03:00
ArchiveWrapper.cpp rustc_llvm: move to rustc_codegen_llvm::llvm. 2018-07-30 18:03:50 +03:00
Linker.cpp rustc: Persist LLVM's Linker in Fat LTO 2018-02-12 09:11:06 -08:00
llvm-rebuild-trigger Update LLVM submodule to 7.0 2018-08-04 17:30:14 -07:00
PassWrapper.cpp Buffer LLVM's object output stream 2018-08-19 23:46:32 -07:00
README audit LLVM C++ types in ArchiveWrapper and PassWrapper 2016-08-03 15:08:47 +03:00
rustllvm.h removed redundant header file import in rustllvm.h 2018-07-07 09:37:41 +05:30
RustWrapper.cpp Auto merge of #51007 - AstralSorcerer:master, r=nagisa 2018-08-07 02:12:35 +00: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.