From e0686f7953bbc74ff03a7a6b22c0b82995ab494e Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 22 Aug 2022 13:07:35 +0200 Subject: screw it , llvm --- src/cffc.hff | 4 ++++ src/main.cff | 1 + src/parse.cff | 5 +++-- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') 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; -- cgit v1.2.3