// loads an object file from disk
// returns NULL on error (check lto_get_error_message() for details)
//
-lto_module_t lto_module_create(const char* path, LLVMContextRef Ctxt)
+lto_module_t lto_module_create(const char* path)
{
- return LTOModule::makeLTOModule(path, *llvm::unwrap(Ctxt),
- sLastErrorString);
+ return LTOModule::makeLTOModule(path, sLastErrorString);
}
+//
+// loads an object file from disk
+// returns NULL on error (check lto_get_error_message() for details)
+//
+lto_module_t lto_module_create_from_fd(int fd, const char *path, size_t size)
+{
+ return LTOModule::makeLTOModule(fd, path, size, sLastErrorString);
+}
+
+//
+// loads an object file from disk
+// returns NULL on error (check lto_get_error_message() for details)
+//
+lto_module_t lto_module_create_from_fd_at_offset(int fd, const char *path,
+ size_t file_size,
+ size_t map_size,
+ off_t offset)
+{
+ return LTOModule::makeLTOModule(fd, path, file_size, map_size,
+ offset, sLastErrorString);
+}
//
// loads an object file from memory
// returns NULL on error (check lto_get_error_message() for details)
//
-lto_module_t lto_module_create_from_memory(const void* mem, size_t length,
- LLVMContextRef Ctxt)
+lto_module_t lto_module_create_from_memory(const void* mem, size_t length)
{
- return LTOModule::makeLTOModule(mem, length, *llvm::unwrap(Ctxt),
- sLastErrorString);
+ return LTOModule::makeLTOModule(mem, length, sLastErrorString);
}
return mod->getTargetTriple();
}
+//
+// sets triple string with which the object will be codegened.
+//
+void lto_module_set_target_triple(lto_module_t mod, const char *triple)
+{
+ return mod->setTargetTriple(triple);
+}
+
//
// returns the number of symbols in the object module
//
-uint32_t lto_module_get_num_symbols(lto_module_t mod)
+unsigned int lto_module_get_num_symbols(lto_module_t mod)
{
return mod->getSymbolCount();
}
//
// returns the name of the ith symbol in the object module
//
-const char* lto_module_get_symbol_name(lto_module_t mod, uint32_t index)
+const char* lto_module_get_symbol_name(lto_module_t mod, unsigned int index)
{
return mod->getSymbolName(index);
}
// returns the attributes of the ith symbol in the object module
//
lto_symbol_attributes lto_module_get_symbol_attribute(lto_module_t mod,
- uint32_t index)
+ unsigned int index)
{
return mod->getSymbolAttributes(index);
}
// instantiates a code generator
// returns NULL if there is an error
//
-lto_code_gen_t lto_codegen_create(LLVMContextRef ContextRef)
+lto_code_gen_t lto_codegen_create(void)
{
- return new LTOCodeGenerator(*llvm::unwrap(ContextRef));
+ return new LTOCodeGenerator();
}
}
//
-// sets the path to gcc
+// sets the cpu to generate code for
//
-void lto_codegen_set_gcc_path(lto_code_gen_t cg, const char* path)
+void lto_codegen_set_cpu(lto_code_gen_t cg, const char* cpu)
{
- cg->setGccPath(path);
+ return cg->setCpu(cpu);
}
//
//
void lto_codegen_set_assembler_path(lto_code_gen_t cg, const char* path)
{
- cg->setAssemblerPath(path);
+ // In here only for backwards compatibility. We use MC now.
+}
+
+
+//
+// sets extra arguments that libLTO should pass to the assembler
+//
+void lto_codegen_set_assembler_args(lto_code_gen_t cg, const char** args,
+ int nargs)
+{
+ // In here only for backwards compatibility. We use MC now.
}
//
return cg->compile(length, sLastErrorString);
}
+extern bool
+lto_codegen_compile_to_file(lto_code_gen_t cg, const char **name)
+{
+ return cg->compile_to_file(name, sLastErrorString);
+}
+
//
// Used to pass extra options to the code generator
lto_codegen_debug_options(lto_code_gen_t cg, const char * opt)
{
cg->setCodeGenDebugOptions(opt);
-}
\ No newline at end of file
+}