gemstone/src/llvm/backend.h

33 lines
625 B
C

#ifndef LLVM_CODEGEN_BACKEND_H_
#define LLVM_CODEGEN_BACKEND_H_
#include <llvm-c/TargetMachine.h>
enum StringAllocation_t { LLVM, LIBC, NONE };
typedef struct String_t {
enum StringAllocation_t allocation;
char* str;
} String;
typedef struct Target_t {
String name;
String triple;
String cpu;
String features;
LLVMCodeGenOptLevel opt;
LLVMRelocMode reloc;
LLVMCodeModel model;
} Target;
Target create_native_target();
Target create_target_from_config(const TargetConfig* config);
void delete_target(Target target);
void llvm_backend_init(void);
#endif // LLVM_CODEGEN_BACKEND_H_