CACAO
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ssa3.cpp File Reference

Go to the source code of this file.

Data Structures

struct  vars_item_t
 
struct  vars_t
 
struct  phis_t
 
struct  state_array_t
 
struct  basicblock_chain_t
 
struct  exception_entry_chain_t
 
struct  traversal_ops_t
 
struct  traversal_t
 
struct  basicblock_info
 
struct  ssa_info
 

Macros

#define FIXME(x)   x
 
#define SSA_VERIFY
 
#define phi_assert_opc(iptr)   assert(iptr->opc == ICMD_PHI)
 
#define phi_assert_arg(iptr, arg)   assert(arg < iptr->s1.argcount)
 
#define FOR_EACH_PHI_USE_CAST(iptr, it, cast)
 
#define FOR_EACH_PHI_USE(iptr, it)   FOR_EACH_PHI_USE_CAST(iptr, it, )
 
#define FOR_EACH_PHI_USE_CONST(iptr, it)   FOR_EACH_PHI_USE_CAST(iptr, it, (const instruction *))
 
#define VARS_CATEGORY_SHIFT   28
 
#define VARS_INDEX_MASK   0x0FFFFFFF
 
#define VARS_CATEGORY_LOCAL   0
 
#define VARS_CATEGORY_STACK   1
 
#define VARS_CATEGORY_OTHERS   2
 
#define VAR_TYPE_SUBSTITUED   ((Type) 666)
 
#define OLD_INDEX_UNUSED   -2
 
#define FOR_EACH_PHI_FUNCTION_(ps, it)   for ((it) = (ps)->items; (it) != (ps)->items + (ps)->count; ++(it)) \
 
#define FOR_EACH_PHI_FUNCTION(ps, it)   FOR_EACH_PHI_FUNCTION_(ps, it) if (!phi_is_redundant((it)))
 
#define state_array_assert_items(sa)   assert(state_array_has_items(sa) || (sa->count == 0))
 
#define state_array_assert_no_items(sa)   assert(! state_array_has_items(sa))
 
#define basicblock_chain_clear   basicblock_chain_init
 
#define exception_entry_chain_clear   exception_entry_chain_init
 
#define bb_info   basicblock_info
 

Typedefs

typedef struct basicblock_info basicblock_info_t
 
typedef struct ssa_info ssa_info
 
typedef struct ssa_info ssa_info_t
 

Enumerations

enum  phi_flags_t { PHI_FLAG_USED, PHI_FLAG_REDUNDANT_ALL, PHI_FLAG_REDUNDANT_ONE }
 

Functions

static void phi_set_flag (instruction *iptr, phi_flags_t flag)
 
static void phi_clear_flag (instruction *iptr, phi_flags_t flag)
 
static bool phi_has_flag (const instruction *iptr, phi_flags_t flag)
 
static instructionphi_get_subst (instruction *iptr)
 
static bool phi_has_subst (const instruction *iptr)
 
static void phi_init (instruction *iptr, unsigned argcount, s4 index)
 
static s4 phi_arg_count (const instruction *iptr)
 
static instructionphi_get_arg (const instruction *iptr, unsigned arg)
 
static s4 phi_get_arg_var (const instruction *iptr, unsigned arg)
 
static void phi_set_all_args (instruction *iptr, instruction *value)
 
static s4 phi_get_index (const instruction *iptr)
 
static s4 phi_get_dst (const instruction *iptr)
 
static void phi_set_dst (instruction *iptr, s4 dst)
 
static bool phi_get_used (const instruction *iptr)
 
static void phi_set_used (instruction *iptr)
 
static instructionphi_resolve_use (instruction *use)
 
static void phi_set_arg (instruction *iptr, unsigned arg, instruction *value)
 
static bool phi_is_redundant (const instruction *iptr)
 
static void phi_create_copy (instruction *iptr, unsigned arg, instruction *copy)
 
static void phi_print (const instruction *iptr)
 
static void phi_calculate_redundancy (instruction *iptr)
 
