|
1 | 1 | passes = [ |
2 | | - # name, optional prefix (pass_PREFIX_name()) |
3 | | - ("arr_slice", "replace"), |
4 | | - ("array_op", "replace"), |
5 | | - ("class_constructor", "replace"), |
6 | | - ("dead_code_removal", ""), |
7 | | - ("div_to_mul", "replace"), |
8 | | - ("do_loops", "replace"), |
9 | | - ("flip_sign", "replace"), |
10 | | - ("fma", "replace"), |
11 | | - ("for_all", "replace"), |
12 | | - ("global_stmts", "wrap"), |
13 | | - ("global_stmts_program", "wrap"), |
14 | | - ("global_symbols", "wrap"), |
15 | | - ("implied_do_loops", "replace"), |
16 | | - ("init_expr", "replace"), |
17 | | - ("inline_function_calls", ""), |
18 | | - ("instantiate_template", ""), |
19 | | - ("intrinsic_function", "replace"), |
20 | | - ("loop_unroll", ""), |
21 | | - ("loop_vectorise", ""), |
22 | | - ("nested_vars", ""), |
23 | | - ("param_to_const", "replace"), |
24 | | - ("pass_array_by_data", ""), |
25 | | - ("pass_compare", ""), |
26 | | - ("pass_list_expr", ""), |
27 | | - ("print_arr", "replace"), |
28 | | - ("print_list_tuple", "replace"), |
29 | | - ("print_struct_type", "replace"), |
30 | | - ("select_case", "replace"), |
31 | | - ("sign_from_value", "replace"), |
32 | | - ("subroutine_from_function", "create"), |
33 | | - ("transform_optional_argument_functions", ""), |
34 | | - ("unused_functions", ""), |
35 | | - ("update_array_dim_intrinsic_calls", ""), |
36 | | - ("where", "replace"), |
| 2 | + "replace_arr_slice", |
| 3 | + "replace_array_op", |
| 4 | + "replace_class_constructor", |
| 5 | + "dead_code_removal", |
| 6 | + "replace_div_to_mul", |
| 7 | + "replace_do_loops", |
| 8 | + "replace_flip_sign", |
| 9 | + "replace_fma", |
| 10 | + "replace_for_all", |
| 11 | + "wrap_global_stmts", |
| 12 | + "wrap_global_stmts_program", |
| 13 | + "wrap_global_symbols", |
| 14 | + "replace_implied_do_loops", |
| 15 | + "replace_init_expr", |
| 16 | + "inline_function_calls", |
| 17 | + "replace_intrinsic_function", |
| 18 | + "loop_unroll", |
| 19 | + "loop_vectorise", |
| 20 | + "nested_vars", |
| 21 | + "replace_param_to_const", |
| 22 | + "array_by_data", |
| 23 | + "compare", |
| 24 | + "list_expr", |
| 25 | + "replace_print_arr", |
| 26 | + "replace_print_list_tuple", |
| 27 | + "replace_print_struct_type", |
| 28 | + "replace_select_case", |
| 29 | + "replace_sign_from_value", |
| 30 | + "create_subroutine_from_function", |
| 31 | + "transform_optional_argument_functions", |
| 32 | + "unused_functions", |
| 33 | + "update_array_dim_intrinsic_calls", |
| 34 | + "replace_where", |
37 | 35 | ] |
38 | 36 |
|
39 | 37 |
|
40 | 38 |
|
41 | | -for pass_name, prefix in passes: |
42 | | - print(f"Processing: {pass_name}") |
43 | | - name = pass_name |
44 | | - if name.startswith("pass"): |
45 | | - name = name[5:] |
| 39 | +for name in passes: |
| 40 | + print(f"Processing: {name}") |
46 | 41 | name_up = name.upper() |
47 | | - if prefix != "": |
48 | | - prefix += "_" |
49 | | - arguments = r"""Allocator &al, ASR::TranslationUnit_t &unit, |
50 | | - const PassOptions &pass_options""" |
51 | | - return_type = "void" |
52 | | - if pass_name == "instantiate_template": |
53 | | - arguments = r"""Allocator &al, |
54 | | - std::map<std::string, ASR::ttype_t*> subs, std::map<std::string, ASR::symbol_t*> rt_subs, |
55 | | - SymbolTable *current_scope, std::string new_func_name, ASR::symbol_t *sym""" |
56 | | - return_type = "ASR::symbol_t*" |
57 | | - |
58 | | - |
59 | | - |
60 | 42 | header = rf"""#ifndef LIBASR_PASS_{name_up}_H |
61 | 43 | #define LIBASR_PASS_{name_up}_H |
62 | 44 |
|
|
65 | 47 |
|
66 | 48 | namespace LCompilers {{ |
67 | 49 |
|
68 | | - {return_type} pass_{prefix}{name}({arguments}); |
| 50 | + void pass_{name}(Allocator &al, ASR::TranslationUnit_t &unit, |
| 51 | + const PassOptions &pass_options); |
69 | 52 |
|
70 | 53 | }} // namespace LCompilers |
71 | 54 |
|
72 | 55 | #endif // LIBASR_PASS_{name_up}_H |
73 | 56 | """ |
74 | | - header_filename = f"pass/{pass_name}.h" |
| 57 | + header_filename = f"pass/{name}.h" |
75 | 58 | f = open(header_filename, "w") |
76 | 59 | f.write(header) |
0 commit comments