core/kernel_linux/clients/umbra/instrument.c
/*
 * this optimization function try to 
 * find memory references that can be grouped together
 * so that only one translation lookup is performed
 */
this optimization function try to
find memory references that can be grouped together
so that only one translation lookup is performed
this optimization function try to find memory references that can be grouped together so that only one translation lookup is performed
static void
ilist_info_mems_opt(void         *drcontext,
                    umbra_info_t  *umbra_info,
                    ilist_info_t *ilist_info, 
                    instrlist_t  *ilist)
{
    instr_t *instr;
    ref_group_t ref_group[NUM_SPILL_REGS];
    ref_group_init(ref_group);
    for (instr  = instrlist_first(ilist);
         instr != NULL;
         instr  = instr_get_next(instr)) {
        if (instr_get_app_pc(instr) != NULL) {
            ilist_info_mems_update(ilist_info, ref_group, instr);
            ref_group_update(ilist_info, ref_group, instr);
        }
    }
}
static void ilist_info_mems_opt ( void * drcontext , umbra_info_t * umbra_info , ilist_info_t * ilist_info , instrlist_t * ilist ) { instr_t * instr ; ref_group_t ref_group [ NUM_SPILL_REGS ] ; ref_group_init ( ref_group ) ; for ( instr = instrlist_first ( ilist ) ; instr != NULL ; instr = instr_get_next ( instr ) ) { if ( instr_get_app_pc ( instr ) != NULL ) { ilist_info_mems_update ( ilist_info , ref_group , instr ) ; ref_group_update ( ilist_info , ref_group , instr ) ; } } }
this optimization function try to
 find memory references that can be grouped together
 so that only one translation lookup is performed
this optimization function try to find memory references that can be grouped together so that only one translation lookup is performed
/* only interested in application instruction */