static void goto_init (instruction *iptr, basicblock *dst)
 
static void instruction_get_uses (const instruction *iptr, s4 *buf, s4 **puses, unsigned *puses_count)
 
static void instruction_set_uses (instruction *iptr, s4 *buf, s4 *uses, unsigned uses_count)
 
static unsigned vars_add_item (vars_t *vs, const varinfo *item)
 
static unsigned vars_add (vars_t *vs)
 
static varinfovars_back (vars_t *vs)
 
static void vars_init (vars_t *vs, unsigned category)
 
static unsigned vars_get_category (unsigned varindex)
 
static unsigned vars_get_index (unsigned varindex)
 
static void vars_subst (vars_t *vs, unsigned varindex, unsigned replacementindex)
 
static unsigned vars_resolve_subst (const vars_t *vs, unsigned varindex)
 
static void vars_copy_to_final (vars_t *vs, varinfo *dst)
 
static void vars_import (vars_t *vs, varinfo *v, unsigned count, s4 old_index)
 
static void vars_record_old_index (vars_t *vs, unsigned varindex, s4 old_index)
 
static s4 vars_get_old_index (vars_t *vs, unsigned varindex)
 
static void phis_init (phis_t *ps, unsigned max)
 
static instructionphis_add (phis_t *ps)
 
static instructionphis_get (const phis_t *ps, unsigned i)
 
static bool phis_contains (const phis_t *ps, const instruction *phi)
 
 FIXME () inline void phis_print(const phis_t *ps)
 
static unsigned phis_copy_to (const phis_t *ps, instruction *dst)
 
static void state_array_init (state_array_t *sa, unsigned count)
 
static bool state_array_has_items (const state_array_t *sa)
 
static s4 state_array_get_var (const state_array_t *sa, unsigned index)
 
static instructionstate_array_get (const state_array_t *sa, unsigned index)
 
static void state_array_set (const state_array_t *sa, unsigned index, instruction *value)
 
static void state_array_copy (state_array_t *sa, state_array_t *other)
 
static void state_array_allocate_items (state_array_t *sa)
 
static void basicblock_chain_init (basicblock_chain_t *bbc)
 
static void basicblock_chain_add (basicblock_chain_t *bbc, basicblock *bb)
 
static basicblockbasicblock_chain_front (basicblock_chain_t *bbc)
 
static basicblockbasicblock_chain_back (basicblock_chain_t *bbc)
 
static bool basicblock_chain_empty (const basicblock_chain_t *bbc)
 
static void exception_entry_chain_init (exception_entry_chain_t *eec)
 
static void exception_entry_chain_add (exception_entry_chain_t *eec, exception_entry *ee)
 
static bool exception_entry_chain_empty (const exception_entry_chain_t *eec)
 
static exception_entryexception_entry_chain_back (exception_entry_chain_t *eec)
 
static exception_entryexception_entry_chain_front (exception_entry_chain_t *eec)
 
void traversal_init (traversal_t *t, unsigned count, void *ops_vp, traversal_ops_t *ops)
 
instructiontraversal_create_phi (traversal_t *t, vars_t *v, unsigned argcount, s4 index)
 
static void traversal_rename_def (traversal_t *t, vars_t *vars, instruction *iptr)
 
static void traversal_rename_use (traversal_t *t, vars_t *vars, s4 *puse)
 
static unsigned traversal_variables_count (traversal_t *t)
 
unsigned local_var_num_to_index (void *vp, s4 var)
 
varinfolocal_index_to_initial_var (void *vp, unsigned index)
 
varinfolocal_var_num_to_varinfo (void *vp, s4 var)
 
unsigned local_variables_count (void *vp)
 
unsigned inout_var_num_to_index (void *vp, s4 var)
 
varinfoinout_index_to_initial_var (void *vp, unsigned index)
 
varinfoinout_var_num_to_varinfo (void *vp, s4 var)
 
unsigned inout_variables_count (void *vp)
 
