From e043811980db560fc2507bb53b644e54c80527dc Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 8 Sep 2025 22:05:33 +0200 Subject: regalloc: start implementing linear scan --- test/collatz.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/collatz.c (limited to 'test/collatz.c') diff --git a/test/collatz.c b/test/collatz.c new file mode 100644 index 0000000..9793594 --- /dev/null +++ b/test/collatz.c @@ -0,0 +1,29 @@ +int printf(const char *, ...); +void *malloc(unsigned long); +int main() { + int *mem = malloc(sizeof(int) * 4000); + + int cmax = 0; + for (int nv = 1; nv < 1000; ++nv) { + int n = nv, c = 0; + while (n != 1) { + if (n < nv) { + c += mem[n]; + break; + } + if ((n & 1) != 0) { + n = (3 * n) + 1; + } else { + n /= 2; + //n >>= 1; + } + ++c; + } + mem[nv] = c; + if (c > cmax) { + cmax = c; + } + } + printf("should print 178: %d\n", cmax); +} + -- cgit v1.2.3