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

#include "pt-jit.h"

Collaboration diagram for octave::jit_infer:

Public Types

typedef jit_convert::variable_map variable_map
 

Public Member Functions

 jit_infer (jit_factory &afactory, jit_block_list &ablocks, const variable_map &avmap)
 
jit_block_listget_blocks (void) const
 
jit_factoryget_factory (void) const
 
void infer (void)
 

Private Member Functions

void append_users (jit_value *v)
 
void append_users_term (jit_terminator *term)
 
void construct_ssa (void)
 
void do_construct_ssa (jit_block &block, size_t avisit_count)
 
jit_blockentry_block (void)
 
jit_blockfinal_block (void)
 
void place_releases (void)
 
void push_worklist (jit_instruction *instr)
 
void release_dead_phi (jit_block &ablock)
 
void release_temp (jit_block &ablock, std::set< jit_value * > &temp)
 
void remove_dead ()
 
void simplify_phi (jit_phi &phi)
 
void simplify_phi (void)
 

Private Attributes

jit_block_listm_blocks
 
jit_factorym_factory
 
const variable_mapm_vmap
 
std::list< jit_instruction * > m_worklist
 

Detailed Description

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

Member Typedef Documentation

◆ variable_map

Constructor & Destructor Documentation

◆ jit_infer()

octave::jit_infer::jit_infer ( jit_factory afactory,
jit_block_list ablocks,
const variable_map avmap 
)

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

Member Function Documentation

◆ append_users()

void octave::jit_infer::append_users ( jit_value v)
private

◆ append_users_term()

◆ construct_ssa()

◆ do_construct_ssa()

◆ entry_block()

jit_block& octave::jit_infer::entry_block ( void  )
inlineprivate

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

References octave::jit_block_list::front().

Referenced by construct_ssa(), and infer().

◆ final_block()

jit_block& octave::jit_infer::final_block ( void  )
inlineprivate

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

References octave::jit_block_list::back().

Referenced by construct_ssa(), and release_temp().

◆ get_blocks()

jit_block_list& octave::jit_infer::get_blocks ( void  ) const
inline

◆ get_factory()

jit_factory& octave::jit_infer::get_factory ( void  ) const
inline

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

◆ infer()

◆ place_releases()

void octave::jit_infer::place_releases ( void  )
private

◆ push_worklist()

void octave::jit_infer::push_worklist ( jit_instruction instr)
private

◆ release_dead_phi()

◆ release_temp()

◆ remove_dead()

◆ simplify_phi() [1/2]

◆ simplify_phi() [2/2]

void octave::jit_infer::simplify_phi ( void  )
private

Member Data Documentation

◆ m_blocks

jit_block_list& octave::jit_infer::m_blocks
private

◆ m_factory

jit_factory& octave::jit_infer::m_factory
private

◆ m_vmap

const variable_map& octave::jit_infer::m_vmap
private

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

Referenced by construct_ssa().

◆ m_worklist

std::list<jit_instruction *> octave::jit_infer::m_worklist
private

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

Referenced by infer(), and push_worklist().


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