void basicblock_info_init (basicblock_info_t *bbi, basicblock *bb, jitdata *jd)
 
static basicblock_info_tbasicblock_info (basicblock *bb)
 
static unsigned basicblock_get_predecessor_count (basicblock *bb)
 
static unsigned basicblock_get_predecessor_index (basicblock *from, basicblock *to)
 
static unsigned basicblock_get_ex_predecessor_index (basicblock *from, unsigned pei, basicblock *to)
 
void ssa_info_init (ssa_info_t *ssa, jitdata *jd)
 
static void others_mapping_set (ssa_info *ssa, s4 var, s4 new_var)
 
static s4 others_mapping_get (const ssa_info *ssa, s4 var)
 
void fix_exception_handlers (jitdata *jd)
 
void unfix_exception_handlers (jitdata *jd)
 
static void ssa_enter_mark_loops_intern (basicblock *bb, unsigned num_branches)
 
static void ssa_enter_mark_loops (basicblock *bb)
 
static void ssa_enter_merge (traversal_t *src, traversal_t *dst, basicblock *bdst, unsigned predecessor_index, vars_t *vdst)
 
static void ssa_enter_process_block (ssa_info *ssa, basicblock *bb)
 
static bool ssa_enter_eliminate_redundant_phis (traversal_t *t, vars_t *vs, basicblock_info_t *bbi)
 
static void ssa_enter_verify_no_redundant_phis (ssa_info_t *ssa)
 
static void ssa_enter_traverse (ssa_info_t *ssa, basicblock *bb)
 
static void ssa_enter_process_pei (ssa_info *ssa, basicblock *bb, unsigned pei)
 
static FIXME (bool) ssa_enter_eliminate_redundant_phis(traversal_t *t
 
static vars_t basicblock_info_tFIXME (bbi))
 
static void ssa_enter_init_locals (state_array_t *sa)
 
static void ssa_enter_export_variables (ssa_info *ssa)
 
static void ssa_enter_export_phis (ssa_info_t *ssa)
 
static void ssa_enter_eliminate_category (ssa_info_t *ssa, s4 *pvar)
 
void ssa_enter_eliminate_categories (ssa_info_t *ssa)
 
static void ssa_enter_create_phi_graph (ssa_info *ssa)
 
static basicblockssa_leave_create_transition_block_intern (ssa_info *ssa, basicblock *from, basicblock *to, unsigned predecessor_index, unsigned reserved_insns)
 
static basicblockssa_leave_create_transition_block (ssa_info *ssa, basicblock *from, basicblock *to)
 
static void ssa_leave_create_fallthrough (ssa_info *ssa, basicblock *bptr)
 
static void ssa_leave_create_phi_moves (ssa_info *ssa)
 
static basicblockssa_leave_split_basicblock_at (ssa_info *ssa, basicblock *bptr, instruction *iptr)
 
static basicblockssa_leave_create_transition_exception_handler (ssa_info *ssa, basicblock *from, unsigned pei, basicblock *to)
 
static exception_entryssa_leave_create_transition_exception_entry (ssa_info_t *ssa, basicblock *from, basicblock *handler, classref_or_classinfo catchtype)
 
static void ssa_leave_create_exceptional_phi_moves (ssa_info *ssa)
 
void ssa_simple_leave_restore (ssa_info_t *ssa, basicblock *bptr, s4 *pvar)
 
void ssa_simple_leave (ssa_info_t *ssa)
 
void yssa (jitdata *jd)
 
void eliminate_subbasicblocks (jitdata *jd)
 

Variables

traversal_ops_t traversal_local_ops
 
traversal_ops_t traversal_inout_ops
 
static vars_tvs
 

Macro Definition Documentation

#define basicblock_chain_clear   basicblock_chain_init

Definition at line 614 of file ssa3.cpp.

#define bb_info   basicblock_info

Definition at line 874 of file ssa3.cpp.

#define exception_entry_chain_clear   exception_entry_chain_init

Definition at line 655 of file ssa3.cpp.

#define FIXME (   x)    x

Definition at line 56 of file ssa3.cpp.

#define FOR_EACH_PHI_FUNCTION (   ps,
  it 
)    FOR_EACH_PHI_FUNCTION_(ps, it) if (!phi_is_redundant((it)))

Definition at line 534 of file ssa3.cpp.

#define FOR_EACH_PHI_FUNCTION_ (   ps,
  it 
)    for ((it) = (ps)->items; (it) != (ps)->items + (ps)->count; ++(it)) \

Definition at line 531 of file ssa3.cpp.

#define FOR_EACH_PHI_USE (   iptr,
  it 
)    FOR_EACH_PHI_USE_CAST(iptr, it, )

Definition at line 235 of file ssa3.cpp.

#define FOR_EACH_PHI_USE_CAST (   iptr,
  it,
  cast 
)
Value:
for ( \
(it) = cast (iptr)->sx.s23.s2.iargs; \
(it) != cast (iptr)->sx.s23.s2.iargs + (iptr)->s1.argcount; \
++(it) \
)

Definition at line 228 of file ssa3.cpp.

#define FOR_EACH_PHI_USE_CONST (   iptr,
  it 
)    FOR_EACH_PHI_USE_CAST(iptr, it, (const instruction *))

Definition at line 238 of file ssa3.cpp.

#define OLD_INDEX_UNUSED   -2

Definition at line 362 of file ssa3.cpp.

#define phi_assert_arg (   iptr,
  arg 
)    assert(arg < iptr->s1.argcount)

Definition at line 117 of file ssa3.cpp.

#define phi_assert_opc (   iptr)    assert(iptr->opc == ICMD_PHI)

Definition at line 115 of file ssa3.cpp.

#define SSA_VERIFY

Definition at line 57 of file ssa3.cpp.

#define state_array_assert_items (   sa)    assert(state_array_has_items(sa) || (sa->count == 0))

Definition at line 594 of file ssa3.cpp.

#define state_array_assert_no_items (   sa)    assert(! state_array_has_items(sa))

Definition at line 595 of file ssa3.cpp.

#define VAR_TYPE_SUBSTITUED   ((Type) 666)

Definition at line 360 of file ssa3.cpp.

#define VARS_CATEGORY_LOCAL   0

Definition at line 356 of file ssa3.cpp.

#define VARS_CATEGORY_OTHERS   2

Definition at line 358 of file ssa3.cpp.

#define VARS_CATEGORY_SHIFT   28

Definition at line 353 of file ssa3.cpp.

#define VARS_CATEGORY_STACK   1

Definition at line 357 of file ssa3.cpp.

#define VARS_INDEX_MASK   0x0FFFFFFF

Definition at line 354 of file ssa3.cpp.

Typedef Documentation

typedef struct ssa_info ssa_info
typedef struct ssa_info ssa_info_t

Enumeration Type Documentation

Enumerator
PHI_FLAG_USED 
PHI_FLAG_REDUNDANT_ALL 
PHI_FLAG_REDUNDANT_ONE 

Definition at line 66 of file ssa3.cpp.

Function Documentation

static void basicblock_chain_add ( basicblock_chain_t bbc,
basicblock bb 
)
static

Definition at line 616 of file ssa3.cpp.

static basicblock* basicblock_chain_back ( basicblock_chain_t bbc)
inlinestatic

Definition at line 634 of file ssa3.cpp.

static bool basicblock_chain_empty ( const basicblock_chain_t bbc)
inlinestatic

Definition at line 639 of file ssa3.cpp.

static basicblock* basicblock_chain_front ( basicblock_chain_t bbc)
inlinestatic

Definition at line 629 of file ssa3.cpp.

static void basicblock_chain_init ( basicblock_chain_t bbc)
static

Definition at line 609 of file ssa3.cpp.

static unsigned basicblock_get_ex_predecessor_index ( basicblock from,
unsigned  pei,
basicblock to 
)
static

