cxts.table[i] = 0;
}
-cxt_hash* CLG_(get_cxt_hash)()
-{
- return &cxts;
-}
-
/* double size of cxt table */
static void resize_cxt_table(void)
{
return eventset_from_mask((1u << id1) | (1u << id2));
}
-EventSet* CLG_(get_event_set3)(Int id1, Int id2, Int id3)
-{
- CLG_ASSERT(id1>=0 && id1<MAX_EVENTGROUP_COUNT);
- CLG_ASSERT(id2>=0 && id2<MAX_EVENTGROUP_COUNT);
- CLG_ASSERT(id3>=0 && id3<MAX_EVENTGROUP_COUNT);
- return eventset_from_mask((1u << id1) | (1u << id2) | (1u << id3));
-}
-
EventSet* CLG_(add_event_group)(EventSet* es, Int id)
{
CLG_ASSERT(id>=0 && id<MAX_EVENTGROUP_COUNT);
return eventset_from_mask(es1->mask | es2->mask);
}
-Int CLG_(sprint_eventset)(HChar* buf, EventSet* es)
-{
- Int i, j, pos;
- UInt mask;
- EventGroup* eg;
-
-
- CLG_ASSERT(es->size >0);
- pos = 0;
- for(i=0, mask=1; i<MAX_EVENTGROUP_COUNT; i++, mask=mask<<1) {
- if ((es->mask & mask)==0) continue;
- if (eventGroup[i] ==0) continue;
-
- eg = eventGroup[i];
- for(j=0; j<eg->size; j++) {
- if (pos>0) buf[pos++] = ' ';
- pos += VG_(sprintf)(buf + pos, "%s", eg->name[j]);
- }
- }
- buf[pos] = 0;
-
- return pos;
-}
-
/* Get cost array for an event set */
ULong* CLG_(get_eventset_cost)(EventSet* es)
return True;
}
-Bool CLG_(is_equal_cost)(EventSet* es, ULong* c1, ULong* c2)
-{
- Int i;
-
- if (!c1) return CLG_(is_zero_cost)(es, c2);
- if (!c2) return CLG_(is_zero_cost)(es, c1);
-
- for(i=0; i<es->size; i++)
- if (c1[i] != c2[i]) return False;
-
- return True;
-}
-
void CLG_(copy_cost)(EventSet* es, ULong* dst, ULong* src)
{
Int i;
/* Same event set is returned when requesting same event groups */
EventSet* CLG_(get_event_set)(Int id);
EventSet* CLG_(get_event_set2)(Int id1, Int id2);
-EventSet* CLG_(get_event_set3)(Int id1, Int id2, Int id3);
EventSet* CLG_(add_event_group)(EventSet*, Int id);
EventSet* CLG_(add_event_group2)(EventSet*, Int id1, Int id2);
EventSet* CLG_(add_event_set)(EventSet*, EventSet*);
-/* Writes event names into buf. Returns number of characters written */
-Int CLG_(sprint_eventset)(HChar* buf, EventSet*);
/* Operations on costs. A cost pointer of 0 means zero cost.
/* Set costs of an event set to zero */
void CLG_(zero_cost)(EventSet*,ULong*);
Bool CLG_(is_zero_cost)(EventSet*,ULong*);
-Bool CLG_(is_equal_cost)(EventSet*,ULong*,ULong*);
void CLG_(copy_cost)(EventSet*,ULong* dst, ULong* src);
void CLG_(copy_cost_lz)(EventSet*,ULong** pdst, ULong* src);
void CLG_(add_cost)(EventSet*,ULong* dst, ULong* src);
/* from jumps.c */
void CLG_(init_jcc_hash)(jcc_hash*);
void CLG_(copy_current_jcc_hash)(jcc_hash* dst);
-jcc_hash* CLG_(get_current_jcc_hash)(void);
void CLG_(set_current_jcc_hash)(jcc_hash*);
jCC* CLG_(get_jcc)(BBCC* from, UInt, BBCC* to);
/* from context.c */
void CLG_(init_fn_stack)(fn_stack*);
void CLG_(copy_current_fn_stack)(fn_stack*);
-fn_stack* CLG_(get_current_fn_stack)(void);
void CLG_(set_current_fn_stack)(fn_stack*);
void CLG_(init_cxt_table)(void);
-cxt_hash* CLG_(get_cxt_hash)(void);
Context* CLG_(get_cxt)(fn_node** fn);
void CLG_(push_cxt)(fn_node* fn);