diff options
author | Sverker Eriksson <[email protected]> | 2017-11-15 14:42:06 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2017-11-15 14:42:06 +0100 |
commit | 0d9d1f1915ac70ba00418fd24a4293bb22c4fade (patch) | |
tree | 49df7cdfbd1e211dc7aace5db5ce7e3af6e40909 /lib/hipe/ssa/hipe_ssa.inc | |
parent | 1836281f02004db2cc0185b877552377cd436d9a (diff) | |
parent | 7503303b0cba1e02320bdf604e0d0997b7c2ff59 (diff) | |
download | otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.gz otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.bz2 otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.zip |
Merge PR-1621 from margnus1/hipe-literal-tag
HiPE: Support for literal tag, tests and bugfixes
Diffstat (limited to 'lib/hipe/ssa/hipe_ssa.inc')
-rw-r--r-- | lib/hipe/ssa/hipe_ssa.inc | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/hipe/ssa/hipe_ssa.inc b/lib/hipe/ssa/hipe_ssa.inc index c7c1a8e1d7..29e8b92266 100644 --- a/lib/hipe/ssa/hipe_ssa.inc +++ b/lib/hipe/ssa/hipe_ssa.inc @@ -463,20 +463,20 @@ updateStatementDefs([], Statement, Current, Acc) -> %%---------------------------------------------------------------------- updateIndices(Current, Variable) -> - case ?CODE:is_var(Variable) of - true -> - NewVar = ?CODE:mk_new_var(), - {NewVar,gb_trees:enter(Variable, NewVar, Current)}; - false -> - case is_fp_temp(Variable) of - true -> - NewFVar = mk_new_fp_temp(), - {NewFVar,gb_trees:enter(Variable, NewFVar, Current)}; - false -> - NewReg = ?CODE:mk_new_reg(), - {NewReg,gb_trees:enter(Variable, NewReg, Current)} - end - end. + New = + case ?CODE:is_var(Variable) of + true -> ?CODE:mk_new_var(); + false -> + case is_fp_temp(Variable) of + true -> mk_new_fp_temp(); + false -> + case ?CODE:reg_is_gcsafe(Variable) of + true -> ?CODE:mk_new_reg_gcsafe(); + false -> ?CODE:mk_new_reg() + end + end + end, + {New, gb_trees:enter(Variable, New, Current)}. %%---------------------------------------------------------------------- %% Procedure : updateSuccPhi/4 |