From d8558df6a456476b4a6d0bb7228eac74e5e7755c Mon Sep 17 00:00:00 2001 From: radrow Date: Sun, 3 Jul 2022 18:57:01 +0200 Subject: [PATCH] . --- src/aeso_fcode_to_fate.erl | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/aeso_fcode_to_fate.erl b/src/aeso_fcode_to_fate.erl index 6db1074..37788fe 100644 --- a/src/aeso_fcode_to_fate.erl +++ b/src/aeso_fcode_to_fate.erl @@ -77,7 +77,6 @@ compile(ChildContracts, FCode, Options) -> SFuns = functions_to_scode(ChildContracts, ContractName, Functions, Options), SFuns1 = optimize_scode(SFuns, Options), FateCode = to_basic_blocks(SFuns1), - io:format("FINAL:\~p\n\n", [FateCode]), ?debug(compile, Options, "~s\n", [aeb_fate_asm:pp(FateCode)]), FateCode. @@ -862,6 +861,7 @@ attributes(I) -> case I of loop -> Impure(pc, []); switch_body -> Pure(none, []); + {jump, _} -> Impure(pc, []); 'RETURN' -> Impure(pc, []); {'RETURNR', A} -> Impure(pc, A); {'CALL', A} -> Impure(?a, [A]); @@ -871,9 +871,7 @@ attributes(I) -> {'CALL_T', A} -> Impure(pc, [A]); {'CALL_VALUE', A} -> Pure(A, []); {'JUMP', _} -> Impure(pc, []); - {jump, _} -> Impure(pc, []); {'JUMPIF', A, _} -> Impure(pc, A); - {jumpif, A, _} -> Impure(pc, A); {'SWITCH_V2', A, _, _} -> Impure(pc, A); {'SWITCH_V3', A, _, _, _} -> Impure(pc, A); {'SWITCH_VN', A, _} -> Impure(pc, A); @@ -1588,7 +1586,6 @@ to_basic_blocks([], Acc) -> Acc. bb(_Name, Code) -> - io:format("FUN: ~p\nCODE:\n~p\n\n", [_Name, Code]), Blocks0 = blocks(Code), Blocks1 = optimize_blocks(Blocks0), Blocks = lists:flatmap(fun split_calls/1, Blocks1), @@ -1633,9 +1630,6 @@ block(#blk{ref = Ref, code = []}, CodeAcc, Blocks, BlockAcc) -> block(Blk = #blk{code = [{loop, Init, _, Expr, ContRef, BreakRef} | Code], catchall = Catchall}, Acc, Blocks, BlockAcc) -> LoopBlock = #blk{ref = ContRef, code = Expr, catchall = none}, BreakBlock = #blk{ref = BreakRef, code = Code, catchall = Catchall}, - - io:format("INIT: ~p\n\nLOOP: ~p\n\nBREAK: ~p\n\n", [Init, Expr, Code]), - block(Blk#blk{code = Init}, Acc, [LoopBlock, BreakBlock | Blocks], BlockAcc); block(Blk = #blk{code = [switch_body | Code]}, Acc, Blocks, BlockAcc) -> %% Reached the body of a switch. Clear catchall ref. @@ -1651,9 +1645,6 @@ block(Blk = #blk{code = [{switch, Arg, Type, Alts, Default} | Code], _ -> fresh_block(Default ++ [{jump, RestRef}], Catchall) %% ^ fall-through to the outer catchall end, - - io:format("RestRef: ~p, DefRef: ~p\n\n", [RestRef, DefRef]), - %% If we don't generate a switch, we need to pop the argument if on the stack. Pop = [{'POP', ?void} || Arg == ?a], {Blk1, Code1, AltBlks} = @@ -1803,8 +1794,8 @@ crop_jumps(Code) -> crop_jumps(Code, []). crop_jumps([], Acc) -> Acc; -%% crop_jumps([I = {jump, _}|_], Acc) -> -%% [I|Acc]; +crop_jumps([I = {jump, _}|_], Acc) -> + [I|Acc]; crop_jumps([I|Code], Acc) -> crop_jumps(Code, [I|Acc]).