[RISCV] Enable LLVM backend.
This commit is contained in:
parent
8c069ceba8
commit
2d5f62fb48
|
@ -62,7 +62,7 @@
|
||||||
# not built by default and the experimental Rust compilation targets that depend
|
# not built by default and the experimental Rust compilation targets that depend
|
||||||
# on them will not work unless the user opts in to building them. By default the
|
# on them will not work unless the user opts in to building them. By default the
|
||||||
# `WebAssembly` target is enabled when compiling LLVM from scratch.
|
# `WebAssembly` target is enabled when compiling LLVM from scratch.
|
||||||
#experimental-targets = "WebAssembly"
|
#experimental-targets = "WebAssembly;RISCV"
|
||||||
|
|
||||||
# Cap the number of parallel linker invocations when compiling LLVM.
|
# Cap the number of parallel linker invocations when compiling LLVM.
|
||||||
# This can be useful when building LLVM with debug info, which significantly
|
# This can be useful when building LLVM with debug info, which significantly
|
||||||
|
|
|
@ -100,6 +100,10 @@ fn main() {
|
||||||
optional_components.push("hexagon");
|
optional_components.push("hexagon");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if major > 6 {
|
||||||
|
optional_components.push("riscv");
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: surely we don't need all these components, right? Stuff like mcjit
|
// FIXME: surely we don't need all these components, right? Stuff like mcjit
|
||||||
// or interpreter the compiler itself never uses.
|
// or interpreter the compiler itself never uses.
|
||||||
let required_components = &["ipo",
|
let required_components = &["ipo",
|
||||||
|
|
|
@ -90,6 +90,12 @@ pub fn initialize_available_targets() {
|
||||||
LLVMInitializeMSP430Target,
|
LLVMInitializeMSP430Target,
|
||||||
LLVMInitializeMSP430TargetMC,
|
LLVMInitializeMSP430TargetMC,
|
||||||
LLVMInitializeMSP430AsmPrinter);
|
LLVMInitializeMSP430AsmPrinter);
|
||||||
|
init_target!(llvm_component = "riscv",
|
||||||
|
LLVMInitializeRISCVTargetInfo,
|
||||||
|
LLVMInitializeRISCVTarget,
|
||||||
|
LLVMInitializeRISCVTargetMC,
|
||||||
|
LLVMInitializeRISCVAsmPrinter,
|
||||||
|
LLVMInitializeRISCVAsmParser);
|
||||||
init_target!(llvm_component = "sparc",
|
init_target!(llvm_component = "sparc",
|
||||||
LLVMInitializeSparcTargetInfo,
|
LLVMInitializeSparcTargetInfo,
|
||||||
LLVMInitializeSparcTarget,
|
LLVMInitializeSparcTarget,
|
||||||
|
|
|
@ -171,6 +171,12 @@ bool LLVMRustPassManagerBuilderPopulateThinLTOPassManager(
|
||||||
#define SUBTARGET_MSP430
|
#define SUBTARGET_MSP430
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef LLVM_COMPONENT_RISCV
|
||||||
|
#define SUBTARGET_RISCV SUBTARGET(RISCV)
|
||||||
|
#else
|
||||||
|
#define SUBTARGET_RISCV
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef LLVM_COMPONENT_SPARC
|
#ifdef LLVM_COMPONENT_SPARC
|
||||||
#define SUBTARGET_SPARC SUBTARGET(Sparc)
|
#define SUBTARGET_SPARC SUBTARGET(Sparc)
|
||||||
#else
|
#else
|
||||||
|
@ -192,7 +198,8 @@ bool LLVMRustPassManagerBuilderPopulateThinLTOPassManager(
|
||||||
SUBTARGET_SYSTEMZ \
|
SUBTARGET_SYSTEMZ \
|
||||||
SUBTARGET_MSP430 \
|
SUBTARGET_MSP430 \
|
||||||
SUBTARGET_SPARC \
|
SUBTARGET_SPARC \
|
||||||
SUBTARGET_HEXAGON
|
SUBTARGET_HEXAGON \
|
||||||
|
SUBTARGET_RISCV \
|
||||||
|
|
||||||
#define SUBTARGET(x) \
|
#define SUBTARGET(x) \
|
||||||
namespace llvm { \
|
namespace llvm { \
|
||||||
|
|
Loading…
Reference in New Issue