hipe_bb.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 52 行

ERL
52
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Basic Block Module%%%% Exports:%% ~~~~~~~~%% mk_bb(Code) - construct a basic block.%% code(BB) - returns the code.%% code_update(BB, NewCode) - replace the code in a basic block.%% last(BB) - returns the last instruction.%% butlast(BB) - returns the code with the last instruction removed.%%-module(hipe_bb).-export([mk_bb/1,	 code/1,	 code_update/2,	 is_bb/1,	 last/1,	 butlast/1]).-record(bb, {code=[]}).%%%% Constructs a basic block.%% Returns a basic block: {bb, Code}%%   * Code is a list of instructionsmk_bb(Code) ->    #bb{code=Code}.is_bb(#bb{}) -> true;is_bb(_) -> false.code_update(BB, Code) ->    BB#bb{code = Code}.code(#bb{code = Code}) ->     Code.last(#bb{code = Code}) ->     lists:last(Code).butlast(#bb{code = Code}) ->    butlast_1(Code).butlast_1([X|Xs]) -> butlast_1(Xs,X).butlast_1([X|Xs],Y) -> [Y|butlast_1(Xs,X)];butlast_1([],_) -> [].

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?