Simplify openmp mode hooks
This commit is contained in:
parent
29b7662e41
commit
9f87c2a7a0
35
emu_openmp.c
35
emu_openmp.c
@ -47,43 +47,26 @@ hook_init_openmp(struct ovni_emu *emu)
|
|||||||
|
|
||||||
/* --------------------------- pre ------------------------------- */
|
/* --------------------------- pre ------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pre_task(struct ovni_emu *emu)
|
pre_mode(struct ovni_emu *emu, int st)
|
||||||
{
|
{
|
||||||
struct ovni_ethread *th;
|
struct ovni_ethread *th;
|
||||||
|
struct ovni_chan *chan;
|
||||||
|
|
||||||
th = emu->cur_thread;
|
th = emu->cur_thread;
|
||||||
|
chan = &th->chan[CHAN_OPENMP_MODE];
|
||||||
|
|
||||||
switch(emu->cur_ev->header.value)
|
switch(emu->cur_ev->header.value)
|
||||||
{
|
{
|
||||||
case '[':
|
case '[':
|
||||||
chan_push(&th->chan[CHAN_OPENMP_MODE], ST_OPENMP_TASK);
|
chan_push(chan, st);
|
||||||
break;
|
break;
|
||||||
case ']':
|
case ']':
|
||||||
chan_pop(&th->chan[CHAN_OPENMP_MODE], ST_OPENMP_TASK);
|
chan_pop(chan, st);
|
||||||
break;
|
|
||||||
default:
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
pre_barrier(struct ovni_emu *emu)
|
|
||||||
{
|
|
||||||
struct ovni_ethread *th;
|
|
||||||
|
|
||||||
th = emu->cur_thread;
|
|
||||||
|
|
||||||
switch(emu->cur_ev->header.value)
|
|
||||||
{
|
|
||||||
case '[':
|
|
||||||
chan_push(&th->chan[CHAN_OPENMP_MODE], ST_OPENMP_PARALLEL);
|
|
||||||
break;
|
|
||||||
case ']':
|
|
||||||
chan_pop(&th->chan[CHAN_OPENMP_MODE], ST_OPENMP_PARALLEL);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
err("unexpected value '%c' (expecting '[' or ']')\n",
|
||||||
|
emu->cur_ev->header.value);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,8 +78,8 @@ hook_pre_openmp(struct ovni_emu *emu)
|
|||||||
|
|
||||||
switch(emu->cur_ev->header.category)
|
switch(emu->cur_ev->header.category)
|
||||||
{
|
{
|
||||||
case 'T': pre_task(emu); break;
|
case 'T': pre_mode(emu, ST_OPENMP_TASK); break;
|
||||||
case 'P': pre_barrier(emu); break;
|
case 'P': pre_mode(emu, ST_OPENMP_PARALLEL); break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user