⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hipe_icode_ssa.erl

📁 OTP是开放电信平台的简称
💻 ERL
字号:
%% -*- erlang-indent-level: 2 -*-%%----------------------------------------------------------------------%% File    : hipe_icode_ssa.erl%% Author  : %% Created : %% Purpose : Provides interface functions for converting Icode into%%	     SSA form and back using the generic SSA converter.%%-----------------------------------------------------------------------module(hipe_icode_ssa).%% The following defines are needed by the included file below-define(CODE, hipe_icode).-define(CFG,  hipe_icode_cfg).-define(LIVENESS, hipe_icode_liveness).-define(LIVENESS_NEEDED, true).-include("../ssa/hipe_ssa.inc").%%----------------------------------------------------------------------%% Auxiliary operations which seriously differ between Icode and RTL.%%----------------------------------------------------------------------defs_to_rename(Statement) ->  hipe_icode:defines(Statement).uses_to_rename(Statement) ->  hipe_icode:uses(Statement).liveout_no_succ() ->  [].%%----------------------------------------------------------------------reset_var_indx() ->  hipe_gensym:set_var(icode, 0).%%----------------------------------------------------------------------is_fp_temp(Temp) ->  hipe_icode:is_fvar(Temp).mk_new_fp_temp() ->  hipe_icode:mk_new_fvar().%%----------------------------------------------------------------------%% Procedure : makePhiMove %% Purpose   : Create an ICode-specific version of a move instruction%%             depending on the type of the arguments.%% Arguments : Dst, Src - the arguments of a Phi instruction that is%%                        to be moved up the predecessor block as part%%                        of the SSA un-convert phase.%% Returns   : Code%% Note      : ?CODE here is hipe_icode%%----------------------------------------------------------------------makePhiMove(Dst, Src) ->  case hipe_icode:is_fvar(Dst) of    false ->      case hipe_icode:is_fvar(Src) of	false ->	  hipe_icode:mk_move(Dst, Src);	true ->	  hipe_icode:mk_primop([Dst],unsafe_tag_float,[Src])      end;    true ->      case hipe_icode:is_fvar(Src) of	true ->	  hipe_icode:mk_fmove(Dst, Src);	false ->	  hipe_icode:mk_primop([Dst],conv_to_float,[Src])      end  end.%%----------------------------------------------------------------------

⌨️ 快捷键说明

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