From 2fb0383e82e34d5bf0dd222f03649ce7abb1288f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 21 Apr 2021 23:25:08 +0100 Subject: Add `-build-mode:llvm-ir` for `-llvm-api` backend --- src/llvm_backend.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/llvm_backend.cpp') diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 62d5a58a6..1a4e5db55 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -9692,6 +9692,7 @@ bool lb_is_const_nil(lbValue value) { String lb_get_const_string(lbModule *m, lbValue value) { GB_ASSERT(lb_is_const(value)); + GB_ASSERT(LLVMIsConstant(value.value)); Type *t = base_type(value.type); GB_ASSERT(are_types_identical(t, t_string)); @@ -14220,13 +14221,18 @@ void lb_generate_code(lbGenerator *gen) { return; } llvm_error = nullptr; - if (build_context.keep_temp_files) { + if (build_context.keep_temp_files || + build_context.build_mode == BuildMode_LLVM_IR) { TIME_SECTION("LLVM Print Module to File"); if (LLVMPrintModuleToFile(mod, cast(char const *)filepath_ll.text, &llvm_error)) { gb_printf_err("LLVM Error: %s\n", llvm_error); gb_exit(1); return; } + if (build_context.build_mode == BuildMode_LLVM_IR) { + gb_exit(0); + return; + } } TIME_SECTION("LLVM Object Generation"); -- cgit v1.2.3