GNU Octave  4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
jit_infer Class Reference

#include "pt-jit.h"

Collaboration diagram for jit_infer:
Collaboration graph
[legend]

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 (void)
 
void simplify_phi (jit_phi &phi)
 

Private Attributes

jit_block_listblocks
 
jit_factoryfactory
 
const variable_mapvmap
 
std::list< jit_instruction * > worklist
 

Detailed Description

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

Member Typedef Documentation

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

Constructor & Destructor Documentation

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

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

Member Function Documentation

void jit_infer::append_users ( jit_value v)
private
void jit_infer::append_users_term ( jit_terminator term)
private
void jit_infer::construct_ssa ( void  )
private
void jit_infer::do_construct_ssa ( jit_block block,
size_t  avisit_count 
)
private
jit_block& jit_infer::entry_block ( void  )
inlineprivate

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

Referenced by construct_ssa(), and infer().

jit_block& jit_infer::final_block ( void  )
inlineprivate

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

Referenced by construct_ssa(), and release_temp().

jit_block_list& jit_infer::get_blocks ( void  ) const
inline

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

jit_factory& jit_infer::get_factory ( void  ) const
inline

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

void jit_infer::infer ( void  )
void jit_infer::place_releases ( void  )
private
void jit_infer::push_worklist ( jit_instruction instr)
private
void jit_infer::release_dead_phi ( jit_block ablock)
private
void jit_infer::release_temp ( jit_block ablock,
std::set< jit_value * > &  temp 
)
private
void jit_infer::remove_dead ( )
private
void jit_infer::simplify_phi ( void  )
private

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

References jit_block_list::begin(), jit_block::begin(), blocks, jit_block_list::end(), and jit_block::end().

Referenced by infer().

void jit_infer::simplify_phi ( jit_phi phi)
private

Member Data Documentation

jit_block_list& jit_infer::blocks
private
jit_factory& jit_infer::factory
private
const variable_map& jit_infer::vmap
private

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

Referenced by construct_ssa().

std::list<jit_instruction *> jit_infer::worklist
private

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

Referenced by infer(), and push_worklist().


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