2023-09-14 19:43:13 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
extern int staticShadowAnalysis;
|
|
|
|
|
extern int staticPrivateAnalysis;
|
|
|
|
|
extern int keepDvmDirectives;
|
|
|
|
|
extern int keepSpfDirs;
|
|
|
|
|
extern int consoleMode;
|
|
|
|
|
extern int automaticDeprecateArrays;
|
|
|
|
|
extern int maxShadowWidth;
|
|
|
|
|
extern int langOfMessages;
|
|
|
|
|
extern bool removeNestedIntervals;
|
2024-06-19 18:08:27 +03:00
|
|
|
extern int sharedMemoryParallelization;
|
2023-09-14 19:43:13 +03:00
|
|
|
extern int parallizeFreeLoops;
|
|
|
|
|
extern int ignoreIO;
|
|
|
|
|
extern int parseForInlining;
|
|
|
|
|
extern bool ignoreArrayDistributeState;
|
|
|
|
|
extern bool fullDepGraph;
|
|
|
|
|
|
|
|
|
|
extern "C" int out_free_form;
|
|
|
|
|
extern "C" int out_upper_case;
|
|
|
|
|
extern "C" int out_line_unlimit;
|
|
|
|
|
|
|
|
|
|
enum passes {
|
|
|
|
|
UNROLL_LOOPS, //ordinal == 0
|
|
|
|
|
CONVERT_TO_ENDDO,
|
|
|
|
|
CORRECT_CODE_STYLE,
|
|
|
|
|
CORRECT_FORMAT_PLACE,
|
|
|
|
|
CREATE_NESTED_LOOPS,
|
|
|
|
|
REVERSE_CREATED_NESTED_LOOPS,
|
|
|
|
|
UNPARSE_FILE,
|
|
|
|
|
|
|
|
|
|
LOOP_ANALYZER_DATA_DIST_S0,
|
|
|
|
|
LOOP_ANALYZER_DATA_DIST_S1,
|
|
|
|
|
LOOP_ANALYZER_DATA_DIST_S2,
|
|
|
|
|
LOOP_ANALYZER_COMP_DIST,
|
|
|
|
|
LOOP_ANALYZER_ALIGNS,
|
|
|
|
|
LOOP_ANALYZER_NODIST,
|
|
|
|
|
CREATE_TEMPLATE_LINKS,
|
|
|
|
|
CREATE_DISTR_DIRS,
|
|
|
|
|
CREATE_PARALLEL_DIRS,
|
|
|
|
|
INSERT_PARALLEL_DIRS,
|
|
|
|
|
INSERT_PARALLEL_DIRS_NODIST,
|
|
|
|
|
INSERT_SHADOW_DIRS,
|
|
|
|
|
EXTRACT_SHADOW_DIRS,
|
|
|
|
|
CREATE_REMOTES,
|
|
|
|
|
REMOVE_AND_CALC_SHADOW,
|
|
|
|
|
TRANSFORM_SHADOW_IF_FULL,
|
|
|
|
|
|
|
|
|
|
CALL_GRAPH,
|
|
|
|
|
CALL_GRAPH2,
|
|
|
|
|
CALL_GRAPH_IR,
|
|
|
|
|
LOOP_GRAPH,
|
|
|
|
|
|
|
|
|
|
CODE_CHECKER_PASSES,
|
|
|
|
|
VERIFY_ENDDO,
|
2024-07-20 13:03:27 +03:00
|
|
|
VERIFY_INCLUDES,
|
2023-09-14 19:43:13 +03:00
|
|
|
VERIFY_EQUIVALENCE,
|
|
|
|
|
VERIFY_COMMON,
|
|
|
|
|
VERIFY_FUNC_DECL,
|
|
|
|
|
VERIFY_OPERATORS,
|
|
|
|
|
VERIFY_FORMAT,
|
|
|
|
|
PREPROC_SPF,
|
|
|
|
|
EXTRACT_PARALLEL_DIRS,
|
|
|
|
|
CORRECT_VAR_DECL,
|
|
|
|
|
PREPROC_ALLOCATES,
|
|
|
|
|
CHECK_FUNC_TO_INCLUDE,
|
|
|
|
|
CHECK_ARGS_DECL,
|
|
|
|
|
|
|
|
|
|
FIND_FUNC_TO_INCLUDE,
|
|
|
|
|
ONLY_ARRAY_GRAPH,
|
|
|
|
|
|
|
|
|
|
PRIVATE_ANALYSIS_SPF,
|
|
|
|
|
PRIVATE_CALL_GRAPH_STAGE1,
|
|
|
|
|
PRIVATE_CALL_GRAPH_STAGE2,
|
|
|
|
|
PRIVATE_CALL_GRAPH_STAGE3,
|
|
|
|
|
ARRAY_ACCESS_ANALYSIS_FOR_CORNER,
|
|
|
|
|
|
|
|
|
|
FILL_PAR_REGIONS_LINES,
|
|
|
|
|
FILL_PAR_REGIONS,
|
|
|
|
|
PRINT_PAR_REGIONS_ERRORS,
|
|
|
|
|
RESOLVE_PAR_REGIONS,
|
|
|
|
|
EXPAND_EXTRACT_PAR_REGION,
|
|
|
|
|
LOOP_DATA_DEPENDENCIES,
|
|
|
|
|
INSERT_INCLUDES,
|
|
|
|
|
REMOVE_DVM_DIRS,
|
|
|
|
|
REMOVE_DVM_DIRS_TO_COMMENTS,
|
2025-03-18 09:37:20 +03:00
|
|
|
REMOVE_SPF_DIRS,
|
2023-09-14 19:43:13 +03:00
|
|
|
REMOVE_DVM_INTERVALS,
|
|
|
|
|
VERIFY_DVM_DIRS,
|
|
|
|
|
|
2024-10-16 23:27:40 +03:00
|
|
|
REMOVE_DIST_ARRAYS_FROM_IO,
|
|
|
|
|
|
2023-09-14 19:43:13 +03:00
|
|
|
SUBST_EXPR,
|
|
|
|
|
SUBST_EXPR_RD,
|
|
|
|
|
REVERT_SUBST_EXPR,
|
|
|
|
|
REVERT_SUBST_EXPR_RD,
|
|
|
|
|
SUBST_EXPR_AND_UNPARSE,
|
|
|
|
|
SUBST_EXPR_RD_AND_UNPARSE,
|
|
|
|
|
|
|
|
|
|
GET_ALL_ARRAY_DECL,
|
|
|
|
|
FILE_LINE_INFO,
|
|
|
|
|
BUILD_INCLUDE_DEPENDENCIES,
|
|
|
|
|
|
|
|
|
|
MACRO_EXPANSION,
|
|
|
|
|
SWAP_ARRAY_DIMENSION,
|
|
|
|
|
|
|
|
|
|
CONVERT_ASSIGN_TO_LOOP,
|
|
|
|
|
CONVERT_LOOP_TO_ASSIGN,
|
|
|
|
|
RESTORE_LOOP_FROM_ASSIGN,
|
|
|
|
|
RESTORE_LOOP_FROM_ASSIGN_BACK,
|
|
|
|
|
|
|
|
|
|
FILL_COMMON_BLOCKS,
|
|
|
|
|
PREDICT_SCHEME,
|
|
|
|
|
CALCULATE_STATS_SCHEME,
|
2024-08-30 12:17:35 +03:00
|
|
|
GET_STATS_FOR_PREDICTOR,
|
2023-09-14 19:43:13 +03:00
|
|
|
|
|
|
|
|
DEF_USE_STAGE1,
|
|
|
|
|
DEF_USE_STAGE2,
|
|
|
|
|
REVERT_SPF_DIRS,
|
|
|
|
|
CLEAR_SPF_DIRS,
|
|
|
|
|
|
|
|
|
|
CREATE_INTER_TREE,
|
|
|
|
|
INSERT_INTER_TREE,
|
|
|
|
|
|
2025-03-25 15:18:49 +03:00
|
|
|
SWAP_OPERATORS,
|
|
|
|
|
|
2023-09-14 19:43:13 +03:00
|
|
|
SHADOW_GROUPING,
|
|
|
|
|
INLINE_PROCEDURES,
|
|
|
|
|
FILL_PARALLEL_REG_IR,
|
|
|
|
|
ADD_TEMPL_TO_USE_ONLY,
|
|
|
|
|
GCOV_PARSER,
|
|
|
|
|
PRIVATE_ARRAYS_EXPANSION,
|
|
|
|
|
PRIVATE_ARRAYS_SHRINKING,
|
|
|
|
|
PRIVATE_ARRAYS_SHRINKING_ANALYSIS,
|
|
|
|
|
LOOPS_SPLITTER,
|
|
|
|
|
LOOPS_COMBINER,
|
|
|
|
|
CHECK_PAR_REG_DIR,
|
|
|
|
|
INSERT_REGIONS,
|
|
|
|
|
CREATE_PARALLEL_REGIONS,
|
|
|
|
|
PRIVATE_REMOVING_ANALYSIS,
|
|
|
|
|
PRIVATE_REMOVING,
|
|
|
|
|
|
|
|
|
|
DUPLICATE_FUNCTIONS,
|
|
|
|
|
REMOVE_COPIES,
|
|
|
|
|
RESTORE_COPIES,
|
|
|
|
|
SWAP_LOOPS,
|
|
|
|
|
RESTORE_SWAP_LOOPS,
|
|
|
|
|
|
|
|
|
|
PARSE_FILES,
|
|
|
|
|
PPPA_ANALYZER,
|
|
|
|
|
SET_TO_ALL_DECL_INIT_ZERO,
|
|
|
|
|
DUMP_DECLS_WITH_INIT,
|
|
|
|
|
|
|
|
|
|
CREATE_CHECKPOINTS,
|
|
|
|
|
CONVERT_SAVE_TO_MODULE,
|
|
|
|
|
PROCESS_IO,
|
|
|
|
|
CONVERT_STRUCTURES_TO_SIMPLE,
|
|
|
|
|
|
|
|
|
|
PURE_INTENT_INSERT,
|
|
|
|
|
PURE_COMMON_TO_PARAMS,
|
|
|
|
|
PURE_SAVE_TO_PARAMS,
|
|
|
|
|
PURE_MODULE_TO_PARAMS,
|
|
|
|
|
|
|
|
|
|
REMOVE_UNUSED_FUNCTIONS,
|
|
|
|
|
GROUP_ACTUAL_AND_REMOTE,
|
|
|
|
|
GROUP_ACTUAL_AND_REMOTE_RESTORE,
|
|
|
|
|
|
|
|
|
|
RENAME_SYMBOLS,
|
|
|
|
|
FIND_PARAMETERS,
|
|
|
|
|
BUILD_IR,
|
|
|
|
|
LIVE_ANALYSIS_IR,
|
|
|
|
|
PRIVATE_ANALYSIS_IR,
|
2024-02-09 12:43:52 +03:00
|
|
|
REMOVE_DEAD_CODE,
|
2024-01-09 18:28:50 +03:00
|
|
|
REMOVE_DEAD_CODE_AND_UNPARSE,
|
2023-09-14 19:43:13 +03:00
|
|
|
|
|
|
|
|
FIX_COMMON_BLOCKS,
|
2024-04-02 17:48:48 +03:00
|
|
|
PARSE_OMP_DIRS,
|
2023-10-31 20:39:33 +03:00
|
|
|
REMOVE_OMP_DIRS,
|
2023-11-26 18:57:05 +03:00
|
|
|
REMOVE_OMP_DIRS_TRANSFORM,
|
2023-11-28 12:58:22 +03:00
|
|
|
REMOVE_COMMENTS,
|
2023-11-22 20:21:18 +03:00
|
|
|
GET_MIN_MAX_BLOCK_DIST,
|
2023-12-02 10:20:13 +03:00
|
|
|
CONVERT_TO_C,
|
2023-12-27 12:57:00 +03:00
|
|
|
INSERT_NO_DISTR_FLAGS_FROM_GUI,
|
2023-09-14 19:43:13 +03:00
|
|
|
|
2023-12-11 21:41:31 +03:00
|
|
|
SET_IMPLICIT_NONE,
|
2024-06-10 09:16:15 +03:00
|
|
|
RENAME_INLCUDES,
|
2023-12-11 21:41:31 +03:00
|
|
|
|
2025-05-19 20:50:35 +03:00
|
|
|
FIND_PRIVATE_ARRAYS,
|
|
|
|
|
|
2025-07-26 20:22:15 +03:00
|
|
|
TRANSFORM_ASSUMED_SIZE_PARAMETERS,
|
|
|
|
|
|
2023-09-14 19:43:13 +03:00
|
|
|
TEST_PASS,
|
|
|
|
|
EMPTY_PASS
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum algorithms {
|
|
|
|
|
CREATE_DISTIBUTION,
|
|
|
|
|
CREATE_ALIGNS,
|
|
|
|
|
EMPTY_ALGO
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum options {
|
|
|
|
|
STATIC_SHADOW_ANALYSIS,
|
|
|
|
|
STATIC_PRIVATE_ANALYSIS,
|
|
|
|
|
FREE_FORM,
|
|
|
|
|
KEEP_DVM_DIRECTIVES,
|
|
|
|
|
KEEP_SPF_DIRECTIVES,
|
|
|
|
|
PARALLIZE_FREE_LOOPS, // deprecated
|
|
|
|
|
MAX_SHADOW_WIDTH,
|
|
|
|
|
OUTPUT_UPPER,
|
|
|
|
|
TRANSLATE_MESSAGES,
|
|
|
|
|
KEEP_LOOPS_CLOSE_NESTING,
|
|
|
|
|
KEEP_GCOV,
|
|
|
|
|
ANALYSIS_OPTIONS,
|
|
|
|
|
DEBUG_PRINT_ON,
|
2025-01-13 18:16:11 +03:00
|
|
|
SHARED_MEMORY,
|
2023-09-14 19:43:13 +03:00
|
|
|
IGNORE_IO_SAPFOR,
|
|
|
|
|
KEEP_SPF_DIRECTIVES_AMONG_TRANSFORMATIONS,
|
|
|
|
|
PARSE_FOR_INLINE,
|
|
|
|
|
EMPTY_OPTION
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* passNames[EMPTY_PASS + 1];
|
|
|
|
|
extern const char* optionNames[EMPTY_OPTION + 1];
|
|
|
|
|
|
|
|
|
|
extern bool passNamesWasInit;
|
|
|
|
|
static void setPassValues()
|
|
|
|
|
{
|
|
|
|
|
if (passNamesWasInit)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
passNamesWasInit = true;
|
|
|
|
|
passNames[UNROLL_LOOPS] = "UNROLL_LOOPS";
|
|
|
|
|
passNames[CONVERT_TO_ENDDO] = "CONVERT_TO_ENDDO";
|
|
|
|
|
passNames[CORRECT_CODE_STYLE] = "CORRECT_CODE_STYLE";
|
|
|
|
|
passNames[LOOP_ANALYZER_DATA_DIST_S0] = "LOOP_ANALYZER_DATA_DIST_S0";
|
|
|
|
|
passNames[LOOP_ANALYZER_DATA_DIST_S1] = "LOOP_ANALYZER_DATA_DIST_S1";
|
|
|
|
|
passNames[LOOP_ANALYZER_DATA_DIST_S2] = "LOOP_ANALYZER_DATA_DIST_S2";
|
|
|
|
|
passNames[LOOP_ANALYZER_COMP_DIST] = "LOOP_ANALYZER_COMP_DIST";
|
|
|
|
|
passNames[LOOP_ANALYZER_ALIGNS] = "LOOP_ANALYZER_ALIGNS";
|
|
|
|
|
passNames[LOOP_ANALYZER_NODIST] = "LOOP_ANALYZER_NODIST";
|
|
|
|
|
passNames[CALL_GRAPH] = "CALL_GRAPH";
|
|
|
|
|
passNames[LOOP_GRAPH] = "LOOP_GRAPH";
|
|
|
|
|
passNames[VERIFY_ENDDO] = "VERIFY_ENDDO";
|
2024-07-20 13:03:27 +03:00
|
|
|
passNames[VERIFY_INCLUDES] = "VERIFY_INCLUDES";
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[VERIFY_EQUIVALENCE] = "VERIFY_EQUIVALENCE";
|
|
|
|
|
passNames[VERIFY_COMMON] = "VERIFY_COMMON";
|
|
|
|
|
passNames[VERIFY_OPERATORS] = "VERIFY_OPERATORS";
|
|
|
|
|
passNames[FIND_FUNC_TO_INCLUDE] = "FIND_FUNC_TO_INCLUDE";
|
|
|
|
|
passNames[CREATE_DISTR_DIRS] = "CREATE_DISTR_DIRS";
|
|
|
|
|
passNames[CREATE_PARALLEL_DIRS] = "CREATE_PARALLEL_DIRS";
|
|
|
|
|
passNames[INSERT_PARALLEL_DIRS] = "INSERT_PARALLEL_DIRS";
|
|
|
|
|
passNames[INSERT_PARALLEL_DIRS_NODIST] = "INSERT_PARALLEL_DIRS_NODIST";
|
|
|
|
|
passNames[ONLY_ARRAY_GRAPH] = "ONLY_ARRAY_GRAPH";
|
|
|
|
|
passNames[PREPROC_SPF] = "PREPROC_SPF";
|
|
|
|
|
passNames[EXTRACT_PARALLEL_DIRS] = "EXTRACT_PARALLEL_DIRS";
|
|
|
|
|
passNames[CORRECT_VAR_DECL] = "CORRECT_VAR_DECL";
|
|
|
|
|
passNames[PREPROC_ALLOCATES] = "PREPROC_ALLOCATES";
|
|
|
|
|
passNames[CREATE_REMOTES] = "CREATE_REMOTES";
|
|
|
|
|
passNames[PRIVATE_ANALYSIS_SPF] = "PRIVATE_ANALYSIS_SPF";
|
|
|
|
|
passNames[PRIVATE_CALL_GRAPH_STAGE1] = "PRIVATE_CALL_GRAPH_STAGE1";
|
|
|
|
|
passNames[PRIVATE_CALL_GRAPH_STAGE2] = "PRIVATE_CALL_GRAPH_STAGE2";
|
|
|
|
|
passNames[PRIVATE_CALL_GRAPH_STAGE3] = "PRIVATE_CALL_GRAPH_STAGE3";
|
|
|
|
|
passNames[FILL_PAR_REGIONS_LINES] = "FILL_PAR_REGIONS_LINES";
|
|
|
|
|
passNames[FILL_PAR_REGIONS] = "FILL_PAR_REGIONS";
|
|
|
|
|
passNames[RESOLVE_PAR_REGIONS] = "RESOLVE_PAR_REGIONS";
|
|
|
|
|
passNames[EXPAND_EXTRACT_PAR_REGION] = "EXPAND_EXTRACT_PAR_REGION";
|
|
|
|
|
passNames[LOOP_DATA_DEPENDENCIES] = "LOOP_DATA_DEPENDENCIES";
|
|
|
|
|
passNames[INSERT_INCLUDES] = "INSERT_INCLUDES";
|
|
|
|
|
passNames[REMOVE_DVM_DIRS] = "REMOVE_DVM_DIRS";
|
|
|
|
|
passNames[VERIFY_DVM_DIRS] = "VERIFY_DVM_DIRS";
|
2025-03-18 09:37:20 +03:00
|
|
|
passNames[REMOVE_DVM_DIRS_TO_COMMENTS] = "REMOVE_DVM_DIRS_TO_COMMENTS";
|
|
|
|
|
passNames[REMOVE_SPF_DIRS] = "REMOVE_SPF_DIRS";
|
2024-10-16 23:27:40 +03:00
|
|
|
passNames[REMOVE_DIST_ARRAYS_FROM_IO] = "REMOVE_DIST_ARRAYS_FROM_IO";
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[SUBST_EXPR] = "SUBST_EXPR";
|
|
|
|
|
passNames[SUBST_EXPR_RD] = "SUBST_EXPR_RD";
|
|
|
|
|
passNames[CALL_GRAPH2] = "CALL_GRAPH2";
|
|
|
|
|
passNames[REVERT_SUBST_EXPR] = "REVERT_SUBST_EXPR";
|
|
|
|
|
passNames[REVERT_SUBST_EXPR_RD] = "REVERT_SUBST_EXPR_RD";
|
|
|
|
|
passNames[CREATE_NESTED_LOOPS] = "CREATE_NESTED_LOOPS";
|
|
|
|
|
passNames[UNPARSE_FILE] = "UNPARSE_FILE";
|
|
|
|
|
passNames[CREATE_TEMPLATE_LINKS] = "CREATE_TEMPLATE_LINKS";
|
|
|
|
|
passNames[CODE_CHECKER_PASSES] = "CODE_CHECKER_PASSES";
|
|
|
|
|
passNames[CHECK_FUNC_TO_INCLUDE] = "CHECK_FUNC_TO_INCLUDE";
|
|
|
|
|
passNames[CHECK_ARGS_DECL] = "CHECK_ARGS_DECL";
|
|
|
|
|
passNames[GET_ALL_ARRAY_DECL] = "GET_ALL_ARRAY_DECL";
|
|
|
|
|
passNames[INSERT_SHADOW_DIRS] = "INSERT_SHADOW_DIRS";
|
|
|
|
|
passNames[EXTRACT_SHADOW_DIRS] = "EXTRACT_SHADOW_DIRS";
|
|
|
|
|
passNames[FILE_LINE_INFO] = "FILE_LINE_INFO";
|
|
|
|
|
passNames[SUBST_EXPR_AND_UNPARSE] = "SUBST_EXPR_AND_UNPARSE";
|
|
|
|
|
passNames[SUBST_EXPR_RD_AND_UNPARSE] = "SUBST_EXPR_RD_AND_UNPARSE";
|
|
|
|
|
passNames[BUILD_INCLUDE_DEPENDENCIES] = "BUILD_INCLUDE_DEPENDENCIES";
|
|
|
|
|
passNames[EMPTY_PASS] = "EMPTY_PASS";
|
|
|
|
|
passNames[REMOVE_AND_CALC_SHADOW] = "REMOVE_AND_CALC_SHADOW";
|
|
|
|
|
passNames[TRANSFORM_SHADOW_IF_FULL] = "TRANSFORM_SHADOW_IF_FULL";
|
|
|
|
|
passNames[MACRO_EXPANSION] = "MACRO_EXPANSION";
|
|
|
|
|
passNames[SWAP_ARRAY_DIMENSION] = "SWAP_ARRAY_DIMENSION";
|
|
|
|
|
passNames[REVERSE_CREATED_NESTED_LOOPS] = "REVERSE_CREATED_NESTED_LOOPS";
|
|
|
|
|
passNames[CONVERT_ASSIGN_TO_LOOP] = "CONVERT_ASSIGN_TO_LOOP";
|
|
|
|
|
passNames[CONVERT_LOOP_TO_ASSIGN] = "CONVERT_LOOP_TO_ASSIGN";
|
|
|
|
|
passNames[ARRAY_ACCESS_ANALYSIS_FOR_CORNER] = "ARRAY_ACCESS_ANALYSIS_FOR_CORNER";
|
|
|
|
|
passNames[FILL_COMMON_BLOCKS] = "FILL_COMMON_BLOCKS";
|
|
|
|
|
passNames[PREDICT_SCHEME] = "PREDICT_SCHEME";
|
2024-08-30 12:17:35 +03:00
|
|
|
passNames[GET_STATS_FOR_PREDICTOR] = "GET_STATS_FOR_PREDICTOR";
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[DEF_USE_STAGE1] = "DEF_USE_STAGE1";
|
2025-03-18 09:37:20 +03:00
|
|
|
passNames[DEF_USE_STAGE2] = "DEF_USE_STAGE2";
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[REVERT_SPF_DIRS] = "REVERT_SPF_DIRS";
|
|
|
|
|
passNames[CLEAR_SPF_DIRS] = "CLEAR_SPF_DIRS";
|
|
|
|
|
passNames[INSERT_REGIONS] = "INSERT_REGIONS";
|
|
|
|
|
passNames[RESTORE_LOOP_FROM_ASSIGN] = "RESTORE_LOOP_FROM_ASSIGN";
|
|
|
|
|
passNames[RESTORE_LOOP_FROM_ASSIGN_BACK] = "RESTORE_LOOP_FROM_ASSIGN_BACK";
|
|
|
|
|
passNames[INLINE_PROCEDURES] = "INLINE_PROCEDURES";
|
|
|
|
|
passNames[SHADOW_GROUPING] = "SHADOW_GROUPING";
|
|
|
|
|
passNames[PRINT_PAR_REGIONS_ERRORS] = "PRINT_PAR_REGIONS_ERRORS";
|
|
|
|
|
passNames[FILL_PARALLEL_REG_IR] = "FILL_PARALLEL_REG_IR";
|
|
|
|
|
passNames[ADD_TEMPL_TO_USE_ONLY] = "ADD_TEMPL_TO_USE_ONLY";
|
|
|
|
|
passNames[GCOV_PARSER] = "GCOV_PARSER";
|
|
|
|
|
passNames[PRIVATE_ARRAYS_EXPANSION] = "PRIVATE_ARRAYS_EXPANSION";
|
|
|
|
|
passNames[LOOPS_SPLITTER] = "LOOPS_SPLITTER";
|
|
|
|
|
passNames[LOOPS_COMBINER] = "LOOPS_COMBINER";
|
|
|
|
|
passNames[CHECK_PAR_REG_DIR] = "CHECK_PAR_REG_DIR";
|
|
|
|
|
passNames[CREATE_INTER_TREE] = "CREATE_INTER_TREE";
|
|
|
|
|
passNames[INSERT_INTER_TREE] = "INSERT_INTER_TREE";
|
2025-03-25 15:18:49 +03:00
|
|
|
passNames[SWAP_OPERATORS] = "SWAP_OPERATORS";
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[CREATE_PARALLEL_REGIONS] = "CREATE_PARALLEL_REGIONS";
|
|
|
|
|
passNames[PRIVATE_REMOVING_ANALYSIS] = "PRIVATE_REMOVING_ANALYSIS";
|
|
|
|
|
passNames[PRIVATE_REMOVING] = "PRIVATE_REMOVING";
|
|
|
|
|
passNames[CALCULATE_STATS_SCHEME] = "CALCULATE_STATS_SCHEME";
|
|
|
|
|
passNames[REMOVE_DVM_INTERVALS] = "REMOVE_DVM_INTERVALS";
|
|
|
|
|
passNames[VERIFY_FUNC_DECL] = "VERIFY_FUNC_DECL";
|
|
|
|
|
passNames[DUPLICATE_FUNCTIONS] = "DUPLICATE_FUNCTIONS";
|
|
|
|
|
passNames[REMOVE_COPIES] = "REMOVE_COPIES";
|
|
|
|
|
passNames[RESTORE_COPIES] = "RESTORE_COPIES";
|
|
|
|
|
passNames[SWAP_LOOPS] = "SWAP_LOOPS";
|
|
|
|
|
passNames[RESTORE_SWAP_LOOPS] = "RESTORE_SWAP_LOOPS";
|
|
|
|
|
passNames[PRIVATE_ARRAYS_SHRINKING] = "PRIVATE_ARRAYS_SHRINKING";
|
|
|
|
|
passNames[PRIVATE_ARRAYS_SHRINKING_ANALYSIS] = "PRIVATE_ARRAYS_SHRINKING_ANALYSIS";
|
|
|
|
|
passNames[PARSE_FILES] = "PARSE_FILES";
|
|
|
|
|
passNames[PPPA_ANALYZER] = "PPPA_ANALYZER";
|
|
|
|
|
passNames[SET_TO_ALL_DECL_INIT_ZERO] = "SET_TO_ALL_DECL_INIT_ZERO";
|
|
|
|
|
passNames[DUMP_DECLS_WITH_INIT] = "DUMP_DECLS_WITH_INIT";
|
|
|
|
|
passNames[CREATE_CHECKPOINTS] = "CREATE_CHEKPOINTS";
|
|
|
|
|
passNames[CONVERT_SAVE_TO_MODULE] = "CONVERT_SAVE_TO_MODULE";
|
|
|
|
|
passNames[PROCESS_IO] = "PROCESS_IO";
|
|
|
|
|
passNames[CONVERT_STRUCTURES_TO_SIMPLE] = "CONVERT_STRUCTURES_TO_SIMPLE";
|
|
|
|
|
|
|
|
|
|
passNames[PURE_INTENT_INSERT] = "PURE_INTENT_INSERT";
|
|
|
|
|
passNames[PURE_COMMON_TO_PARAMS] = "PURE_COMMON_TO_PARAMS";
|
|
|
|
|
passNames[PURE_SAVE_TO_PARAMS] = "PURE_SAVE_TO_PARAMS";
|
|
|
|
|
passNames[PURE_MODULE_TO_PARAMS] = "PURE_MODULE_TO_PARAMS";
|
|
|
|
|
|
|
|
|
|
passNames[REMOVE_UNUSED_FUNCTIONS] = "REMOVE_UNUSED_FUNCTIONS";
|
|
|
|
|
passNames[GROUP_ACTUAL_AND_REMOTE] = "GROUP_ACTUAL_AND_REMOTE";
|
|
|
|
|
passNames[GROUP_ACTUAL_AND_REMOTE_RESTORE] = "GROUP_ACTUAL_AND_REMOTE_RESTORE";
|
|
|
|
|
passNames[VERIFY_FORMAT] = "VERIFY_FORMAT";
|
|
|
|
|
passNames[CORRECT_FORMAT_PLACE] = "CORRECT_FORMAT_PLACE";
|
|
|
|
|
|
|
|
|
|
passNames[RENAME_SYMBOLS] = "RENAME_SYMBOLS";
|
|
|
|
|
passNames[FIND_PARAMETERS] = "FIND_PARAMETERS";
|
|
|
|
|
passNames[BUILD_IR] = "BUILD_IR";
|
|
|
|
|
passNames[CALL_GRAPH_IR] = "CALL_GRAPH_IR";
|
|
|
|
|
passNames[LIVE_ANALYSIS_IR] = "LIVE_ANALYSIS_IR";
|
|
|
|
|
passNames[PRIVATE_ANALYSIS_IR] = "PRIVATE_ANALYSIS_IR";
|
2024-02-09 12:43:52 +03:00
|
|
|
passNames[REMOVE_DEAD_CODE] = "REMOVE_DEAD_CODE";
|
2024-01-09 18:28:50 +03:00
|
|
|
passNames[REMOVE_DEAD_CODE_AND_UNPARSE] = "REMOVE_DEAD_CODE_AND_UNPARSE";
|
2023-09-14 19:43:13 +03:00
|
|
|
|
|
|
|
|
passNames[FIX_COMMON_BLOCKS] = "FIX_COMMON_BLOCKS";
|
2024-04-02 17:48:48 +03:00
|
|
|
passNames[PARSE_OMP_DIRS] = "PARSE_OMP_DIRS";
|
2023-10-31 20:39:33 +03:00
|
|
|
passNames[REMOVE_OMP_DIRS] = "REMOVE_OMP_DIRS";
|
2023-11-26 18:57:05 +03:00
|
|
|
passNames[REMOVE_OMP_DIRS_TRANSFORM] = "REMOVE_OMP_DIRS_TRANSFORM";
|
2023-11-28 12:58:22 +03:00
|
|
|
passNames[REMOVE_COMMENTS] = "REMOVE_COMMENTS";
|
2023-11-22 20:21:18 +03:00
|
|
|
passNames[GET_MIN_MAX_BLOCK_DIST] = "GET_MIN_MAX_BLOCK_DIST";
|
2023-12-02 10:20:13 +03:00
|
|
|
passNames[CONVERT_TO_C] = "CONVERT_TO_C";
|
2023-12-11 21:41:31 +03:00
|
|
|
passNames[SET_IMPLICIT_NONE] = "SET_IMPLICIT_NONE";
|
2024-06-10 09:16:15 +03:00
|
|
|
passNames[RENAME_INLCUDES] = "RENAME_INLCUDES";
|
2023-12-27 12:57:00 +03:00
|
|
|
passNames[INSERT_NO_DISTR_FLAGS_FROM_GUI] = "INSERT_NO_DISTR_FLAGS_FROM_GUI";
|
2025-05-19 20:50:35 +03:00
|
|
|
passNames[FIND_PRIVATE_ARRAYS] = "FIND_PRIVATE_ARRAYS";
|
2023-09-14 19:43:13 +03:00
|
|
|
|
2025-07-26 20:22:15 +03:00
|
|
|
passNames[TRANSFORM_ASSUMED_SIZE_PARAMETERS] = "TRANSFORM_ASSUMED_SIZE_PARAMETERS";
|
|
|
|
|
|
2023-09-14 19:43:13 +03:00
|
|
|
passNames[TEST_PASS] = "TEST_PASS";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int getPassCode(const std::string& passName)
|
|
|
|
|
{
|
|
|
|
|
for (int z = 0; z < EMPTY_PASS + 1; ++z)
|
|
|
|
|
if (passNames[z] == passName)
|
|
|
|
|
return z;
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
2023-09-20 20:51:11 +03:00
|
|
|
void runPass(const int curr_regime, const char *proj_name = "dvm.proj", const char *folderName = NULL, bool root_call = false);
|