authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-12-08 00:27:50-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2015-12-08 00:27:50-07:00
log3e06ed0e8cdfba69e28600a2fcf52d795a86f3bb
tree8ec787610f0bf16a6658c46e4c45e54eb64ebfdf
parent5dfe4d6387f874a83a51a13446eb04fb6b77de94

codegen: set target triple and data layout


1 files changed, 7 insertions(+), 1 deletions(-)

src/codegen.cpp+7-1
...@@ -885,12 +885,17 @@ static void init(CodeGen *g, Buf *source_path) {...@@ -885,12 +885,17 @@ static void init(CodeGen *g, Buf *source_path) {
885 g->is_native_target = true;885 g->is_native_target = true;
886 char *native_triple = LLVMGetDefaultTargetTriple();886 char *native_triple = LLVMGetDefaultTargetTriple();
887887
888 g->module = LLVMModuleCreateWithName(buf_ptr(source_path));
889
890 LLVMSetTarget(g->module, native_triple);
891
888 LLVMTargetRef target_ref;892 LLVMTargetRef target_ref;
889 char *err_msg = nullptr;893 char *err_msg = nullptr;
890 if (LLVMGetTargetFromTriple(native_triple, &target_ref, &err_msg)) {894 if (LLVMGetTargetFromTriple(native_triple, &target_ref, &err_msg)) {
891 zig_panic("unable to get target from triple: %s", err_msg);895 zig_panic("unable to get target from triple: %s", err_msg);
892 }896 }
893897
898
894 char *native_cpu = LLVMZigGetHostCPUName();899 char *native_cpu = LLVMZigGetHostCPUName();
895 char *native_features = LLVMZigGetNativeFeatures();900 char *native_features = LLVMZigGetNativeFeatures();
896901
...@@ -904,8 +909,9 @@ static void init(CodeGen *g, Buf *source_path) {...@@ -904,8 +909,9 @@ static void init(CodeGen *g, Buf *source_path) {
904909
905 g->target_data_ref = LLVMGetTargetMachineData(g->target_machine);910 g->target_data_ref = LLVMGetTargetMachineData(g->target_machine);
906911
912 char *layout_str = LLVMCopyStringRepOfTargetData(g->target_data_ref);
913 LLVMSetDataLayout(g->module, layout_str);
907914
908 g->module = LLVMModuleCreateWithName("ZigModule");
909915
910 g->pointer_size_bytes = LLVMPointerSize(g->target_data_ref);916 g->pointer_size_bytes = LLVMPointerSize(g->target_data_ref);
911917