@@ -104,7 +104,7 @@ void bb_build_rpo(func_t *func, basic_block_t *bb)
104104
105105void build_rpo (void )
106106{
107- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
107+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
108108 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
109109 args -> func = func ;
110110 args -> bb = func -> bbs ;
@@ -121,7 +121,6 @@ void build_rpo(void)
121121 args -> postorder_cb = bb_build_rpo ;
122122 bb_forward_traversal (args );
123123 }
124- free (args );
125124}
126125
127126basic_block_t * intersect (basic_block_t * i , basic_block_t * j )
@@ -221,7 +220,7 @@ void bb_build_dom(func_t *func, basic_block_t *bb)
221220
222221void build_dom (void )
223222{
224- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
223+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
225224 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
226225 args -> func = func ;
227226 args -> bb = func -> bbs ;
@@ -230,7 +229,6 @@ void build_dom(void)
230229 args -> preorder_cb = bb_build_dom ;
231230 bb_forward_traversal (args );
232231 }
233- free (args );
234232}
235233
236234void bb_build_df (func_t * func , basic_block_t * bb )
@@ -256,7 +254,7 @@ void bb_build_df(func_t *func, basic_block_t *bb)
256254
257255void build_df (void )
258256{
259- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
257+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
260258 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
261259 args -> func = func ;
262260 args -> bb = func -> bbs ;
@@ -265,7 +263,6 @@ void build_df(void)
265263 args -> postorder_cb = bb_build_df ;
266264 bb_forward_traversal (args );
267265 }
268- free (args );
269266}
270267
271268basic_block_t * reverse_intersect (basic_block_t * i , basic_block_t * j )
@@ -351,7 +348,7 @@ void bb_build_rdom(func_t *func, basic_block_t *bb)
351348
352349void build_rdom (void )
353350{
354- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
351+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
355352 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
356353 args -> func = func ;
357354 args -> bb = func -> exit ;
@@ -360,7 +357,6 @@ void build_rdom(void)
360357 args -> preorder_cb = bb_build_rdom ;
361358 bb_backward_traversal (args );
362359 }
363- free (args );
364360}
365361
366362void bb_build_rdf (func_t * func , basic_block_t * bb )
@@ -396,7 +392,7 @@ void bb_build_rdf(func_t *func, basic_block_t *bb)
396392
397393void build_rdf (void )
398394{
399- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
395+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
400396 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
401397 args -> func = func ;
402398 args -> bb = func -> exit ;
@@ -405,7 +401,6 @@ void build_rdf(void)
405401 args -> postorder_cb = bb_build_rdf ;
406402 bb_backward_traversal (args );
407403 }
408- free (args );
409404}
410405
411406void use_chain_add_tail (insn_t * i , var_t * var )
@@ -488,7 +483,7 @@ void var_add_killed_bb(var_t *var, basic_block_t *bb)
488483 if (found )
489484 return ;
490485
491- ref = calloc ( 1 , sizeof (ref_block_t ));
486+ ref = arena_calloc ( GENERAL_ARENA , 1 , sizeof (ref_block_t ));
492487 ref -> bb = bb ;
493488 if (!var -> ref_block_list .head )
494489 var -> ref_block_list .head = ref ;
@@ -511,7 +506,7 @@ void fn_add_global(func_t *func, var_t *var)
511506 if (found )
512507 return ;
513508
514- sym = calloc ( 1 , sizeof ( symbol_t ) );
509+ sym = arena_alloc_symbol ( );
515510 sym -> var = var ;
516511 if (!func -> global_sym_list .head ) {
517512 sym -> index = 0 ;
@@ -544,7 +539,7 @@ void bb_solve_globals(func_t *func, basic_block_t *bb)
544539
545540void solve_globals (void )
546541{
547- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
542+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
548543 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
549544 args -> func = func ;
550545 args -> bb = func -> bbs ;
@@ -553,7 +548,6 @@ void solve_globals(void)
553548 args -> postorder_cb = bb_solve_globals ;
554549 bb_forward_traversal (args );
555550 }
556- free (args );
557551}
558552
559553bool var_check_in_scope (var_t * var , block_t * block )
@@ -723,7 +717,7 @@ void pop_name(var_t *var)
723717
724718void append_phi_operand (insn_t * insn , var_t * var , basic_block_t * bb_from )
725719{
726- phi_operand_t * op = calloc ( 1 , sizeof (phi_operand_t ));
720+ phi_operand_t * op = arena_calloc ( GENERAL_ARENA , 1 , sizeof (phi_operand_t ));
727721 op -> from = bb_from ;
728722 op -> var = get_stack_top_subscript_var (var );
729723
@@ -863,7 +857,7 @@ void bb_unwind_phi(func_t *func, basic_block_t *bb)
863857
864858void unwind_phi (void )
865859{
866- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
860+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
867861 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
868862 args -> func = func ;
869863 args -> bb = func -> bbs ;
@@ -872,7 +866,6 @@ void unwind_phi(void)
872866 args -> preorder_cb = bb_unwind_phi ;
873867 bb_forward_traversal (args );
874868 }
875- free (args );
876869}
877870
878871#ifdef __SHECC__
@@ -1599,7 +1592,7 @@ void bb_build_reversed_rpo(func_t *func, basic_block_t *bb)
15991592
16001593void build_reversed_rpo (void )
16011594{
1602- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
1595+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
16031596 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
16041597 func -> bb_cnt = 0 ;
16051598 args -> func = func ;
@@ -1617,7 +1610,6 @@ void build_reversed_rpo(void)
16171610 args -> postorder_cb = bb_build_reversed_rpo ;
16181611 bb_backward_traversal (args );
16191612 }
1620- free (args );
16211613}
16221614
16231615void bb_reset_live_kill_idx (func_t * func , basic_block_t * bb )
@@ -1749,7 +1741,7 @@ bool recompute_live_out(basic_block_t *bb)
17491741
17501742void liveness_analysis (void )
17511743{
1752- bb_traversal_args_t * args = calloc ( 1 , sizeof ( bb_traversal_args_t ) );
1744+ bb_traversal_args_t * args = arena_alloc_traversal_args ( );
17531745 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
17541746 args -> func = func ;
17551747 args -> bb = func -> bbs ;
@@ -1765,7 +1757,6 @@ void liveness_analysis(void)
17651757 args -> preorder_cb = bb_solve_locals ;
17661758 bb_forward_traversal (args );
17671759 }
1768- free (args );
17691760
17701761 for (func_t * func = FUNC_LIST .head ; func ; func = func -> next ) {
17711762 basic_block_t * bb = func -> exit ;
0 commit comments