@@ -100,14 +100,13 @@ static LiftedCont* lambda_lift(Context* ctx, const Node* cont, String given_name
100100 CFNodeVariables * node_vars = * find_value_dict (CFNode * , CFNodeVariables * , ctx -> scope_vars , cf_node );
101101 struct List * recover_context = new_list (const Node * );
102102
103- // add_to_recover_context(recover_context, node_vars->free_set, cont);
104103 add_to_recover_context (recover_context , node_vars -> bound_set , cont );
105104 size_t recover_context_size = entries_count_list (recover_context );
106105
107106 debugv_print ("lambda_lift: free (to-be-spilled) variables at '%s' (count=%d): " , name , recover_context_size );
108107 for (size_t i = 0 ; i < recover_context_size ; i ++ ) {
109108 const Node * item = read_list (const Node * , recover_context )[i ];
110- debugv_print (get_value_name_safe (item ));
109+ debugv_print ("%s %%%d" , get_value_name (item ) ? get_value_name ( item ) : "" , item -> id );
111110 if (i + 1 < recover_context_size )
112111 debugv_print (", " );
113112 }
@@ -122,13 +121,7 @@ static LiftedCont* lambda_lift(Context* ctx, const Node* cont, String given_name
122121 insert_dict (const Node * , LiftedCont * , ctx -> lifted , cont , lifted_cont );
123122
124123 Context lifting_ctx = * ctx ;
125- // struct Dict* old_map = lifting_ctx.rewriter.map;
126- // lifting_ctx.rewriter.map = clone_dict(lifting_ctx.rewriter.map);
127-
128- // lifting_ctx.rewriter = create_rewriter(ctx->rewriter.src_module, ctx->rewriter.dst_module, (RewriteNodeFn) process_node);
129- // lifting_ctx.rewriter.decls_map = NULL;
130- lifting_ctx .rewriter .map = new_dict (const Node * , Node * , (HashFn ) hash_node , (CmpFn ) compare_node );
131- lifting_ctx .rewriter .parent = & ctx -> rewriter ;
124+ lifting_ctx .rewriter = create_children_rewriter (& ctx -> rewriter );
132125 register_processed_list (& lifting_ctx .rewriter , oparams , new_params );
133126
134127 const Node * payload = var (a , qualified_type_helper (uint32_type (a ), false), "sp" );
@@ -160,9 +153,7 @@ static LiftedCont* lambda_lift(Context* ctx, const Node* cont, String given_name
160153 }
161154
162155 const Node * substituted = rewrite_node (& lifting_ctx .rewriter , obody );
163- //destroy_dict(lifting_ctx.rewriter.processed);
164156 destroy_rewriter (& lifting_ctx .rewriter );
165- // lifting_ctx.rewriter.map = old_map;
166157
167158 assert (is_terminator (substituted ));
168159 new_fn -> payload .fun .body = finish_body (bb , substituted );
0 commit comments