fix problems with multispill/belady
[libfirm] / ir / be / test / Sieve.c
index fb2e418..08f2401 100644 (file)
@@ -28,20 +28,24 @@ static void mark_count(int c) {
 static void runSieve(void) {
        int ITERATIONS = 100000;
        boolean *flags;
-       int i, prime, k, iter, p;
+       int i, prime, k;
        int iterations = 0;
        int count;
+       int s = SIZE;
 
-       flags = (void *)malloc(sizeof(*flags) * SIZE);
+       flags = (void *)malloc(sizeof(*flags) * s);
 
        // loop around for measurements
        while(ITERATIONS > iterations) {
+#if 0
                for(i = 0; i < SIZE; i++)
                        flags[i] = true;
-               for(i = 2; i < SIZE; i++) {
+#endif
+               memset(flags, 0x01010101, s);
+               for(i = 2; i < s; i++) {
                        if(flags[i]) {
                                prime = i;
-                               for(k = i + prime; k < SIZE; k += prime)
+                               for(k = i + prime; k < s; k += prime)
                                        flags[k] = false;
                        }
                }
@@ -49,7 +53,7 @@ static void runSieve(void) {
        }
        // test correctness
        count = 0;
-       for(i = 2; i < SIZE; i++) {
+       for(i = 2; i < s; i++) {
                if(true == flags[i]) {
                        count++;
                }
@@ -58,8 +62,6 @@ static void runSieve(void) {
 }
 
 int main(int argc, char *argv[]) {
-       int i;
-
        printf("Sieve.c\n");
 
        if (argc <= 1) {