Definition at line 903 of file ssa3.cpp.

static unsigned basicblock_get_predecessor_count ( basicblock bb)
static

Definition at line 876 of file ssa3.cpp.

static unsigned basicblock_get_predecessor_index ( basicblock from,
basicblock to 
)
static

Definition at line 889 of file ssa3.cpp.

static basicblock_info_t* basicblock_info ( basicblock bb)
inlinestatic

Definition at line 870 of file ssa3.cpp.

void basicblock_info_init ( basicblock_info_t bbi,
basicblock bb,
jitdata jd 
)

Definition at line 855 of file ssa3.cpp.

void eliminate_subbasicblocks ( jitdata jd)

Definition at line 2467 of file ssa3.cpp.

static void exception_entry_chain_add ( exception_entry_chain_t eec,
exception_entry ee 
)
static

Definition at line 657 of file ssa3.cpp.

static exception_entry* exception_entry_chain_back ( exception_entry_chain_t eec)
inlinestatic

Definition at line 672 of file ssa3.cpp.

static bool exception_entry_chain_empty ( const exception_entry_chain_t eec)
inlinestatic

Definition at line 668 of file ssa3.cpp.

static exception_entry* exception_entry_chain_front ( exception_entry_chain_t eec)
inlinestatic

Definition at line 677 of file ssa3.cpp.

static void exception_entry_chain_init ( exception_entry_chain_t eec)
static

Definition at line 650 of file ssa3.cpp.

void fix_exception_handlers ( jitdata jd)

Definition at line 989 of file ssa3.cpp.

FIXME ( ) const

Definition at line 538 of file ssa3.cpp.

static FIXME ( bool  )
static
static vars_t basicblock_info_t* FIXME ( bbi  )

Definition at line 1459 of file ssa3.cpp.

static void goto_init ( instruction iptr,
basicblock dst 
)
inlinestatic

Definition at line 291 of file ssa3.cpp.

varinfo* inout_index_to_initial_var ( void vp,
unsigned  index 
)

Definition at line 828 of file ssa3.cpp.

unsigned inout_var_num_to_index ( void vp,
s4  var 
)

Definition at line 809 of file ssa3.cpp.

varinfo* inout_var_num_to_varinfo ( void vp,
s4  var 
)

Definition at line 835 of file ssa3.cpp.

unsigned inout_variables_count ( void vp)

Definition at line 841 of file ssa3.cpp.

static void instruction_get_uses ( const instruction iptr,
s4 buf,
s4 **  puses,
unsigned *  puses_count 
)
static

Definition at line 298 of file ssa3.cpp.

static void instruction_set_uses ( instruction iptr,
s4 buf,
s4 uses,
unsigned  uses_count 
)
inlinestatic

Definition at line 338 of file ssa3.cpp.

varinfo* local_index_to_initial_var ( void vp,
unsigned  index 
)

Definition at line 787 of file ssa3.cpp.

unsigned local_var_num_to_index ( void vp,
s4  var 
)

Definition at line 783 of file ssa3.cpp.

varinfo* local_var_num_to_varinfo ( void vp,
s4  var 
)

Definition at line 792 of file ssa3.cpp.

unsigned local_variables_count ( void vp)

Definition at line 797 of file ssa3.cpp.

static s4 others_mapping_get ( const ssa_info ssa,
s4  var 
)
inlinestatic

Definition at line 983 of file ssa3.cpp.

static void others_mapping_set ( ssa_info ssa,
s4  var,
s4  new_var 
)
inlinestatic

Definition at line 979 of file ssa3.cpp.

static s4 phi_arg_count ( const instruction iptr)
inlinestatic

Definition at line 119 of file ssa3.cpp.

static void phi_calculate_redundancy ( instruction iptr)
static

Definition at line 241 of file ssa3.cpp.

static void phi_clear_flag ( instruction iptr,
phi_flags_t  flag 
)
inlinestatic

