rust/compiler/rustc_llvm/llvm-wrapper
Matthias Krüger ecc0615967
Rollup merge of #111274 - cuviper:print-target-cpus, r=Mark-Simulacrum
Expand the LLVM coverage of `--print target-cpus`

We've been relying on a custom patch to add `MCSubtargetInfo::getCPUTable`
for `rustc --print target-cpus`, and just printing that it's not supported
on external LLVM builds. LLVM `main` now has `getAllProcessorDescriptions`
that can replace ours, so now we try to use that. In addition, the fallback
path can at least print the native and default cpu options.

There were also some mismatches in the function signatures here between
`LLVM_RUSTLLVM` and otherwise; this is now mitigated by sharing these
functions and only using cpp to adjust the function bodies.
2023-05-06 23:32:03 +02:00
..
.editorconfig Move rustllvm into rustc_llvm 2020-09-09 23:05:43 +03:00
ArchiveWrapper.cpp Recognize AIX style archive kind 2023-04-19 11:10:47 +08:00
CoverageMappingWrapper.cpp rustc_llvm: replace llvm::makeArrayRef with ArrayRef constructors. 2023-01-11 11:25:15 -05:00
Linker.cpp Move rustllvm into rustc_llvm 2020-09-09 23:05:43 +03:00
LLVMWrapper.h record llvm cgu instruction stats 2023-02-25 16:18:56 +08:00
PassWrapper.cpp Expand the LLVM coverage of --print target-cpus 2023-05-05 17:27:59 -07:00
README Move rustllvm into rustc_llvm 2020-09-09 23:05:43 +03:00
RustWrapper.cpp debuginfo: split method declaration and definition 2023-05-03 15:52:31 -07:00
SymbolWrapper.cpp Remove an extraneous include 2023-03-07 22:46:39 -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.