Revert "Separate the split at CALL_T and loop"

This reverts commit 4ea823a7ca798c756b20cee32f928f41092c4959.
This commit is contained in:
Gaith Hallak 2023-03-17 18:11:50 +03:00
parent bc4f3fdbbd
commit 7e3d8ea102

View File

@ -1892,7 +1892,6 @@ tweak_returns(Code) -> Code.
%% -- Split basic blocks at CALL instructions -- %% -- Split basic blocks at CALL instructions --
%% Calls can only return to a new basic block. Also splits at JUMPIF instructions. %% Calls can only return to a new basic block. Also splits at JUMPIF instructions.
%% Split at CALL_T and JUMP only when DBG_RETURN op is enabled
split_calls({Ref, Code}) -> split_calls({Ref, Code}) ->
split_calls(Ref, Code, [], []). split_calls(Ref, Code, [], []).
@ -1906,11 +1905,9 @@ split_calls(Ref, [I | Code], Acc, Blocks) when element(1, I) == 'CALL';
element(1, I) == 'CREATE'; element(1, I) == 'CREATE';
element(1, I) == 'CLONE'; element(1, I) == 'CLONE';
element(1, I) == 'CLONE_G'; element(1, I) == 'CLONE_G';
element(1, I) == 'jumpif' -> element(1, I) == 'jumpif';
split_calls(make_ref(), Code, [], [{Ref, lists:reverse([I | Acc])} | Blocks]); element(1, I) == 'CALL_T' andalso Code =/= [];
split_calls(Ref, [I | Code = ['DBG_RETURN' | _]], Acc, Blocks) I == loop andalso Code =/= [] ->
when element(1, I) == 'CALL_T';
I == loop ->
split_calls(make_ref(), Code, [], [{Ref, lists:reverse([I | Acc])} | Blocks]); split_calls(make_ref(), Code, [], [{Ref, lists:reverse([I | Acc])} | Blocks]);
split_calls(Ref, [{'ABORT', _} = I | _Code], Acc, Blocks) -> split_calls(Ref, [{'ABORT', _} = I | _Code], Acc, Blocks) ->
lists:reverse([{Ref, lists:reverse([I | Acc])} | Blocks]); lists:reverse([{Ref, lists:reverse([I | Acc])} | Blocks]);