diff --git a/.gitignore b/.gitignore index 900a841..3cef7be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ zig-cache/ -*.bc -*.ll diff --git a/build.zig b/build.zig index 020f6cf..d7502d4 100644 --- a/build.zig +++ b/build.zig @@ -6,9 +6,7 @@ pub fn build(b: *Builder) void { exe.setBuildMode(mode); exe.install(); - exe.linkSystemLibrary("c"); exe.linkSystemLibrary("LLVM-8"); - exe.linkSystemLibrary("stdc++"); const run_cmd = exe.run(); run_cmd.step.dependOn(b.getInstallStep()); diff --git a/src/codegen.zig b/src/codegen.zig index 37e39ac..3e5661c 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -62,18 +62,18 @@ pub const Codegen = struct { } pub fn gen(self: *Codegen, root: *ast.Node) !void { - //std.debug.warn("cgen: init native target\n"); - //_ = llvm.LLVMInitializeNativeTarget(); std.debug.warn("cgen: start gen\n"); - - var mod = llvm.LLVMModuleCreateWithName(c"awoo").?; + var mod = llvm.LLVMModuleCreateWithName(c"awoo"); defer llvm.LLVMDisposeModule(mod); + std.debug.warn("cgen: got mod\n"); for (root.Root.toSlice()) |child| { std.debug.warn("cgen: gen child {}\n", child); try self.genNode(mod, &child); } + std.debug.warn("cgen: done\n"); + var err: ?[*]u8 = null; _ = llvm.LLVMVerifyModule( mod, @@ -81,9 +81,5 @@ pub const Codegen = struct { &err, ); llvm.LLVMDisposeMessage(err); - - if (llvm.LLVMWriteBitcodeToFile(mod, c"awoo.bc") != 0) { - std.debug.warn("error writing bitcode to file\n"); - } } }; diff --git a/src/llvm.zig b/src/llvm.zig index f849857..8e79786 100644 --- a/src/llvm.zig +++ b/src/llvm.zig @@ -6,11 +6,6 @@ pub const llvm = @cImport({ @cInclude("llvm-c/Target.h"); @cInclude("llvm-c/Analysis.h"); @cInclude("llvm-c/BitWriter.h"); - - @cDefine("_GNU_SOURCE", {}); - @cDefine("__STDC_CONSTANT_MACROS", {}); - @cDefine("__STDC_FORMAT_MACROS", {}); - @cDefine("__STDC_LIMIT_MACROS", {}); }); usingnamespace llvm;