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

#include "pt-jit.h"

Inheritance diagram for octave::jit_convert_llvm:
Collaboration diagram for octave::jit_convert_llvm:

Public Member Functions

jit_function convert_function (const jit_module &module, const jit_block_list &blocks, const std::list< jit_value *> &constants, octave_user_function &fcn, const std::vector< jit_type *> &args)
 
llvm::Function * convert_loop (const jit_module &module, const jit_block_list &blocks, const std::list< jit_value *> &constants, const std::string &llvm_function_name)
 
const std::vector< std::pair< std::string, bool > > & get_arguments (void) const
 
virtual void visit (jit_const_index &)
 
virtual void visit (jit_const_complex &)
 
virtual void visit (jit_const_scalar &)
 
virtual void visit (jit_const_bool &)
 
virtual void visit (jit_magic_end &)
 
virtual void visit (jit_argument &)
 
virtual void visit (jit_assign &)
 
virtual void visit (jit_error_check &)
 
virtual void visit (jit_variable &)
 
virtual void visit (jit_phi &)
 
virtual void visit (jit_return &)
 
virtual void visit (jit_store_argument &)
 
virtual void visit (jit_extract_argument &)
 
virtual void visit (jit_call &)
 
virtual void visit (jit_cond_branch &)
 
virtual void visit (jit_branch &)
 
virtual void visit (jit_block &)
 
virtual void visit (jit_const_string &)
 
virtual void visit (jit_const_range &)
 

Private Member Functions

void convert (const jit_block_list &blocks, const std::list< jit_value *> &constants)
 
void finish_phi (jit_phi *phi)
 
void visit (jit_value *jvalue)
 
void visit (jit_value &jvalue)
 

Private Attributes

std::map< std::string, int > m_argument_index
 
std::vector< std::pair< std::string, bool > > m_argument_vec
 
std::map< std::string, llvm::Value * > m_arguments
 
bool m_converting_function
 
jit_function m_creating
 
llvm::Function * m_function
 
llvm::BasicBlock * m_prelude
 

Detailed Description

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

Member Function Documentation

◆ convert()

◆ convert_function()

◆ convert_loop()

llvm::Function * octave::jit_convert_llvm::convert_loop ( const jit_module module,
const jit_block_list blocks,
const std::list< jit_value *> &  constants,
const std::string llvm_function_name 
)

◆ finish_phi()

void octave::jit_convert_llvm::finish_phi ( jit_phi phi)
private

◆ get_arguments()

const std::vector<std::pair<std::string, bool> >& octave::jit_convert_llvm::get_arguments ( void  ) const
inline

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

Referenced by octave::jit_info::compile().

◆ visit() [1/21]

virtual void octave::jit_convert_llvm::visit ( jit_const_range )
virtual

Implements octave::jit_ir_walker.

◆ visit() [2/21]

virtual void octave::jit_convert_llvm::visit ( jit_const_string )
virtual

Implements octave::jit_ir_walker.

◆ visit() [3/21]

void octave::jit_convert_llvm::visit ( jit_block b)
virtual

Implements octave::jit_ir_walker.

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

References b, and octave::builder.

Referenced by convert().

◆ visit() [4/21]

virtual void octave::jit_convert_llvm::visit ( jit_const_complex )
virtual

Implements octave::jit_ir_walker.

◆ visit() [5/21]

virtual void octave::jit_convert_llvm::visit ( jit_const_scalar )
virtual

Implements octave::jit_ir_walker.

◆ visit() [6/21]

◆ visit() [7/21]

◆ visit() [8/21]

void octave::jit_convert_llvm::visit ( jit_argument )
virtual

Implements octave::jit_ir_walker.

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

◆ visit() [9/21]

◆ visit() [10/21]

◆ visit() [11/21]

void octave::jit_convert_llvm::visit ( jit_cond_branch cb)
virtual

◆ visit() [12/21]

void octave::jit_convert_llvm::visit ( jit_branch b)
virtual

Implements octave::jit_ir_walker.

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

References b, and octave::builder.

◆ visit() [13/21]

virtual void octave::jit_convert_llvm::visit ( jit_const_index )
virtual

Implements octave::jit_ir_walker.

◆ visit() [14/21]

void octave::jit_convert_llvm::visit ( jit_const_bool cs)
virtual

Implements octave::jit_ir_walker.

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

References octave::builder, and cs.

◆ visit() [15/21]

◆ visit() [16/21]

◆ visit() [17/21]

void octave::jit_convert_llvm::visit ( jit_variable )
virtual

Implements octave::jit_ir_walker.

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

◆ visit() [18/21]

void octave::jit_convert_llvm::visit ( jit_return ret)
virtual

◆ visit() [19/21]

void octave::jit_convert_llvm::visit ( jit_phi phi)
virtual

◆ visit() [20/21]

void octave::jit_convert_llvm::visit ( jit_value jvalue)
inlineprivate

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

◆ visit() [21/21]

void octave::jit_convert_llvm::visit ( jit_value jvalue)
inlineprivate

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

References octave::jit_value::accept().

Member Data Documentation

◆ m_argument_index

std::map<std::string, int> octave::jit_convert_llvm::m_argument_index
private

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

◆ m_argument_vec

std::vector<std::pair<std::string, bool> > octave::jit_convert_llvm::m_argument_vec
private

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

Referenced by convert_loop().

◆ m_arguments

std::map<std::string, llvm::Value *> octave::jit_convert_llvm::m_arguments
private

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

Referenced by convert_function(), convert_loop(), and visit().

◆ m_converting_function

bool octave::jit_convert_llvm::m_converting_function
private

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

Referenced by convert_function(), convert_loop(), and visit().

◆ m_creating

jit_function octave::jit_convert_llvm::m_creating
private

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

Referenced by convert_function(), and visit().

◆ m_function

llvm::Function* octave::jit_convert_llvm::m_function
private

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

Referenced by convert(), convert_function(), and convert_loop().

◆ m_prelude

llvm::BasicBlock* octave::jit_convert_llvm::m_prelude
private

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

Referenced by convert_function(), and convert_loop().


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