draft of parallel regions merging pass

This commit is contained in:
2026-04-19 18:32:49 +03:00
parent 54e83e194d
commit d0712d1241
6 changed files with 589 additions and 0 deletions

View File

@@ -23,6 +23,7 @@
#include "ParallelizationRegions/ParRegions_func.h"
#include "ParallelizationRegions/resolve_par_reg_conflicts.h"
#include "ParallelizationRegions/expand_extract_reg.h"
#include "ParallelizationRegions/parse_merge_dirs.h"
#include "Distribution/Distribution.h"
#include "Distribution/GraphCSR.h"
@@ -1905,6 +1906,10 @@ static bool runAnalysis(SgProject &project, const int curr_regime, const bool ne
transformAssumedSizeParameters(allFuncInfo);
else if (curr_regime == FIND_PRIVATE_ARRAYS_ANALYSIS)
FindPrivateArrays(loopGraph, fullIR, insertedPrivates);
else if (curr_regime == MERGE_COPY_ARRAYS)
{
mergeCopyArrays(parallelRegions, allFuncInfo);
}
else if (curr_regime == ARRAY_PROPAGATION)
ArrayConstantPropagation(project);
@@ -2362,6 +2367,7 @@ void runPass(const int curr_regime, const char *proj_name, const char *folderNam
case FIX_COMMON_BLOCKS:
case TEST_PASS:
case SET_IMPLICIT_NONE:
case MERGE_COPY_ARRAYS:
runAnalysis(*project, curr_regime, false);
case SUBST_EXPR_RD_AND_UNPARSE:
case SUBST_EXPR_AND_UNPARSE: