File tree 3 files changed +10
-1
lines changed
3 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ set(SRC
34
34
pass/select_case.cpp
35
35
pass/implied_do_loops.cpp
36
36
pass/array_op.cpp
37
+ pass/subroutine_from_function.cpp
37
38
pass/class_constructor.cpp
38
39
pass/arr_slice.cpp
39
40
pass/print_arr.cpp
Original file line number Diff line number Diff line change 39
39
#include < libasr/pass/update_array_dim_intrinsic_calls.h>
40
40
#include < libasr/pass/pass_array_by_data.h>
41
41
#include < libasr/pass/pass_list_expr.h>
42
+ #include < libasr/pass/subroutine_from_function.h>
42
43
43
44
#include < map>
44
45
#include < vector>
@@ -76,7 +77,8 @@ namespace LCompilers {
76
77
{" loop_vectorise" , &LFortran::pass_loop_vectorise},
77
78
{" array_dim_intrinsics_update" , &LFortran::pass_update_array_dim_intrinsic_calls},
78
79
{" pass_list_expr" , &LFortran::pass_list_expr},
79
- {" pass_array_by_data" , &LFortran::pass_array_by_data}
80
+ {" pass_array_by_data" , &LFortran::pass_array_by_data},
81
+ {" subroutine_from_function" , &LFortran::pass_create_subroutine_from_function}
80
82
};
81
83
82
84
bool is_fast;
@@ -100,6 +102,7 @@ namespace LCompilers {
100
102
" pass_array_by_data" ,
101
103
" pass_list_expr" ,
102
104
" arr_slice" ,
105
+ " subroutine_from_function" ,
103
106
" array_op" ,
104
107
" print_arr" ,
105
108
" print_list" ,
@@ -117,6 +120,7 @@ namespace LCompilers {
117
120
" implied_do_loops" ,
118
121
" pass_array_by_data" ,
119
122
" arr_slice" ,
123
+ " subroutine_from_function" ,
120
124
" array_op" ,
121
125
" print_arr" ,
122
126
" print_list" ,
Original file line number Diff line number Diff line change @@ -71,6 +71,10 @@ namespace LFortran {
71
71
Vec<ASR::stmt_t *> replace_doloop (Allocator &al, const ASR::DoLoop_t &loop,
72
72
int comp=-1 );
73
73
74
+ static inline bool is_aggregate_type (ASR::expr_t * var) {
75
+ return ASR::is_a<ASR::Struct_t>(*ASRUtils::expr_type (var));
76
+ }
77
+
74
78
template <class Struct >
75
79
class PassVisitor : public ASR ::BaseWalkVisitor<Struct> {
76
80
You can’t perform that action at this time.
0 commit comments