mirror of
https://github.com/fluencelabs/wasmer
synced 2025-04-25 02:12:13 +00:00
Create a valid target triple in the LLVM Module.
This commit is contained in:
parent
531ec45f34
commit
5bd6b161d5
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -645,7 +645,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "inkwell"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/TheDan64/inkwell?rev=af4cf4efbb27cdea8a54175ffc18ffd91964618c#af4cf4efbb27cdea8a54175ffc18ffd91964618c"
|
||||
source = "git+https://github.com/TheDan64/inkwell?rev=5610ee7e1fea4f177d1cd70516a988df286975d8#5610ee7e1fea4f177d1cd70516a988df286975d8"
|
||||
dependencies = [
|
||||
"either",
|
||||
"inkwell_internals",
|
||||
@ -659,7 +659,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "inkwell_internals"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/TheDan64/inkwell?rev=af4cf4efbb27cdea8a54175ffc18ffd91964618c#af4cf4efbb27cdea8a54175ffc18ffd91964618c"
|
||||
source = "git+https://github.com/TheDan64/inkwell?rev=5610ee7e1fea4f177d1cd70516a988df286975d8#5610ee7e1fea4f177d1cd70516a988df286975d8"
|
||||
dependencies = [
|
||||
"proc-macro2 0.4.30",
|
||||
"quote 0.6.13",
|
||||
|
@ -19,13 +19,13 @@ byteorder = "1"
|
||||
|
||||
[target.'cfg(target_arch = "x86_64")'.dependencies.inkwell]
|
||||
git = "https://github.com/TheDan64/inkwell"
|
||||
rev = "af4cf4efbb27cdea8a54175ffc18ffd91964618c"
|
||||
rev = "5610ee7e1fea4f177d1cd70516a988df286975d8"
|
||||
default-features = false
|
||||
features = ["llvm8-0", "target-x86"]
|
||||
|
||||
[target.'cfg(target_arch = "aarch64")'.dependencies.inkwell]
|
||||
git = "https://github.com/TheDan64/inkwell"
|
||||
rev = "af4cf4efbb27cdea8a54175ffc18ffd91964618c"
|
||||
rev = "5610ee7e1fea4f177d1cd70516a988df286975d8"
|
||||
default-features = false
|
||||
features = ["llvm8-0", "target-aarch64"]
|
||||
|
||||
|
@ -12,7 +12,7 @@ use inkwell::{
|
||||
context::Context,
|
||||
module::{Linkage, Module},
|
||||
passes::PassManager,
|
||||
targets::{CodeModel, InitializationConfig, RelocMode, Target, TargetMachine},
|
||||
targets::{CodeModel, InitializationConfig, RelocMode, Target, TargetMachine, TargetTriple},
|
||||
types::{
|
||||
BasicType, BasicTypeEnum, FloatMathType, FunctionType, IntType, PointerType, VectorType,
|
||||
},
|
||||
@ -8655,7 +8655,13 @@ impl<'ctx> ModuleCodeGenerator<LLVMFunctionCodeGenerator<'ctx>, LLVMBackend, Cod
|
||||
let context = unsafe { &*context_ptr };
|
||||
let module = context.create_module("module");
|
||||
|
||||
let triple = triple.unwrap_or(TargetMachine::get_default_triple().to_string());
|
||||
let triple = triple.unwrap_or(
|
||||
TargetMachine::get_default_triple()
|
||||
.as_str()
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string(),
|
||||
);
|
||||
|
||||
match triple {
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
@ -8681,10 +8687,11 @@ impl<'ctx> ModuleCodeGenerator<LLVMFunctionCodeGenerator<'ctx>, LLVMBackend, Cod
|
||||
_ => unimplemented!("target {} not supported", triple),
|
||||
}
|
||||
|
||||
let target = Target::from_triple(&triple).unwrap();
|
||||
let target_triple = TargetTriple::create(&triple);
|
||||
let target = Target::from_triple(&target_triple).unwrap();
|
||||
let target_machine = target
|
||||
.create_target_machine(
|
||||
&triple,
|
||||
&target_triple,
|
||||
&cpu_name.unwrap_or(TargetMachine::get_host_cpu_name().to_string()),
|
||||
&cpu_features.unwrap_or(TargetMachine::get_host_cpu_features().to_string()),
|
||||
OptimizationLevel::Aggressive,
|
||||
@ -8693,7 +8700,7 @@ impl<'ctx> ModuleCodeGenerator<LLVMFunctionCodeGenerator<'ctx>, LLVMBackend, Cod
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
module.set_target(&target);
|
||||
module.set_triple(&target_triple);
|
||||
module.set_data_layout(&target_machine.get_target_data().get_data_layout());
|
||||
|
||||
let intrinsics = Intrinsics::declare(&module, &context);
|
||||
|
Loading…
x
Reference in New Issue
Block a user