|
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