aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/arm/hipe_arm_ra_finalise.erl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-10-05 16:11:31 +0200
committerSverker Eriksson <[email protected]>2016-10-05 16:11:31 +0200
commit502ed5fd6bd36328d6be63c68ee2a56738ced058 (patch)
tree80cfb83dd63ffa876541740cc067ea05bb39118d /lib/hipe/arm/hipe_arm_ra_finalise.erl
parentcf102c1b1225450e7918a6119b7d949eb7e575c4 (diff)
parent0bac72a18e8a5f6a46baae9c9ac73bde32948ff6 (diff)
downloadotp-502ed5fd6bd36328d6be63c68ee2a56738ced058.tar.gz
otp-502ed5fd6bd36328d6be63c68ee2a56738ced058.tar.bz2
otp-502ed5fd6bd36328d6be63c68ee2a56738ced058.zip
Merge branch 'master' into sverker/master/load_nif-print-init-error
Diffstat (limited to 'lib/hipe/arm/hipe_arm_ra_finalise.erl')
-rw-r--r--lib/hipe/arm/hipe_arm_ra_finalise.erl11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/hipe/arm/hipe_arm_ra_finalise.erl b/lib/hipe/arm/hipe_arm_ra_finalise.erl
index 4faeadcd7f..2a3fded147 100644
--- a/lib/hipe/arm/hipe_arm_ra_finalise.erl
+++ b/lib/hipe/arm/hipe_arm_ra_finalise.erl
@@ -23,12 +23,13 @@
-export([finalise/3]).
-include("hipe_arm.hrl").
-finalise(Defun, TempMap, _FPMap0=[]) ->
- Code = hipe_arm:defun_code(Defun),
- {_, SpillLimit} = hipe_arm:defun_var_range(Defun),
+finalise(CFG, TempMap, _FPMap0=[]) ->
+ {_, SpillLimit} = hipe_gensym:var_range(arm),
Map = mk_ra_map(TempMap, SpillLimit),
- NewCode = ra_code(Code, Map, []),
- Defun#defun{code=NewCode}.
+ hipe_arm_cfg:map_bbs(fun(_Lbl, BB) -> ra_bb(BB, Map) end, CFG).
+
+ra_bb(BB, Map) ->
+ hipe_bb:code_update(BB, ra_code(hipe_bb:code(BB), Map, [])).
ra_code([I|Insns], Map, Accum) ->
ra_code(Insns, Map, [ra_insn(I, Map) | Accum]);