Only initialize targets that are actually supported / linked to in RustWrapper
This commit is contained in:
parent
de5c15edfb
commit
480fa7c00e
2 changed files with 18 additions and 4 deletions
|
@ -75,6 +75,12 @@ extern "C" bool LLVMLinkModules(LLVMModuleRef Dest, LLVMModuleRef Src) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLVMInitializeX86TargetInfo();
|
||||||
|
void LLVMInitializeX86Target();
|
||||||
|
void LLVMInitializeX86TargetMC();
|
||||||
|
void LLVMInitializeX86AsmPrinter();
|
||||||
|
void LLVMInitializeX86AsmParser();
|
||||||
|
|
||||||
extern "C" bool
|
extern "C" bool
|
||||||
LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
|
LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
|
||||||
LLVMModuleRef M,
|
LLVMModuleRef M,
|
||||||
|
@ -84,10 +90,16 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
|
||||||
CodeGenOpt::Level OptLevel,
|
CodeGenOpt::Level OptLevel,
|
||||||
bool EnableSegmentedStacks) {
|
bool EnableSegmentedStacks) {
|
||||||
|
|
||||||
InitializeAllTargets();
|
// Only initialize the platforms supported by Rust here,
|
||||||
InitializeAllTargetMCs();
|
// because using --llvm-root will have multiple platforms
|
||||||
InitializeAllAsmPrinters();
|
// that rustllvm doesn't actually link to and it's pointless to put target info
|
||||||
InitializeAllAsmParsers();
|
// into the registry that Rust can not generate machine code for.
|
||||||
|
|
||||||
|
LLVMInitializeX86TargetInfo();
|
||||||
|
LLVMInitializeX86Target();
|
||||||
|
LLVMInitializeX86TargetMC();
|
||||||
|
LLVMInitializeX86AsmPrinter();
|
||||||
|
LLVMInitializeX86AsmParser();
|
||||||
|
|
||||||
TargetOptions Options;
|
TargetOptions Options;
|
||||||
Options.NoFramePointerElim = true;
|
Options.NoFramePointerElim = true;
|
||||||
|
|
|
@ -390,6 +390,8 @@ LLVMInitializeX86Disassembler
|
||||||
LLVMInitializeX86Disassembler
|
LLVMInitializeX86Disassembler
|
||||||
LLVMInitializeX86Target
|
LLVMInitializeX86Target
|
||||||
LLVMInitializeX86Target
|
LLVMInitializeX86Target
|
||||||
|
LLVMInitializeX86TargetMC
|
||||||
|
LLVMInitializeX86TargetMC
|
||||||
LLVMInitializeX86TargetInfo
|
LLVMInitializeX86TargetInfo
|
||||||
LLVMInitializeX86TargetInfo
|
LLVMInitializeX86TargetInfo
|
||||||
LLVMInsertBasicBlock
|
LLVMInsertBasicBlock
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue