aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/x86/hipe_x86_ra.erl
diff options
context:
space:
mode:
authorMagnus Lång <[email protected]>2016-03-17 21:48:55 +0100
committerMagnus Lång <[email protected]>2016-08-30 17:17:59 +0200
commitc7a0cd1b5710178878d9b240f634e9eda7e68d96 (patch)
treeb287178ec0495d089857287df7e78b1ca119422c /lib/hipe/x86/hipe_x86_ra.erl
parentdc4e9384c6f2f733ab0d12727ab53238bda3fbca (diff)
downloadotp-c7a0cd1b5710178878d9b240f634e9eda7e68d96.tar.gz
otp-c7a0cd1b5710178878d9b240f634e9eda7e68d96.tar.bz2
otp-c7a0cd1b5710178878d9b240f634e9eda7e68d96.zip
hipe: Reuse liveness info for spillmin
For x86, additionally reuse liveness from float LSRA for the GP LSRA.
Diffstat (limited to 'lib/hipe/x86/hipe_x86_ra.erl')
-rw-r--r--lib/hipe/x86/hipe_x86_ra.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/hipe/x86/hipe_x86_ra.erl b/lib/hipe/x86/hipe_x86_ra.erl
index 2e97b07e5d..3af333ab4b 100644
--- a/lib/hipe/x86/hipe_x86_ra.erl
+++ b/lib/hipe/x86/hipe_x86_ra.erl
@@ -49,7 +49,11 @@ code_size(CFG) ->
ra(CFG0, Options) ->
%% hipe_x86_cfg:pp(CFG0),
- {CFG1, Coloring_fp, SpillIndex} = ra_fp(CFG0, Options),
+ {CFG1, Coloring_fp, SpillIndex, Liveness} =
+ case ra_fp(CFG0, Options) of
+ {G, C, I} -> {G, C, I, undefined};
+ {_,_,_,_}=T -> T
+ end,
%% hipe_x86_cfg:pp(CFG1),
?start_ra_instrumentation(Options,
code_size(CFG1),
@@ -63,7 +67,7 @@ ra(CFG0, Options) ->
graph_color ->
ra(CFG1, SpillIndex, Options, hipe_graph_coloring_regalloc);
linear_scan ->
- ?HIPE_X86_RA_LS:ra(CFG1, SpillIndex, Options);
+ ?HIPE_X86_RA_LS:ra(CFG1, Liveness, SpillIndex, Options);
naive ->
?HIPE_X86_RA_NAIVE:ra(CFG1, Coloring_fp, Options);
_ ->