Skip to content

Instantly share code, notes, and snippets.

@davisp
Created March 21, 2022 19:59
Show Gist options
  • Save davisp/67604d29e668a26dfac95b2bc074e688 to your computer and use it in GitHub Desktop.
Save davisp/67604d29e668a26dfac95b2bc074e688 to your computer and use it in GitHub Desktop.
--- couch_key_tree.no-sink-opt.S 2022-03-21 14:51:30.000000000 -0500
+++ couch_key_tree.opt.S 2022-03-21 14:50:44.000000000 -0500
@@ -26,7 +26,7 @@
{attributes, []}.
-{labels, 270}.
+{labels, 269}.
{function, multi_merge, 2, 2}.
@@ -36,7 +36,7 @@
{label,2}.
{allocate_heap,2,{alloc,[{words,0},{floats,0},{funs,1}]},2}.
{move,{x,0},{y,1}}.
- {make_fun3,{f,269},0,0,{y,0},{list,[]}}.
+ {make_fun3,{f,268},0,0,{y,0},{list,[]}}.
{'%',{var_info,{y,0},[{fun_type,{t_list,any,nil}}]}}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",51}]}.
@@ -86,24 +86,26 @@
{get_list,{x,0},{x,3},{x,4}}.
{test,is_tuple,{f,5},[{x,3}]}.
{test,test_arity,{f,5},[{x,3},2]}.
- {get_tuple_element,{x,3},0,{x,5}}.
- {get_tuple_element,{x,3},1,{x,6}}.
{test,is_tuple,{f,5},[{x,1}]}.
{test,test_arity,{f,5},[{x,1},2]}.
- {get_tuple_element,{x,1},0,{x,0}}.
- {get_tuple_element,{x,1},1,{x,7}}.
+ {get_tuple_element,{x,3},0,{x,0}}.
+ {get_tuple_element,{x,1},0,{x,5}}.
{line,[{location,"couch_key_tree.erl",84}]}.
- {gc_bif,'-',{f,0},8,[{x,5},{x,0}],{x,8}}.
- {allocate_heap,6,4,9}.
- {move,{x,0},{y,0}}.
+ {gc_bif,'-',{f,0},6,[{x,0},{x,5}],{x,6}}.
+ {allocate_heap,7,4,7}.
+ {init_yregs,{list,[{y,0}]}}.
{move,{x,5},{y,1}}.
- {move,{x,3},{y,2}}.
- {move,{x,4},{y,3}}.
- {move,{x,2},{y,4}}.
- {move,{x,1},{y,5}}.
- {put_list,{x,6},nil,{x,0}}.
- {put_list,{x,7},nil,{x,2}}.
- {move,{x,8},{x,1}}.
+ {move,{x,0},{y,2}}.
+ {move,{x,3},{y,3}}.
+ {move,{x,4},{y,4}}.
+ {move,{x,2},{y,5}}.
+ {move,{x,1},{y,6}}.
+ {get_tuple_element,{x,1},1,{x,0}}.
+ {get_tuple_element,{x,3},1,{x,1}}.
+ {put_list,{x,1},nil,{x,1}}.
+ {put_list,{x,0},nil,{x,2}}.
+ {move,{x,1},{x,0}}.
+ {move,{x,6},{x,1}}.
{call,3,{f,12}}.
{'%',
{var_info,
@@ -116,32 +118,35 @@
#{1 => {t_cons,any,any},
2 => {t_atom,[internal_node,new_branch,new_leaf]}}},
none}}]}}.
+ {move,{x,0},{y,0}}.
{test,is_tuple,{f,7},[{x,0}]}.
- {get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,5}}.
- {get_list,{x,1},{y,2},{x,1}}.
- {test,is_nil,{f,10},[{x,1}]}.
- {move,{y,0},{x,1}}.
- {move,{y,1},{x,0}}.
- {trim,2,4}.
+ {get_tuple_element,{x,0},0,{x,0}}.
+ {get_list,{x,0},{y,6},{x,0}}.
+ {test,is_nil,{f,10},[{x,0}]}.
+ {move,{y,1},{x,1}}.
+ {move,{y,2},{x,0}}.
+ {move,{y,0},{y,3}}.
+ {trim,3,4}.
{call_ext,2,{extfunc,erlang,min,2}}.
{test_heap,5,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {put_tuple2,{x,0},{list,[{x,0},{y,3}]}}.
{put_list,{x,0},{y,2},{x,1}}.
{move,{y,1},{x,0}}.
+ {move,{y,0},{y,3}}.
{trim,3,1}.
{line,[{location,"couch_key_tree.erl",87}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,1}]}}.
{deallocate,1}.
return.
{label,7}.
{test_heap,2,0}.
- {put_list,{y,2},{y,4},{x,2}}.
- {move,{y,5},{x,1}}.
- {move,{y,3},{x,0}}.
- {call_last,3,{f,6},6}.
+ {put_list,{y,3},{y,5},{x,2}}.
+ {move,{y,6},{x,1}}.
+ {move,{y,4},{x,0}}.
+ {call_last,3,{f,6},7}.
{label,8}.
{test,is_nil,{f,5},[{x,0}]}.
{test,is_nil,{f,9},[{x,2}]}.
@@ -156,7 +161,7 @@
return.
{label,10}.
{line,[{location,"couch_key_tree.erl",84}]}.
- {case_end,{x,0}}.
+ {case_end,{y,0}}.
{function, merge_at, 3, 12}.
@@ -166,24 +171,21 @@
{label,12}.
{'%',{var_info,{x,1},[{type,number}]}}.
{'%',{var_info,{x,2},[{type,{t_cons,any,any}}]}}.
- {test,is_ne_exact,{f,20},[{x,0},nil]}.
+ {test,is_ne_exact,{f,19},[{x,0},nil]}.
{get_list,{x,2},{x,3},{x,4}}.
- {test,is_tuple,{f,15},[{x,3}]}.
- {test,test_arity,{f,15},[{x,3},3]}.
- {get_tuple_element,{x,3},0,{x,5}}.
- {get_tuple_element,{x,3},1,{x,6}}.
- {get_tuple_element,{x,3},2,{x,7}}.
- {test,is_nonempty_list,{f,14},[{x,7}]}.
- {get_tl,{x,7},{x,8}}.
- {test,is_nil,{f,15},[{x,8}]}.
- {test,is_nil,{f,15},[{x,4}]}.
- {test,is_lt,{f,15},[{integer,0},{x,1}]}.
+ {test,is_tuple,{f,14},[{x,3}]}.
+ {test,test_arity,{f,14},[{x,3},3]}.
+ {get_tuple_element,{x,3},2,{x,5}}.
+ {test,is_nonempty_list,{f,13},[{x,5}]}.
+ {get_tl,{x,5},{x,6}}.
+ {test,is_nil,{f,14},[{x,6}]}.
+ {test,is_nil,{f,14},[{x,4}]}.
+ {test,is_lt,{f,14},[{integer,0},{x,1}]}.
{line,[{location,"couch_key_tree.erl",107}]}.
- {gc_bif,'-',{f,0},8,[{x,1},{integer,1}],{x,1}}.
- {allocate,2,8}.
- {move,{x,5},{y,0}}.
- {move,{x,6},{y,1}}.
- {move,{x,7},{x,2}}.
+ {gc_bif,'-',{f,0},6,[{x,1},{integer,1}],{x,1}}.
+ {allocate,1,6}.
+ {move,{x,3},{y,0}}.
+ {move,{x,5},{x,2}}.
{call,3,{f,12}}.
{'%',
{var_info,
@@ -196,32 +198,30 @@
#{1 => {t_cons,any,any},
2 => {t_atom,[internal_node,new_branch,new_leaf]}}},
none}}]}}.
- {test,is_tuple,{f,13},[{x,0}]}.
+ {test,is_tuple,{f,21},[{x,0}]}.
{test_heap,9,1}.
- {get_tuple_element,{x,0},0,{x,1}}.
+ {get_tuple_element,{y,0},0,{x,1}}.
+ {get_tuple_element,{y,0},1,{x,2}}.
+ {get_tuple_element,{x,0},0,{x,3}}.
{get_tuple_element,{x,0},1,{x,0}}.
- {put_tuple2,{x,1},{list,[{y,0},{y,1},{x,1}]}}.
+ {put_tuple2,{x,1},{list,[{x,1},{x,2},{x,3}]}}.
{put_list,{x,1},nil,{x,1}}.
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
- {deallocate,2}.
+ {deallocate,1}.
return.
{label,13}.
- {move,{atom,fail},{x,0}}.
- {deallocate,2}.
- return.
+ {test,is_nil,{f,14},[{x,5}]}.
+ {test,is_nil,{f,14},[{x,4}]}.
+ {test,is_ge,{f,19},[{integer,0},{x,1}]}.
{label,14}.
- {test,is_nil,{f,15},[{x,7}]}.
- {test,is_nil,{f,15},[{x,4}]}.
- {test,is_ge,{f,20},[{integer,0},{x,1}]}.
- {label,15}.
{test,is_nonempty_list,{f,11},[{x,0}]}.
{get_list,{x,0},{x,5},{x,6}}.
- {test,is_tuple,{f,21},[{x,5}]}.
- {test,test_arity,{f,21},[{x,5},3]}.
+ {test,is_tuple,{f,20},[{x,5}]}.
+ {test,test_arity,{f,20},[{x,5},3]}.
{get_tuple_element,{x,5},0,{x,7}}.
{get_tuple_element,{x,5},1,{x,8}}.
{get_tuple_element,{x,5},2,{x,9}}.
- {test,is_lt,{f,18},[{x,1},{integer,0}]}.
+ {test,is_lt,{f,17},[{x,1},{integer,0}]}.
{line,[{location,"couch_key_tree.erl",118}]}.
{gc_bif,'+',{f,0},10,[{x,1},{integer,1}],{x,0}}.
{allocate,6,10}.
@@ -245,7 +245,7 @@
#{1 => {t_cons,any,any},
2 => {t_atom,[internal_node,new_branch,new_leaf]}}},
none}}]}}.
- {test,is_tuple,{f,16},[{x,0}]}.
+ {test,is_tuple,{f,15},[{x,0}]}.
{test_heap,9,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -254,7 +254,7 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,6}.
return.
- {label,16}.
+ {label,15}.
{move,{y,4},{x,2}}.
{move,{y,5},{x,1}}.
{move,{y,3},{x,0}}.
@@ -272,7 +272,7 @@
#{1 => {t_cons,any,any},
2 => {t_atom,[internal_node,new_branch,new_leaf]}}},
none}}]}}.
- {test,is_tuple,{f,17},[{x,0}]}.
+ {test,is_tuple,{f,16},[{x,0}]}.
{test_heap,5,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -280,56 +280,51 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,6}.
return.
- {label,17}.
+ {label,16}.
{move,{atom,fail},{x,0}}.
{deallocate,6}.
return.
- {label,18}.
+ {label,17}.
{test,is_eq_exact,{f,11},[{x,1},{integer,0}]}.
- {test,is_tuple,{f,21},[{x,3}]}.
- {test,test_arity,{f,21},[{x,3},3]}.
- {get_tuple_element,{x,3},0,{x,10}}.
- {get_tuple_element,{x,3},1,{x,11}}.
- {get_tuple_element,{x,3},2,{x,3}}.
- {test,is_nil,{f,21},[{x,4}]}.
- {test,is_eq_exact,{f,19},[{x,10},{x,7}]}.
- {allocate,6,12}.
- {init_yregs,{list,[{y,0},{y,1}]}}.
- {move,{x,11},{y,2}}.
- {move,{x,7},{y,3}}.
- {move,{x,8},{y,4}}.
- {move,{x,6},{y,5}}.
- {move,{x,3},{x,1}}.
+ {test,is_tuple,{f,20},[{x,3}]}.
+ {test,test_arity,{f,20},[{x,3},3]}.
+ {test,is_nil,{f,20},[{x,4}]}.
+ {get_tuple_element,{x,3},0,{x,4}}.
+ {test,is_eq_exact,{f,18},[{x,4},{x,7}]}.
+ {allocate,4,10}.
+ {move,{x,3},{y,0}}.
+ {move,{x,7},{y,1}}.
+ {move,{x,8},{y,2}}.
+ {move,{x,6},{y,3}}.
+ {get_tuple_element,{x,3},2,{x,1}}.
{move,{x,9},{x,0}}.
{line,[{location,"couch_key_tree.erl",133}]}.
- {call,2,{f,24}}.
+ {call,2,{f,23}}.
{'%',
{var_info,
{x,0},
[{type,
{t_tuple,2,true,
#{2 => {t_atom,[internal_node,new_branch,new_leaf]}}}}]}}.
- {get_tuple_element,{x,0},0,{y,1}}.
- {get_tuple_element,{x,0},1,{y,0}}.
- {move,{y,2},{x,1}}.
- {move,{y,4},{x,0}}.
- {init_yregs,{list,[{y,2}]}}.
- {move,{y,0},{y,4}}.
- {trim,1,5}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {swap,{y,2},{x,0}}.
+ {trim,1,3}.
{line,[{location,"couch_key_tree.erl",134}]}.
- {call,2,{f,163}}.
+ {call,2,{f,162}}.
{test_heap,9,1}.
- {put_tuple2,{x,0},{list,[{y,2},{x,0},{y,0}]}}.
- {put_list,{x,0},{y,4},{x,0}}.
- {put_tuple2,{x,0},{list,[{x,0},{y,3}]}}.
- {deallocate,5}.
+ {get_tuple_element,{y,1},0,{x,1}}.
+ {get_tuple_element,{y,1},1,{x,2}}.
+ {put_tuple2,{x,0},{list,[{y,0},{x,0},{x,1}]}}.
+ {put_list,{x,0},{y,2},{x,0}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,2}]}}.
+ {deallocate,3}.
return.
+ {label,18}.
+ {test,is_lt,{f,20},[{x,4},{x,7}]}.
{label,19}.
- {test,is_lt,{f,21},[{x,10},{x,7}]}.
- {label,20}.
{move,{atom,fail},{x,0}}.
return.
- {label,21}.
+ {label,20}.
{test,is_eq_exact,{f,11},[{x,1},{integer,0}]}.
{allocate,1,7}.
{move,{x,5},{y,0}}.
@@ -348,7 +343,7 @@
#{1 => {t_cons,any,any},
2 => {t_atom,[internal_node,new_branch,new_leaf]}}},
none}}]}}.
- {test,is_tuple,{f,22},[{x,0}]}.
+ {test,is_tuple,{f,21},[{x,0}]}.
{test_heap,5,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -356,89 +351,86 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,1}.
return.
- {label,22}.
+ {label,21}.
{move,{atom,fail},{x,0}}.
{deallocate,1}.
return.
-{function, merge_extend, 2, 24}.
- {label,23}.
+{function, merge_extend, 2, 23}.
+ {label,22}.
{line,[{location,"couch_key_tree.erl",147}]}.
{func_info,{atom,couch_key_tree},{atom,merge_extend},2}.
- {label,24}.
- {test,is_nil,{f,25},[{x,0}]}.
- {test,is_ne_exact,{f,26},[{x,1},nil]}.
+ {label,23}.
+ {test,is_nil,{f,24},[{x,0}]}.
+ {test,is_ne_exact,{f,25},[{x,1},nil]}.
{test_heap,3,2}.
{put_tuple2,{x,0},{list,[{x,1},{atom,new_leaf}]}}.
return.
+ {label,24}.
+ {test,is_nil,{f,26},[{x,1}]}.
{label,25}.
- {test,is_nil,{f,27},[{x,1}]}.
- {label,26}.
{test_heap,3,1}.
{put_tuple2,{x,0},{list,[{x,0},{atom,internal_node}]}}.
return.
- {label,27}.
- {test,is_nonempty_list,{f,23},[{x,0}]}.
+ {label,26}.
+ {test,is_nonempty_list,{f,22},[{x,0}]}.
{get_list,{x,0},{x,2},{x,3}}.
- {test,is_tuple,{f,29},[{x,2}]}.
- {test,test_arity,{f,29},[{x,2},3]}.
- {get_tuple_element,{x,2},0,{x,4}}.
- {get_tuple_element,{x,2},1,{x,5}}.
- {get_tuple_element,{x,2},2,{x,6}}.
- {test,is_nonempty_list,{f,29},[{x,1}]}.
- {get_list,{x,1},{x,7},{x,8}}.
- {test,is_tuple,{f,29},[{x,7}]}.
- {test,test_arity,{f,29},[{x,7},3]}.
- {get_tuple_element,{x,7},0,{x,9}}.
- {get_tuple_element,{x,7},1,{x,10}}.
- {get_tuple_element,{x,7},2,{x,11}}.
- {test,is_nil,{f,29},[{x,8}]}.
- {test,is_eq_exact,{f,28},[{x,9},{x,4}]}.
- {allocate,6,12}.
- {init_yregs,{list,[{y,0},{y,1}]}}.
- {move,{x,10},{y,2}}.
- {move,{x,4},{y,3}}.
- {move,{x,5},{y,4}}.
- {move,{x,3},{y,5}}.
- {move,{x,11},{x,1}}.
- {move,{x,6},{x,0}}.
+ {test,is_tuple,{f,28},[{x,2}]}.
+ {test,test_arity,{f,28},[{x,2},3]}.
+ {test,is_nonempty_list,{f,28},[{x,1}]}.
+ {get_list,{x,1},{x,4},{x,5}}.
+ {test,is_tuple,{f,28},[{x,4}]}.
+ {test,test_arity,{f,28},[{x,4},3]}.
+ {get_tuple_element,{x,4},1,{x,6}}.
+ {test,is_nil,{f,28},[{x,5}]}.
+ {get_tuple_element,{x,4},0,{x,5}}.
+ {get_tuple_element,{x,2},0,{x,7}}.
+ {test,is_eq_exact,{f,27},[{x,5},{x,7}]}.
+ {allocate,4,8}.
+ {move,{x,6},{y,0}}.
+ {move,{x,7},{y,1}}.
+ {move,{x,2},{y,2}}.
+ {move,{x,3},{y,3}}.
+ {get_tuple_element,{x,4},2,{x,1}}.
+ {get_tuple_element,{x,2},2,{x,0}}.
{line,[{location,"couch_key_tree.erl",161}]}.
- {call,2,{f,24}}.
+ {call,2,{f,23}}.
{'%',
{var_info,
{x,0},
[{type,
{t_tuple,2,true,
#{2 => {t_atom,[internal_node,new_branch,new_leaf]}}}}]}}.
- {get_tuple_element,{x,0},0,{y,1}}.
- {get_tuple_element,{x,0},1,{y,0}}.
- {move,{y,2},{x,1}}.
- {move,{y,4},{x,0}}.
- {init_yregs,{list,[{y,2}]}}.
- {move,{y,0},{y,4}}.
- {trim,1,5}.
+ {get_tuple_element,{y,2},1,{x,1}}.
+ {move,{x,0},{y,2}}.
+ {move,{y,0},{x,2}}.
+ {move,{x,1},{x,0}}.
+ {move,{x,2},{x,1}}.
+ {trim,1,3}.
{line,[{location,"couch_key_tree.erl",162}]}.
- {call,2,{f,163}}.
+ {call,2,{f,162}}.
{test_heap,9,1}.
- {put_tuple2,{x,0},{list,[{y,2},{x,0},{y,0}]}}.
- {put_list,{x,0},{y,4},{x,0}}.
- {put_tuple2,{x,0},{list,[{x,0},{y,3}]}}.
- {deallocate,5}.
+ {get_tuple_element,{y,1},0,{x,1}}.
+ {get_tuple_element,{y,1},1,{x,2}}.
+ {put_tuple2,{x,0},{list,[{y,0},{x,0},{x,1}]}}.
+ {put_list,{x,0},{y,2},{x,0}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,2}]}}.
+ {deallocate,3}.
return.
- {label,28}.
- {test,is_lt,{f,29},[{x,9},{x,4}]}.
- {test_heap,5,8}.
- {put_list,{x,7},{x,0},{x,0}}.
+ {label,27}.
+ {test,is_lt,{f,28},[{x,5},{x,7}]}.
+ {test_heap,5,5}.
+ {put_list,{x,4},{x,0},{x,0}}.
{put_tuple2,{x,0},{list,[{x,0},{atom,new_branch}]}}.
return.
- {label,29}.
+ {label,28}.
{allocate,2,4}.
{move,{x,2},{y,0}}.
{move,{x,3},{y,1}}.
{move,{x,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",173}]}.
- {call,2,{f,24}}.
+ {call,2,{f,23}}.
{'%',
{var_info,
{x,0},
@@ -446,17 +438,17 @@
{t_tuple,2,true,
#{2 => {t_atom,[internal_node,new_branch,new_leaf]}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{x,0}}.
{line,[{location,"couch_key_tree.erl",175}]}.
{gc_bif,length,{f,0},2,[{x,1}],{x,2}}.
{gc_bif,length,{f,0},3,[{y,1}],{x,3}}.
- {test,is_eq_exact,{f,30},[{x,2},{x,3}]}.
+ {test,is_eq_exact,{f,29},[{x,2},{x,3}]}.
{test_heap,5,2}.
+ {get_tuple_element,{x,0},1,{x,0}}.
{put_list,{y,0},{x,1},{x,1}}.
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,2}.
return.
- {label,30}.
+ {label,29}.
{test_heap,5,2}.
{put_list,{y,0},{x,1},{x,0}}.
{put_tuple2,{x,0},{list,[{x,0},{atom,new_branch}]}}.
@@ -464,37 +456,36 @@
return.
-{function, find_missing, 2, 32}.
- {label,31}.
+{function, find_missing, 2, 31}.
+ {label,30}.
{line,[{location,"couch_key_tree.erl",181}]}.
{func_info,{atom,couch_key_tree},{atom,find_missing},2}.
- {label,32}.
- {test,is_nil,{f,33},[{x,1}]}.
+ {label,31}.
+ {test,is_nil,{f,32},[{x,1}]}.
{move,nil,{x,0}}.
return.
- {label,33}.
- {test,is_nonempty_list,{f,34},[{x,0}]}.
+ {label,32}.
+ {test,is_nonempty_list,{f,33},[{x,0}]}.
{get_list,{x,0},{x,2},{x,3}}.
- {test,is_tuple,{f,31},[{x,2}]}.
- {test,test_arity,{f,31},[{x,2},2]}.
- {get_tuple_element,{x,2},0,{x,4}}.
- {get_tuple_element,{x,2},1,{x,2}}.
- {test,is_tuple,{f,31},[{x,2}]}.
- {test,test_arity,{f,31},[{x,2},3]}.
+ {test,is_tuple,{f,30},[{x,2}]}.
+ {test,test_arity,{f,30},[{x,2},2]}.
+ {get_tuple_element,{x,2},1,{x,4}}.
+ {test,is_tuple,{f,30},[{x,4}]}.
+ {test,test_arity,{f,30},[{x,4},3]}.
{allocate,4,5}.
- {move,{x,4},{y,0}}.
- {move,{x,2},{y,1}}.
+ {move,{x,4},{y,1}}.
{move,{x,3},{y,2}}.
{move,{x,1},{y,3}}.
+ {get_tuple_element,{x,2},0,{y,0}}.
{move,{x,1},{x,0}}.
- {move,{x,4},{x,1}}.
+ {move,{y,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",186}]}.
- {call,2,{f,264}}.
+ {call,2,{f,263}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{swap,{y,3},{x,0}}.
{move,{y,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",187}]}.
- {call,2,{f,259}}.
+ {call,2,{f,258}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,2,1}.
{put_list,{y,1},nil,{x,1}}.
@@ -504,7 +495,7 @@
{trim,2,2}.
{move,{x,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",188}]}.
- {call,3,{f,36}}.
+ {call,3,{f,35}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{move,{x,0},{x,1}}.
{move,{y,1},{x,0}}.
@@ -513,45 +504,46 @@
{call_ext,2,{extfunc,erlang,'++',2}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,0}}.
- {call_last,2,{f,32},2}.
- {label,34}.
- {test,is_nil,{f,31},[{x,0}]}.
+ {call_last,2,{f,31},2}.
+ {label,33}.
+ {test,is_nil,{f,30},[{x,0}]}.
{move,{x,1},{x,0}}.
return.
-{function, find_missing_simple, 3, 36}.
- {label,35}.
+{function, find_missing_simple, 3, 35}.
+ {label,34}.
{line,[{location,"couch_key_tree.erl",191}]}.
{func_info,{atom,couch_key_tree},{atom,find_missing_simple},3}.
- {label,36}.
+ {label,35}.
{'%',{var_info,{x,2},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nil,{f,37},[{x,2}]}.
+ {test,is_nil,{f,36},[{x,2}]}.
{move,nil,{x,0}}.
return.
- {label,37}.
- {test,is_nonempty_list,{f,38},[{x,1}]}.
+ {label,36}.
+ {test,is_nonempty_list,{f,37},[{x,1}]}.
{get_list,{x,1},{x,3},{x,4}}.
- {test,is_tuple,{f,35},[{x,3}]}.
- {test,test_arity,{f,35},[{x,3},3]}.
+ {test,is_tuple,{f,34},[{x,3}]}.
+ {test,test_arity,{f,34},[{x,3},3]}.
{allocate,5,5}.
+ {move,{x,3},{y,1}}.
{move,{x,4},{y,2}}.
{move,{x,2},{y,3}}.
{move,{x,0},{y,4}}.
- {get_tuple_element,{x,3},0,{y,1}}.
{get_tuple_element,{x,3},2,{y,0}}.
{move,{x,0},{x,1}}.
{move,{x,2},{x,0}}.
{line,[{location,"couch_key_tree.erl",196}]}.
- {call,2,{f,255}}.
+ {call,2,{f,254}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{swap,{y,3},{x,0}}.
{move,{y,4},{x,1}}.
{line,[{location,"couch_key_tree.erl",197}]}.
- {call,2,{f,251}}.
+ {call,2,{f,250}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,5,1}.
- {put_tuple2,{x,1},{list,[{y,4},{y,1}]}}.
+ {get_tuple_element,{y,1},0,{x,1}}.
+ {put_tuple2,{x,1},{list,[{y,4},{x,1}]}}.
{put_list,{x,1},nil,{x,1}}.
{swap,{y,3},{x,0}}.
{init_yregs,{list,[{y,1}]}}.
@@ -563,7 +555,7 @@
{move,{x,1},{x,0}}.
{move,{y,0},{x,1}}.
{trim,2,3}.
- {call,3,{f,36}}.
+ {call,3,{f,35}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{move,{y,0},{x,1}}.
{move,{x,0},{x,2}}.
@@ -571,22 +563,22 @@
{move,{y,1},{y,2}}.
{trim,2,1}.
{line,[{location,"couch_key_tree.erl",201}]}.
- {call,3,{f,36}}.
+ {call,3,{f,35}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,0}}.
{call_ext_last,2,{extfunc,erlang,'++',2},1}.
- {label,38}.
- {test,is_nil,{f,35},[{x,1}]}.
+ {label,37}.
+ {test,is_nil,{f,34},[{x,1}]}.
{move,{x,2},{x,0}}.
return.
-{function, filter_leafs, 4, 40}.
- {label,39}.
+{function, filter_leafs, 4, 39}.
+ {label,38}.
{line,[{location,"couch_key_tree.erl",203}]}.
{func_info,{atom,couch_key_tree},{atom,filter_leafs},4}.
- {label,40}.
+ {label,39}.
{'%',
{var_info,
{x,0},
@@ -604,49 +596,49 @@
#{2 => {t_cons,{t_tuple,2,true,#{}},nil}}},
nil}}]}}.
{'%',{var_info,{x,3},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nonempty_list,{f,42},[{x,0}]}.
+ {test,is_nonempty_list,{f,41},[{x,0}]}.
{allocate_heap,7,3,4}.
{move,{x,3},{y,4}}.
{move,{x,2},{y,5}}.
{move,{x,1},{y,6}}.
{get_list,{x,0},{y,3},{y,2}}.
- {get_tuple_element,{y,3},0,{y,1}}.
{get_tuple_element,{y,3},1,{x,0}}.
{get_hd,{x,0},{x,0}}.
+ {get_tuple_element,{y,3},0,{y,1}}.
{get_tuple_element,{x,0},0,{y,0}}.
{put_tuple2,{x,0},{list,[{y,1},{y,0}]}}.
{line,[{location,"couch_key_tree.erl",206}]}.
{call_ext,2,{extfunc,lists,delete,2}}.
- {test,is_eq,{f,41},[{x,0},{y,6}]}.
+ {test,is_eq,{f,40},[{x,0},{y,6}]}.
{test_heap,2,0}.
{put_list,{y,3},{y,5},{x,2}}.
{move,{y,4},{x,3}}.
{move,{y,6},{x,1}}.
{move,{y,2},{x,0}}.
- {call_last,4,{f,40},7}.
- {label,41}.
+ {call_last,4,{f,39},7}.
+ {label,40}.
{test_heap,5,1}.
{put_tuple2,{x,1},{list,[{y,1},{y,0}]}}.
{put_list,{x,1},{y,4},{x,3}}.
{move,{x,0},{x,1}}.
{move,{y,5},{x,2}}.
{move,{y,2},{x,0}}.
- {call_last,4,{f,40},7}.
- {label,42}.
+ {call_last,4,{f,39},7}.
+ {label,41}.
{test_heap,3,4}.
{put_tuple2,{x,0},{list,[{x,2},{x,3}]}}.
return.
-{function, remove_leafs, 2, 44}.
- {label,43}.
+{function, remove_leafs, 2, 43}.
+ {label,42}.
{line,[{location,"couch_key_tree.erl",217}]}.
{func_info,{atom,couch_key_tree},{atom,remove_leafs},2}.
- {label,44}.
+ {label,43}.
{allocate,1,2}.
{move,{x,1},{y,0}}.
{line,[{location,"couch_key_tree.erl",219}]}.
- {call,1,{f,75}}.
+ {call,1,{f,74}}.
{'%',
{var_info,
{x,0},
@@ -660,7 +652,7 @@
{move,{y,0},{x,1}}.
{init_yregs,{list,[{y,0}]}}.
{line,[{location,"couch_key_tree.erl",222}]}.
- {call,4,{f,40}}.
+ {call,4,{f,39}}.
{'%',
{var_info,
{x,0},
@@ -676,7 +668,7 @@
{get_tuple_element,{x,0},1,{y,0}}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",225}]}.
- {call,1,{f,248}}.
+ {call,1,{f,247}}.
{'%',
{var_info,
{x,0},
@@ -689,7 +681,7 @@
{line,[{location,"couch_key_tree.erl",224}]}.
{call_ext,1,{extfunc,lists,sort,1}}.
{test_heap,{alloc,[{words,0},{floats,0},{funs,1}]},1}.
- {make_fun3,{f,243},0,0,{x,1},{list,[]}}.
+ {make_fun3,{f,242},0,0,{x,1},{list,[]}}.
{'%',{var_info,{x,1},[{fun_type,{t_list,any,nil}}]}}.
{move,{x,0},{x,2}}.
{move,{x,1},{x,0}}.
@@ -702,20 +694,20 @@
return.
-{function, get_key_leafs, 2, 46}.
- {label,45}.
+{function, get_key_leafs, 2, 45}.
+ {label,44}.
{line,[{location,"couch_key_tree.erl",245}]}.
{func_info,{atom,couch_key_tree},{atom,get_key_leafs},2}.
- {label,46}.
+ {label,45}.
{move,nil,{x,2}}.
- {call_only,3,{f,48}}.
+ {call_only,3,{f,47}}.
-{function, get_key_leafs, 3, 48}.
- {label,47}.
+{function, get_key_leafs, 3, 47}.
+ {label,46}.
{line,[{location,"couch_key_tree.erl",248}]}.
{func_info,{atom,couch_key_tree},{atom,get_key_leafs},3}.
- {label,48}.
+ {label,47}.
{'%',
{var_info,
{x,2},
@@ -724,26 +716,26 @@
{t_tuple,2,true,
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,any}}}}},
nil}}]}}.
- {test,is_nil,{f,49},[{x,1}]}.
+ {test,is_nil,{f,48},[{x,1}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[{x,2},nil]}}.
return.
- {label,49}.
- {test,is_nonempty_list,{f,50},[{x,0}]}.
+ {label,48}.
+ {test,is_nonempty_list,{f,49},[{x,0}]}.
{get_list,{x,0},{x,3},{x,4}}.
- {test,is_tuple,{f,47},[{x,3}]}.
- {test,test_arity,{f,47},[{x,3},2]}.
- {allocate_heap,3,2,5}.
- {init_yregs,{list,[{y,0}]}}.
- {move,{x,4},{y,1}}.
- {move,{x,2},{y,2}}.
- {get_tuple_element,{x,3},0,{x,0}}.
- {get_tuple_element,{x,3},1,{x,2}}.
- {put_list,{x,2},nil,{x,2}}.
+ {test,is_tuple,{f,46},[{x,3}]}.
+ {test,test_arity,{f,46},[{x,3},2]}.
+ {allocate_heap,2,2,5}.
+ {move,{x,4},{y,0}}.
+ {move,{x,2},{y,1}}.
+ {get_tuple_element,{x,3},1,{x,0}}.
+ {put_list,{x,0},nil,{x,0}}.
+ {get_tuple_element,{x,3},0,{x,2}}.
{move,nil,{x,3}}.
{swap,{x,1},{x,2}}.
+ {swap,{x,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",253}]}.
- {call,4,{f,52}}.
+ {call,4,{f,51}}.
{'%',
{var_info,
{x,0},
@@ -755,61 +747,61 @@
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,any}}}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,0}}.
+ {move,{y,1},{x,2}}.
+ {move,{x,0},{y,1}}.
{move,{x,1},{x,0}}.
- {move,{y,2},{x,1}}.
- {init_yregs,{list,[{y,2}]}}.
+ {move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",254}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
- {move,{y,0},{x,1}}.
+ {get_tuple_element,{y,1},1,{x,1}}.
{move,{x,0},{x,2}}.
- {move,{y,1},{x,0}}.
- {call_last,3,{f,48},3}.
- {label,50}.
- {test,is_nil,{f,47},[{x,0}]}.
+ {move,{y,0},{x,0}}.
+ {call_last,3,{f,47},2}.
+ {label,49}.
+ {test,is_nil,{f,46},[{x,0}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[{x,2},{x,1}]}}.
return.
-{function, get_key_leafs_simple, 4, 52}.
- {label,51}.
+{function, get_key_leafs_simple, 4, 51}.
+ {label,50}.
{line,[{location,"couch_key_tree.erl",256}]}.
{func_info,{atom,couch_key_tree},{atom,get_key_leafs_simple},4}.
- {label,52}.
+ {label,51}.
{'%',{var_info,{x,3},[{type,{t_list,any,nil}}]}}.
- {test,is_nil,{f,53},[{x,2}]}.
+ {test,is_nil,{f,52},[{x,2}]}.
{move,{literal,{[],[]}},{x,0}}.
return.
- {label,53}.
- {test,is_nonempty_list,{f,55},[{x,1}]}.
+ {label,52}.
+ {test,is_nonempty_list,{f,54},[{x,1}]}.
{get_list,{x,1},{x,4},{x,5}}.
- {test,is_tuple,{f,51},[{x,4}]}.
- {test,test_arity,{f,51},[{x,4},3]}.
- {allocate_heap,7,3,6}.
- {move,{x,4},{y,2}}.
- {move,{x,5},{y,3}}.
- {move,{x,3},{y,4}}.
- {move,{x,2},{y,5}}.
- {move,{x,0},{y,6}}.
- {get_tuple_element,{x,4},0,{y,1}}.
- {get_tuple_element,{x,4},2,{y,0}}.
- {put_tuple2,{x,0},{list,[{x,0},{y,1}]}}.
+ {test,is_tuple,{f,50},[{x,4}]}.
+ {test,test_arity,{f,50},[{x,4},3]}.
+ {allocate_heap,6,3,6}.
+ {move,{x,4},{y,1}}.
+ {move,{x,5},{y,2}}.
+ {move,{x,3},{y,3}}.
+ {move,{x,2},{y,4}}.
+ {move,{x,0},{y,5}}.
+ {get_tuple_element,{x,4},0,{y,0}}.
+ {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
{move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",261}]}.
{call_ext,2,{extfunc,lists,delete,2}}.
- {test,is_eq_exact,{f,54},[{x,0},{y,5}]}.
+ {test,is_eq_exact,{f,53},[{x,0},{y,4}]}.
{test_heap,2,0}.
- {put_list,{y,1},{y,4},{x,0}}.
+ {put_list,{y,0},{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",265}]}.
- {gc_bif,'+',{f,0},1,[{y,6},{integer,1}],{x,1}}.
- {move,{y,5},{x,2}}.
+ {gc_bif,'+',{f,0},1,[{y,5},{integer,1}],{x,1}}.
+ {get_tuple_element,{y,1},2,{x,2}}.
{move,{x,0},{x,3}}.
{move,{x,1},{x,0}}.
- {move,{y,0},{x,1}}.
- {init_yregs,{list,[{y,5}]}}.
- {trim,3,4}.
- {call,4,{f,52}}.
+ {move,{x,2},{x,1}}.
+ {move,{y,4},{x,2}}.
+ {init_yregs,{list,[{y,4}]}}.
+ {trim,2,4}.
+ {call,4,{f,51}}.
{'%',
{var_info,
{x,0},
@@ -828,7 +820,7 @@
{init_yregs,{list,[{y,3}]}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",266}]}.
- {call,4,{f,52}}.
+ {call,4,{f,51}}.
{'%',
{var_info,
{x,0},
@@ -840,25 +832,26 @@
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,any}}}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,1}}.
+ {move,{x,0},{y,1}}.
{move,{y,0},{x,0}}.
{trim,1,1}.
{line,[{location,"couch_key_tree.erl",267}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,1}]}}.
{deallocate,1}.
return.
- {label,54}.
+ {label,53}.
{test_heap,2,1}.
- {put_list,{y,2},nil,{x,1}}.
+ {put_list,{y,1},nil,{x,1}}.
{move,{x,0},{x,2}}.
- {move,{y,4},{x,3}}.
- {init_yregs,{list,[{y,5}]}}.
- {trim,3,4}.
+ {move,{y,3},{x,3}}.
+ {init_yregs,{list,[{y,4}]}}.
+ {trim,2,4}.
{move,{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",273}]}.
- {call,4,{f,57}}.
+ {call,4,{f,56}}.
{'%',
{var_info,
{x,0},
@@ -877,7 +870,7 @@
{init_yregs,{list,[{y,3}]}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",274}]}.
- {call,4,{f,52}}.
+ {call,4,{f,51}}.
{'%',
{var_info,
{x,0},
@@ -889,36 +882,37 @@
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,any}}}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,1}}.
+ {move,{x,0},{y,1}}.
{move,{y,0},{x,0}}.
{trim,1,1}.
{line,[{location,"couch_key_tree.erl",275}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,1}]}}.
{deallocate,1}.
return.
- {label,55}.
- {test,is_nil,{f,51},[{x,1}]}.
+ {label,54}.
+ {test,is_nil,{f,50},[{x,1}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[nil,{x,2}]}}.
return.
-{function, get_key_leafs_simple2, 4, 57}.
- {label,56}.
+{function, get_key_leafs_simple2, 4, 56}.
+ {label,55}.
{line,[{location,"couch_key_tree.erl",278}]}.
{func_info,{atom,couch_key_tree},{atom,get_key_leafs_simple2},4}.
- {label,57}.
+ {label,56}.
{'%',{var_info,{x,3},[{type,{t_list,any,nil}}]}}.
- {test,is_nonempty_list,{f,59},[{x,1}]}.
+ {test,is_nonempty_list,{f,58},[{x,1}]}.
{get_list,{x,1},{x,4},{x,5}}.
- {test,is_tuple,{f,56},[{x,4}]}.
- {test,test_arity,{f,56},[{x,4},3]}.
+ {test,is_tuple,{f,55},[{x,4}]}.
+ {test,test_arity,{f,55},[{x,4},3]}.
{get_tuple_element,{x,4},0,{x,1}}.
{get_tuple_element,{x,4},1,{x,6}}.
{get_tuple_element,{x,4},2,{x,4}}.
- {test,is_nil,{f,58},[{x,4}]}.
+ {test,is_nil,{f,57},[{x,4}]}.
{allocate_heap,5,3,7}.
{move,{x,1},{y,0}}.
{move,{x,6},{y,1}}.
@@ -936,7 +930,7 @@
{trim,1,4}.
{move,{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",286}]}.
- {call,4,{f,57}}.
+ {call,4,{f,56}}.
{'%',
{var_info,
{x,0},
@@ -957,7 +951,7 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,4}.
return.
- {label,58}.
+ {label,57}.
{allocate_heap,5,3,6}.
{move,{x,1},{y,0}}.
{move,{x,4},{y,1}}.
@@ -977,7 +971,7 @@
{swap,{x,0},{x,2}}.
{init_yregs,{list,[{y,1}]}}.
{trim,1,4}.
- {call,4,{f,57}}.
+ {call,4,{f,56}}.
{'%',
{var_info,
{x,0},
@@ -995,7 +989,7 @@
{move,{y,3},{x,0}}.
{init_yregs,{list,[{y,1},{y,2},{y,3}]}}.
{line,[{location,"couch_key_tree.erl",294}]}.
- {call,4,{f,57}}.
+ {call,4,{f,56}}.
{'%',
{var_info,
{x,0},
@@ -1007,31 +1001,32 @@
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,any}}}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,3}}.
+ {move,{x,0},{y,3}}.
{move,{y,0},{x,0}}.
{trim,3,1}.
{line,[{location,"couch_key_tree.erl",295}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,1}]}}.
{deallocate,1}.
return.
- {label,59}.
- {test,is_nil,{f,56},[{x,1}]}.
+ {label,58}.
+ {test,is_nil,{f,55},[{x,1}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[nil,{x,2}]}}.
return.
-{function, get, 2, 61}.
- {label,60}.
+{function, get, 2, 60}.
+ {label,59}.
{line,[{location,"couch_key_tree.erl",297}]}.
{func_info,{atom,couch_key_tree},{atom,get},2}.
- {label,61}.
+ {label,60}.
{allocate,1,2}.
{init_yregs,{list,[{y,0}]}}.
{line,[{location,"couch_key_tree.erl",298}]}.
- {call,2,{f,63}}.
+ {call,2,{f,62}}.
{'%',
{var_info,
{x,0},
@@ -1046,7 +1041,7 @@
{get_tuple_element,{x,0},1,{y,0}}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",301}]}.
- {call,1,{f,235}}.
+ {call,1,{f,234}}.
{'%',
{var_info,
{x,0},
@@ -1061,20 +1056,20 @@
return.
-{function, get_full_key_paths, 2, 63}.
- {label,62}.
+{function, get_full_key_paths, 2, 62}.
+ {label,61}.
{line,[{location,"couch_key_tree.erl",305}]}.
{func_info,{atom,couch_key_tree},{atom,get_full_key_paths},2}.
- {label,63}.
+ {label,62}.
{move,nil,{x,2}}.
- {call_only,3,{f,65}}.
+ {call_only,3,{f,64}}.
-{function, get_full_key_paths, 3, 65}.
- {label,64}.
+{function, get_full_key_paths, 3, 64}.
+ {label,63}.
{line,[{location,"couch_key_tree.erl",308}]}.
{func_info,{atom,couch_key_tree},{atom,get_full_key_paths},3}.
- {label,65}.
+ {label,64}.
{'%',
{var_info,
{x,2},
@@ -1083,26 +1078,26 @@
{t_tuple,2,true,
#{2 => {t_cons,{t_tuple,0,false,#{}},nil}}},
nil}}]}}.
- {test,is_nil,{f,66},[{x,1}]}.
+ {test,is_nil,{f,65},[{x,1}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[{x,2},nil]}}.
return.
- {label,66}.
- {test,is_nonempty_list,{f,67},[{x,0}]}.
+ {label,65}.
+ {test,is_nonempty_list,{f,66},[{x,0}]}.
{get_list,{x,0},{x,3},{x,4}}.
- {test,is_tuple,{f,64},[{x,3}]}.
- {test,test_arity,{f,64},[{x,3},2]}.
- {allocate_heap,3,2,5}.
- {init_yregs,{list,[{y,0}]}}.
- {move,{x,4},{y,1}}.
- {move,{x,2},{y,2}}.
- {get_tuple_element,{x,3},0,{x,0}}.
- {get_tuple_element,{x,3},1,{x,2}}.
- {put_list,{x,2},nil,{x,2}}.
- {move,nil,{x,3}}.
- {swap,{x,1},{x,2}}.
+ {test,is_tuple,{f,63},[{x,3}]}.
+ {test,test_arity,{f,63},[{x,3},2]}.
+ {allocate_heap,2,2,5}.
+ {move,{x,4},{y,0}}.
+ {move,{x,2},{y,1}}.
+ {get_tuple_element,{x,3},1,{x,0}}.
+ {put_list,{x,0},nil,{x,0}}.
+ {get_tuple_element,{x,3},0,{x,2}}.
+ {move,nil,{x,3}}.
+ {swap,{x,1},{x,2}}.
+ {swap,{x,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",313}]}.
- {call,4,{f,69}}.
+ {call,4,{f,68}}.
{'%',
{var_info,
{x,0},
@@ -1114,75 +1109,75 @@
#{2 => {t_cons,{t_tuple,0,false,#{}},nil}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,0}}.
+ {move,{y,1},{x,2}}.
+ {move,{x,0},{y,1}}.
{move,{x,1},{x,0}}.
- {move,{y,2},{x,1}}.
- {init_yregs,{list,[{y,2}]}}.
+ {move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",314}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
- {move,{y,0},{x,1}}.
+ {get_tuple_element,{y,1},1,{x,1}}.
{move,{x,0},{x,2}}.
- {move,{y,1},{x,0}}.
- {call_last,3,{f,65},3}.
- {label,67}.
- {test,is_nil,{f,64},[{x,0}]}.
+ {move,{y,0},{x,0}}.
+ {call_last,3,{f,64},2}.
+ {label,66}.
+ {test,is_nil,{f,63},[{x,0}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[{x,2},{x,1}]}}.
return.
-{function, get_full_key_paths, 4, 69}.
- {label,68}.
+{function, get_full_key_paths, 4, 68}.
+ {label,67}.
{line,[{location,"couch_key_tree.erl",316}]}.
{func_info,{atom,couch_key_tree},{atom,get_full_key_paths},4}.
- {label,69}.
+ {label,68}.
{'%',{var_info,{x,3},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nil,{f,70},[{x,2}]}.
+ {test,is_nil,{f,69},[{x,2}]}.
{move,{literal,{[],[]}},{x,0}}.
return.
- {label,70}.
- {test,is_nonempty_list,{f,73},[{x,1}]}.
+ {label,69}.
+ {test,is_nonempty_list,{f,72},[{x,1}]}.
{get_list,{x,1},{x,4},{x,5}}.
- {test,is_tuple,{f,68},[{x,4}]}.
- {test,test_arity,{f,68},[{x,4},3]}.
- {allocate_heap,7,5,6}.
- {move,{x,5},{y,3}}.
- {move,{x,3},{y,4}}.
- {move,{x,2},{y,5}}.
- {move,{x,0},{y,6}}.
- {get_tuple_element,{x,4},0,{y,2}}.
- {get_tuple_element,{x,4},1,{y,1}}.
- {get_tuple_element,{x,4},2,{y,0}}.
- {put_tuple2,{x,0},{list,[{x,0},{y,2}]}}.
+ {test,is_tuple,{f,67},[{x,4}]}.
+ {test,test_arity,{f,67},[{x,4},3]}.
+ {allocate_heap,6,5,6}.
+ {move,{x,4},{y,1}}.
+ {move,{x,5},{y,2}}.
+ {move,{x,3},{y,3}}.
+ {move,{x,2},{y,4}}.
+ {move,{x,0},{y,5}}.
+ {get_tuple_element,{x,4},0,{y,0}}.
+ {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
{put_list,{x,0},nil,{x,1}}.
{move,{x,2},{x,0}}.
{line,[{location,"couch_key_tree.erl",321}]}.
{call_ext,2,{extfunc,erlang,'--',2}}.
{line,[{location,"couch_key_tree.erl",323}]}.
{gc_bif,length,{f,0},1,[{x,0}],{x,1}}.
- {gc_bif,length,{f,0},2,[{y,5}],{x,2}}.
- {test,is_eq_exact,{f,71},[{x,1},{x,2}]}.
- {move,nil,{y,5}}.
- {jump,{f,72}}.
- {label,71}.
- {test_heap,10,1}.
- {put_tuple2,{x,1},{list,[{y,2},{y,1}]}}.
- {put_list,{x,1},{y,4},{x,1}}.
- {put_tuple2,{x,1},{list,[{y,6},{x,1}]}}.
+ {gc_bif,length,{f,0},2,[{y,4}],{x,2}}.
+ {get_tuple_element,{y,1},1,{x,3}}.
+ {test,is_eq_exact,{f,70},[{x,1},{x,2}]}.
+ {move,nil,{y,4}}.
+ {jump,{f,71}}.
+ {label,70}.
+ {test_heap,10,4}.
+ {put_tuple2,{x,1},{list,[{y,0},{x,3}]}}.
+ {put_list,{x,1},{y,3},{x,1}}.
+ {put_tuple2,{x,1},{list,[{y,5},{x,1}]}}.
{put_list,{x,1},nil,{x,1}}.
- {move,{x,1},{y,5}}.
- {label,72}.
+ {move,{x,1},{y,4}}.
+ {label,71}.
{line,[{location,"couch_key_tree.erl",331}]}.
- {gc_bif,'+',{f,0},1,[{y,6},{integer,1}],{x,1}}.
- {test_heap,5,2}.
- {put_tuple2,{x,2},{list,[{y,2},{y,1}]}}.
- {put_list,{x,2},{y,4},{x,3}}.
- {move,{x,0},{x,2}}.
- {move,{x,1},{x,0}}.
- {move,{y,0},{x,1}}.
- {init_yregs,{list,[{y,2}]}}.
- {trim,2,5}.
- {call,4,{f,69}}.
+ {gc_bif,'+',{f,0},4,[{y,5},{integer,1}],{x,1}}.
+ {test_heap,5,4}.
+ {put_tuple2,{x,2},{list,[{y,0},{x,3}]}}.
+ {put_list,{x,2},{y,3},{x,3}}.
+ {get_tuple_element,{y,1},2,{x,2}}.
+ {swap,{x,2},{x,1}}.
+ {swap,{x,0},{x,2}}.
+ {init_yregs,{list,[{y,1}]}}.
+ {trim,1,5}.
+ {call,4,{f,68}}.
{'%',
{var_info,
{x,0},
@@ -1200,7 +1195,7 @@
{move,{y,4},{x,0}}.
{init_yregs,{list,[{y,1},{y,2},{y,4}]}}.
{line,[{location,"couch_key_tree.erl",334}]}.
- {call,4,{f,69}}.
+ {call,4,{f,68}}.
{'%',
{var_info,
{x,0},
@@ -1212,7 +1207,7 @@
#{2 => {t_cons,{t_tuple,0,false,#{}},nil}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{y,4}}.
+ {move,{x,0},{y,4}}.
{move,{y,0},{x,0}}.
{trim,3,2}.
{line,[{location,"couch_key_tree.erl",335}]}.
@@ -1222,30 +1217,31 @@
{trim,1,1}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,0},{x,1}]}}.
{deallocate,1}.
return.
- {label,73}.
- {test,is_nil,{f,68},[{x,1}]}.
+ {label,72}.
+ {test,is_nil,{f,67},[{x,1}]}.
{test_heap,3,3}.
{put_tuple2,{x,0},{list,[nil,{x,2}]}}.
return.
-{function, get_all_leafs_full, 1, 75}.
- {label,74}.
+{function, get_all_leafs_full, 1, 74}.
+ {label,73}.
{line,[{location,"couch_key_tree.erl",337}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs_full},1}.
- {label,75}.
+ {label,74}.
{move,nil,{x,1}}.
- {call_only,2,{f,77}}.
+ {call_only,2,{f,76}}.
-{function, get_all_leafs_full, 2, 77}.
- {label,76}.
+{function, get_all_leafs_full, 2, 76}.
+ {label,75}.
{line,[{location,"couch_key_tree.erl",340}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs_full},2}.
- {label,77}.
+ {label,76}.
{'%',
{var_info,
{x,1},
@@ -1254,19 +1250,19 @@
{t_tuple,2,true,
#{2 => {t_cons,{t_tuple,2,true,#{}},nil}}},
nil}}]}}.
- {test,is_nonempty_list,{f,78},[{x,0}]}.
+ {test,is_nonempty_list,{f,77},[{x,0}]}.
{get_list,{x,0},{x,2},{x,3}}.
- {test,is_tuple,{f,76},[{x,2}]}.
- {test,test_arity,{f,76},[{x,2},2]}.
+ {test,is_tuple,{f,75},[{x,2}]}.
+ {test,test_arity,{f,75},[{x,2},2]}.
{allocate_heap,2,2,4}.
{move,{x,3},{y,0}}.
{move,{x,1},{y,1}}.
+ {get_tuple_element,{x,2},1,{x,0}}.
+ {put_list,{x,0},nil,{x,1}}.
{get_tuple_element,{x,2},0,{x,0}}.
- {get_tuple_element,{x,2},1,{x,1}}.
- {put_list,{x,1},nil,{x,1}}.
{move,nil,{x,2}}.
{line,[{location,"couch_key_tree.erl",343}]}.
- {call,3,{f,80}}.
+ {call,3,{f,79}}.
{'%',
{var_info,
{x,0},
@@ -1280,27 +1276,27 @@
{call_ext,2,{extfunc,erlang,'++',2}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,0}}.
- {call_last,2,{f,77},2}.
- {label,78}.
- {test,is_nil,{f,76},[{x,0}]}.
+ {call_last,2,{f,76},2}.
+ {label,77}.
+ {test,is_nil,{f,75},[{x,0}]}.
{move,{x,1},{x,0}}.
return.
-{function, get_all_leafs_full_simple, 3, 80}.
- {label,79}.
+{function, get_all_leafs_full_simple, 3, 79}.
+ {label,78}.
{line,[{location,"couch_key_tree.erl",345}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs_full_simple},3}.
- {label,80}.
+ {label,79}.
{'%',{var_info,{x,2},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nonempty_list,{f,82},[{x,1}]}.
+ {test,is_nonempty_list,{f,81},[{x,1}]}.
{get_list,{x,1},{x,3},{x,4}}.
- {test,is_tuple,{f,79},[{x,3}]}.
- {test,test_arity,{f,79},[{x,3},3]}.
+ {test,is_tuple,{f,78},[{x,3}]}.
+ {test,test_arity,{f,78},[{x,3},3]}.
{get_tuple_element,{x,3},0,{x,1}}.
{get_tuple_element,{x,3},1,{x,5}}.
{get_tuple_element,{x,3},2,{x,3}}.
- {test,is_nil,{f,81},[{x,3}]}.
+ {test,is_nil,{f,80},[{x,3}]}.
{allocate,4,6}.
{move,{x,1},{y,0}}.
{move,{x,5},{y,1}}.
@@ -1308,7 +1304,7 @@
{move,{x,0},{y,3}}.
{move,{x,4},{x,1}}.
{line,[{location,"couch_key_tree.erl",348}]}.
- {call,3,{f,80}}.
+ {call,3,{f,79}}.
{'%',
{var_info,
{x,0},
@@ -1324,7 +1320,7 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,4}.
return.
- {label,81}.
+ {label,80}.
{line,[{location,"couch_key_tree.erl",350}]}.
{gc_bif,'+',{f,0},6,[{x,0},{integer,1}],{x,6}}.
{allocate_heap,3,5,7}.
@@ -1335,7 +1331,7 @@
{put_list,{x,0},{x,2},{x,2}}.
{move,{x,3},{x,1}}.
{move,{x,6},{x,0}}.
- {call,3,{f,80}}.
+ {call,3,{f,79}}.
{'%',
{var_info,
{x,0},
@@ -1351,7 +1347,7 @@
{trim,2,1}.
{move,{x,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",351}]}.
- {call,3,{f,80}}.
+ {call,3,{f,79}}.
{'%',
{var_info,
{x,0},
@@ -1364,26 +1360,26 @@
{move,{y,0},{x,0}}.
{line,[{location,"couch_key_tree.erl",350}]}.
{call_ext_last,2,{extfunc,erlang,'++',2},1}.
- {label,82}.
- {test,is_nil,{f,79},[{x,1}]}.
+ {label,81}.
+ {test,is_nil,{f,78},[{x,1}]}.
{move,nil,{x,0}}.
return.
-{function, get_all_leafs, 1, 84}.
- {label,83}.
+{function, get_all_leafs, 1, 83}.
+ {label,82}.
{line,[{location,"couch_key_tree.erl",353}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs},1}.
- {label,84}.
+ {label,83}.
{move,nil,{x,1}}.
- {call_only,2,{f,86}}.
+ {call_only,2,{f,85}}.
-{function, get_all_leafs, 2, 86}.
- {label,85}.
+{function, get_all_leafs, 2, 85}.
+ {label,84}.
{line,[{location,"couch_key_tree.erl",356}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs},2}.
- {label,86}.
+ {label,85}.
{'%',
{var_info,
{x,1},
@@ -1392,19 +1388,19 @@
{t_tuple,2,true,
#{2 => {t_tuple,2,true,#{2 => {t_cons,any,nil}}}}},
nil}}]}}.
- {test,is_nonempty_list,{f,87},[{x,0}]}.
+ {test,is_nonempty_list,{f,86},[{x,0}]}.
{get_list,{x,0},{x,2},{x,3}}.
- {test,is_tuple,{f,85},[{x,2}]}.
- {test,test_arity,{f,85},[{x,2},2]}.
+ {test,is_tuple,{f,84},[{x,2}]}.
+ {test,test_arity,{f,84},[{x,2},2]}.
{allocate_heap,2,2,4}.
{move,{x,3},{y,0}}.
{move,{x,1},{y,1}}.
+ {get_tuple_element,{x,2},1,{x,0}}.
+ {put_list,{x,0},nil,{x,1}}.
{get_tuple_element,{x,2},0,{x,0}}.
- {get_tuple_element,{x,2},1,{x,1}}.
- {put_list,{x,1},nil,{x,1}}.
{move,nil,{x,2}}.
{line,[{location,"couch_key_tree.erl",359}]}.
- {call,3,{f,89}}.
+ {call,3,{f,88}}.
{'%',
{var_info,
{x,0},
@@ -1418,27 +1414,27 @@
{call_ext,2,{extfunc,erlang,'++',2}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,0}}.
- {call_last,2,{f,86},2}.
- {label,87}.
- {test,is_nil,{f,85},[{x,0}]}.
+ {call_last,2,{f,85},2}.
+ {label,86}.
+ {test,is_nil,{f,84},[{x,0}]}.
{move,{x,1},{x,0}}.
return.
-{function, get_all_leafs_simple, 3, 89}.
- {label,88}.
+{function, get_all_leafs_simple, 3, 88}.
+ {label,87}.
{line,[{location,"couch_key_tree.erl",361}]}.
{func_info,{atom,couch_key_tree},{atom,get_all_leafs_simple},3}.
- {label,89}.
+ {label,88}.
{'%',{var_info,{x,2},[{type,{t_list,any,nil}}]}}.
- {test,is_nonempty_list,{f,91},[{x,1}]}.
+ {test,is_nonempty_list,{f,90},[{x,1}]}.
{get_list,{x,1},{x,3},{x,4}}.
- {test,is_tuple,{f,88},[{x,3}]}.
- {test,test_arity,{f,88},[{x,3},3]}.
+ {test,is_tuple,{f,87},[{x,3}]}.
+ {test,test_arity,{f,87},[{x,3},3]}.
{get_tuple_element,{x,3},0,{x,1}}.
{get_tuple_element,{x,3},1,{x,5}}.
{get_tuple_element,{x,3},2,{x,3}}.
- {test,is_nil,{f,90},[{x,3}]}.
+ {test,is_nil,{f,89},[{x,3}]}.
{allocate,4,6}.
{move,{x,1},{y,0}}.
{move,{x,5},{y,1}}.
@@ -1446,7 +1442,7 @@
{move,{x,0},{y,3}}.
{move,{x,4},{x,1}}.
{line,[{location,"couch_key_tree.erl",364}]}.
- {call,3,{f,89}}.
+ {call,3,{f,88}}.
{'%',
{var_info,
{x,0},
@@ -1462,7 +1458,7 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,4}.
return.
- {label,90}.
+ {label,89}.
{line,[{location,"couch_key_tree.erl",366}]}.
{gc_bif,'+',{f,0},5,[{x,0},{integer,1}],{x,5}}.
{allocate_heap,3,2,6}.
@@ -1472,7 +1468,7 @@
{put_list,{x,1},{x,2},{x,2}}.
{move,{x,3},{x,1}}.
{move,{x,5},{x,0}}.
- {call,3,{f,89}}.
+ {call,3,{f,88}}.
{'%',
{var_info,
{x,0},
@@ -1488,7 +1484,7 @@
{trim,2,1}.
{move,{x,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",367}]}.
- {call,3,{f,89}}.
+ {call,3,{f,88}}.
{'%',
{var_info,
{x,0},
@@ -1501,131 +1497,131 @@
{move,{y,0},{x,0}}.
{line,[{location,"couch_key_tree.erl",366}]}.
{call_ext_last,2,{extfunc,erlang,'++',2},1}.
- {label,91}.
- {test,is_nil,{f,88},[{x,1}]}.
+ {label,90}.
+ {test,is_nil,{f,87},[{x,1}]}.
{move,nil,{x,0}}.
return.
-{function, count_leafs, 1, 93}.
- {label,92}.
+{function, count_leafs, 1, 92}.
+ {label,91}.
{line,[{location,"couch_key_tree.erl",369}]}.
{func_info,{atom,couch_key_tree},{atom,count_leafs},1}.
- {label,93}.
- {test,is_nonempty_list,{f,94},[{x,0}]}.
+ {label,92}.
+ {test,is_nonempty_list,{f,93},[{x,0}]}.
{get_list,{x,0},{x,1},{x,2}}.
- {test,is_tuple,{f,92},[{x,1}]}.
- {test,test_arity,{f,92},[{x,1},2]}.
+ {test,is_tuple,{f,91},[{x,1}]}.
+ {test,test_arity,{f,91},[{x,1},2]}.
{allocate_heap,1,2,3}.
{move,{x,2},{y,0}}.
{get_tuple_element,{x,1},1,{x,0}}.
{put_list,{x,0},nil,{x,0}}.
{line,[{location,"couch_key_tree.erl",372}]}.
- {call,1,{f,96}}.
+ {call,1,{f,95}}.
{'%',{var_info,{x,0},[{type,{t_integer,any}}]}}.
{swap,{y,0},{x,0}}.
- {call,1,{f,93}}.
+ {call,1,{f,92}}.
{'%',{var_info,{x,0},[{type,{t_integer,any}}]}}.
{gc_bif,'+',{f,0},1,[{y,0},{x,0}],{x,0}}.
{deallocate,1}.
return.
- {label,94}.
- {test,is_nil,{f,92},[{x,0}]}.
+ {label,93}.
+ {test,is_nil,{f,91},[{x,0}]}.
{move,{integer,0},{x,0}}.
return.
-{function, count_leafs_simple, 1, 96}.
- {label,95}.
+{function, count_leafs_simple, 1, 95}.
+ {label,94}.
{line,[{location,"couch_key_tree.erl",374}]}.
{func_info,{atom,couch_key_tree},{atom,count_leafs_simple},1}.
- {label,96}.
- {test,is_nonempty_list,{f,98},[{x,0}]}.
+ {label,95}.
+ {test,is_nonempty_list,{f,97},[{x,0}]}.
{get_list,{x,0},{x,1},{x,2}}.
- {test,is_tuple,{f,95},[{x,1}]}.
- {test,test_arity,{f,95},[{x,1},3]}.
+ {test,is_tuple,{f,94},[{x,1}]}.
+ {test,test_arity,{f,94},[{x,1},3]}.
{get_tuple_element,{x,1},2,{x,0}}.
- {test,is_nil,{f,97},[{x,0}]}.
+ {test,is_nil,{f,96},[{x,0}]}.
{allocate,0,3}.
{move,{x,2},{x,0}}.
{line,[{location,"couch_key_tree.erl",377}]}.
- {call,1,{f,96}}.
+ {call,1,{f,95}}.
{'%',{var_info,{x,0},[{type,{t_integer,any}}]}}.
{gc_bif,'+',{f,0},1,[{x,0},{integer,1}],{x,0}}.
{deallocate,0}.
return.
- {label,97}.
+ {label,96}.
{allocate,1,3}.
{move,{x,2},{y,0}}.
{line,[{location,"couch_key_tree.erl",379}]}.
- {call,1,{f,96}}.
+ {call,1,{f,95}}.
{'%',{var_info,{x,0},[{type,{t_integer,any}}]}}.
{swap,{y,0},{x,0}}.
- {call,1,{f,96}}.
+ {call,1,{f,95}}.
{'%',{var_info,{x,0},[{type,{t_integer,any}}]}}.
{gc_bif,'+',{f,0},1,[{y,0},{x,0}],{x,0}}.
{deallocate,1}.
return.
- {label,98}.
- {test,is_nil,{f,95},[{x,0}]}.
+ {label,97}.
+ {test,is_nil,{f,94},[{x,0}]}.
{move,{integer,0},{x,0}}.
return.
-{function, fold, 3, 100}.
- {label,99}.
+{function, fold, 3, 99}.
+ {label,98}.
{line,[{location,"couch_key_tree.erl",381}]}.
{func_info,{atom,couch_key_tree},{atom,fold},3}.
- {label,100}.
- {test,is_nonempty_list,{f,101},[{x,2}]}.
+ {label,99}.
+ {test,is_nonempty_list,{f,100},[{x,2}]}.
{get_list,{x,2},{x,3},{x,4}}.
- {test,is_tuple,{f,99},[{x,3}]}.
- {test,test_arity,{f,99},[{x,3},2]}.
+ {test,is_tuple,{f,98},[{x,3}]}.
+ {test,test_arity,{f,98},[{x,3},2]}.
{allocate_heap,2,2,5}.
{move,{x,4},{y,0}}.
{move,{x,0},{y,1}}.
- {get_tuple_element,{x,3},0,{x,2}}.
{get_tuple_element,{x,3},1,{x,0}}.
- {put_list,{x,0},nil,{x,3}}.
+ {put_list,{x,0},nil,{x,0}}.
+ {get_tuple_element,{x,3},0,{x,2}}.
+ {move,{x,0},{x,3}}.
{move,{y,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",384}]}.
- {call,4,{f,103}}.
+ {call,4,{f,102}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,2}}.
{move,{y,1},{x,0}}.
- {call_last,3,{f,100},2}.
- {label,101}.
- {test,is_nil,{f,99},[{x,2}]}.
+ {call_last,3,{f,99},2}.
+ {label,100}.
+ {test,is_nil,{f,98},[{x,2}]}.
{move,{x,1},{x,0}}.
return.
-{function, fold_simple, 4, 103}.
- {label,102}.
+{function, fold_simple, 4, 102}.
+ {label,101}.
{line,[{location,"couch_key_tree.erl",387}]}.
{func_info,{atom,couch_key_tree},{atom,fold_simple},4}.
- {label,103}.
- {test,is_nonempty_list,{f,106},[{x,3}]}.
+ {label,102}.
+ {test,is_nonempty_list,{f,105},[{x,3}]}.
{get_list,{x,3},{x,4},{x,5}}.
- {test,is_tuple,{f,102},[{x,4}]}.
- {test,test_arity,{f,102},[{x,4},3]}.
+ {test,is_tuple,{f,101},[{x,4}]}.
+ {test,test_arity,{f,101},[{x,4},3]}.
{allocate,4,6}.
{move,{x,5},{y,1}}.
{move,{x,2},{y,2}}.
{move,{x,0},{y,3}}.
- {get_tuple_element,{x,4},0,{x,0}}.
- {get_tuple_element,{x,4},1,{x,2}}.
{get_tuple_element,{x,4},2,{y,0}}.
- {test,is_nil,{f,104},[{y,0}]}.
- {move,{atom,leaf},{x,3}}.
- {jump,{f,105}}.
+ {test,is_nil,{f,103},[{y,0}]}.
+ {move,{atom,leaf},{x,2}}.
+ {jump,{f,104}}.
+ {label,103}.
+ {move,{atom,branch},{x,2}}.
{label,104}.
- {move,{atom,branch},{x,3}}.
- {label,105}.
- {test_heap,3,4}.
+ {test_heap,3,5}.
+ {get_tuple_element,{x,4},0,{x,0}}.
{put_tuple2,{x,0},{list,[{y,2},{x,0}]}}.
+ {get_tuple_element,{x,4},1,{x,3}}.
{move,{y,3},{x,4}}.
- {swap,{x,3},{x,2}}.
{swap,{x,1},{x,3}}.
{line,[{location,"couch_key_tree.erl",395}]}.
{call_fun,4}.
@@ -1635,48 +1631,50 @@
{move,{y,0},{x,3}}.
{trim,1,3}.
{move,{y,2},{x,0}}.
- {call,4,{f,103}}.
+ {call,4,{f,102}}.
{move,{y,1},{x,2}}.
{move,{x,0},{x,1}}.
{move,{y,0},{x,3}}.
{move,{y,2},{x,0}}.
- {call_last,4,{f,103},3}.
- {label,106}.
- {test,is_nil,{f,102},[{x,3}]}.
+ {call_last,4,{f,102},3}.
+ {label,105}.
+ {test,is_nil,{f,101},[{x,3}]}.
{move,{x,1},{x,0}}.
return.
-{function, map, 2, 108}.
- {label,107}.
+{function, map, 2, 107}.
+ {label,106}.
{line,[{location,"couch_key_tree.erl",399}]}.
{func_info,{atom,couch_key_tree},{atom,map},2}.
- {label,108}.
- {test,is_nonempty_list,{f,111},[{x,1}]}.
+ {label,107}.
+ {test,is_nonempty_list,{f,110},[{x,1}]}.
{get_list,{x,1},{x,2},{x,3}}.
- {test,is_tuple,{f,107},[{x,2}]}.
- {test,test_arity,{f,107},[{x,2},2]}.
+ {test,is_tuple,{f,106},[{x,2}]}.
+ {test,test_arity,{f,106},[{x,2},2]}.
{allocate,4,4}.
+ {init_yregs,{list,[{y,0}]}}.
+ {move,{x,2},{y,1}}.
{move,{x,3},{y,2}}.
{move,{x,0},{y,3}}.
- {get_tuple_element,{x,2},0,{y,1}}.
- {get_tuple_element,{x,2},1,{y,0}}.
{move,{atom,arity},{x,1}}.
{line,[{location,"couch_key_tree.erl",402}]}.
{call_ext,2,{extfunc,erlang,fun_info,2}}.
- {test,is_tagged_tuple,{f,114},[{x,0},2,{atom,arity}]}.
+ {test,is_tagged_tuple,{f,113},[{x,0},2,{atom,arity}]}.
{get_tuple_element,{x,0},1,{x,1}}.
+ {get_tuple_element,{y,1},0,{y,0}}.
+ {get_tuple_element,{y,1},1,{x,2}}.
{select_val,{x,1},
- {f,114},
- {list,[{integer,2},{f,110},{integer,3},{f,109}]}}.
- {label,109}.
- {test_heap,2,0}.
- {put_list,{y,0},nil,{x,2}}.
- {move,{y,1},{x,1}}.
- {init_yregs,{list,[{y,0}]}}.
+ {f,113},
+ {list,[{integer,2},{f,109},{integer,3},{f,108}]}}.
+ {label,108}.
+ {test_heap,2,3}.
+ {put_list,{x,2},nil,{x,2}}.
+ {move,{y,0},{x,1}}.
+ {init_yregs,{list,[{y,1}]}}.
{move,{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",407}]}.
- {call,3,{f,116}}.
+ {call,3,{f,115}}.
{'%',
{var_info,
{x,0},
@@ -1688,15 +1686,15 @@
{t_tuple,3,true,#{3 => {t_list,any,any}}},
nil}}},
nil}}]}}.
- {get_list,{x,0},{y,0},{x,1}}.
- {test,is_nil,{f,112},[{x,1}]}.
+ {get_list,{x,0},{y,1},{x,1}}.
+ {test,is_nil,{f,111},[{x,1}]}.
{move,{y,2},{x,1}}.
{move,{y,3},{x,0}}.
{move,{y,0},{y,3}}.
{move,{y,1},{y,2}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",408}]}.
- {call,2,{f,108}}.
+ {call,2,{f,107}}.
{'%',
{var_info,
{x,0},
@@ -1706,18 +1704,18 @@
#{2 => {t_tuple,3,true,#{3 => {t_list,{t_tuple,0,false,#{}},nil}}}}},
nil}}]}}.
{test_heap,5,1}.
- {put_tuple2,{x,1},{list,[{y,0},{y,1}]}}.
+ {put_tuple2,{x,1},{list,[{y,1},{y,0}]}}.
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,2}.
return.
- {label,110}.
- {test_heap,{alloc,[{words,3},{floats,0},{funs,1}]},0}.
- {make_fun3,{f,233},0,0,{x,0},{list,[{y,3}]}}.
- {put_list,{y,0},nil,{x,2}}.
- {move,{y,1},{x,1}}.
- {init_yregs,{list,[{y,0}]}}.
+ {label,109}.
+ {test_heap,{alloc,[{words,3},{floats,0},{funs,1}]},3}.
+ {make_fun3,{f,232},0,0,{x,0},{list,[{y,3}]}}.
+ {put_list,{x,2},nil,{x,2}}.
+ {move,{y,0},{x,1}}.
+ {init_yregs,{list,[{y,1}]}}.
{line,[{location,"couch_key_tree.erl",404}]}.
- {call,3,{f,116}}.
+ {call,3,{f,115}}.
{'%',
{var_info,
{x,0},
@@ -1729,15 +1727,15 @@
{t_tuple,3,true,#{3 => {t_list,any,any}}},
nil}}},
nil}}]}}.
- {get_list,{x,0},{y,0},{x,1}}.
- {test,is_nil,{f,113},[{x,1}]}.
+ {get_list,{x,0},{y,1},{x,1}}.
+ {test,is_nil,{f,112},[{x,1}]}.
{move,{y,2},{x,1}}.
{move,{y,3},{x,0}}.
{move,{y,0},{y,3}}.
{move,{y,1},{y,2}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",405}]}.
- {call,2,{f,108}}.
+ {call,2,{f,107}}.
{'%',
{var_info,
{x,0},
@@ -1747,61 +1745,62 @@
#{2 => {t_tuple,3,true,#{3 => {t_list,{t_tuple,0,false,#{}},nil}}}}},
nil}}]}}.
{test_heap,5,1}.
- {put_tuple2,{x,1},{list,[{y,0},{y,1}]}}.
+ {put_tuple2,{x,1},{list,[{y,1},{y,0}]}}.
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,2}.
return.
- {label,111}.
- {test,is_nil,{f,107},[{x,1}]}.
+ {label,110}.
+ {test,is_nil,{f,106},[{x,1}]}.
{move,nil,{x,0}}.
return.
- {label,112}.
+ {label,111}.
{line,[{location,"couch_key_tree.erl",407}]}.
{badmatch,{x,0}}.
- {label,113}.
+ {label,112}.
{line,[{location,"couch_key_tree.erl",404}]}.
{badmatch,{x,0}}.
- {label,114}.
+ {label,113}.
{line,[{location,"couch_key_tree.erl",402}]}.
{case_end,{x,0}}.
-{function, map_simple, 3, 116}.
- {label,115}.
+{function, map_simple, 3, 115}.
+ {label,114}.
{line,[{location,"couch_key_tree.erl",411}]}.
{func_info,{atom,couch_key_tree},{atom,map_simple},3}.
- {label,116}.
- {test,is_nonempty_list,{f,119},[{x,2}]}.
+ {label,115}.
+ {test,is_nonempty_list,{f,118},[{x,2}]}.
{get_list,{x,2},{x,3},{x,4}}.
- {test,is_tuple,{f,115},[{x,3}]}.
- {test,test_arity,{f,115},[{x,3},3]}.
+ {test,is_tuple,{f,114},[{x,3}]}.
+ {test,test_arity,{f,114},[{x,3},3]}.
{allocate,5,5}.
+ {init_yregs,{list,[{y,0}]}}.
{move,{x,4},{y,2}}.
{move,{x,1},{y,3}}.
{move,{x,0},{y,4}}.
- {get_tuple_element,{x,3},0,{y,1}}.
- {get_tuple_element,{x,3},1,{x,0}}.
- {get_tuple_element,{x,3},2,{y,0}}.
- {test,is_nil,{f,117},[{y,0}]}.
- {move,{atom,leaf},{x,1}}.
- {jump,{f,118}}.
+ {get_tuple_element,{x,3},2,{y,1}}.
+ {test,is_nil,{f,116},[{y,1}]}.
+ {move,{atom,leaf},{x,0}}.
+ {jump,{f,117}}.
+ {label,116}.
+ {move,{atom,branch},{x,0}}.
{label,117}.
- {move,{atom,branch},{x,1}}.
- {label,118}.
- {test_heap,3,2}.
- {put_tuple2,{x,2},{list,[{y,3},{y,1}]}}.
+ {test_heap,3,4}.
+ {get_tuple_element,{x,3},0,{y,0}}.
+ {put_tuple2,{x,1},{list,[{y,3},{y,0}]}}.
+ {get_tuple_element,{x,3},1,{x,2}}.
{move,{y,4},{x,3}}.
- {swap,{x,1},{x,2}}.
- {swap,{x,0},{x,1}}.
+ {swap,{x,2},{x,1}}.
+ {swap,{x,0},{x,2}}.
{line,[{location,"couch_key_tree.erl",414}]}.
{call_fun,3}.
{line,[{location,"couch_key_tree.erl",422}]}.
{gc_bif,'+',{f,0},1,[{y,3},{integer,1}],{x,1}}.
- {move,{y,0},{x,2}}.
+ {move,{y,1},{x,2}}.
{move,{y,4},{x,3}}.
- {move,{x,0},{y,0}}.
+ {move,{x,0},{y,1}}.
{move,{x,3},{x,0}}.
- {call,3,{f,116}}.
+ {call,3,{f,115}}.
{'%',
{var_info,
{x,0},
@@ -1821,7 +1820,7 @@
{move,{y,1},{y,2}}.
{trim,2,3}.
{move,{x,3},{x,0}}.
- {call,3,{f,116}}.
+ {call,3,{f,115}}.
{'%',
{var_info,
{x,0},
@@ -1834,36 +1833,37 @@
nil}}},
nil}}]}}.
{test_heap,6,1}.
- {put_tuple2,{x,1},{list,[{y,0},{y,1},{y,2}]}}.
+ {put_tuple2,{x,1},{list,[{y,1},{y,0},{y,2}]}}.
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,3}.
return.
- {label,119}.
- {test,is_nil,{f,115},[{x,2}]}.
+ {label,118}.
+ {test,is_nil,{f,114},[{x,2}]}.
{move,nil,{x,0}}.
return.
-{function, mapfold, 3, 121}.
- {label,120}.
+{function, mapfold, 3, 120}.
+ {label,119}.
{line,[{location,"couch_key_tree.erl",424}]}.
{func_info,{atom,couch_key_tree},{atom,mapfold},3}.
- {label,121}.
- {test,is_nonempty_list,{f,122},[{x,2}]}.
+ {label,120}.
+ {test,is_nonempty_list,{f,121},[{x,2}]}.
{get_list,{x,2},{x,3},{x,4}}.
- {test,is_tuple,{f,120},[{x,3}]}.
- {test,test_arity,{f,120},[{x,3},2]}.
+ {test,is_tuple,{f,119},[{x,3}]}.
+ {test,test_arity,{f,119},[{x,3},2]}.
{allocate_heap,4,2,5}.
{init_yregs,{list,[{y,0}]}}.
{move,{x,4},{y,2}}.
{move,{x,0},{y,3}}.
- {get_tuple_element,{x,3},0,{y,1}}.
{get_tuple_element,{x,3},1,{x,0}}.
- {put_list,{x,0},nil,{x,3}}.
+ {put_list,{x,0},nil,{x,0}}.
+ {get_tuple_element,{x,3},0,{y,1}}.
{move,{y,1},{x,2}}.
+ {move,{x,0},{x,3}}.
{move,{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",427}]}.
- {call,4,{f,125}}.
+ {call,4,{f,124}}.
{'%',
{var_info,
{x,0},
@@ -1875,17 +1875,16 @@
#{3 => {t_list,{t_tuple,0,false,#{}},nil}}},
nil}}}}]}}.
{get_tuple_element,{x,0},0,{x,1}}.
- {get_tuple_element,{x,0},1,{x,2}}.
{get_list,{x,1},{y,0},{x,1}}.
- {test,is_nil,{f,123},[{x,1}]}.
- {move,{x,2},{x,1}}.
+ {test,is_nil,{f,122},[{x,1}]}.
+ {get_tuple_element,{x,0},1,{x,1}}.
{move,{y,2},{x,2}}.
{move,{y,3},{x,0}}.
{move,{y,0},{y,3}}.
{move,{y,1},{y,2}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",428}]}.
- {call,3,{f,121}}.
+ {call,3,{f,120}}.
{'%',
{var_info,
{x,0},
@@ -1904,57 +1903,55 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,2}.
return.
- {label,122}.
- {test,is_nil,{f,120},[{x,2}]}.
+ {label,121}.
+ {test,is_nil,{f,119},[{x,2}]}.
{test_heap,3,2}.
{put_tuple2,{x,0},{list,[nil,{x,1}]}}.
return.
- {label,123}.
+ {label,122}.
{line,[{location,"couch_key_tree.erl",427}]}.
{badmatch,{x,0}}.
-{function, mapfold_simple, 4, 125}.
- {label,124}.
+{function, mapfold_simple, 4, 124}.
+ {label,123}.
{line,[{location,"couch_key_tree.erl",431}]}.
{func_info,{atom,couch_key_tree},{atom,mapfold_simple},4}.
- {label,125}.
- {test,is_nonempty_list,{f,128},[{x,3}]}.
+ {label,124}.
+ {test,is_nonempty_list,{f,127},[{x,3}]}.
{get_list,{x,3},{x,4},{x,5}}.
- {test,is_tuple,{f,124},[{x,4}]}.
- {test,test_arity,{f,124},[{x,4},3]}.
+ {test,is_tuple,{f,123},[{x,4}]}.
+ {test,test_arity,{f,123},[{x,4},3]}.
{allocate,6,6}.
- {init_yregs,{list,[{y,0}]}}.
+ {init_yregs,{list,[{y,0},{y,1}]}}.
{move,{x,5},{y,3}}.
{move,{x,2},{y,4}}.
{move,{x,0},{y,5}}.
- {get_tuple_element,{x,4},0,{y,2}}.
- {get_tuple_element,{x,4},1,{x,0}}.
- {get_tuple_element,{x,4},2,{y,1}}.
- {test,is_nil,{f,126},[{y,1}]}.
+ {get_tuple_element,{x,4},2,{y,2}}.
+ {test,is_nil,{f,125},[{y,2}]}.
{move,{atom,leaf},{x,2}}.
- {jump,{f,127}}.
- {label,126}.
+ {jump,{f,126}}.
+ {label,125}.
{move,{atom,branch},{x,2}}.
- {label,127}.
- {test_heap,3,3}.
- {put_tuple2,{x,3},{list,[{y,4},{y,2}]}}.
+ {label,126}.
+ {test_heap,3,5}.
+ {get_tuple_element,{x,4},0,{y,1}}.
+ {put_tuple2,{x,0},{list,[{y,4},{y,1}]}}.
+ {get_tuple_element,{x,4},1,{x,3}}.
{move,{y,5},{x,4}}.
{swap,{x,1},{x,3}}.
- {swap,{x,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",434}]}.
{call_fun,4}.
- {test,is_tuple,{f,129},[{x,0}]}.
- {test,test_arity,{f,129},[{x,0},2]}.
+ {test,is_tuple,{f,128},[{x,0}]}.
+ {test,test_arity,{f,128},[{x,0},2]}.
{get_tuple_element,{x,0},0,{y,0}}.
- {get_tuple_element,{x,0},1,{x,0}}.
{line,[{location,"couch_key_tree.erl",443}]}.
{gc_bif,'+',{f,0},1,[{y,4},{integer,1}],{x,2}}.
- {move,{x,0},{x,1}}.
- {move,{y,1},{x,3}}.
- {init_yregs,{list,[{y,1}]}}.
+ {get_tuple_element,{x,0},1,{x,1}}.
+ {move,{y,2},{x,3}}.
+ {init_yregs,{list,[{y,2}]}}.
{move,{y,5},{x,0}}.
- {call,4,{f,125}}.
+ {call,4,{f,124}}.
{'%',
{var_info,
{x,0},
@@ -1965,7 +1962,7 @@
{t_tuple,3,true,
#{3 => {t_list,{t_tuple,0,false,#{}},nil}}},
nil}}}}]}}.
- {get_tuple_element,{x,0},0,{y,1}}.
+ {get_tuple_element,{x,0},0,{y,2}}.
{get_tuple_element,{x,0},1,{x,1}}.
{move,{y,3},{x,3}}.
{move,{y,4},{x,2}}.
@@ -1975,7 +1972,7 @@
{move,{y,2},{y,3}}.
{trim,3,3}.
{line,[{location,"couch_key_tree.erl",444}]}.
- {call,4,{f,125}}.
+ {call,4,{f,124}}.
{'%',
{var_info,
{x,0},
@@ -1989,41 +1986,42 @@
{test_heap,9,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},1,{x,0}}.
- {put_tuple2,{x,2},{list,[{y,0},{y,2},{y,1}]}}.
+ {put_tuple2,{x,2},{list,[{y,1},{y,2},{y,0}]}}.
{put_list,{x,2},{x,1},{x,1}}.
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,3}.
return.
- {label,128}.
- {test,is_nil,{f,124},[{x,3}]}.
+ {label,127}.
+ {test,is_nil,{f,123},[{x,3}]}.
{test_heap,3,2}.
{put_tuple2,{x,0},{list,[nil,{x,1}]}}.
return.
- {label,129}.
+ {label,128}.
{line,[{location,"couch_key_tree.erl",434}]}.
{badmatch,{x,0}}.
-{function, map_leafs, 2, 131}.
- {label,130}.
+{function, map_leafs, 2, 130}.
+ {label,129}.
{line,[{location,"couch_key_tree.erl",447}]}.
{func_info,{atom,couch_key_tree},{atom,map_leafs},2}.
- {label,131}.
- {test,is_nonempty_list,{f,132},[{x,1}]}.
+ {label,130}.
+ {test,is_nonempty_list,{f,131},[{x,1}]}.
{get_list,{x,1},{x,2},{x,3}}.
- {test,is_tuple,{f,130},[{x,2}]}.
- {test,test_arity,{f,130},[{x,2},2]}.
+ {test,is_tuple,{f,129},[{x,2}]}.
+ {test,test_arity,{f,129},[{x,2},2]}.
{allocate_heap,4,2,4}.
{init_yregs,{list,[{y,0}]}}.
{move,{x,3},{y,2}}.
{move,{x,0},{y,3}}.
- {get_tuple_element,{x,2},0,{y,1}}.
{get_tuple_element,{x,2},1,{x,0}}.
- {put_list,{x,0},nil,{x,2}}.
+ {put_list,{x,0},nil,{x,0}}.
+ {get_tuple_element,{x,2},0,{y,1}}.
{move,{y,1},{x,1}}.
+ {move,{x,0},{x,2}}.
{move,{y,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",450}]}.
- {call,3,{f,135}}.
+ {call,3,{f,134}}.
{'%',
{var_info,
{x,0},
@@ -2036,14 +2034,14 @@
nil}}},
nil}}]}}.
{get_list,{x,0},{y,0},{x,1}}.
- {test,is_nil,{f,133},[{x,1}]}.
+ {test,is_nil,{f,132},[{x,1}]}.
{move,{y,2},{x,1}}.
{move,{y,3},{x,0}}.
{move,{y,0},{y,3}}.
{move,{y,1},{y,2}}.
{trim,2,2}.
{line,[{location,"couch_key_tree.erl",451}]}.
- {call,2,{f,131}}.
+ {call,2,{f,130}}.
{'%',
{var_info,
{x,0},
@@ -2057,28 +2055,28 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,2}.
return.
- {label,132}.
- {test,is_nil,{f,130},[{x,1}]}.
+ {label,131}.
+ {test,is_nil,{f,129},[{x,1}]}.
{move,nil,{x,0}}.
return.
- {label,133}.
+ {label,132}.
{line,[{location,"couch_key_tree.erl",450}]}.
{badmatch,{x,0}}.
-{function, map_leafs_simple, 3, 135}.
- {label,134}.
+{function, map_leafs_simple, 3, 134}.
+ {label,133}.
{line,[{location,"couch_key_tree.erl",453}]}.
{func_info,{atom,couch_key_tree},{atom,map_leafs_simple},3}.
- {label,135}.
- {test,is_nonempty_list,{f,137},[{x,2}]}.
+ {label,134}.
+ {test,is_nonempty_list,{f,136},[{x,2}]}.
{get_list,{x,2},{x,3},{x,4}}.
- {test,is_tuple,{f,134},[{x,3}]}.
- {test,test_arity,{f,134},[{x,3},3]}.
+ {test,is_tuple,{f,133},[{x,3}]}.
+ {test,test_arity,{f,133},[{x,3},3]}.
{get_tuple_element,{x,3},0,{x,2}}.
{get_tuple_element,{x,3},1,{x,5}}.
{get_tuple_element,{x,3},2,{x,3}}.
- {test,is_nil,{f,136},[{x,3}]}.
+ {test,is_nil,{f,135},[{x,3}]}.
{allocate_heap,4,3,6}.
{move,{x,2},{y,0}}.
{move,{x,4},{y,1}}.
@@ -2097,7 +2095,7 @@
{trim,2,2}.
{move,{x,3},{x,0}}.
{line,[{location,"couch_key_tree.erl",457}]}.
- {call,3,{f,135}}.
+ {call,3,{f,134}}.
{'%',
{var_info,
{x,0},
@@ -2114,7 +2112,7 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,2}.
return.
- {label,136}.
+ {label,135}.
{line,[{location,"couch_key_tree.erl",459}]}.
{gc_bif,'+',{f,0},6,[{x,1},{integer,1}],{x,6}}.
{allocate,5,7}.
@@ -2125,7 +2123,7 @@
{move,{x,0},{y,4}}.
{move,{x,3},{x,2}}.
{move,{x,6},{x,1}}.
- {call,3,{f,135}}.
+ {call,3,{f,134}}.
{'%',
{var_info,
{x,0},
@@ -2145,7 +2143,7 @@
{move,{y,1},{y,2}}.
{trim,2,3}.
{move,{x,3},{x,0}}.
- {call,3,{f,135}}.
+ {call,3,{f,134}}.
{'%',
{var_info,
{x,0},
@@ -2162,24 +2160,24 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,3}.
return.
- {label,137}.
- {test,is_nil,{f,134},[{x,2}]}.
+ {label,136}.
+ {test,is_nil,{f,133},[{x,2}]}.
{move,nil,{x,0}}.
return.
-{function, stem, 2, 139}.
- {label,138}.
+{function, stem, 2, 138}.
+ {label,137}.
{line,[{location,"couch_key_tree.erl",461}]}.
{func_info,{atom,couch_key_tree},{atom,stem},2}.
- {label,139}.
+ {label,138}.
{allocate,4,2}.
{init_yregs,{list,[{y,0}]}}.
{move,{x,1},{y,1}}.
{move,{x,0},{y,2}}.
- {'try',{y,3},{f,140}}.
+ {'try',{y,3},{f,139}}.
{test_heap,{alloc,[{words,1},{floats,0},{funs,1}]},0}.
- {make_fun3,{f,230},0,0,{y,0},{list,[{y,1}]}}.
+ {make_fun3,{f,229},0,0,{y,0},{list,[{y,1}]}}.
{'%',{var_info,{y,0},[{fun_type,{t_tuple,2,true,#{}}}]}}.
{line,[{location,"couch_key_tree.erl",468}]}.
{call_ext,0,{extfunc,sets,new,0}}.
@@ -2190,8 +2188,8 @@
{init_yregs,{list,[{y,0}]}}.
{line,[{location,"couch_key_tree.erl",463}]}.
{call_ext,3,{extfunc,lists,foldl,3}}.
- {test,is_tuple,{f,142},[{x,0}]}.
- {test,test_arity,{f,142},[{x,0},2]}.
+ {test,is_tuple,{f,141},[{x,0}]}.
+ {test,test_arity,{f,141},[{x,0},2]}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},1,{y,0}}.
{move,{x,1},{x,0}}.
@@ -2209,27 +2207,27 @@
{try_end,{y,3}}.
{deallocate,4}.
return.
- {label,140}.
+ {label,139}.
{try_case,{y,3}}.
- {test,is_eq_exact,{f,141},[{x,0},{atom,throw}]}.
- {test,is_eq_exact,{f,141},[{x,1},{atom,dupe_keys}]}.
+ {test,is_eq_exact,{f,140},[{x,0},{atom,throw}]}.
+ {test,is_eq_exact,{f,140},[{x,1},{atom,dupe_keys}]}.
{move,{y,1},{x,1}}.
{move,{y,2},{x,0}}.
- {call_last,2,{f,161},4}.
- {label,141}.
+ {call_last,2,{f,160},4}.
+ {label,140}.
{bif,raise,{f,0},[{x,2},{x,1}],{x,0}}.
- {label,142}.
+ {label,141}.
{line,[{scope,[2]},{location,"couch_key_tree.erl",463}]}.
{badmatch,{x,0}}.
-{function, stem_tree, 3, 144}.
- {label,143}.
+{function, stem_tree, 3, 143}.
+ {label,142}.
{line,[{location,"couch_key_tree.erl",478}]}.
{func_info,{atom,couch_key_tree},{atom,stem_tree},3}.
- {label,144}.
- {test,is_tuple,{f,143},[{x,0}]}.
- {test,test_arity,{f,143},[{x,0},2]}.
+ {label,143}.
+ {test,is_tuple,{f,142},[{x,0}]}.
+ {test,test_arity,{f,142},[{x,0},2]}.
{allocate,1,3}.
{get_tuple_element,{x,0},0,{y,0}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -2238,10 +2236,10 @@
{move,{x,0},{x,1}}.
{move,{y,0},{x,0}}.
{line,[{location,"couch_key_tree.erl",479}]}.
- {call,4,{f,149}}.
+ {call,4,{f,148}}.
{'%',{var_info,{x,0},[{type,{t_tuple,3,false,#{2 => number}}}]}}.
- {select_tuple_arity,{x,0},{f,147},{list,[3,{f,146},4,{f,145}]}}.
- {label,145}.
+ {select_tuple_arity,{x,0},{f,146},{list,[3,{f,145},4,{f,144}]}}.
+ {label,144}.
{test_heap,8,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},2,{x,2}}.
@@ -2251,91 +2249,91 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,1}.
return.
- {label,146}.
+ {label,145}.
{test_heap,3,1}.
{get_tuple_element,{x,0},0,{x,1}}.
{get_tuple_element,{x,0},2,{x,0}}.
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,1}.
return.
- {label,147}.
+ {label,146}.
{case_end,{x,0}}.
-{function, stem_tree, 4, 149}.
- {label,148}.
+{function, stem_tree, 4, 148}.
+ {label,147}.
{line,[{location,"couch_key_tree.erl",486}]}.
{func_info,{atom,couch_key_tree},{atom,stem_tree},4}.
- {label,149}.
- {test,is_tuple,{f,148},[{x,1}]}.
- {test,test_arity,{f,148},[{x,1},3]}.
+ {label,148}.
+ {test,is_tuple,{f,147},[{x,1}]}.
+ {test,test_arity,{f,147},[{x,1},3]}.
{get_tuple_element,{x,1},0,{x,4}}.
- {get_tuple_element,{x,1},1,{x,5}}.
- {get_tuple_element,{x,1},2,{x,6}}.
- {test,is_nil,{f,150},[{x,6}]}.
+ {get_tuple_element,{x,1},2,{x,5}}.
+ {test,is_nil,{f,149},[{x,5}]}.
{allocate,2,5}.
{move,{x,2},{y,0}}.
{move,{x,1},{y,1}}.
{move,{x,3},{x,1}}.
{move,{x,4},{x,0}}.
{line,[{location,"couch_key_tree.erl",487}]}.
- {call,2,{f,156}}.
+ {call,2,{f,155}}.
{gc_bif,'-',{f,0},1,[{y,0},{integer,1}],{x,1}}.
{test_heap,5,2}.
{put_tuple2,{x,0},{list,[{x,0},{x,1},{y,1},nil]}}.
{deallocate,2}.
return.
- {label,150}.
- {allocate,6,7}.
+ {label,149}.
+ {allocate,6,6}.
{init_yregs,{list,[{y,0}]}}.
{move,{x,4},{y,1}}.
{move,{x,5},{y,2}}.
- {move,{x,6},{y,3}}.
- {move,{x,2},{y,4}}.
+ {move,{x,2},{y,3}}.
+ {move,{x,1},{y,4}}.
{move,{x,0},{y,5}}.
{move,{x,3},{x,1}}.
{move,{x,4},{x,0}}.
{line,[{location,"couch_key_tree.erl",489}]}.
- {call,2,{f,156}}.
+ {call,2,{f,155}}.
{test_heap,{alloc,[{words,7},{floats,0},{funs,1}]},1}.
- {make_fun3,{f,224},0,0,{x,1},{list,[{y,5},{y,4}]}}.
+ {make_fun3,{f,223},0,0,{x,1},{list,[{y,5},{y,3}]}}.
{'%',{var_info,{x,1},[{fun_type,{t_tuple,4,true,#{}}}]}}.
{put_tuple2,{x,0},{list,[{x,0},{integer,-1},nil,nil]}}.
- {move,{y,3},{x,2}}.
+ {move,{y,2},{x,2}}.
{swap,{x,0},{x,1}}.
- {init_yregs,{list,[{y,3},{y,4}]}}.
+ {init_yregs,{list,[{y,2},{y,3}]}}.
{line,[{location,"couch_key_tree.erl",490}]}.
{call_ext,3,{extfunc,lists,foldl,3}}.
- {test,is_tuple,{f,154},[{x,0}]}.
- {test,test_arity,{f,154},[{x,0},4]}.
- {get_tuple_element,{x,0},0,{y,4}}.
- {get_tuple_element,{x,0},1,{y,3}}.
+ {test,is_tuple,{f,153},[{x,0}]}.
+ {test,test_arity,{f,153},[{x,0},4]}.
+ {get_tuple_element,{x,0},0,{y,3}}.
+ {get_tuple_element,{x,0},1,{y,2}}.
{get_tuple_element,{x,0},2,{x,1}}.
{get_tuple_element,{x,0},3,{y,0}}.
- {test,is_lt,{f,151},[{integer,0},{y,3}]}.
- {gc_bif,length,{f,151},2,[{x,1}],{x,0}}.
- {test,is_lt,{f,151},[{integer,0},{x,0}]}.
+ {test,is_lt,{f,150},[{integer,0},{y,2}]}.
+ {gc_bif,length,{f,150},2,[{x,1}],{x,0}}.
+ {test,is_lt,{f,150},[{integer,0},{x,0}]}.
{move,{y,0},{y,5}}.
{trim,1,5}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",511}]}.
{call_ext,1,{extfunc,lists,reverse,1}}.
{test_heap,4,1}.
- {put_tuple2,{x,0},{list,[{y,0},{y,1},{x,0}]}}.
+ {get_tuple_element,{y,3},1,{x,1}}.
+ {put_tuple2,{x,0},{list,[{y,0},{x,1},{x,0}]}}.
{line,[{location,"couch_key_tree.erl",512}]}.
- {gc_bif,'-',{f,0},1,[{y,2},{integer,1}],{x,1}}.
+ {gc_bif,'-',{f,0},1,[{y,1},{integer,1}],{x,1}}.
{test_heap,5,2}.
- {put_tuple2,{x,0},{list,[{y,3},{x,1},{x,0},{y,4}]}}.
+ {put_tuple2,{x,0},{list,[{y,2},{x,1},{x,0},{y,4}]}}.
{deallocate,5}.
return.
- {label,151}.
- {test,is_eq_exact,{f,152},[{y,3},{integer,0}]}.
- {gc_bif,length,{f,152},2,[{x,1}],{x,0}}.
- {test,is_lt,{f,152},[{integer,0},{x,0}]}.
+ {label,150}.
+ {test,is_eq_exact,{f,151},[{y,2},{integer,0}]}.
+ {gc_bif,length,{f,151},2,[{x,1}],{x,0}}.
+ {test,is_lt,{f,151},[{integer,0},{x,0}]}.
{test_heap,{alloc,[{words,1},{floats,0},{funs,1}]},2}.
- {make_fun3,{f,222},0,0,{y,5},{list,[{y,5}]}}.
+ {make_fun3,{f,221},0,0,{y,5},{list,[{y,5}]}}.
{'%',{var_info,{y,5},[{fun_type,{t_tuple,2,true,#{1 => number}}}]}}.
- {move,{y,0},{y,3}}.
+ {move,{y,0},{y,4}}.
{trim,3,3}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",518}]}.
@@ -2346,73 +2344,73 @@
{trim,1,2}.
{line,[{location,"couch_key_tree.erl",514}]}.
{call_ext,2,{extfunc,lists,map,2}}.
- {move,{y,1},{x,1}}.
- {init_yregs,{list,[{y,1}]}}.
+ {move,{y,0},{x,1}}.
+ {trim,1,1}.
{line,[{location,"couch_key_tree.erl",520}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,4,1}.
{put_tuple2,{x,0},{list,[{y,0},{integer,-1},{x,0}]}}.
- {deallocate,2}.
+ {deallocate,1}.
return.
- {label,152}.
- {test,is_lt,{f,153},[{y,3},{integer,0}]}.
- {gc_bif,length,{f,153},2,[{x,1}],{x,0}}.
- {test,is_eq_exact,{f,153},[{x,0},{integer,0}]}.
+ {label,151}.
+ {test,is_lt,{f,152},[{y,2},{integer,0}]}.
+ {gc_bif,length,{f,152},2,[{x,1}],{x,0}}.
+ {test,is_eq_exact,{f,152},[{x,0},{integer,0}]}.
{line,[{location,"couch_key_tree.erl",522}]}.
- {gc_bif,'-',{f,0},0,[{y,3},{integer,1}],{x,0}}.
+ {gc_bif,'-',{f,0},0,[{y,2},{integer,1}],{x,0}}.
{test_heap,4,1}.
- {put_tuple2,{x,0},{list,[{y,4},{x,0},{y,0}]}}.
+ {put_tuple2,{x,0},{list,[{y,3},{x,0},{y,0}]}}.
{deallocate,6}.
return.
- {label,153}.
+ {label,152}.
{line,[{location,"couch_key_tree.erl",509}]}.
- {case_end,{y,3}}.
- {label,154}.
+ {case_end,{y,2}}.
+ {label,153}.
{line,[{location,"couch_key_tree.erl",508}]}.
{badmatch,{x,0}}.
-{function, check_key, 2, 156}.
- {label,155}.
+{function, check_key, 2, 155}.
+ {label,154}.
{line,[{location,"couch_key_tree.erl",525}]}.
{func_info,{atom,couch_key_tree},{atom,check_key},2}.
- {label,156}.
+ {label,155}.
{allocate,2,2}.
{move,{x,1},{y,0}}.
{move,{x,0},{y,1}}.
{line,[{location,"couch_key_tree.erl",526}]}.
{call_ext,2,{extfunc,sets,is_element,2}}.
{select_val,{x,0},
- {f,159},
- {list,[{atom,false},{f,158},{atom,true},{f,157}]}}.
- {label,157}.
+ {f,158},
+ {list,[{atom,false},{f,157},{atom,true},{f,156}]}}.
+ {label,156}.
{move,{atom,dupe_keys},{x,0}}.
{line,[{location,"couch_key_tree.erl",528}]}.
{call_ext_last,1,{extfunc,erlang,throw,1},2}.
- {label,158}.
+ {label,157}.
{move,{y,0},{x,1}}.
{move,{y,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",530}]}.
{call_ext_last,2,{extfunc,sets,add_element,2},2}.
- {label,159}.
+ {label,158}.
{line,[{location,"couch_key_tree.erl",526}]}.
{case_end,{x,0}}.
-{function, repair_tree, 2, 161}.
- {label,160}.
+{function, repair_tree, 2, 160}.
+ {label,159}.
{line,[{location,"couch_key_tree.erl",533}]}.
{func_info,{atom,couch_key_tree},{atom,repair_tree},2}.
- {label,161}.
+ {label,160}.
{allocate_heap,1,{alloc,[{words,1},{floats,0},{funs,1}]},2}.
- {make_fun3,{f,219},0,0,{y,0},{list,[{x,1}]}}.
+ {make_fun3,{f,218},0,0,{y,0},{list,[{x,1}]}}.
{'%',
{var_info,
{y,0},
[{fun_type,
{t_tuple,2,true,#{1 => number,2 => {t_list,any,nil}}}}]}}.
{line,[{location,"couch_key_tree.erl",541}]}.
- {call,1,{f,75}}.
+ {call,1,{f,74}}.
{'%',
{var_info,
{x,0},
@@ -2429,7 +2427,7 @@
{line,[{location,"couch_key_tree.erl",535}]}.
{call_ext,1,{extfunc,lists,sort,1}}.
{test_heap,{alloc,[{words,0},{floats,0},{funs,1}]},1}.
- {make_fun3,{f,214},0,0,{x,1},{list,[]}}.
+ {make_fun3,{f,213},0,0,{x,1},{list,[]}}.
{'%',{var_info,{x,1},[{fun_type,{t_list,any,nil}}]}}.
{move,{x,0},{x,2}}.
{move,{x,1},{x,0}}.
@@ -2438,53 +2436,53 @@
{call_ext_last,3,{extfunc,lists,foldl,3},0}.
-{function, value_pref, 2, 163}.
- {label,162}.
+{function, value_pref, 2, 162}.
+ {label,161}.
{line,[{location,"couch_key_tree.erl",558}]}.
{func_info,{atom,couch_key_tree},{atom,value_pref},2}.
+ {label,162}.
+ {test,is_tuple,{f,164},[{x,0}]}.
+ {test,test_arity,{f,163},[{x,0},3]}.
+ return.
{label,163}.
- {test,is_tuple,{f,165},[{x,0}]}.
- {test,test_arity,{f,164},[{x,0},3]}.
+ {test,test_arity,{f,164},[{x,0},4]}.
return.
{label,164}.
- {test,test_arity,{f,165},[{x,0},4]}.
- return.
+ {test,is_tuple,{f,166},[{x,1}]}.
+ {test,test_arity,{f,165},[{x,1},3]}.
+ {jump,{f,167}}.
{label,165}.
- {test,is_tuple,{f,167},[{x,1}]}.
- {test,test_arity,{f,166},[{x,1},3]}.
- {jump,{f,168}}.
+ {test,test_arity,{f,166},[{x,1},4]}.
+ {jump,{f,167}}.
{label,166}.
- {test,test_arity,{f,167},[{x,1},4]}.
- {jump,{f,168}}.
+ {test,is_nil,{f,168},[{x,0}]}.
{label,167}.
- {test,is_nil,{f,169},[{x,0}]}.
- {label,168}.
{move,{x,1},{x,0}}.
return.
- {label,169}.
+ {label,168}.
return.
-{function, gen_and_stem, 0, 171}.
- {label,170}.
+{function, gen_and_stem, 0, 170}.
+ {label,169}.
{line,[{location,"couch_key_tree.erl",579}]}.
{func_info,{atom,couch_key_tree},{atom,gen_and_stem},0}.
- {label,171}.
+ {label,170}.
{move,{float,8.0e-4},{x,1}}.
{move,{literal,{1647,841737,351137}},{x,2}}.
{move,{integer,7000},{x,0}}.
- {call_only,3,{f,173}}.
+ {call_only,3,{f,172}}.
-{function, gen_and_stem, 3, 173}.
- {label,172}.
+{function, gen_and_stem, 3, 172}.
+ {label,171}.
{line,[{location,"couch_key_tree.erl",582}]}.
{func_info,{atom,couch_key_tree},{atom,gen_and_stem},3}.
- {label,173}.
+ {label,172}.
{allocate,4,3}.
{init_yregs,{list,[{y,0},{y,1},{y,2},{y,3}]}}.
{line,[{location,"couch_key_tree.erl",583}]}.
- {call,3,{f,177}}.
+ {call,3,{f,176}}.
{'%',
{var_info,
{x,0},
@@ -2497,27 +2495,29 @@
2 =>
{t_tuple,3,true,#{2 => {t_atom,[x]},3 => {t_list,any,any}}}}},
nil}}}}]}}.
- {get_tuple_element,{x,0},1,{y,3}}.
+ {move,{x,0},{y,3}}.
{line,[{location,"couch_key_tree.erl",584}]}.
{call_ext,0,{extfunc,erlang,garbage_collect,0}}.
{bif,self,{f,0},[],{x,0}}.
{move,{integer,500},{x,1}}.
{line,[{location,"couch_key_tree.erl",586}]}.
- {call,2,{f,200}}.
+ {call,2,{f,199}}.
{move,{x,0},{y,2}}.
{line,[{location,"couch_key_tree.erl",587}]}.
{call_ext,0,{extfunc,erlang,monotonic_time,0}}.
- {swap,{y,3},{x,0}}.
+ {get_tuple_element,{y,3},1,{x,1}}.
+ {move,{x,0},{y,3}}.
+ {move,{x,1},{x,0}}.
{move,{integer,1000},{x,1}}.
{line,[{location,"couch_key_tree.erl",589}]}.
- {call,2,{f,139}}.
+ {call,2,{f,138}}.
{'%',{var_info,{x,0},[{type,{t_list,any,nil}}]}}.
{line,[{location,"couch_key_tree.erl",591}]}.
{call_ext,0,{extfunc,erlang,monotonic_time,0}}.
{move,{x,0},{y,1}}.
{move,{y,2},{x,0}}.
{line,[{location,"couch_key_tree.erl",592}]}.
- {call,1,{f,195}}.
+ {call,1,{f,194}}.
{move,{x,0},{y,0}}.
{line,[{location,"couch_key_tree.erl",594}]}.
{call_ext,0,{extfunc,erlang,garbage_collect,0}}.
@@ -2535,29 +2535,29 @@
{move,{y,1},{y,2}}.
{trim,2,1}.
{line,[{location,"couch_key_tree.erl",598}]}.
- {call,2,{f,190}}.
+ {call,2,{f,189}}.
{test_heap,3,1}.
{put_tuple2,{x,0},{list,[{x,0},{y,0}]}}.
{deallocate,1}.
return.
-{function, gen, 0, 175}.
- {label,174}.
+{function, gen, 0, 174}.
+ {label,173}.
{line,[{location,"couch_key_tree.erl",601}]}.
{func_info,{atom,couch_key_tree},{atom,gen},0}.
- {label,175}.
+ {label,174}.
{move,{float,8.0e-4},{x,1}}.
{move,{literal,{1647,841737,351137}},{x,2}}.
{move,{integer,7000},{x,0}}.
- {call_only,3,{f,177}}.
+ {call_only,3,{f,176}}.
-{function, gen, 3, 177}.
- {label,176}.
+{function, gen, 3, 176}.
+ {label,175}.
{line,[{location,"couch_key_tree.erl",604}]}.
{func_info,{atom,couch_key_tree},{atom,gen},3}.
- {label,177}.
+ {label,176}.
{allocate,3,3}.
{move,{x,2},{y,0}}.
{move,{x,1},{y,1}}.
@@ -2571,7 +2571,7 @@
{move,{y,0},{y,2}}.
{trim,2,1}.
{line,[{location,"couch_key_tree.erl",606}]}.
- {call,2,{f,184}}.
+ {call,2,{f,183}}.
{'%',
{var_info,
{x,0},
@@ -2592,11 +2592,11 @@
return.
-{function, save, 2, 179}.
- {label,178}.
+{function, save, 2, 178}.
+ {label,177}.
{line,[{location,"couch_key_tree.erl",608}]}.
{func_info,{atom,couch_key_tree},{atom,save},2}.
- {label,179}.
+ {label,178}.
{allocate,1,2}.
{move,{x,0},{y,0}}.
{move,{x,1},{x,0}}.
@@ -2607,53 +2607,53 @@
{call_ext_last,2,{extfunc,file,write_file,2},1}.
-{function, load, 1, 181}.
- {label,180}.
+{function, load, 1, 180}.
+ {label,179}.
{line,[{location,"couch_key_tree.erl",611}]}.
{func_info,{atom,couch_key_tree},{atom,load},1}.
- {label,181}.
+ {label,180}.
{allocate,0,1}.
{line,[{location,"couch_key_tree.erl",612}]}.
{call_ext,1,{extfunc,file,read_file,1}}.
- {test,is_tagged_tuple,{f,182},[{x,0},2,{atom,ok}]}.
+ {test,is_tagged_tuple,{f,181},[{x,0},2,{atom,ok}]}.
{get_tuple_element,{x,0},1,{x,0}}.
{line,[{location,"couch_key_tree.erl",613}]}.
{call_ext_last,1,{extfunc,erlang,binary_to_term,1},0}.
- {label,182}.
+ {label,181}.
{line,[{location,"couch_key_tree.erl",612}]}.
{badmatch,{x,0}}.
-{function, revnode, 2, 184}.
- {label,183}.
+{function, revnode, 2, 183}.
+ {label,182}.
{line,[{location,"couch_key_tree.erl",615}]}.
{func_info,{atom,couch_key_tree},{atom,revnode},2}.
- {label,184}.
- {test,is_eq_exact,{f,185},[{x,0},{integer,0}]}.
+ {label,183}.
+ {test,is_eq_exact,{f,184},[{x,0},{integer,0}]}.
{allocate,0,0}.
{line,[{location,"couch_key_tree.erl",616}]}.
- {call,0,{f,188}}.
+ {call,0,{f,187}}.
{test_heap,4,1}.
{put_tuple2,{x,0},{list,[{x,0},{atom,x},nil]}}.
{deallocate,0}.
return.
- {label,185}.
+ {label,184}.
{allocate,3,2}.
{init_yregs,{list,[{y,0}]}}.
{move,{x,1},{y,1}}.
{move,{x,0},{y,2}}.
{line,[{location,"couch_key_tree.erl",618}]}.
{call_ext,0,{extfunc,rand,uniform,0}}.
- {test,is_lt,{f,186},[{x,0},{y,1}]}.
+ {test,is_lt,{f,185},[{x,0},{y,1}]}.
{line,[{location,"couch_key_tree.erl",620}]}.
- {call,0,{f,188}}.
+ {call,0,{f,187}}.
{line,[{location,"couch_key_tree.erl",621}]}.
{gc_bif,'-',{f,0},1,[{y,2},{integer,1}],{x,1}}.
{move,{x,0},{y,0}}.
{move,{y,1},{x,2}}.
{move,{x,1},{x,0}}.
{move,{x,2},{x,1}}.
- {call,2,{f,184}}.
+ {call,2,{f,183}}.
{'%',
{var_info,
{x,0},
@@ -2674,7 +2674,7 @@
{move,{x,2},{x,1}}.
{move,{y,0},{y,1}}.
{trim,1,2}.
- {call,2,{f,184}}.
+ {call,2,{f,183}}.
{'%',
{var_info,
{x,0},
@@ -2693,16 +2693,16 @@
{put_tuple2,{x,0},{list,[{y,0},{atom,x},{x,0}]}}.
{deallocate,2}.
return.
- {label,186}.
+ {label,185}.
{line,[{location,"couch_key_tree.erl",625}]}.
- {call,0,{f,188}}.
+ {call,0,{f,187}}.
{gc_bif,'-',{f,0},1,[{y,2},{integer,1}],{x,1}}.
{move,{x,0},{y,2}}.
{move,{y,1},{x,2}}.
{move,{x,1},{x,0}}.
{move,{x,2},{x,1}}.
{trim,2,1}.
- {call,2,{f,184}}.
+ {call,2,{f,183}}.
{'%',
{var_info,
{x,0},
@@ -2722,21 +2722,21 @@
return.
-{function, rev, 0, 188}.
- {label,187}.
+{function, rev, 0, 187}.
+ {label,186}.
{line,[{location,"couch_key_tree.erl",628}]}.
{func_info,{atom,couch_key_tree},{atom,rev},0}.
- {label,188}.
+ {label,187}.
{move,{integer,16},{x,0}}.
{line,[{location,"couch_key_tree.erl",629}]}.
{call_ext_only,1,{extfunc,crypto,strong_rand_bytes,1}}.
-{function, dt, 2, 190}.
- {label,189}.
+{function, dt, 2, 189}.
+ {label,188}.
{line,[{location,"couch_key_tree.erl",631}]}.
{func_info,{atom,couch_key_tree},{atom,dt},2}.
- {label,190}.
+ {label,189}.
{line,[{location,"couch_key_tree.erl",632}]}.
{gc_bif,'-',{f,0},2,[{x,0},{x,1}],{x,0}}.
{move,{atom,second},{x,2}}.
@@ -2744,16 +2744,16 @@
{call_ext_only,3,{extfunc,erlang,convert_time_unit,3}}.
-{function, mem_mb, 1, 192}.
- {label,191}.
+{function, mem_mb, 1, 191}.
+ {label,190}.
{line,[{location,"couch_key_tree.erl",634}]}.
{func_info,{atom,couch_key_tree},{atom,mem_mb},1}.
- {label,192}.
+ {label,191}.
{allocate,0,1}.
{move,{atom,memory},{x,1}}.
{line,[{location,"couch_key_tree.erl",635}]}.
{call_ext,2,{extfunc,erlang,process_info,2}}.
- {test,is_tagged_tuple,{f,193},[{x,0},2,{atom,memory}]}.
+ {test,is_tagged_tuple,{f,192},[{x,0},2,{atom,memory}]}.
{get_tuple_element,{x,0},1,{x,0}}.
{line,[{location,"couch_key_tree.erl",636}]}.
{gc_bif,'*',{f,0},1,[{x,0},{integer,8}],{x,0}}.
@@ -2765,52 +2765,52 @@
{fmove,{fr,0},{x,0}}.
{deallocate,0}.
return.
- {label,193}.
+ {label,192}.
{line,[{location,"couch_key_tree.erl",635}]}.
{badmatch,{x,0}}.
-{function, get_max_mem, 1, 195}.
- {label,194}.
+{function, get_max_mem, 1, 194}.
+ {label,193}.
{line,[{location,"couch_key_tree.erl",639}]}.
{func_info,{atom,couch_key_tree},{atom,get_max_mem},1}.
- {label,195}.
+ {label,194}.
{allocate_heap,0,3,1}.
{bif,self,{f,0},[],{x,1}}.
{put_tuple2,{x,1},{list,[{atom,get_mem},{x,1}]}}.
{line,[{location,"couch_key_tree.erl",640}]}.
send.
- {label,196}.
- {loop_rec,{f,198},{x,0}}.
- {test,is_tagged_tuple,{f,197},[{x,0},2,{atom,mem_max}]}.
+ {label,195}.
+ {loop_rec,{f,197},{x,0}}.
+ {test,is_tagged_tuple,{f,196},[{x,0},2,{atom,mem_max}]}.
{get_tuple_element,{x,0},1,{x,0}}.
remove_message.
{deallocate,0}.
return.
+ {label,196}.
+ {loop_rec_end,{f,195}}.
{label,197}.
- {loop_rec_end,{f,196}}.
- {label,198}.
- {wait,{f,196}}.
+ {wait,{f,195}}.
-{function, spawn_mem_sampler, 2, 200}.
- {label,199}.
+{function, spawn_mem_sampler, 2, 199}.
+ {label,198}.
{line,[{location,"couch_key_tree.erl",643}]}.
{func_info,{atom,couch_key_tree},{atom,spawn_mem_sampler},2}.
- {label,200}.
+ {label,199}.
{'%',{var_info,{x,1},[{type,{t_integer,{500,500}}}]}}.
{test_heap,{alloc,[{words,2},{floats,0},{funs,1}]},1}.
- {make_fun3,{f,212},0,0,{x,0},{list,[{x,0},{integer,500}]}}.
+ {make_fun3,{f,211},0,0,{x,0},{list,[{x,0},{integer,500}]}}.
{'%',{var_info,{x,0},[{fun_type,none}]}}.
{line,[{location,"couch_key_tree.erl",644}]}.
{call_ext_only,1,{extfunc,erlang,spawn_link,1}}.
-{function, mem_sampler, 3, 202}.
- {label,201}.
+{function, mem_sampler, 3, 201}.
+ {label,200}.
{line,[{location,"couch_key_tree.erl",646}]}.
{func_info,{atom,couch_key_tree},{atom,mem_sampler},3}.
- {label,202}.
+ {label,201}.
{'%',{var_info,{x,1},[{type,{t_integer,{500,500}}}]}}.
{allocate,2,3}.
{move,{x,2},{y,0}}.
@@ -2820,87 +2820,88 @@
{call_ext,1,{extfunc,timer,sleep,1}}.
{move,{y,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",648}]}.
- {call,1,{f,192}}.
+ {call,1,{f,191}}.
{'%',{var_info,{x,0},[{type,{t_float,any}}]}}.
{move,{y,0},{x,1}}.
{init_yregs,{list,[{y,0}]}}.
{call_ext,2,{extfunc,erlang,max,2}}.
{move,{x,0},{y,0}}.
- {label,203}.
- {loop_rec,{f,205},{x,0}}.
- {test,is_tagged_tuple,{f,204},[{x,0},2,{atom,get_mem}]}.
+ {label,202}.
+ {loop_rec,{f,204},{x,0}}.
+ {test,is_tagged_tuple,{f,203},[{x,0},2,{atom,get_mem}]}.
{test_heap,3,1}.
- {get_tuple_element,{x,0},1,{x,0}}.
remove_message.
{put_tuple2,{x,1},{list,[{atom,mem_max},{y,0}]}}.
+ {get_tuple_element,{x,0},1,{x,0}}.
{line,[{location,"couch_key_tree.erl",651}]}.
send.
- {jump,{f,206}}.
+ {jump,{f,205}}.
+ {label,203}.
+ {loop_rec_end,{f,202}}.
{label,204}.
- {loop_rec_end,{f,203}}.
- {label,205}.
timeout.
- {label,206}.
+ {label,205}.
{move,{integer,500},{x,1}}.
{move,{y,0},{x,2}}.
{move,{y,1},{x,0}}.
- {call_last,3,{f,202},2}.
+ {call_last,3,{f,201},2}.
-{function, module_info, 0, 208}.
- {label,207}.
+{function, module_info, 0, 207}.
+ {label,206}.
{line,[]}.
{func_info,{atom,couch_key_tree},{atom,module_info},0}.
- {label,208}.
+ {label,207}.
{move,{atom,couch_key_tree},{x,0}}.
{call_ext_only,1,{extfunc,erlang,get_module_info,1}}.
-{function, module_info, 1, 210}.
- {label,209}.
+{function, module_info, 1, 209}.
+ {label,208}.
{line,[]}.
{func_info,{atom,couch_key_tree},{atom,module_info},1}.
- {label,210}.
+ {label,209}.
{move,{x,0},{x,1}}.
{move,{atom,couch_key_tree},{x,0}}.
{call_ext_only,2,{extfunc,erlang,get_module_info,2}}.
-{function, '-spawn_mem_sampler/2-fun-0-', 2, 212}.
- {label,211}.
+{function, '-spawn_mem_sampler/2-fun-0-', 2, 211}.
+ {label,210}.
{line,[{location,"couch_key_tree.erl",644}]}.
{func_info,{atom,couch_key_tree},{atom,'-spawn_mem_sampler/2-fun-0-'},2}.
- {label,212}.
+ {label,211}.
{'%',{var_info,{x,1},[{type,{t_integer,{500,500}}}]}}.
{allocate,1,1}.
{move,{x,0},{y,0}}.
- {call,1,{f,192}}.
+ {call,1,{f,191}}.
{'%',{var_info,{x,0},[{type,{t_float,any}}]}}.
{move,{integer,500},{x,1}}.
{move,{x,0},{x,2}}.
{move,{y,0},{x,0}}.
- {call_last,3,{f,202},1}.
+ {call_last,3,{f,201},1}.
-{function, '-repair_tree/2-fun-2-', 2, 214}.
- {label,213}.
+{function, '-repair_tree/2-fun-2-', 2, 213}.
+ {label,212}.
{line,[{location,"couch_key_tree.erl",547}]}.
{func_info,{atom,couch_key_tree},{atom,'-repair_tree/2-fun-2-'},2}.
- {label,214}.
- {test,is_tuple,{f,213},[{x,0}]}.
- {test,test_arity,{f,213},[{x,0},2]}.
+ {label,213}.
+ {test,is_tuple,{f,212},[{x,0}]}.
+ {test,test_arity,{f,212},[{x,0},2]}.
{allocate_heap,2,{alloc,[{words,0},{floats,0},{funs,1}]},2}.
{move,{x,1},{y,1}}.
{get_tuple_element,{x,0},0,{y,0}}.
+ {make_fun3,{f,216},0,0,{x,1},{list,[]}}.
+ {'%',{var_info,{x,1},[{fun_type,{t_cons,{t_tuple,3,true,#{}},nil}}]}}.
{get_tuple_element,{x,0},1,{x,2}}.
- {make_fun3,{f,217},0,0,{x,0},{list,[]}}.
- {'%',{var_info,{x,0},[{fun_type,{t_cons,{t_tuple,3,true,#{}},nil}}]}}.
+ {move,{x,1},{x,0}}.
{move,nil,{x,1}}.
{line,[{location,"couch_key_tree.erl",548}]}.
{call_ext,3,{extfunc,lists,foldl,3}}.
- {test,is_nonempty_list,{f,215},[{x,0}]}.
+ {test,is_nonempty_list,{f,214},[{x,0}]}.
{get_list,{x,0},{x,1},{x,2}}.
- {test,is_nil,{f,215},[{x,2}]}.
+ {test,is_nil,{f,214},[{x,2}]}.
{test_heap,3,2}.
{put_tuple2,{x,1},{list,[{y,0},{x,1}]}}.
{move,{y,1},{x,0}}.
@@ -2917,18 +2918,18 @@
{get_tuple_element,{x,0},0,{x,0}}.
{deallocate,0}.
return.
- {label,215}.
+ {label,214}.
{line,[{location,"couch_key_tree.erl",548}]}.
{badmatch,{x,0}}.
-{function, '-repair_tree/2-fun-1-', 2, 217}.
- {label,216}.
+{function, '-repair_tree/2-fun-1-', 2, 216}.
+ {label,215}.
{line,[{location,"couch_key_tree.erl",549}]}.
{func_info,{atom,couch_key_tree},{atom,'-repair_tree/2-fun-1-'},2}.
- {label,217}.
- {test,is_tuple,{f,216},[{x,0}]}.
- {test,test_arity,{f,216},[{x,0},2]}.
+ {label,216}.
+ {test,is_tuple,{f,215},[{x,0}]}.
+ {test,test_arity,{f,215},[{x,0},2]}.
{test_heap,6,2}.
{get_tuple_element,{x,0},0,{x,2}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -2937,13 +2938,13 @@
return.
-{function, '-repair_tree/2-fun-0-', 2, 219}.
- {label,218}.
+{function, '-repair_tree/2-fun-0-', 2, 218}.
+ {label,217}.
{line,[{location,"couch_key_tree.erl",537}]}.
{func_info,{atom,couch_key_tree},{atom,'-repair_tree/2-fun-0-'},2}.
- {label,219}.
- {test,is_tuple,{f,220},[{x,0}]}.
- {test,test_arity,{f,220},[{x,0},2]}.
+ {label,218}.
+ {test,is_tuple,{f,219},[{x,0}]}.
+ {test,test_arity,{f,219},[{x,0},2]}.
{allocate,1,2}.
{get_tuple_element,{x,0},0,{y,0}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -2957,7 +2958,7 @@
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,1}.
return.
- {label,220}.
+ {label,219}.
{test_heap,2,1}.
{put_list,{x,0},nil,{x,1}}.
{move,{atom,function_clause},{x,0}}.
@@ -2965,11 +2966,11 @@
{call_ext_only,2,{extfunc,erlang,error,2}}.
-{function, '-stem_tree/4-fun-1-', 2, 222}.
- {label,221}.
+{function, '-stem_tree/4-fun-1-', 2, 221}.
+ {label,220}.
{line,[{location,"couch_key_tree.erl",515}]}.
{func_info,{atom,couch_key_tree},{atom,'-stem_tree/4-fun-1-'},2}.
- {label,222}.
+ {label,221}.
{line,[{location,"couch_key_tree.erl",516}]}.
{gc_bif,'+',{f,0},2,[{x,1},{integer,1}],{x,1}}.
{test_heap,3,2}.
@@ -2977,107 +2978,98 @@
return.
-{function, '-stem_tree/4-fun-0-', 4, 224}.
- {label,223}.
+{function, '-stem_tree/4-fun-0-', 4, 223}.
+ {label,222}.
{line,[{location,"couch_key_tree.erl",491}]}.
{func_info,{atom,couch_key_tree},{atom,'-stem_tree/4-fun-0-'},4}.
- {label,224}.
- {test,is_tuple,{f,228},[{x,1}]}.
- {test,test_arity,{f,228},[{x,1},4]}.
- {get_tuple_element,{x,1},0,{x,4}}.
- {get_tuple_element,{x,1},1,{x,5}}.
- {get_tuple_element,{x,1},2,{x,6}}.
- {get_tuple_element,{x,1},3,{x,1}}.
+ {label,223}.
+ {test,is_tuple,{f,227},[{x,1}]}.
+ {test,test_arity,{f,227},[{x,1},4]}.
{line,[{location,"couch_key_tree.erl",493}]}.
- {gc_bif,'+',{f,0},7,[{x,2},{integer,1}],{x,2}}.
- {allocate,6,7}.
- {init_yregs,{list,[{y,0},{y,1},{y,2}]}}.
- {move,{x,5},{y,3}}.
- {move,{x,6},{y,4}}.
- {move,{x,1},{y,5}}.
- {move,{x,0},{x,1}}.
- {move,{x,2},{x,0}}.
- {move,{x,3},{x,2}}.
- {move,{x,4},{x,3}}.
- {call,4,{f,149}}.
+ {gc_bif,'+',{f,0},4,[{x,2},{integer,1}],{x,2}}.
+ {allocate,3,4}.
+ {init_yregs,{list,[{y,0},{y,1}]}}.
+ {move,{x,1},{y,2}}.
+ {get_tuple_element,{x,1},0,{x,1}}.
+ {swap,{x,3},{x,2}}.
+ {swap,{x,1},{x,3}}.
+ {swap,{x,0},{x,1}}.
+ {call,4,{f,148}}.
{'%',{var_info,{x,0},[{type,{t_tuple,3,false,#{2 => number}}}]}}.
- {select_tuple_arity,{x,0},{f,227},{list,[3,{f,226},4,{f,225}]}}.
- {label,225}.
- {get_tuple_element,{x,0},0,{y,2}}.
- {get_tuple_element,{x,0},1,{x,1}}.
- {get_tuple_element,{x,0},2,{y,1}}.
- {get_tuple_element,{x,0},3,{y,0}}.
- {move,{x,1},{x,0}}.
- {move,{y,3},{x,1}}.
- {init_yregs,{list,[{y,3}]}}.
+ {get_tuple_element,{y,2},1,{x,1}}.
+ {get_tuple_element,{y,2},2,{y,1}}.
+ {get_tuple_element,{y,2},3,{y,2}}.
+ {move,{x,0},{y,0}}.
+ {select_tuple_arity,{x,0},{f,226},{list,[3,{f,225},4,{f,224}]}}.
+ {label,224}.
+ {get_tuple_element,{x,0},1,{x,0}}.
{call_ext,2,{extfunc,erlang,max,2}}.
{test_heap,2,1}.
- {put_list,{y,1},{y,4},{y,4}}.
- {move,{y,0},{x,2}}.
- {move,{y,5},{x,1}}.
- {move,{x,0},{y,5}}.
- {trim,2,4}.
- {move,{x,2},{x,0}}.
+ {get_tuple_element,{y,0},2,{x,1}}.
+ {put_list,{x,1},{y,1},{y,1}}.
+ {get_tuple_element,{y,0},3,{x,1}}.
+ {move,{y,2},{x,2}}.
+ {move,{x,0},{y,2}}.
+ {move,{x,1},{x,0}}.
+ {move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",497}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,5,1}.
- {put_tuple2,{x,0},{list,[{y,0},{y,3},{y,2},{x,0}]}}.
- {deallocate,4}.
+ {get_tuple_element,{y,0},0,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,1},{y,2},{y,1},{x,0}]}}.
+ {deallocate,3}.
return.
- {label,226}.
- {get_tuple_element,{x,0},0,{y,2}}.
- {get_tuple_element,{x,0},1,{x,1}}.
- {get_tuple_element,{x,0},2,{y,1}}.
- {move,{x,1},{x,0}}.
- {move,{y,3},{x,1}}.
- {init_yregs,{list,[{y,3}]}}.
+ {label,225}.
+ {get_tuple_element,{x,0},1,{x,0}}.
{call_ext,2,{extfunc,erlang,max,2}}.
- {move,{y,1},{x,2}}.
- {move,{y,5},{x,1}}.
- {move,{x,0},{y,5}}.
- {trim,2,4}.
- {move,{x,2},{x,0}}.
+ {get_tuple_element,{y,0},2,{x,1}}.
+ {move,{y,2},{x,2}}.
+ {move,{x,0},{y,2}}.
+ {move,{x,1},{x,0}}.
+ {move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",501}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,5,1}.
- {put_tuple2,{x,0},{list,[{y,0},{y,3},{y,2},{x,0}]}}.
- {deallocate,4}.
+ {get_tuple_element,{y,0},0,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,1},{y,2},{y,1},{x,0}]}}.
+ {deallocate,3}.
return.
- {label,227}.
+ {label,226}.
{line,[{location,"couch_key_tree.erl",493}]}.
{case_end,{x,0}}.
- {label,228}.
+ {label,227}.
{line,[{location,"couch_key_tree.erl",492}]}.
{badmatch,{x,1}}.
-{function, '-stem/2-fun-0-', 3, 230}.
- {label,229}.
+{function, '-stem/2-fun-0-', 3, 229}.
+ {label,228}.
{line,[{location,"couch_key_tree.erl",464}]}.
{func_info,{atom,couch_key_tree},{atom,'-stem/2-fun-0-'},3}.
- {label,230}.
- {test,is_tuple,{f,231},[{x,1}]}.
- {test,test_arity,{f,231},[{x,1},2]}.
- {allocate,2,3}.
- {init_yregs,{list,[{y,0}]}}.
+ {label,229}.
+ {test,is_tuple,{f,230},[{x,1}]}.
+ {test,test_arity,{f,230},[{x,1},2]}.
+ {allocate,1,3}.
{get_tuple_element,{x,1},0,{x,3}}.
- {get_tuple_element,{x,1},1,{y,1}}.
+ {get_tuple_element,{x,1},1,{y,0}}.
{move,{x,2},{x,1}}.
{move,{x,3},{x,2}}.
{line,[{location,"couch_key_tree.erl",465}]}.
- {call,3,{f,144}}.
+ {call,3,{f,143}}.
{'%',{var_info,{x,0},[{type,{t_tuple,2,true,#{}}}]}}.
- {get_tuple_element,{x,0},0,{y,0}}.
- {get_tuple_element,{x,0},1,{x,0}}.
- {move,{y,1},{x,1}}.
- {init_yregs,{list,[{y,1}]}}.
+ {get_tuple_element,{x,0},1,{x,1}}.
+ {move,{y,0},{x,2}}.
+ {move,{x,0},{y,0}}.
+ {move,{x,1},{x,0}}.
+ {move,{x,2},{x,1}}.
{line,[{location,"couch_key_tree.erl",466}]}.
{call_ext,2,{extfunc,erlang,'++',2}}.
{test_heap,3,1}.
- {put_tuple2,{x,0},{list,[{y,0},{x,0}]}}.
- {deallocate,2}.
+ {get_tuple_element,{y,0},0,{x,1}}.
+ {put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
+ {deallocate,1}.
return.
- {label,231}.
+ {label,230}.
{test_heap,4,2}.
{put_list,{x,1},nil,{x,1}}.
{put_list,{x,0},{x,1},{x,1}}.
@@ -3086,11 +3078,11 @@
{call_ext_only,2,{extfunc,erlang,error,2}}.
-{function, '-map/2-fun-0-', 4, 233}.
- {label,232}.
+{function, '-map/2-fun-0-', 4, 232}.
+ {label,231}.
{line,[{location,"couch_key_tree.erl",404}]}.
{func_info,{atom,couch_key_tree},{atom,'-map/2-fun-0-'},4}.
- {label,233}.
+ {label,232}.
{allocate,0,4}.
{move,{x,3},{x,2}}.
{call_fun,2}.
@@ -3098,11 +3090,11 @@
return.
-{function, '-get/2-lc$^0/1-0-', 1, 235}.
- {label,234}.
+{function, '-get/2-lc$^0/1-0-', 1, 234}.
+ {label,233}.
{line,[{location,"couch_key_tree.erl",301}]}.
{func_info,{atom,couch_key_tree},{atom,'-get/2-lc$^0/1-0-'},1}.
- {label,235}.
+ {label,234}.
{'%',
{var_info,
{x,0},
@@ -3111,23 +3103,23 @@
{t_tuple,2,true,
#{2 => {t_cons,{t_tuple,0,false,#{}},nil}}},
nil}}]}}.
- {test,is_nonempty_list,{f,237},[{x,0}]}.
+ {test,is_nonempty_list,{f,236},[{x,0}]}.
{get_list,{x,0},{x,1},{x,0}}.
{get_tuple_element,{x,1},0,{x,2}}.
{get_tuple_element,{x,1},1,{x,1}}.
{get_hd,{x,1},{x,3}}.
- {test,test_arity,{f,236},[{x,3},2]}.
+ {test,test_arity,{f,235},[{x,3},2]}.
{allocate,3,4}.
+ {move,{x,3},{y,0}}.
{move,{x,2},{y,1}}.
{move,{x,0},{y,2}}.
- {get_tuple_element,{x,3},1,{y,0}}.
{move,{x,1},{x,0}}.
{line,[{location,"couch_key_tree.erl",300}]}.
- {call,1,{f,239}}.
+ {call,1,{f,238}}.
{'%',{var_info,{x,0},[{type,{t_list,any,nil}}]}}.
{swap,{y,2},{x,0}}.
{line,[{location,"couch_key_tree.erl",301}]}.
- {call,1,{f,235}}.
+ {call,1,{f,234}}.
{'%',
{var_info,
{x,0},
@@ -3137,59 +3129,62 @@
#{2 => {t_tuple,2,true,#{2 => {t_list,any,nil}}}}},
nil}}]}}.
{test_heap,8,1}.
- {put_tuple2,{x,1},{list,[{y,1},{y,2}]}}.
- {put_tuple2,{x,1},{list,[{y,0},{x,1}]}}.
+ {get_tuple_element,{y,0},1,{x,1}}.
+ {put_tuple2,{x,2},{list,[{y,1},{y,2}]}}.
+ {put_tuple2,{x,1},{list,[{x,1},{x,2}]}}.
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,3}.
return.
+ {label,235}.
+ {call_only,1,{f,234}}.
{label,236}.
- {call_only,1,{f,235}}.
- {label,237}.
return.
-{function, '-get/2-lc$^1/1-1-', 1, 239}.
- {label,238}.
+{function, '-get/2-lc$^1/1-1-', 1, 238}.
+ {label,237}.
{line,[{location,"couch_key_tree.erl",300}]}.
{func_info,{atom,couch_key_tree},{atom,'-get/2-lc$^1/1-1-'},1}.
- {label,239}.
+ {label,238}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,0,false,#{}},nil}}]}}.
- {test,is_nonempty_list,{f,241},[{x,0}]}.
+ {test,is_nonempty_list,{f,240},[{x,0}]}.
{get_list,{x,0},{x,1},{x,0}}.
- {test,test_arity,{f,240},[{x,1},2]}.
+ {test,test_arity,{f,239},[{x,1},2]}.
{allocate,1,2}.
- {get_tuple_element,{x,1},0,{y,0}}.
- {call,1,{f,239}}.
+ {move,{x,1},{y,0}}.
+ {call,1,{f,238}}.
{'%',{var_info,{x,0},[{type,{t_list,any,nil}}]}}.
{test_heap,2,1}.
- {put_list,{y,0},{x,0},{x,0}}.
+ {get_tuple_element,{y,0},0,{x,1}}.
+ {put_list,{x,1},{x,0},{x,0}}.
{deallocate,1}.
return.
+ {label,239}.
+ {call_only,1,{f,238}}.
{label,240}.
- {call_only,1,{f,239}}.
- {label,241}.
return.
-{function, '-remove_leafs/2-fun-2-', 2, 243}.
- {label,242}.
+{function, '-remove_leafs/2-fun-2-', 2, 242}.
+ {label,241}.
{line,[{location,"couch_key_tree.erl",230}]}.
{func_info,{atom,couch_key_tree},{atom,'-remove_leafs/2-fun-2-'},2}.
- {label,243}.
- {test,is_tuple,{f,242},[{x,0}]}.
- {test,test_arity,{f,242},[{x,0},2]}.
+ {label,242}.
+ {test,is_tuple,{f,241},[{x,0}]}.
+ {test,test_arity,{f,241},[{x,0},2]}.
{allocate_heap,2,{alloc,[{words,0},{floats,0},{funs,1}]},2}.
{move,{x,1},{y,1}}.
{get_tuple_element,{x,0},0,{y,0}}.
+ {make_fun3,{f,245},0,0,{x,1},{list,[]}}.
+ {'%',{var_info,{x,1},[{fun_type,{t_cons,{t_tuple,3,true,#{}},nil}}]}}.
{get_tuple_element,{x,0},1,{x,2}}.
- {make_fun3,{f,246},0,0,{x,0},{list,[]}}.
- {'%',{var_info,{x,0},[{fun_type,{t_cons,{t_tuple,3,true,#{}},nil}}]}}.
+ {move,{x,1},{x,0}}.
{move,nil,{x,1}}.
{line,[{location,"couch_key_tree.erl",231}]}.
{call_ext,3,{extfunc,lists,foldl,3}}.
- {test,is_nonempty_list,{f,244},[{x,0}]}.
+ {test,is_nonempty_list,{f,243},[{x,0}]}.
{get_list,{x,0},{x,1},{x,2}}.
- {test,is_nil,{f,244},[{x,2}]}.
+ {test,is_nil,{f,243},[{x,2}]}.
{test_heap,3,2}.
{put_tuple2,{x,1},{list,[{y,0},{x,1}]}}.
{move,{y,1},{x,0}}.
@@ -3206,18 +3201,18 @@
{get_tuple_element,{x,0},0,{x,0}}.
{deallocate,0}.
return.
- {label,244}.
+ {label,243}.
{line,[{location,"couch_key_tree.erl",231}]}.
{badmatch,{x,0}}.
-{function, '-remove_leafs/2-fun-1-', 2, 246}.
- {label,245}.
+{function, '-remove_leafs/2-fun-1-', 2, 245}.
+ {label,244}.
{line,[{location,"couch_key_tree.erl",232}]}.
{func_info,{atom,couch_key_tree},{atom,'-remove_leafs/2-fun-1-'},2}.
- {label,246}.
- {test,is_tuple,{f,245},[{x,0}]}.
- {test,test_arity,{f,245},[{x,0},2]}.
+ {label,245}.
+ {test,is_tuple,{f,244},[{x,0}]}.
+ {test,test_arity,{f,244},[{x,0},2]}.
{test_heap,6,2}.
{get_tuple_element,{x,0},0,{x,2}}.
{get_tuple_element,{x,0},1,{x,0}}.
@@ -3226,11 +3221,11 @@
return.
-{function, '-remove_leafs/2-lc$^0/1-0-', 1, 248}.
- {label,247}.
+{function, '-remove_leafs/2-lc$^0/1-0-', 1, 247}.
+ {label,246}.
{line,[{location,"couch_key_tree.erl",225}]}.
{func_info,{atom,couch_key_tree},{atom,'-remove_leafs/2-lc$^0/1-0-'},1}.
- {label,248}.
+ {label,247}.
{'%',
{var_info,
{x,0},
@@ -3239,17 +3234,17 @@
{t_tuple,2,true,
#{2 => {t_cons,{t_tuple,0,false,#{}},nil}}},
nil}}]}}.
- {test,is_nonempty_list,{f,249},[{x,0}]}.
+ {test,is_nonempty_list,{f,248},[{x,0}]}.
{get_list,{x,0},{x,1},{x,0}}.
{get_tuple_element,{x,1},0,{x,2}}.
- {get_tuple_element,{x,1},1,{x,1}}.
{gc_bif,'+',{f,0},3,[{x,2},{integer,1}],{x,2}}.
+ {get_tuple_element,{x,1},1,{x,1}}.
{gc_bif,length,{f,0},3,[{x,1}],{x,3}}.
{gc_bif,'-',{f,0},4,[{x,2},{x,3}],{x,2}}.
{allocate,2,3}.
{move,{x,1},{y,0}}.
{move,{x,2},{y,1}}.
- {call,1,{f,248}}.
+ {call,1,{f,247}}.
{'%',
{var_info,
{x,0},
@@ -3264,127 +3259,127 @@
{put_list,{x,1},{x,0},{x,0}}.
{deallocate,2}.
return.
- {label,249}.
+ {label,248}.
return.
-{function, '-find_missing_simple/3-lc$^1/1-1-', 2, 251}.
- {label,250}.
+{function, '-find_missing_simple/3-lc$^1/1-1-', 2, 250}.
+ {label,249}.
{line,[{location,"couch_key_tree.erl",197}]}.
{func_info,{atom,couch_key_tree},
{atom,'-find_missing_simple/3-lc$^1/1-1-'},
2}.
- {label,251}.
+ {label,250}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nonempty_list,{f,253},[{x,0}]}.
+ {test,is_nonempty_list,{f,252},[{x,0}]}.
{get_list,{x,0},{x,2},{x,0}}.
{get_tuple_element,{x,2},0,{x,3}}.
- {test,is_lt,{f,252},[{x,3},{x,1}]}.
+ {test,is_lt,{f,251},[{x,3},{x,1}]}.
{allocate,1,3}.
{move,{x,2},{y,0}}.
- {call,2,{f,251}}.
+ {call,2,{f,250}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,2,1}.
{put_list,{y,0},{x,0},{x,0}}.
{deallocate,1}.
return.
+ {label,251}.
+ {call_only,2,{f,250}}.
{label,252}.
- {call_only,2,{f,251}}.
- {label,253}.
return.
-{function, '-find_missing_simple/3-lc$^0/1-0-', 2, 255}.
- {label,254}.
+{function, '-find_missing_simple/3-lc$^0/1-0-', 2, 254}.
+ {label,253}.
{line,[{location,"couch_key_tree.erl",196}]}.
{func_info,{atom,couch_key_tree},
{atom,'-find_missing_simple/3-lc$^0/1-0-'},
2}.
- {label,255}.
+ {label,254}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
- {test,is_nonempty_list,{f,257},[{x,0}]}.
+ {test,is_nonempty_list,{f,256},[{x,0}]}.
{get_list,{x,0},{x,2},{x,0}}.
{get_tuple_element,{x,2},0,{x,3}}.
- {test,is_ge,{f,256},[{x,3},{x,1}]}.
+ {test,is_ge,{f,255},[{x,3},{x,1}]}.
{allocate,1,3}.
{move,{x,2},{y,0}}.
- {call,2,{f,255}}.
+ {call,2,{f,254}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,2,1}.
{put_list,{y,0},{x,0},{x,0}}.
{deallocate,1}.
return.
+ {label,255}.
+ {call_only,2,{f,254}}.
{label,256}.
- {call_only,2,{f,255}}.
- {label,257}.
return.
-{function, '-find_missing/2-lc$^1/1-1-', 2, 259}.
- {label,258}.
+{function, '-find_missing/2-lc$^1/1-1-', 2, 258}.
+ {label,257}.
{line,[{location,"couch_key_tree.erl",187}]}.
{func_info,{atom,couch_key_tree},{atom,'-find_missing/2-lc$^1/1-1-'},2}.
- {label,259}.
- {test,is_nonempty_list,{f,261},[{x,0}]}.
+ {label,258}.
+ {test,is_nonempty_list,{f,260},[{x,0}]}.
{get_list,{x,0},{x,2},{x,0}}.
- {test,is_tuple,{f,260},[{x,2}]}.
- {test,test_arity,{f,260},[{x,2},2]}.
+ {test,is_tuple,{f,259},[{x,2}]}.
+ {test,test_arity,{f,259},[{x,2},2]}.
{get_tuple_element,{x,2},0,{x,3}}.
- {test,is_lt,{f,260},[{x,3},{x,1}]}.
+ {test,is_lt,{f,259},[{x,3},{x,1}]}.
{allocate,1,3}.
{move,{x,2},{y,0}}.
- {call,2,{f,259}}.
+ {call,2,{f,258}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,2,1}.
{put_list,{y,0},{x,0},{x,0}}.
{deallocate,1}.
return.
+ {label,259}.
+ {call_only,2,{f,258}}.
{label,260}.
- {call_only,2,{f,259}}.
- {label,261}.
- {test,is_nil,{f,262},[{x,0}]}.
+ {test,is_nil,{f,261},[{x,0}]}.
return.
- {label,262}.
+ {label,261}.
{test_heap,3,1}.
{put_tuple2,{x,0},{list,[{atom,bad_generator},{x,0}]}}.
{call_ext_only,1,{extfunc,erlang,error,1}}.
-{function, '-find_missing/2-lc$^0/1-0-', 2, 264}.
- {label,263}.
+{function, '-find_missing/2-lc$^0/1-0-', 2, 263}.
+ {label,262}.
{line,[{location,"couch_key_tree.erl",186}]}.
{func_info,{atom,couch_key_tree},{atom,'-find_missing/2-lc$^0/1-0-'},2}.
- {label,264}.
- {test,is_nonempty_list,{f,266},[{x,0}]}.
+ {label,263}.
+ {test,is_nonempty_list,{f,265},[{x,0}]}.
{get_list,{x,0},{x,2},{x,0}}.
- {test,is_tuple,{f,265},[{x,2}]}.
- {test,test_arity,{f,265},[{x,2},2]}.
+ {test,is_tuple,{f,264},[{x,2}]}.
+ {test,test_arity,{f,264},[{x,2},2]}.
{get_tuple_element,{x,2},0,{x,3}}.
- {test,is_ge,{f,265},[{x,3},{x,1}]}.
+ {test,is_ge,{f,264},[{x,3},{x,1}]}.
{allocate,1,3}.
{move,{x,2},{y,0}}.
- {call,2,{f,264}}.
+ {call,2,{f,263}}.
{'%',{var_info,{x,0},[{type,{t_list,{t_tuple,2,true,#{}},nil}}]}}.
{test_heap,2,1}.
{put_list,{y,0},{x,0},{x,0}}.
{deallocate,1}.
return.
+ {label,264}.
+ {call_only,2,{f,263}}.
{label,265}.
- {call_only,2,{f,264}}.
- {label,266}.
- {test,is_nil,{f,267},[{x,0}]}.
+ {test,is_nil,{f,266},[{x,0}]}.
return.
- {label,267}.
+ {label,266}.
{test_heap,3,1}.
{put_tuple2,{x,0},{list,[{atom,bad_generator},{x,0}]}}.
{call_ext_only,1,{extfunc,erlang,error,1}}.
-{function, '-multi_merge/2-fun-0-', 2, 269}.
- {label,268}.
+{function, '-multi_merge/2-fun-0-', 2, 268}.
+ {label,267}.
{line,[{location,"couch_key_tree.erl",46}]}.
{func_info,{atom,couch_key_tree},{atom,'-multi_merge/2-fun-0-'},2}.
- {label,269}.
+ {label,268}.
{allocate,0,2}.
{swap,{x,0},{x,1}}.
{line,[{location,"couch_key_tree.erl",47}]}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment