diff options
Diffstat (limited to 'lib/hipe/icode/hipe_icode_exceptions.erl')
| -rw-r--r-- | lib/hipe/icode/hipe_icode_exceptions.erl | 20 | 
1 files changed, 8 insertions, 12 deletions
| diff --git a/lib/hipe/icode/hipe_icode_exceptions.erl b/lib/hipe/icode/hipe_icode_exceptions.erl index 41556ab80f..f03ce2faaa 100644 --- a/lib/hipe/icode/hipe_icode_exceptions.erl +++ b/lib/hipe/icode/hipe_icode_exceptions.erl @@ -2,7 +2,7 @@  %%  %% %CopyrightBegin%  %%  -%% Copyright Ericsson AB 2004-2014. All Rights Reserved. +%% Copyright Ericsson AB 2004-2015. All Rights Reserved.  %%   %% Licensed under the Apache License, Version 2.0 (the "License");  %% you may not use this file except in compliance with the License. @@ -85,7 +85,7 @@  %%---------------------------------------------------------------------------- --spec fix_catches(#cfg{}) -> #cfg{}. +-spec fix_catches(cfg()) -> cfg().  fix_catches(CFG) ->    {Map, State} = build_mapping(find_catches(init_state(CFG))), @@ -393,10 +393,10 @@ get_renaming(C, Map) ->  %%---------------------------------------------------------------------  %% State abstraction --record(state, {cfg					:: #cfg{}, +-record(state, {cfg					:: cfg(),  		changed = false				:: boolean(), -		succ					:: #cfg{}, -		pred					:: #cfg{}, +		succ					:: cfg(), +		pred					:: cfg(),  		start_labels				:: [icode_lbl(),...],  		visited = hipe_icode_cfg:none_visited()	:: gb_sets:set(),  		out     = gb_trees:empty()		:: gb_trees:tree(), @@ -404,13 +404,8 @@ get_renaming(C, Map) ->  	       }).  init_state(CFG) -> -  State = #state{cfg = CFG}, -  refresh_state_cache(State). - -refresh_state_cache(State) -> -  CFG = State#state.cfg,    SLs = [hipe_icode_cfg:start_label(CFG)], -  State#state{succ = CFG, pred = CFG, start_labels = SLs}. +  #state{cfg = CFG, succ = CFG, pred = CFG, start_labels = SLs}.  get_cfg(State) ->    State#state.cfg. @@ -466,7 +461,8 @@ get_bb_code(L, State) ->  set_bb_code(L, Code, State) ->    CFG = State#state.cfg,    CFG1 = hipe_icode_cfg:bb_add(CFG, L, hipe_bb:mk_bb(Code)), -  refresh_state_cache(State#state{cfg = CFG1}). +  SLs = [hipe_icode_cfg:start_label(CFG1)], +  State#state{cfg = CFG1, succ = CFG1, pred = CFG1, start_labels = SLs}.  get_new_catches_in(L, State) ->    Ps = get_pred(L, State), | 