Definition at line 76 of file ssa3.cpp.

static void phi_create_copy ( instruction iptr,
unsigned  arg,
instruction copy 
)
inlinestatic

Definition at line 199 of file ssa3.cpp.

static instruction* phi_get_arg ( const instruction iptr,
unsigned  arg 
)
inlinestatic

Definition at line 124 of file ssa3.cpp.

static s4 phi_get_arg_var ( const instruction iptr,
unsigned  arg 
)
inlinestatic

Definition at line 130 of file ssa3.cpp.

static s4 phi_get_dst ( const instruction iptr)
inlinestatic

Definition at line 149 of file ssa3.cpp.

static s4 phi_get_index ( const instruction iptr)
inlinestatic

Definition at line 144 of file ssa3.cpp.

static instruction* phi_get_subst ( instruction iptr)
inlinestatic

Definition at line 84 of file ssa3.cpp.

static bool phi_get_used ( const instruction iptr)
inlinestatic

Definition at line 159 of file ssa3.cpp.

static bool phi_has_flag ( const instruction iptr,
phi_flags_t  flag 
)
inlinestatic

Definition at line 80 of file ssa3.cpp.

static bool phi_has_subst ( const instruction iptr)
inlinestatic

Definition at line 88 of file ssa3.cpp.

static void phi_init ( instruction iptr,
unsigned  argcount,
s4  index 
)
inlinestatic

Definition at line 93 of file ssa3.cpp.

static bool phi_is_redundant ( const instruction iptr)
inlinestatic

Definition at line 192 of file ssa3.cpp.

static void phi_print ( const instruction iptr)
static

Definition at line 212 of file ssa3.cpp.

static instruction* phi_resolve_use ( instruction use)
static

Definition at line 172 of file ssa3.cpp.

static void phi_set_all_args ( instruction iptr,
instruction value 
)
inlinestatic

Definition at line 136 of file ssa3.cpp.

static void phi_set_arg ( instruction iptr,
unsigned  arg,
instruction value 
)
inlinestatic

Definition at line 185 of file ssa3.cpp.

static void phi_set_dst ( instruction iptr,
s4  dst 
)
inlinestatic

Definition at line 154 of file ssa3.cpp.

static void phi_set_flag ( instruction iptr,
phi_flags_t  flag 
)
inlinestatic

Definition at line 72 of file ssa3.cpp.

static void phi_set_used ( instruction iptr)
static

Definition at line 164 of file ssa3.cpp.

static instruction* phis_add ( phis_t ps)
inlinestatic

Definition at line 515 of file ssa3.cpp.

static bool phis_contains ( const phis_t ps,
const instruction phi 
)
inlinestatic

Definition at line 527 of file ssa3.cpp.

static unsigned phis_copy_to ( const phis_t ps,
instruction dst 
)
inlinestatic

Definition at line 546 of file ssa3.cpp.

static instruction* phis_get ( const phis_t ps,
unsigned  i 
)
inlinestatic

Definition at line 522 of file ssa3.cpp.

static void phis_init ( phis_t ps,
unsigned  max 
)
inlinestatic

Definition at line 509 of file ssa3.cpp.

static void ssa_enter_create_phi_graph ( ssa_info ssa)
static

Definition at line 1828 of file ssa3.cpp.

void ssa_enter_eliminate_categories ( ssa_info_t ssa)

Definition at line 1788 of file ssa3.cpp.

static void ssa_enter_eliminate_category ( ssa_info_t ssa,
s4 pvar 
)
inlinestatic

Definition at line 1773 of file ssa3.cpp.

static bool ssa_enter_eliminate_redundant_phis ( traversal_t t,
vars_t vs,
basicblock_info_t bbi 
)
static
static void ssa_enter_export_phis ( ssa_info_t ssa)
static

Definition at line 1751 of file ssa3.cpp.

static void ssa_enter_export_variables ( ssa_info ssa)
static

Definition at line 1682 of file ssa3.cpp.

static void ssa_enter_init_locals ( state_array_t sa)
static

Definition at line 1528 of file ssa3.cpp.

static void ssa_enter_mark_loops ( basicblock bb)
inlinestatic

Definition at line 1235 of file ssa3.cpp.

static void ssa_enter_mark_loops_intern ( basicblock bb,
unsigned  num_branches 
)
static

Definition at line 1213 of file ssa3.cpp.

static void ssa_enter_merge ( traversal_t src,
traversal_t dst,
basicblock bdst,
unsigned  predecessor_index,
vars_t vdst 
)
static

Definition at line 1239 of file ssa3.cpp.

static void ssa_enter_process_block ( ssa_info ssa,
basicblock bb 
)
static

Definition at line 1540 of file ssa3.cpp.

static void ssa_enter_process_pei ( ssa_info ssa,
basicblock bb,
unsigned  pei 
)
static

Definition at line 1433 of file ssa3.cpp.

static void ssa_enter_traverse ( ssa_info_t ssa,
basicblock bb 
)
static

Definition at line 1346 of file ssa3.cpp.

static void ssa_enter_verify_no_redundant_phis ( ssa_info_t ssa)
static

Definition at line 1318 of file ssa3.cpp.

void ssa_info_init ( ssa_info_t ssa,
jitdata jd 
)

Definition at line 948 of file ssa3.cpp.

static void ssa_leave_create_exceptional_phi_moves ( ssa_info ssa)
static

Definition at line 2223 of file ssa3.cpp.

static void ssa_leave_create_fallthrough ( ssa_info ssa,
basicblock bptr 
)
static

Definition at line 1939 of file ssa3.cpp.

static void ssa_leave_create_phi_moves ( ssa_info ssa)
static

Definition at line 1981 of file ssa3.cpp.

static basicblock* ssa_leave_create_transition_block ( ssa_info ssa,
basicblock from,
basicblock to 
)
inlinestatic

Definition at line 1925 of file ssa3.cpp.

static basicblock* ssa_leave_create_transition_block_intern ( ssa_info ssa,
basicblock from,
basicblock to,
unsigned  predecessor_index,
unsigned  reserved_insns 
)
static

Definition at line 1869 of file ssa3.cpp.

static exception_entry* ssa_leave_create_transition_exception_entry ( ssa_info_t ssa,
basicblock from,
basicblock handler,
classref_or_classinfo  catchtype 
)
static

Definition at line 2195 of file ssa3.cpp.

static basicblock* ssa_leave_create_transition_exception_handler ( ssa_info ssa,
basicblock from,
unsigned  pei,
basicblock to 
)
static

Definition at line 2155 of file ssa3.cpp.

static basicblock* ssa_leave_split_basicblock_at ( ssa_info ssa,
basicblock bptr,
instruction iptr 
)
static

Definition at line 2080 of file ssa3.cpp.

void ssa_simple_leave ( ssa_info_t ssa)

Definition at line 2336 of file ssa3.cpp.

void ssa_simple_leave_restore ( ssa_info_t ssa,
basicblock bptr,
s4 pvar 
)

Definition at line 2287 of file ssa3.cpp.

static void state_array_allocate_items ( state_array_t sa)
inlinestatic

Definition at line 597 of file ssa3.cpp.

static void state_array_copy ( state_array_t sa,
state_array_t other 
)
inlinestatic

Definition at line 589 of file ssa3.cpp.

static instruction* state_array_get ( const state_array_t sa,
unsigned  index 
)
inlinestatic

Definition at line 579 of file ssa3.cpp.

static s4 state_array_get_var ( const state_array_t sa,
unsigned  index 
)
inlinestatic

Definition at line 573 of file ssa3.cpp.

static bool state_array_has_items ( const state_array_t sa)
inlinestatic

Definition at line 569 of file ssa3.cpp.

static void state_array_init ( state_array_t sa,
unsigned  count 
)
inlinestatic

Definition at line 564 of file ssa3.cpp.

static void state_array_set ( const state_array_t sa,
unsigned  index,
instruction value 
)
inlinestatic

Definition at line 584 of file ssa3.cpp.

instruction* traversal_create_phi ( traversal_t t,
vars_t v,
unsigned  argcount,
s4  index 
)

Definition at line 732 of file ssa3.cpp.

void traversal_init ( traversal_t t,
unsigned  count,
void ops_vp,
traversal_ops_t ops 
)

Definition at line 721 of file ssa3.cpp.

static void traversal_rename_def ( traversal_t t,
vars_t vars,
instruction iptr 
)
static

Definition at line 747 of file ssa3.cpp.

static void traversal_rename_use ( traversal_t t,
vars_t vars,
s4 puse 
)
static

Definition at line 764 of file ssa3.cpp.

static unsigned traversal_variables_count ( traversal_t t)
inlinestatic

Definition at line 779 of file ssa3.cpp.

void unfix_exception_handlers ( jitdata jd)

Definition at line 1165 of file ssa3.cpp.

static unsigned vars_add ( vars_t vs)
inlinestatic

Definition at line 385 of file ssa3.cpp.

static unsigned vars_add_item ( vars_t vs,
const varinfo item 
)
inlinestatic

Definition at line 376 of file ssa3.cpp.

static varinfo* vars_back ( vars_t vs)
inlinestatic

Definition at line 392 of file ssa3.cpp.

static void vars_copy_to_final ( vars_t vs,
varinfo dst 
)
static

Definition at line 436 of file ssa3.cpp.

static unsigned vars_get_category ( unsigned  varindex)
inlinestatic

Definition at line 404 of file ssa3.cpp.

static unsigned vars_get_index ( unsigned  varindex)
inlinestatic

Definition at line 408 of file ssa3.cpp.

static s4 vars_get_old_index ( vars_t vs,
unsigned  varindex 
)
inlinestatic

Definition at line 489 of file ssa3.cpp.

static void vars_import ( vars_t vs,
varinfo v,
unsigned  count,
s4  old_index 
)
static

Definition at line 456 of file ssa3.cpp.

static void vars_init ( vars_t vs,
unsigned  category 
)
inlinestatic

Definition at line 397 of file ssa3.cpp.

static void vars_record_old_index ( vars_t vs,
unsigned  varindex,
s4  old_index 
)
inlinestatic

Definition at line 473 of file ssa3.cpp.

static unsigned vars_resolve_subst ( const vars_t vs,
unsigned  varindex 
)
static

Definition at line 420 of file ssa3.cpp.

static void vars_subst ( vars_t vs,
unsigned  varindex,
unsigned  replacementindex 
)
static

Definition at line 412 of file ssa3.cpp.

void yssa ( jitdata jd)

Definition at line 2374 of file ssa3.cpp.

Variable Documentation

traversal_ops_t traversal_inout_ops
Initial value:
= {
}
varinfo * inout_var_num_to_varinfo(void *vp, s4 var)
Definition: ssa3.cpp:835
unsigned inout_variables_count(void *vp)
Definition: ssa3.cpp:841
unsigned inout_var_num_to_index(void *vp, s4 var)
Definition: ssa3.cpp:809
varinfo * inout_index_to_initial_var(void *vp, unsigned index)
Definition: ssa3.cpp:828

Definition at line 846 of file ssa3.cpp.

traversal_ops_t traversal_local_ops
Initial value:
= {
}
varinfo * local_index_to_initial_var(void *vp, unsigned index)
Definition: ssa3.cpp:787
unsigned local_variables_count(void *vp)
Definition: ssa3.cpp:797
varinfo * local_var_num_to_varinfo(void *vp, s4 var)
Definition: ssa3.cpp:792
unsigned local_var_num_to_index(void *vp, s4 var)
Definition: ssa3.cpp:783

Definition at line 802 of file ssa3.cpp.

vars_t* vs

Definition at line 1459 of file ssa3.cpp.