rust/compiler/rustc_llvm/llvm-wrapper
fee1-dead 07467c5308
Rollup merge of #101997 - cuviper:drop-legacy-pm, r=nikic
Remove support for legacy PM

This removes support for optimizing with LLVM's legacy pass manager, as well as the unstable `-Znew-llvm-pass-manager` option. We have been defaulting to the new PM since LLVM 13 (except for s390x that waited for 14), and LLVM 15 removed support altogether. The only place we still use the legacy PM is for writing the output file, just like `llc` does.

cc #74705
r? ``@nikic``
2022-09-25 22:06:38 +08:00
..
.editorconfig
ArchiveWrapper.cpp Use object instead of LLVM for reading bitcode from rlibs 2022-07-25 16:07:23 +00:00
CoverageMappingWrapper.cpp Update the minimum external LLVM to 13 2022-08-14 13:46:51 -07:00
Linker.cpp
LLVMWrapper.h Also gate AllocatedPointer and AllocAlign definitions by LLVM_VERSION_GE 2022-07-30 18:53:51 +02:00
PassWrapper.cpp Use the helper for internalizing with new PM 2022-09-18 13:26:03 -07:00
README
RustWrapper.cpp Rollup merge of #101997 - cuviper:drop-legacy-pm, r=nikic 2022-09-25 22:06:38 +08: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.