Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // source code
- i32 fib(i32 number)
- {
- if (number < 1) return 0;
- if (number < 3) return 1;
- return fib(number-1) + fib(number-2);
- }
- // Generated from AST directly
- function i32 $fib (i32 number)
- {
- @start
- @ifstmt_1
- lit_3 = 1
- temp_4 = LESS number_2, lit_3
- jnz temp_4, @ift_1, @ifend_1
- @ift_1
- lit_5 = 0
- ret lit_5
- @ifend_1
- @ifstmt_6
- lit_8 = 3
- temp_9 = LESS number_7, lit_8
- jnz temp_9, @ift_6, @ifend_6
- @ift_6
- lit_10 = 1
- ret lit_10
- @ifend_6
- lit_12 = 1
- temp_13 = MINUS number_11, lit_12
- res_14 = call fib (temp_13)
- lit_16 = 2
- temp_17 = MINUS number_15, lit_16
- res_18 = call fib (temp_17)
- temp_19 = PLUS res_14, res_18
- ret temp_19
- }
- // Generated from binary IR
- function i32 $fib (i32 %number) {
- @start
- %__tmp_1 = lt %number, 1
- jnz %__tmp_1 @then_1, @blk_1
- @then_1
- return 0
- @blk_1
- %__tmp_2 = lt %number, 3
- jnz %__tmp_2 @then_2, @blk_2
- @then_2
- return 1
- @blk_2
- %__tmp_3 = sub %number, 1
- %__tmp_4 = call $fib(%__tmp_3)
- %__tmp_5 = sub %number, 2
- %__tmp_6 = call $fib(%__tmp_5)
- %__tmp_7 = add %__tmp_4, %__tmp_6
- return %__tmp_7
- }
- // timing
- parse 118us
- print 0.00ys
- semantic insert 21.0us
- semantic lookup 14.3us
- semantic types 7.10us
- print2 500ns
- IR text gen 246us
- IR bin gen 28.2us
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement