aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-22 13:07:35 +0200
committerlemon <lsof@mailbox.org>2022-08-22 13:07:35 +0200
commite0686f7953bbc74ff03a7a6b22c0b82995ab494e (patch)
tree96a0063c441bc6e63b13fbbda5980a8557883614 /src
parentc9bcf39a2ad78c7bc9cbfaab43e03771899cfa44 (diff)
screw it , llvm
Diffstat (limited to 'src')
-rw-r--r--src/cffc.hff4
-rw-r--r--src/main.cff1
-rw-r--r--src/parse.cff5
3 files changed, 8 insertions, 2 deletions
diff --git a/src/cffc.hff b/src/cffc.hff
index c8e3f11..2504fba 100644
--- a/src/cffc.hff
+++ b/src/cffc.hff
@@ -456,3 +456,7 @@ extern fn ir_free(*IRCtx) void;
// asm.cff
extern static g_asmbackend Backend;
+
+// llvm.cff
+extern fn llvm_genfn(externp bool, name *const u8, f *Fn) void;
+extern fn llvm_init() void;
diff --git a/src/main.cff b/src/main.cff
index ac4ca70..3327e48 100644
--- a/src/main.cff
+++ b/src/main.cff
@@ -8,6 +8,7 @@ extern fn main(argc int, argv **u8) int {
let p = Parser {};
parser_init(&p, argv[1]);
+ llvm_init();
let decls = parse(&p);
free(decls.#ptr);
}
diff --git a/src/parse.cff b/src/parse.cff
index a1f0dd0..84ed1fe 100644
--- a/src/parse.cff
+++ b/src/parse.cff
@@ -2458,7 +2458,8 @@ fn parsefn(P *Parser, loc Loc, externp bool, name *const u8) *Decl {
}
Fn.body = :Some(parseblock(P));
popenv(P);
- ir_genfn(P.irctx, Fn);
+ // ir_genfn(P.irctx, Fn);
+ llvm_genfn(externp, name, Fn);
(as(*Arena)P.alloc.a)->destroy();
}
}
@@ -2769,7 +2770,7 @@ fn parsedecls(P *Parser, loc Loc, yield DeclYielder, yarg *void, toplevel bool)
if a.yield {
a.yield(decl, a.yarg);
}
- ir_genstatic(a.P.irctx, decl);
+ // ir_genstatic(a.P.irctx, decl);
}
parsevardecl(P, toplevel, externp, #{let?} #t, &varyield, &Arg { P, externp, toplevel, yield, yarg });
return;