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 + -
显示快捷键?