- add compile option to change innermost loop into a function call
to measure function call overhead. - always call dump fn so I can do regression test
This commit is contained in:
parent
8d53729ed3
commit
b6c94bebdb
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* $Id: blur.c,v 1.2 2002-04-16 14:30:47 bdenney Exp $
|
* $Id: blur.c,v 1.3 2002-04-16 16:08:18 bdenney Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -17,6 +17,13 @@ int array2[MAX][MAX];
|
|||||||
|
|
||||||
#define DEFAULT_TIMES 1000
|
#define DEFAULT_TIMES 1000
|
||||||
|
|
||||||
|
#ifdef BLUR_USE_FUNCTION_CALL
|
||||||
|
void blur_func (int *sum, int *data)
|
||||||
|
{
|
||||||
|
*sum += *data;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void blur()
|
void blur()
|
||||||
{
|
{
|
||||||
int sum;
|
int sum;
|
||||||
@ -26,8 +33,13 @@ void blur()
|
|||||||
{
|
{
|
||||||
sum = 0;
|
sum = 0;
|
||||||
for (x2=x-BLUR_WINDOW_HALF; x2<=x+BLUR_WINDOW_HALF; x2++)
|
for (x2=x-BLUR_WINDOW_HALF; x2<=x+BLUR_WINDOW_HALF; x2++)
|
||||||
for (y2=y-BLUR_WINDOW_HALF; y2<=y+BLUR_WINDOW_HALF; y2++)
|
for (y2=y-BLUR_WINDOW_HALF; y2<=y+BLUR_WINDOW_HALF; y2++) {
|
||||||
|
#ifdef BLUR_USE_FUNCTION_CALL
|
||||||
|
blur_func (&sum, &array[x2][y2]);
|
||||||
|
#else
|
||||||
sum += array[x2][y2];
|
sum += array[x2][y2];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
array2[x][y] = sum;
|
array2[x][y] = sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -71,6 +83,7 @@ int main (int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int times = 0;
|
int times = 0;
|
||||||
|
FILE *out;
|
||||||
if (argc>1) {
|
if (argc>1) {
|
||||||
assert (sscanf (argv[1], "%d", ×) == 1);
|
assert (sscanf (argv[1], "%d", ×) == 1);
|
||||||
} else {
|
} else {
|
||||||
@ -84,6 +97,9 @@ int main (int argc, char *argv[])
|
|||||||
stop_timer();
|
stop_timer();
|
||||||
report_time (stdout, times);
|
report_time (stdout, times);
|
||||||
//fprintf (stderr, "-----------------------------------\n");
|
//fprintf (stderr, "-----------------------------------\n");
|
||||||
//dump_array (stderr);
|
out = fopen ("blur.out", "w");
|
||||||
|
assert (out != NULL);
|
||||||
|
dump_array (out);
|
||||||
|
fclose (out);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user