Support integrate 3rd-party toolchains into wamrc (#1237)
Support integrating 3rd-party toolchain llc compiler or asm compiler into wamrc by setting environment variable WAMRC_LLC_COMPILER or WAMRC_ASM_COMPILER, wamrc will use these tools to generate object file from LLVM IR firstly, and then refactor the object file into aot file.
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
#include "llvm-c/Object.h"
|
||||
#include "llvm-c/ExecutionEngine.h"
|
||||
#include "llvm-c/Analysis.h"
|
||||
#include "llvm-c/BitWriter.h"
|
||||
#include "llvm-c/Transforms/Utils.h"
|
||||
#include "llvm-c/Transforms/Scalar.h"
|
||||
#include "llvm-c/Transforms/Vectorize.h"
|
||||
@ -350,6 +351,20 @@ typedef struct AOTCompContext {
|
||||
uint32 func_ctx_count;
|
||||
char **custom_sections_wp;
|
||||
uint32 custom_sections_count;
|
||||
|
||||
/* 3rd-party toolchains */
|
||||
/* External llc compiler, if specified, wamrc will emit the llvm-ir file and
|
||||
* invoke the llc compiler to generate object file.
|
||||
* This can be used when we want to benefit from the optimization of other
|
||||
* LLVM based toolchains */
|
||||
const char *external_llc_compiler;
|
||||
const char *llc_compiler_flags;
|
||||
/* External asm compiler, if specified, wamrc will emit the text-based
|
||||
* assembly file (.s) and invoke the llc compiler to generate object file.
|
||||
* This will be useful when the upstream LLVM doesn't support to emit object
|
||||
* file for some architecture (such as arc) */
|
||||
const char *external_asm_compiler;
|
||||
const char *asm_compiler_flags;
|
||||
} AOTCompContext;
|
||||
|
||||
enum {
|
||||
|
||||
Reference in New Issue
Block a user