64 lines
1.5 KiB
C
64 lines
1.5 KiB
C
|
|
||
|
/*----------------------------------------------------------------------
|
||
|
* WCET Benchmark created by Andreas Ermedahl, Uppsala university,
|
||
|
* May 2000.
|
||
|
*
|
||
|
* The purpose of this benchmark is to have two loop where the inner
|
||
|
* loops max number of iterations depends on the outer loops current
|
||
|
* iterations. The results corresponds to something Jannes flow-analysis
|
||
|
* should produce.
|
||
|
*
|
||
|
* The example appeard for the first time in:
|
||
|
*
|
||
|
* @InProceedings{Ermedahl:Annotations,
|
||
|
* author = "A. Ermedahl and J. Gustafsson",
|
||
|
* title = "Deriving Annotations for Tight Calculation of Execution Time",
|
||
|
* year = 1997,
|
||
|
* month = aug,
|
||
|
* booktitle = EUROPAR97,
|
||
|
* publisher = "Springer Verlag",
|
||
|
* pages = "1298-1307"
|
||
|
* }
|
||
|
*
|
||
|
* The result of Jannes tool is something like:
|
||
|
* outer loop: 1 2 3 4 5 6 7 8 9 10 11
|
||
|
* inner loop max: 5 9 8 7 4 2 1 1 1 1 1
|
||
|
*
|
||
|
*----------------------------------------------------------------------*/
|
||
|
|
||
|
int complex(int a, int b)
|
||
|
{
|
||
|
while(a < 30)
|
||
|
{
|
||
|
while(b < a)
|
||
|
{
|
||
|
if(b > 5)
|
||
|
b = b * 3;
|
||
|
else
|
||
|
b = b + 2;
|
||
|
if(b >= 10 && b <= 12)
|
||
|
a = a + 10;
|
||
|
else
|
||
|
a = a + 1;
|
||
|
}
|
||
|
a = a + 2;
|
||
|
b = b - 10;
|
||
|
}
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
/* a = [1..30] b = [1..30] */
|
||
|
int a = 1, b = 1, answer = 0;
|
||
|
/* if(answer)
|
||
|
{a = 1; b = 1;}
|
||
|
else
|
||
|
{a = 30; b = 30;} */
|
||
|
answer = complex(a, b);
|
||
|
return answer;
|
||
|
}
|
||
|
|
||
|
|
||
|
|