xo-jit: + lookup_symbol method on dynamic library
This commit is contained in:
parent
cf7bc43c5e
commit
f7dfd67770
2 changed files with 16 additions and 0 deletions
|
|
@ -95,6 +95,8 @@ namespace xo {
|
||||||
|
|
||||||
llvm::Value * codegen(ref::brw<Expression> expr);
|
llvm::Value * codegen(ref::brw<Expression> expr);
|
||||||
|
|
||||||
|
llvm::orc::ExecutorAddr lookup_symbol(const std::string & x);
|
||||||
|
|
||||||
virtual void display(std::ostream & os) const;
|
virtual void display(std::ostream & os) const;
|
||||||
virtual std::string display_string() const;
|
virtual std::string display_string() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -442,6 +442,20 @@ namespace xo {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
} /*codegen*/
|
} /*codegen*/
|
||||||
|
|
||||||
|
llvm::orc::ExecutorAddr
|
||||||
|
Jit::lookup_symbol(const std::string & sym)
|
||||||
|
{
|
||||||
|
static llvm::ExitOnError llvm_exit_on_err;
|
||||||
|
|
||||||
|
/* llvm_sym: ExecutorSymbolDef */
|
||||||
|
auto llvm_sym = llvm_exit_on_err(kal_jit_->lookup(sym));
|
||||||
|
|
||||||
|
/* llvm_addr: ExecutorAddr */
|
||||||
|
auto llvm_addr = llvm_sym.getAddress();
|
||||||
|
|
||||||
|
return llvm_addr;
|
||||||
|
} /*lookup_symbol*/
|
||||||
|
|
||||||
void
|
void
|
||||||
Jit::display(std::ostream & os) const {
|
Jit::display(std::ostream & os) const {
|
||||||
os << "<Jit>";
|
os << "<Jit>";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue