diff options
author | Sverker Eriksson <[email protected]> | 2016-10-05 16:11:31 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-10-05 16:11:31 +0200 |
commit | 502ed5fd6bd36328d6be63c68ee2a56738ced058 (patch) | |
tree | 80cfb83dd63ffa876541740cc067ea05bb39118d /lib/hipe/flow/liveness.inc | |
parent | cf102c1b1225450e7918a6119b7d949eb7e575c4 (diff) | |
parent | 0bac72a18e8a5f6a46baae9c9ac73bde32948ff6 (diff) | |
download | otp-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/flow/liveness.inc')
-rw-r--r-- | lib/hipe/flow/liveness.inc | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/hipe/flow/liveness.inc b/lib/hipe/flow/liveness.inc index a1caa3e0ad..bffaa4e3df 100644 --- a/lib/hipe/flow/liveness.inc +++ b/lib/hipe/flow/liveness.inc @@ -49,6 +49,10 @@ -endif. -include("../flow/cfg.hrl"). +-include("../main/hipe.hrl"). + +-opaque liveness() :: map(). +-export_type([liveness/0]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% @@ -72,7 +76,7 @@ %% The generic liveness analysis %% --spec analyze(cfg()) -> gb_trees:tree(). +-spec analyze(cfg()) -> liveness(). -ifdef(HIPE_LIVENESS_CALC_LARGEST_LIVESET). analyze(CFG) -> @@ -188,6 +192,7 @@ update_livein(Label, NewLiveIn, Liveness) -> %% %% LiveOut for a block is the union of the successors LiveIn %% +-spec liveout(liveness(), _) -> [_]. liveout(Liveness, L) -> Succ = successors(L, Liveness), @@ -210,7 +215,7 @@ successors(L, Liveness) -> {_GK, _LiveIn, Successors} = liveness_lookup(L, Liveness), Successors. --spec livein(gb_trees:tree(), _) -> [_]. +-spec livein(liveness(), _) -> [_]. livein(Liveness, L) -> {_GK, LiveIn, _Successors} = liveness_lookup(L, Liveness), @@ -292,18 +297,15 @@ strip([{_,Y}|Xs]) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% +-compile({inline, [liveness_lookup/2, liveness_update/3]}). + liveness_init(List) -> - liveness_init(List, gb_trees:empty()). + maps:from_list(List). -liveness_init([{Lbl, Data}|Left], Acc) -> - liveness_init(Left, gb_trees:insert(Lbl, Data, Acc)); -liveness_init([], Acc) -> - Acc. - liveness_lookup(Label, Liveness) -> - gb_trees:get(Label, Liveness). + maps:get(Label, Liveness). liveness_update(Label, Val, Liveness) -> - gb_trees:update(Label, Val, Liveness). + maps:update(Label, Val, Liveness). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |