Skip to content

Commit 5c3bb9e

Browse files
[ASR Pass] Symbolic: Simplify process_attributes arguments
1 parent 4c2f136 commit 5c3bb9e

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

src/libasr/pass/replace_symbolic.cpp

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,8 +1003,7 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
10031003
}
10041004
}
10051005

1006-
ASR::expr_t* process_attributes(Allocator &al, const Location &loc, ASR::expr_t* expr,
1007-
SymbolTable* module_scope) {
1006+
ASR::expr_t* process_attributes(const Location &loc, ASR::expr_t* expr) {
10081007
if (ASR::is_a<ASR::IntrinsicScalarFunction_t>(*expr)) {
10091008
ASR::IntrinsicScalarFunction_t* intrinsic_func = ASR::down_cast<ASR::IntrinsicScalarFunction_t>(expr);
10101009
int64_t intrinsic_id = intrinsic_func->m_intrinsic_id;
@@ -1031,7 +1030,6 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
10311030
}
10321031

10331032
void visit_Assignment(const ASR::Assignment_t &x) {
1034-
SymbolTable* module_scope = current_scope->parent;
10351033
if (ASR::is_a<ASR::Var_t>(*x.m_value) && ASR::is_a<ASR::CPtr_t>(*ASRUtils::expr_type(x.m_value))) {
10361034
ASR::symbol_t *v = ASR::down_cast<ASR::Var_t>(x.m_value)->m_v;
10371035
if (symbolic_vars_to_free.find(v) == symbolic_vars_to_free.end()) return;
@@ -1043,7 +1041,7 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
10431041
if (intrinsic_func->m_type->type == ASR::ttypeType::SymbolicExpression) {
10441042
process_intrinsic_function(x.base.base.loc, intrinsic_func, x.m_target);
10451043
} else if (intrinsic_func->m_type->type == ASR::ttypeType::Logical) {
1046-
ASR::expr_t* function_call = process_attributes(al, x.base.base.loc, x.m_value, module_scope);
1044+
ASR::expr_t* function_call = process_attributes(x.base.base.loc, x.m_value);
10471045
ASR::stmt_t* stmt = ASRUtils::STMT(ASR::make_Assignment_t(al, x.base.base.loc, x.m_target, function_call, nullptr));
10481046
pass_result.push_back(al, stmt);
10491047
}
@@ -1129,11 +1127,10 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
11291127
ASR::If_t& xx = const_cast<ASR::If_t&>(x);
11301128
transform_stmts(xx.m_body, xx.n_body);
11311129
transform_stmts(xx.m_orelse, xx.n_orelse);
1132-
SymbolTable* module_scope = current_scope->parent;
11331130
if (ASR::is_a<ASR::IntrinsicScalarFunction_t>(*xx.m_test)) {
11341131
ASR::IntrinsicScalarFunction_t* intrinsic_func = ASR::down_cast<ASR::IntrinsicScalarFunction_t>(xx.m_test);
11351132
if (intrinsic_func->m_type->type == ASR::ttypeType::Logical) {
1136-
ASR::expr_t* function_call = process_attributes(al, xx.base.base.loc, xx.m_test, module_scope);
1133+
ASR::expr_t* function_call = process_attributes(xx.base.base.loc, xx.m_test);
11371134
xx.m_test = function_call;
11381135
}
11391136
}
@@ -1190,7 +1187,6 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
11901187

11911188
void visit_Print(const ASR::Print_t &x) {
11921189
std::vector<ASR::expr_t*> print_tmp;
1193-
SymbolTable* module_scope = current_scope->parent;
11941190
for (size_t i=0; i<x.n_values; i++) {
11951191
ASR::expr_t* val = x.m_values[i];
11961192
if (ASR::is_a<ASR::Var_t>(*val) && ASR::is_a<ASR::CPtr_t>(*ASRUtils::expr_type(val))) {
@@ -1220,7 +1216,7 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
12201216
// Now create the FunctionCall node for basic_str
12211217
print_tmp.push_back(basic_str(x.base.base.loc, target));
12221218
} else if (ASR::is_a<ASR::Logical_t>(*ASRUtils::expr_type(val))) {
1223-
ASR::expr_t* function_call = process_attributes(al, x.base.base.loc, val, module_scope);
1219+
ASR::expr_t* function_call = process_attributes(x.base.base.loc, val);
12241220
print_tmp.push_back(function_call);
12251221
}
12261222
} else if (ASR::is_a<ASR::Cast_t>(*val)) {
@@ -1358,14 +1354,13 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
13581354
}
13591355

13601356
void visit_Assert(const ASR::Assert_t &x) {
1361-
SymbolTable* module_scope = current_scope->parent;
13621357
ASR::expr_t* left_tmp = nullptr;
13631358
ASR::expr_t* right_tmp = nullptr;
13641359
if (ASR::is_a<ASR::LogicalCompare_t>(*x.m_test)) {
13651360
ASR::LogicalCompare_t *l = ASR::down_cast<ASR::LogicalCompare_t>(x.m_test);
13661361

1367-
left_tmp = process_attributes(al, x.base.base.loc, l->m_left, module_scope);
1368-
right_tmp = process_attributes(al, x.base.base.loc, l->m_right, module_scope);
1362+
left_tmp = process_attributes(x.base.base.loc, l->m_left);
1363+
right_tmp = process_attributes(x.base.base.loc, l->m_right);
13691364
ASR::expr_t* test = ASRUtils::EXPR(ASR::make_LogicalCompare_t(al, x.base.base.loc, left_tmp,
13701365
l->m_op, right_tmp, l->m_type, l->m_value));
13711366

@@ -1386,7 +1381,7 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
13861381
} else if (ASR::is_a<ASR::IntrinsicScalarFunction_t>(*x.m_test)) {
13871382
ASR::IntrinsicScalarFunction_t* intrinsic_func = ASR::down_cast<ASR::IntrinsicScalarFunction_t>(x.m_test);
13881383
if (intrinsic_func->m_type->type == ASR::ttypeType::Logical) {
1389-
ASR::expr_t* test = process_attributes(al, x.base.base.loc, x.m_test, module_scope);
1384+
ASR::expr_t* test = process_attributes(x.base.base.loc, x.m_test);
13901385
ASR::stmt_t *assert_stmt = ASRUtils::STMT(ASR::make_Assert_t(al, x.base.base.loc, test, x.m_msg));
13911386
pass_result.push_back(al, assert_stmt);
13921387
}

0 commit comments

Comments
 (0)