From 8134a569669985a5d1738cccde504d772ecbc2d6 Mon Sep 17 00:00:00 2001 From: Jeehoon Kang Date: Fri, 5 Jun 2020 12:26:39 +0900 Subject: [PATCH] Hotfix mem2reg examples --- examples/bench/fibonacci.c | 11 +++++++++++ examples/bench/meta/driver.c | 24 ++++++++++++++++++++++++ examples/mem2reg/mem2reg.input.ir | 2 +- examples/mem2reg/mem2reg.output.ir | 2 +- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 examples/bench/fibonacci.c create mode 100644 examples/bench/meta/driver.c diff --git a/examples/bench/fibonacci.c b/examples/bench/fibonacci.c new file mode 100644 index 0000000..14533f2 --- /dev/null +++ b/examples/bench/fibonacci.c @@ -0,0 +1,11 @@ +int fibo(int x) { + if (x < 2) { + return 1; + } + + return fibo(x - 1) + fibo(x - 2); +} + +int job() { + return fibo(25); +} diff --git a/examples/bench/meta/driver.c b/examples/bench/meta/driver.c new file mode 100644 index 0000000..113afc5 --- /dev/null +++ b/examples/bench/meta/driver.c @@ -0,0 +1,24 @@ +#include + +unsigned long read_cycles() +{ + unsigned long cycles; + asm volatile ("rdcycle %0" : "=r" (cycles)); + return cycles; +} + +extern int job(); + +int main() { + unsigned long start, end; + int answer; + + start = read_cycles(); + answer = job(); + end = read_cycles(); + + printf("cycles: %lu\n", end - start); + printf("answer: %d\n", answer); + + return 0; +} diff --git a/examples/mem2reg/mem2reg.input.ir b/examples/mem2reg/mem2reg.input.ir index 7ce6ec0..a1a2980 100644 --- a/examples/mem2reg/mem2reg.input.ir +++ b/examples/mem2reg/mem2reg.input.ir @@ -113,7 +113,7 @@ init: %l3:i8:w block b666: - %b666:i0:unit = store %l3:*i8 42:i8 + %b666:i0:unit = store 42:i8 %l3:*i8 %b666:i1:unit = call @sinkptr:*[ret:unit params:(*i8)](%l3:*i8) %b666:i2:i8 = load %l3:*i8 j b0() diff --git a/examples/mem2reg/mem2reg.output.ir b/examples/mem2reg/mem2reg.output.ir index c5211bc..e080819 100644 --- a/examples/mem2reg/mem2reg.output.ir +++ b/examples/mem2reg/mem2reg.output.ir @@ -116,7 +116,7 @@ init: %l3:i8:w block b666: - %b666:i0:unit = store %l3:*i8 42:i8 + %b666:i0:unit = store 42:i8 %l3:*i8 %b666:i1:unit = call @sinkptr:*[ret:unit params:(*i8)](%l3:*i8) %b666:i2:i8 = load %l3:*i8 j b0(undef:i32, undef:i16, undef:i64)