GNU Octave  6.2.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::jit_function_info Class Reference

#include "pt-jit.h"

Inheritance diagram for octave::jit_function_info:
Collaboration diagram for octave::jit_function_info:

Public Types

typedef unsigned llvm_gv_linkage
 

Public Member Functions

 jit_function_info (octave_user_function &fcn, const octave_value_list &ov_args)
 
template<typename ptr_type >
void add_global_mapping (const llvm::GlobalValue *gv, ptr_type p) const
 
llvm::GlobalVariable * create_global_variable (llvm::Type *type, bool is_constant, const llvm::Twine &name) const
 
llvm::Function * create_llvm_function (llvm::FunctionType *ftype, const llvm::Twine &name) const
 
bool execute (const octave_value_list &ov_args, octave_value_list &retval) const
 
void finalizeObject (void)
 
llvm::Function * get_intrinsic_declaration (size_t id, std::vector< llvm::Type * > types) const
 
uint64_t getFunctionAddress (const std::string &name) const
 
bool match (const octave_value_list &ov_args) const
 
void optimize (llvm::Function *fn) const
 

Private Types

typedef octave_base_value *(* jited_function) (octave_base_value **)
 

Private Member Functions

void do_add_global_mapping (const llvm::GlobalValue *gv, void *p) const
 

Private Attributes

std::vector< jit_type * > m_argument_types
 
llvm::ExecutionEngine * m_engine
 
jited_function m_function
 
std::string m_llvm_function_name
 
llvm::Module * m_module
 

Detailed Description

Definition at line 618 of file pt-jit.h.

Member Typedef Documentation

◆ jited_function

typedef octave_base_value*(* octave::jit_function_info::jited_function) (octave_base_value **)
private

Definition at line 633 of file pt-jit.h.

◆ llvm_gv_linkage

typedef unsigned octave::jit_module::llvm_gv_linkage
inherited

Definition at line 552 of file pt-jit.h.

Constructor & Destructor Documentation

◆ jit_function_info()

Member Function Documentation

◆ add_global_mapping()

template<typename ptr_type >
void octave::jit_module::add_global_mapping ( const llvm::GlobalValue *  gv,
ptr_type  p 
) const
inlineinherited

◆ create_global_variable()

llvm::GlobalVariable * octave::jit_module::create_global_variable ( llvm::Type *  type,
bool  is_constant,
const llvm::Twine &  name 
) const
inherited

Definition at line 2381 of file pt-jit.cc.

References octave::jit_module::m_module, and name.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ create_llvm_function()

llvm::Function * octave::jit_module::create_llvm_function ( llvm::FunctionType *  ftype,
const llvm::Twine &  name 
) const
inherited

◆ do_add_global_mapping()

void octave::jit_module::do_add_global_mapping ( const llvm::GlobalValue *  gv,
void *  p 
) const
privateinherited

Definition at line 2390 of file pt-jit.cc.

References octave::jit_module::m_engine.

◆ execute()

bool octave::jit_function_info::execute ( const octave_value_list ov_args,
octave_value_list retval 
) const

◆ finalizeObject()

void octave::jit_module::finalizeObject ( void  )
inherited

◆ get_intrinsic_declaration()

llvm::Function * octave::jit_module::get_intrinsic_declaration ( size_t  id,
std::vector< llvm::Type * >  types 
) const
inherited

Definition at line 2372 of file pt-jit.cc.

References octave::jit_module::m_module.

◆ getFunctionAddress()

uint64_t octave::jit_module::getFunctionAddress ( const std::string &  name) const
inherited

Definition at line 2398 of file pt-jit.cc.

References octave::jit_module::m_engine, and name.

Referenced by jit_function_info(), and octave::jit_info::compile().

◆ match()

bool octave::jit_function_info::match ( const octave_value_list ov_args) const

◆ optimize()

void octave::jit_module::optimize ( llvm::Function *  fn) const
inherited

Definition at line 2404 of file pt-jit.cc.

References octave::jit_module::m_module, and Vdebug_jit.

Referenced by jit_function_info(), and octave::jit_info::compile().

Member Data Documentation

◆ m_argument_types

std::vector<jit_type *> octave::jit_function_info::m_argument_types
private

Definition at line 639 of file pt-jit.h.

Referenced by jit_function_info(), and match().

◆ m_engine

◆ m_function

jited_function octave::jit_function_info::m_function
private

Definition at line 637 of file pt-jit.h.

Referenced by jit_function_info(), execute(), and match().

◆ m_llvm_function_name

std::string octave::jit_function_info::m_llvm_function_name
private

Definition at line 636 of file pt-jit.h.

Referenced by jit_function_info().

◆ m_module


The documentation for this class was generated from the following files: