diff options
| author | 2022-08-22 13:07:35 +0200 | |
|---|---|---|
| committer | 2022-08-22 13:07:35 +0200 | |
| commit | e0686f7953bbc74ff03a7a6b22c0b82995ab494e (patch) | |
| tree | 96a0063c441bc6e63b13fbbda5980a8557883614 /src | |
| parent | c9bcf39a2ad78c7bc9cbfaab43e03771899cfa44 (diff) | |
screw it , llvm
Diffstat (limited to 'src')
| -rw-r--r-- | src/cffc.hff | 4 | ||||
| -rw-r--r-- | src/main.cff | 1 | ||||
| -rw-r--r-- | src/parse.cff | 5 |
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; |