Bruno Harbulot – FOAL 2005 – Chicago, USA
1/20
A join point for loops in AspectJ Bruno Harbulot and John Gurd - - PowerPoint PPT Presentation
A join point for loops in AspectJ Bruno Harbulot and John Gurd Bruno Harbulot FOAL 2005 Chicago, USA The University of Manchester FOAL 2005 Chicago, March 2005 1/20 What we would like to do Writing aspects that represent the
Bruno Harbulot – FOAL 2005 – Chicago, USA
1/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
2/20
– “parallelise all the loops iterating from 0 to the
– or “parallelise all the loops iterating over a
Bruno Harbulot – FOAL 2005 – Chicago, USA
3/20
– by making the iteration space visible as
– by turning loops into self-contained objects
Bruno Harbulot – FOAL 2005 – Chicago, USA
4/20
– Part 1: Shadows (static part), – Part 2: Context exposure (dynamic part),
Bruno Harbulot – FOAL 2005 – Chicago, USA
5/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
6/20
– General loops – Loops with unique successor – Loops with unique exit node
Bruno Harbulot – FOAL 2005 – Chicago, USA
7/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
8/20
for (int i = 0 ; i<MAX ; i ++) { /* A */ } int j = 0 ; int STRIDE = 1 ; for (; j < MAX ; j+=STRIDE) { /* A */ } int k = 0 ; while (k < MAX) { /* A */ k ++ ; }
i=0; if (i<MAX) /* A */ i++; return;
Back edge
Natural Loop Header
Bruno Harbulot – FOAL 2005 – Chicago, USA
9/20
int i = 0 ; while (i< MAX) { if (cond(i++)) { /* A */ } else { /* B */ } }
return; i=0;
if (i<MAX)
if(cond(i++))
/* B */
/* A */
Bruno Harbulot – FOAL 2005 – Chicago, USA
10/20
header pre-header header
Bruno Harbulot – FOAL 2005 – Chicago, USA
11/20
i=0; 1 if(i<MAXI) 2 j=0; 3 if(j<MAXJ) if(c(i,j)) j++; i++ /* A */ 4 6 5 7 8
Bruno Harbulot – FOAL 2005 – Chicago, USA
12/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
13/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
14/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
15/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
16/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
17/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
18/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
19/20
Bruno Harbulot – FOAL 2005 – Chicago, USA
20/20