From c26305bf57a5c0076bcaf37732f6e50c8545f4ec Mon Sep 17 00:00:00 2001 From: xnpster Date: Sat, 14 Jun 2025 19:48:50 +0300 Subject: [PATCH] STMT_STR: fix dependencies order, handle STMT_STR while replacing --- .../ReplaceArraysInIO/replace_dist_arrays_in_io.cpp | 4 +++- src/Utils/PassManager.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.cpp b/src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.cpp index e9c088d..f202bd4 100644 --- a/src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.cpp +++ b/src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.cpp @@ -136,7 +136,9 @@ static void replaceArrayRec(SgSymbol* arr, SgSymbol* replace_by, SgExpression* e if (!exp) return; - if (exp->symbol() && exp->symbol()->identifier() && strcmp(exp->symbol()->identifier(), arr->identifier()) == 0) + if (exp->variant() != STMT_STR && exp->symbol() && + exp->symbol()->identifier() && + strcmp(exp->symbol()->identifier(), arr->identifier()) == 0) { has_read |= from_read; has_write |= from_write; diff --git a/src/Utils/PassManager.h b/src/Utils/PassManager.h index 482b949..c66c970 100644 --- a/src/Utils/PassManager.h +++ b/src/Utils/PassManager.h @@ -257,7 +257,7 @@ void InitPassesDependencies(map> &passDepsIn, set list({ REVERT_SUBST_EXPR_RD, CONVERT_LOOP_TO_ASSIGN }) <= Pass(RESOLVE_PAR_REGIONS); - list({ REVERT_SUBST_EXPR_RD, CONVERT_LOOP_TO_ASSIGN, FILL_PAR_REGIONS}) <= Pass(REMOVE_DIST_ARRAYS_FROM_IO); + list({ FILL_PAR_REGIONS, REVERT_SUBST_EXPR_RD, CONVERT_LOOP_TO_ASSIGN}) <= Pass(REMOVE_DIST_ARRAYS_FROM_IO); Pass(REVERT_SUBST_EXPR_RD) <= Pass(EXPAND_EXTRACT_PAR_REGION);