discopop 3.2.1__tar.gz → 4.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. {discopop-3.2.1/discopop.egg-info → discopop-4.0.0}/PKG-INFO +1 -1
  2. {discopop-3.2.1 → discopop-4.0.0/discopop.egg-info}/PKG-INFO +1 -1
  3. {discopop-3.2.1 → discopop-4.0.0}/discopop.egg-info/SOURCES.txt +139 -39
  4. {discopop-3.2.1 → discopop-4.0.0}/discopop.egg-info/entry_points.txt +1 -2
  5. {discopop-3.2.1 → discopop-4.0.0}/discopop.egg-info/requires.txt +1 -0
  6. discopop-4.0.0/discopop.egg-info/top_level.txt +3 -0
  7. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/__main__.py +8 -4
  8. discopop-4.0.0/discopop_explorer/aliases/LineID.py +27 -0
  9. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/Arguments.py → discopop-4.0.0/discopop_explorer/aliases/MemoryRegion.py +6 -5
  10. discopop-4.0.0/discopop_explorer/aliases/NodeID.py +27 -0
  11. discopop-4.0.0/discopop_explorer/classes/PEGraph/CUNode.py +31 -0
  12. discopop-4.0.0/discopop_explorer/classes/PEGraph/Dependency.py +45 -0
  13. discopop-4.0.0/discopop_explorer/classes/PEGraph/DummyNode.py +24 -0
  14. discopop-4.0.0/discopop_explorer/classes/PEGraph/FunctionNode.py +169 -0
  15. discopop-4.0.0/discopop_explorer/classes/PEGraph/LoopNode.py +86 -0
  16. discopop-4.0.0/discopop_explorer/classes/PEGraph/Node.py +97 -0
  17. discopop-4.0.0/discopop_explorer/classes/PEGraph/NodeT.py +15 -0
  18. discopop-4.0.0/discopop_explorer/classes/PEGraph/PEGraphX.py +548 -0
  19. {discopop-3.2.1/discopop_explorer/pattern_detectors → discopop-4.0.0/discopop_explorer/classes/patterns}/PatternBase.py +4 -2
  20. {discopop-3.2.1/discopop_explorer/pattern_detectors → discopop-4.0.0/discopop_explorer/classes/patterns}/PatternInfo.py +5 -5
  21. {discopop-3.2.1/discopop_explorer → discopop-4.0.0/discopop_explorer/classes}/variable.py +10 -7
  22. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/discopop_explorer.py +132 -110
  23. discopop-4.0.0/discopop_explorer/enums/DepType.py +17 -0
  24. discopop-4.0.0/discopop_explorer/enums/EdgeType.py +19 -0
  25. discopop-4.0.0/discopop_explorer/enums/MWType.py +19 -0
  26. discopop-4.0.0/discopop_explorer/enums/NodeType.py +17 -0
  27. discopop-4.0.0/discopop_explorer/functions/PEGraph/output/gephi.py +32 -0
  28. discopop-4.0.0/discopop_explorer/functions/PEGraph/output/json.py +23 -0
  29. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/check_reachability.py +37 -0
  30. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/depends_ignore_readonly.py +75 -0
  31. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_loop_index.py +44 -0
  32. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_passed_by_reference.py +20 -0
  33. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_predecessor.py +52 -0
  34. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_readonly_inside_loop_body.py +53 -0
  35. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_reduction_var_by_name.py +23 -0
  36. discopop-4.0.0/discopop_explorer/functions/PEGraph/properties/is_scalar_val.py +25 -0
  37. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/edges.py +49 -0
  38. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/memory_regions.py +26 -0
  39. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/nodes.py +32 -0
  40. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/paths.py +80 -0
  41. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/reductions.py +22 -0
  42. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/subtree.py +107 -0
  43. discopop-4.0.0/discopop_explorer/functions/PEGraph/queries/variables.py +116 -0
  44. discopop-4.0.0/discopop_explorer/functions/PEGraph/traversal/children.py +48 -0
  45. discopop-4.0.0/discopop_explorer/functions/PEGraph/traversal/parent.py +43 -0
  46. discopop-4.0.0/discopop_explorer/functions/PEGraph/traversal/successors.py +27 -0
  47. discopop-4.0.0/discopop_explorer/functions/PEGraph/unused/unused_functions.py +114 -0
  48. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/json_serializer.py +6 -7
  49. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/parallel_utils.py +15 -7
  50. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detection.py +56 -51
  51. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/CombinedGPURegions.py +38 -24
  52. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Dependency.py +3 -2
  53. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/EntryPoint.py +18 -11
  54. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/ExitPoint.py +19 -11
  55. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Update.py +36 -22
  56. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/combined_gpu_pattern_detector.py +8 -4
  57. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/prepare_metadata.py +2 -1
  58. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_1.py +21 -12
  59. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_2.py +35 -27
  60. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_3.py +16 -9
  61. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_4.py +48 -40
  62. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_5.py +5 -2
  63. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_6.py +80 -24
  64. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/utilities.py +10 -9
  65. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/device_updates.py +6 -6
  66. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/do_all_detector.py +192 -64
  67. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/geometric_decomposition_detector.py +36 -21
  68. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/pipeline_detector.py +51 -39
  69. discopop-4.0.0/discopop_explorer/pattern_detectors/reduction_detector.py +410 -0
  70. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py +55 -44
  71. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPUMemory.py +13 -12
  72. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPURegions.py +32 -29
  73. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/gpu_pattern_detector.py +12 -8
  74. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py +2 -1
  75. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/alias_detection.py +1 -1
  76. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/classes.py +26 -14
  77. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/filter.py +32 -18
  78. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/postprocessor.py +8 -5
  79. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/preprocessor.py +17 -14
  80. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/auxiliary.py +7 -3
  81. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/barriers.py +22 -14
  82. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/data_sharing_clauses.py +6 -3
  83. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/dependency_clauses.py +46 -36
  84. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py +34 -25
  85. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/task_parallelism_detector.py +18 -10
  86. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py +37 -32
  87. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/plugins/pipeline.py +28 -20
  88. discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction/PEGraphConstructionUtilities.py +168 -0
  89. discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction/ParserUtilities.py +16 -0
  90. discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction/classes/DependenceItem.py +22 -0
  91. discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction/classes/LoopData.py +18 -0
  92. {discopop-3.2.1/discopop_explorer → discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction}/parser.py +80 -39
  93. {discopop-3.2.1/discopop_explorer → discopop-4.0.0/discopop_explorer/utilities/general}/generate_Data_CUInst.py +30 -24
  94. discopop-4.0.0/discopop_explorer/utilities/statistics/collect_statistics.py +125 -0
  95. discopop-4.0.0/discopop_explorer/utilities/statistics/cyclomatic_complexity/boxplot.py +65 -0
  96. discopop-4.0.0/discopop_explorer/utilities/statistics/cyclomatic_complexity/cc_dictionary.py +60 -0
  97. discopop-4.0.0/discopop_explorer/utilities/statistics/cyclomatic_complexity/subtree.py +52 -0
  98. discopop-4.0.0/discopop_explorer/utilities/statistics/cyclomatic_complexity/total.py +32 -0
  99. discopop-4.0.0/discopop_explorer/utilities/statistics/maximum_call_path_depth.py +21 -0
  100. discopop-4.0.0/discopop_explorer/utilities/statistics/num_function_calls.py +24 -0
  101. discopop-4.0.0/discopop_explorer/utilities/statistics/output_statistics.py +259 -0
  102. discopop-4.0.0/discopop_explorer/utilities/statistics/suggestion_call_path_depths.py +23 -0
  103. discopop-4.0.0/discopop_explorer/utilities/statistics/suggestion_cyclomatic_complexity.py +39 -0
  104. discopop-4.0.0/discopop_explorer/utilities/statistics/suggestion_lines_of_code.py +56 -0
  105. discopop-4.0.0/discopop_explorer/utilities/statistics/utilities/call_path_depth.py +39 -0
  106. discopop-4.0.0/discopop_explorer/utilities/statistics/utilities/num_function_calls.py +34 -0
  107. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/utils.py +285 -96
  108. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/CodeGenerator.py +8 -8
  109. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/CodeGeneratorArguments.py +3 -3
  110. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/classes/ContentBuffer.py +6 -6
  111. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/classes/Line.py +1 -1
  112. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/classes/Pragma.py +1 -1
  113. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py +29 -16
  114. discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/ArgumentClasses.py +39 -0
  115. discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/GEPDependencyRemover.py +56 -0
  116. discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/Types.py +9 -0
  117. discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__main__.py +44 -0
  118. discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/utils.py +25 -0
  119. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/ConfigProvider/ConfigProviderArguments.py +3 -3
  120. discopop-4.0.0/discopop_library/DependencyMetadata/compare_metadata.py +49 -0
  121. discopop-4.0.0/discopop_library/EmpiricalAutotuning/ArgumentClasses.py +49 -0
  122. discopop-4.0.0/discopop_library/EmpiricalAutotuning/Autotuner.py +302 -0
  123. discopop-4.0.0/discopop_library/EmpiricalAutotuning/Classes/CodeConfiguration.py +157 -0
  124. discopop-4.0.0/discopop_library/EmpiricalAutotuning/Classes/ExecutionResult.py +23 -0
  125. discopop-4.0.0/discopop_library/EmpiricalAutotuning/Statistics/StatisticsGraph.py +79 -0
  126. discopop-4.0.0/discopop_library/EmpiricalAutotuning/Types.py +9 -0
  127. discopop-4.0.0/discopop_library/EmpiricalAutotuning/__main__.py +52 -0
  128. discopop-4.0.0/discopop_library/EmpiricalAutotuning/utils.py +25 -0
  129. discopop-4.0.0/discopop_library/FolderStructure/setup.py +76 -0
  130. discopop-4.0.0/discopop_library/FolderStructure/teardown.py +64 -0
  131. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/GlobalLogger/setup.py +1 -1
  132. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/HostpotLoader/HotspotLoaderArguments.py +4 -3
  133. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/HostpotLoader/hostpot_loader.py +12 -15
  134. discopop-4.0.0/discopop_library/LineMapping/delete.py +16 -0
  135. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/LineMapping/diff_modifications.py +9 -3
  136. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/LineMapping/initialize.py +1 -1
  137. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/LineMapping/save.py +1 -1
  138. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/MemoryRegions/utils.py +1 -1
  139. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/PatchApplicatorArguments.py +2 -2
  140. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/patch_applicator.py +2 -12
  141. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/PatchGeneratorArguments.py +2 -2
  142. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/__main__.py +1 -1
  143. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/from_json_patterns.py +1 -1
  144. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/from_optimizer_output.py +1 -1
  145. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/patch_generator.py +4 -20
  146. discopop-4.0.0/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  147. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/CostModels/CostModel.py +29 -14
  148. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/CostModels/utilities.py +2 -2
  149. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/DataTransfers.py +13 -8
  150. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/NewDataTransfers.py +9 -9
  151. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/calculate_configuration_data_movement.py +1 -1
  152. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/DelaunayInterpolatedMicrobench.py +18 -14
  153. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/ExtrapInterpolatedMicrobench.py +19 -11
  154. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/Microbench.py +3 -3
  155. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/MicrobenchParser.py +1 -1
  156. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/MixedMicrobench.py +6 -2
  157. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/PureDataMicrobench.py +14 -14
  158. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/OptimizationGraph.py +1 -1
  159. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/OptimizerArguments.py +2 -2
  160. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/PETParser/DataAccesses/FromCUs.py +13 -5
  161. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/PETParser/PETParser.py +113 -78
  162. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/AddRangesToUpdates.py +13 -8
  163. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveDuplicatedUpdates.py +6 -4
  164. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveLoopIndexUpdates.py +2 -1
  165. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Variables/Experiment.py +13 -9
  166. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Variables/ExperimentUtils.py +8 -8
  167. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/__main__.py +1 -1
  168. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/context/ContextObject.py +17 -9
  169. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/context/Update.py +3 -3
  170. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextMerge.py +2 -1
  171. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextNode.py +2 -1
  172. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextRestore.py +2 -1
  173. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextSave.py +2 -1
  174. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshot.py +2 -1
  175. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshotPop.py +2 -1
  176. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/DeviceSwitch.py +3 -2
  177. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/FunctionReturn.py +2 -1
  178. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/FunctionRoot.py +12 -4
  179. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/GenericNode.py +19 -7
  180. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/Loop.py +11 -5
  181. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/SynchronizationTrigger.py +3 -2
  182. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/nodes/Workload.py +23 -10
  183. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/Network.py +8 -8
  184. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/System.py +13 -11
  185. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/devices/CPU.py +4 -2
  186. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/devices/Device.py +5 -3
  187. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/devices/GPU.py +7 -5
  188. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/system_utils.py +1 -1
  189. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/types/DataAccessType.py +8 -8
  190. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/gui/plotting/CostModels.py +9 -9
  191. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/gui/presentation/ChoiceDetails.py +2 -2
  192. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/gui/presentation/OptionTable.py +5 -5
  193. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py +3 -3
  194. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py +5 -4
  195. {discopop-3.2.1/DEPRECATED_discopop_wizard/screens → discopop-4.0.0/discopop_library/discopop_optimizer/gui}/widgets/ScrollableText.py +5 -4
  196. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/interactive/interactive_optimizer.py +9 -5
  197. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimization/evaluate_all_decision_combinations.py +9 -5
  198. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimization/evolutionary_algorithm.py +38 -13
  199. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimization/greedy.py +4 -4
  200. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimization/validation.py +5 -3
  201. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimizer.py +8 -6
  202. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/scheduling/workload_delta.py +12 -10
  203. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/suggestions/importers/do_all.py +3 -3
  204. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/suggestions/importers/reduction.py +6 -2
  205. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/suggestions/optimizers/loop_collapse.py +17 -10
  206. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/MOGUtilities.py +25 -22
  207. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/insert_device_switch_nodes.py +1 -1
  208. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/RandomSamples.py +7 -1
  209. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/visualization/plotting.py +11 -10
  210. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/visualization/update_graph.py +5 -5
  211. discopop-4.0.0/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  212. discopop-4.0.0/discopop_library/global_data/version/VERSION +1 -0
  213. discopop-4.0.0/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  214. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc +0 -0
  215. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/result_classes/DetectionResult.py +5 -12
  216. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/result_classes/MergedPattern.py +2 -8
  217. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/result_classes/OptimizerOutputPattern.py +6 -6
  218. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/result_classes/PatternStorage.py +3 -3
  219. {discopop-3.2.1 → discopop-4.0.0}/requirements.txt +3 -3
  220. {discopop-3.2.1 → discopop-4.0.0}/setup.py +2 -2
  221. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/complex/test.py +1 -1
  222. discopop-4.0.0/test/end_to_end/do_all/calls/complex_no_varname_duplicates/test.py +74 -0
  223. discopop-4.0.0/test/end_to_end/reduction_pattern/negative/case_1/test.py +85 -0
  224. discopop-4.0.0/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/__init__.py +0 -0
  225. discopop-4.0.0/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/__init__.py +0 -0
  226. discopop-4.0.0/test/end_to_end/reduction_pattern/positive/nested/__init__.py +0 -0
  227. discopop-4.0.0/test/end_to_end/sharing_clauses/__init__.py +0 -0
  228. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/__init__.py +0 -0
  229. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
  230. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/first_private/case_1/__init__.py +0 -0
  231. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/first_private/case_1/test.py +82 -0
  232. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/last_private/__init__.py +0 -0
  233. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/last_private/case_1/__init__.py +0 -0
  234. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/last_private/case_1/test.py +82 -0
  235. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/no_clause/__init__.py +0 -0
  236. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/__init__.py +0 -0
  237. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/test.py +82 -0
  238. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/private/__init__.py +0 -0
  239. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/private/case_1/__init__.py +0 -0
  240. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/private/case_1/test.py +82 -0
  241. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/private/case_2/__init__.py +0 -0
  242. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/private/case_2/test.py +82 -0
  243. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/__init__.py +0 -0
  244. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_1/__init__.py +0 -0
  245. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_1/test.py +82 -0
  246. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_2/__init__.py +0 -0
  247. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_2/test.py +82 -0
  248. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_3/__init__.py +0 -0
  249. discopop-4.0.0/test/end_to_end/sharing_clauses/do_all/shared/case_3/test.py +82 -0
  250. discopop-4.0.0/test/utils/__init__.py +0 -0
  251. discopop-4.0.0/test/utils/existence/__init__.py +0 -0
  252. discopop-4.0.0/test/utils/sharing_clauses/__init__.py +0 -0
  253. discopop-4.0.0/test/utils/sharing_clauses/clauses_utils.py +42 -0
  254. discopop-4.0.0/test/utils/validator_classes/__init__.py +0 -0
  255. discopop-4.0.0/test/wip_end_to_end/__init__.py +0 -0
  256. discopop-4.0.0/test/wip_end_to_end/do_all/__init__.py +0 -0
  257. discopop-4.0.0/test/wip_end_to_end/do_all/simple/__init__.py +0 -0
  258. discopop-4.0.0/test/wip_end_to_end/do_all/simple/nested/__init__.py +0 -0
  259. discopop-4.0.0/test/wip_end_to_end/do_all/simple/nested/depth_2/__init__.py +0 -0
  260. discopop-4.0.0/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/__init__.py +0 -0
  261. discopop-4.0.0/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/inner_loop_doall/__init__.py +0 -0
  262. discopop-4.0.0/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall/__init__.py +0 -0
  263. discopop-4.0.0/test/wip_end_to_end/do_all/stack_access/__init__.py +0 -0
  264. discopop-4.0.0/test/wip_end_to_end/do_all/stack_access/various/__init__.py +0 -0
  265. discopop-4.0.0/test/wip_end_to_end/do_all/stack_access/various/case_4/__init__.py +0 -0
  266. discopop-4.0.0/test/wip_end_to_end/reduction_pattern/__init__.py +0 -0
  267. discopop-4.0.0/test/wip_end_to_end/reduction_pattern/negative/__init__.py +0 -0
  268. discopop-4.0.0/test/wip_end_to_end/reduction_pattern/negative/case_2/__init__.py +0 -0
  269. discopop-4.0.0/test/wip_end_to_end/reduction_pattern/negative/case_2/test.py +85 -0
  270. discopop-4.0.0/test/wip_end_to_end/sharing_clauses/__init__.py +0 -0
  271. discopop-4.0.0/test/wip_end_to_end/sharing_clauses/do_all/__init__.py +0 -0
  272. discopop-4.0.0/test/wip_end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
  273. discopop-4.0.0/test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/__init__.py +0 -0
  274. discopop-4.0.0/test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/test.py +82 -0
  275. discopop-3.2.1/DEPRECATED_discopop_profiler/__init__.py +0 -85
  276. discopop-3.2.1/DEPRECATED_discopop_profiler/__main__.py +0 -91
  277. discopop-3.2.1/DEPRECATED_discopop_profiler/utils.py +0 -52
  278. discopop-3.2.1/DEPRECATED_discopop_wizard/__main__.py +0 -60
  279. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/CodePreview.py +0 -109
  280. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/Console.py +0 -65
  281. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/ExecutionConfiguration.py +0 -468
  282. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/Pragma.py +0 -27
  283. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/ProfilingContainer.py +0 -149
  284. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/Settings.py +0 -155
  285. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/Suggestion.py +0 -216
  286. discopop-3.2.1/DEPRECATED_discopop_wizard/classes/TKVarStorage.py +0 -47
  287. discopop-3.2.1/DEPRECATED_discopop_wizard/headless/headless_execution.py +0 -65
  288. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/execution.py +0 -105
  289. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/main.py +0 -143
  290. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/optimizer/binding.py +0 -145
  291. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/settings.py +0 -180
  292. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/suggestions/overview.py +0 -140
  293. discopop-3.2.1/DEPRECATED_discopop_wizard/screens/utils.py +0 -60
  294. discopop-3.2.1/DEPRECATED_discopop_wizard/utils.py +0 -65
  295. discopop-3.2.1/DEPRECATED_discopop_wizard/wizard.py +0 -187
  296. discopop-3.2.1/discopop.egg-info/top_level.txt +0 -5
  297. discopop-3.2.1/discopop_explorer/PEGraphX.py +0 -1733
  298. discopop-3.2.1/discopop_explorer/pattern_detectors/reduction_detector.py +0 -288
  299. discopop-3.2.1/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  300. discopop-3.2.1/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  301. discopop-3.2.1/discopop_library/global_data/version/VERSION +0 -1
  302. discopop-3.2.1/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  303. {discopop-3.2.1 → discopop-4.0.0}/LICENSE +0 -0
  304. {discopop-3.2.1 → discopop-4.0.0}/MANIFEST.in +0 -0
  305. {discopop-3.2.1 → discopop-4.0.0}/README.md +0 -0
  306. {discopop-3.2.1 → discopop-4.0.0}/discopop.egg-info/dependency_links.txt +0 -0
  307. {discopop-3.2.1 → discopop-4.0.0}/discopop.egg-info/zip-safe +0 -0
  308. {discopop-3.2.1/DEPRECATED_discopop_wizard → discopop-4.0.0/discopop_explorer}/__init__.py +0 -0
  309. {discopop-3.2.1/DEPRECATED_discopop_wizard/assets → discopop-4.0.0/discopop_explorer/aliases}/__init__.py +0 -0
  310. {discopop-3.2.1/DEPRECATED_discopop_wizard/assets/icons → discopop-4.0.0/discopop_explorer/classes/PEGraph}/__init__.py +0 -0
  311. {discopop-3.2.1/DEPRECATED_discopop_wizard → discopop-4.0.0/discopop_explorer}/classes/__init__.py +0 -0
  312. {discopop-3.2.1/DEPRECATED_discopop_wizard/headless → discopop-4.0.0/discopop_explorer/classes/patterns}/__init__.py +0 -0
  313. {discopop-3.2.1/DEPRECATED_discopop_wizard/screens → discopop-4.0.0/discopop_explorer/enums}/__init__.py +0 -0
  314. {discopop-3.2.1/DEPRECATED_discopop_wizard/screens/optimizer → discopop-4.0.0/discopop_explorer/functions/PEGraph}/__init__.py +0 -0
  315. {discopop-3.2.1/DEPRECATED_discopop_wizard/screens/suggestions → discopop-4.0.0/discopop_explorer/functions/PEGraph/output}/__init__.py +0 -0
  316. {discopop-3.2.1/DEPRECATED_discopop_wizard/screens/widgets → discopop-4.0.0/discopop_explorer/functions/PEGraph/properties}/__init__.py +0 -0
  317. {discopop-3.2.1/discopop_explorer → discopop-4.0.0/discopop_explorer/functions/PEGraph/queries}/__init__.py +0 -0
  318. {discopop-3.2.1/discopop_explorer/pattern_detectors/combined_gpu_patterns → discopop-4.0.0/discopop_explorer/functions/PEGraph/traversal}/__init__.py +0 -0
  319. {discopop-3.2.1/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes → discopop-4.0.0/discopop_explorer/functions/PEGraph/unused}/__init__.py +0 -0
  320. {discopop-3.2.1/discopop_library/CodeGenerator → discopop-4.0.0/discopop_explorer/functions}/__init__.py +0 -0
  321. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/__init__.py +0 -0
  322. {discopop-3.2.1/discopop_library/CodeGenerator/classes → discopop-4.0.0/discopop_explorer/pattern_detectors/combined_gpu_patterns}/__init__.py +0 -0
  323. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Aliases.py +0 -0
  324. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Enums.py +0 -0
  325. {discopop-3.2.1/discopop_library/JSONHandler → discopop-4.0.0/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes}/__init__.py +0 -0
  326. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/simple_gpu_patterns/__init__.py +0 -0
  327. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py +0 -0
  328. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/__init__.py +0 -0
  329. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/plugins/__init__.py +0 -0
  330. {discopop-3.2.1 → discopop-4.0.0}/discopop_explorer/test/__init__.py +0 -0
  331. {discopop-3.2.1/discopop_library/LineMapping → discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction}/__init__.py +0 -0
  332. {discopop-3.2.1/discopop_library/MemoryRegions → discopop-4.0.0/discopop_explorer/utilities/PEGraphConstruction/classes}/__init__.py +0 -0
  333. {discopop-3.2.1/discopop_library/PatchApplicator → discopop-4.0.0/discopop_explorer/utilities}/__init__.py +0 -0
  334. {discopop-3.2.1/discopop_library/PatchGenerator → discopop-4.0.0/discopop_explorer/utilities/general}/__init__.py +0 -0
  335. {discopop-3.2.1/discopop_library/PathManagement → discopop-4.0.0/discopop_explorer/utilities/statistics}/__init__.py +0 -0
  336. {discopop-3.2.1/discopop_library → discopop-4.0.0/discopop_explorer/utilities/statistics/cyclomatic_complexity}/__init__.py +0 -0
  337. {discopop-3.2.1/discopop_library/discopop_optimizer/CostModels/DataTransfer → discopop-4.0.0/discopop_explorer/utilities/statistics/utilities}/__init__.py +0 -0
  338. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/ArgumentClasses/GeneralArguments.py +0 -0
  339. {discopop-3.2.1/discopop_library/discopop_optimizer/CostModels → discopop-4.0.0/discopop_library/CodeGenerator}/__init__.py +0 -0
  340. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/CodeGenerator/classes/Enums.py +0 -0
  341. {discopop-3.2.1/discopop_library/discopop_optimizer/DataTransfers → discopop-4.0.0/discopop_library/CodeGenerator/classes}/__init__.py +0 -0
  342. {discopop-3.2.1/discopop_library/discopop_optimizer/Microbench → discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover}/__init__.py +0 -0
  343. {discopop-3.2.1/discopop_library/discopop_optimizer/PETParser/DataAccesses → discopop-4.0.0/discopop_library/Compatibility/LegacyDiscoPoP}/__init__.py +0 -0
  344. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/ConfigProvider/__main__.py +0 -0
  345. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/ConfigProvider/assets/.gitignore +0 -0
  346. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/ConfigProvider/config_provider.py +0 -0
  347. {discopop-3.2.1/discopop_library/discopop_optimizer/PETParser → discopop-4.0.0/discopop_library/EmpiricalAutotuning}/__init__.py +0 -0
  348. {discopop-3.2.1/discopop_library/discopop_optimizer/Variables → discopop-4.0.0/discopop_library/FolderStructure}/__init__.py +0 -0
  349. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/HostpotLoader/HotspotNodeType.py +0 -0
  350. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/HostpotLoader/HotspotType.py +0 -0
  351. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/JSONHandler/JSONHandler.py +0 -0
  352. {discopop-3.2.1/discopop_library/discopop_optimizer → discopop-4.0.0/discopop_library/JSONHandler}/__init__.py +0 -0
  353. {discopop-3.2.1/discopop_library/discopop_optimizer/bindings → discopop-4.0.0/discopop_library/LineMapping}/__init__.py +0 -0
  354. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/LineMapping/load.py +0 -0
  355. {discopop-3.2.1/discopop_library/discopop_optimizer/classes → discopop-4.0.0/discopop_library/MemoryRegions}/__init__.py +0 -0
  356. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/context → discopop-4.0.0/discopop_library/PatchApplicator}/__init__.py +0 -0
  357. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/__main__.py +0 -0
  358. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/apply.py +0 -0
  359. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/clear.py +0 -0
  360. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/list.py +0 -0
  361. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/load.py +0 -0
  362. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchApplicator/rollback.py +0 -0
  363. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/edges → discopop-4.0.0/discopop_library/PatchGenerator}/__init__.py +0 -0
  364. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatchGenerator/diffs.py +0 -0
  365. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PathManagement/PathManagement.py +0 -0
  366. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/enums → discopop-4.0.0/discopop_library/PathManagement}/__init__.py +0 -0
  367. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/PatternIdManagement/unique_pattern_id.py +0 -0
  368. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/nodes → discopop-4.0.0/discopop_library}/__init__.py +0 -0
  369. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/CostModels/DataTransfer/DataTransferCosts.py +0 -0
  370. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/system → discopop-4.0.0/discopop_library/discopop_optimizer/CostModels/DataTransfer}/__init__.py +0 -0
  371. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/system/devices → discopop-4.0.0/discopop_library/discopop_optimizer/CostModels}/__init__.py +0 -0
  372. {discopop-3.2.1/discopop_library/discopop_optimizer/classes/types → discopop-4.0.0/discopop_library/discopop_optimizer/DataTransfers}/__init__.py +0 -0
  373. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/prepare_force_branch_end_data_movement.py +0 -0
  374. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement.py +0 -0
  375. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement_prior_to_call.py +0 -0
  376. {discopop-3.2.1/discopop_library/discopop_optimizer/gui → discopop-4.0.0/discopop_library/discopop_optimizer/Microbench}/__init__.py +0 -0
  377. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/Microbench/utils.py +0 -0
  378. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/PETParser/DataAccesses/CalculateUpdates.py +0 -0
  379. {discopop-3.2.1/discopop_library/discopop_optimizer/gui/plotting → discopop-4.0.0/discopop_library/discopop_optimizer/PETParser/DataAccesses}/__init__.py +0 -0
  380. {discopop-3.2.1/discopop_library/discopop_optimizer/gui/presentation → discopop-4.0.0/discopop_library/discopop_optimizer/PETParser}/__init__.py +0 -0
  381. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/LoopInitializationUpdates.py +0 -0
  382. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveSameDeviceUpdates.py +0 -0
  383. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/UpdateOptimization/main.py +0 -0
  384. {discopop-3.2.1/discopop_library/discopop_optimizer/gui/queries → discopop-4.0.0/discopop_library/discopop_optimizer/Variables}/__init__.py +0 -0
  385. {discopop-3.2.1/discopop_library/discopop_optimizer/gui/widgets → discopop-4.0.0/discopop_library/discopop_optimizer}/__init__.py +0 -0
  386. {discopop-3.2.1/discopop_library/discopop_optimizer/scheduling → discopop-4.0.0/discopop_library/discopop_optimizer/bindings}/__init__.py +0 -0
  387. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/bindings/utilities.py +0 -0
  388. {discopop-3.2.1/discopop_library/discopop_optimizer/suggestions → discopop-4.0.0/discopop_library/discopop_optimizer/classes}/__init__.py +0 -0
  389. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/context/ContextObjectUtils.py +0 -0
  390. {discopop-3.2.1/discopop_library/discopop_optimizer/suggestions/importers → discopop-4.0.0/discopop_library/discopop_optimizer/classes/context}/__init__.py +0 -0
  391. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/CallEdge.py +0 -0
  392. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/ChildEdge.py +0 -0
  393. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/DataFlowEdge.py +0 -0
  394. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/GenericEdge.py +0 -0
  395. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/MutuallyExclusiveEdge.py +0 -0
  396. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/OptionEdge.py +0 -0
  397. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/RequirementEdge.py +0 -0
  398. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/SuccessorEdge.py +0 -0
  399. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/edges/TemporaryEdge.py +0 -0
  400. {discopop-3.2.1/discopop_library/discopop_optimizer/utilities → discopop-4.0.0/discopop_library/discopop_optimizer/classes/edges}/__init__.py +0 -0
  401. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/enums/Distributions.py +0 -0
  402. {discopop-3.2.1/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization → discopop-4.0.0/discopop_library/discopop_optimizer/classes/enums}/__init__.py +0 -0
  403. {discopop-3.2.1/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization → discopop-4.0.0/discopop_library/discopop_optimizer/classes/nodes}/__init__.py +0 -0
  404. {discopop-3.2.1/discopop_library/discopop_optimizer/utilities/optimization → discopop-4.0.0/discopop_library/discopop_optimizer/classes/system}/__init__.py +0 -0
  405. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/system/devices/DeviceTypeEnum.py +0 -0
  406. {discopop-3.2.1/discopop_library/discopop_optimizer/utilities/visualization → discopop-4.0.0/discopop_library/discopop_optimizer/classes/system/devices}/__init__.py +0 -0
  407. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/classes/types/Aliases.py +0 -0
  408. {discopop-3.2.1/discopop_library/global_data → discopop-4.0.0/discopop_library/discopop_optimizer/classes/types}/__init__.py +0 -0
  409. {discopop-3.2.1/discopop_library/global_data/version → discopop-4.0.0/discopop_library/discopop_optimizer/gui}/__init__.py +0 -0
  410. {discopop-3.2.1/discopop_library/result_classes → discopop-4.0.0/discopop_library/discopop_optimizer/gui/plotting}/__init__.py +0 -0
  411. {discopop-3.2.1/test → discopop-4.0.0/discopop_library/discopop_optimizer/gui/presentation}/__init__.py +0 -0
  412. {discopop-3.2.1/test/end_to_end → discopop-4.0.0/discopop_library/discopop_optimizer/gui/queries}/__init__.py +0 -0
  413. {discopop-3.2.1/test/end_to_end/do_all → discopop-4.0.0/discopop_library/discopop_optimizer/gui/widgets}/__init__.py +0 -0
  414. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/optimization/evaluate.py +0 -0
  415. {discopop-3.2.1/test/end_to_end/do_all/backwards_array_access → discopop-4.0.0/discopop_library/discopop_optimizer/scheduling}/__init__.py +0 -0
  416. {discopop-3.2.1/test/end_to_end/do_all/calls → discopop-4.0.0/discopop_library/discopop_optimizer/suggestions}/__init__.py +0 -0
  417. {discopop-3.2.1/test/end_to_end/do_all/calls/above_nesting_level_3 → discopop-4.0.0/discopop_library/discopop_optimizer/suggestions/importers}/__init__.py +0 -0
  418. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/suggestions/importers/main.py +0 -0
  419. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/suggestions/optimizers/main.py +0 -0
  420. {discopop-3.2.1/test/end_to_end/do_all/calls/allowing → discopop-4.0.0/discopop_library/discopop_optimizer/utilities}/__init__.py +0 -0
  421. {discopop-3.2.1/test/end_to_end/do_all/calls/allowing_2 → discopop-4.0.0/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization}/__init__.py +0 -0
  422. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/TopDown.py +0 -0
  423. {discopop-3.2.1/test/end_to_end/do_all/calls/complex → discopop-4.0.0/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization}/__init__.py +0 -0
  424. {discopop-3.2.1/test/end_to_end/do_all/calls/preventing → discopop-4.0.0/discopop_library/discopop_optimizer/utilities/optimization}/__init__.py +0 -0
  425. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/discopop_optimizer/utilities/simple_utilities.py +0 -0
  426. {discopop-3.2.1/test/end_to_end/do_all/calls/preventing/simple → discopop-4.0.0/discopop_library/discopop_optimizer/utilities/visualization}/__init__.py +0 -0
  427. {discopop-3.2.1/test/end_to_end/do_all/calls/second_order → discopop-4.0.0/discopop_library/global_data}/__init__.py +0 -0
  428. {discopop-3.2.1/test/end_to_end/do_all/calls/second_order/allowing → discopop-4.0.0/discopop_library/global_data/version}/__init__.py +0 -0
  429. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/global_data/version/utils.py +0 -0
  430. {discopop-3.2.1 → discopop-4.0.0}/discopop_library/py.typed +0 -0
  431. {discopop-3.2.1/test/end_to_end/do_all/calls/second_order/allowing_2 → discopop-4.0.0/discopop_library/result_classes}/__init__.py +0 -0
  432. {discopop-3.2.1 → discopop-4.0.0}/setup.cfg +0 -0
  433. {discopop-3.2.1/test/end_to_end/do_all/calls/second_order/preventing → discopop-4.0.0/test}/__init__.py +0 -0
  434. {discopop-3.2.1/test/end_to_end/do_all/calls/second_order/preventing_2 → discopop-4.0.0/test/end_to_end}/__init__.py +0 -0
  435. {discopop-3.2.1/test/end_to_end/do_all/daxpy → discopop-4.0.0/test/end_to_end/do_all}/__init__.py +0 -0
  436. {discopop-3.2.1/test/end_to_end/do_all/negative → discopop-4.0.0/test/end_to_end/do_all/backwards_array_access}/__init__.py +0 -0
  437. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/backwards_array_access/test.py +0 -0
  438. {discopop-3.2.1/test/end_to_end/do_all/negative/nested/OMPSCR → discopop-4.0.0/test/end_to_end/do_all/calls}/__init__.py +0 -0
  439. {discopop-3.2.1/test/end_to_end/do_all/negative/nested → discopop-4.0.0/test/end_to_end/do_all/calls/above_nesting_level_3}/__init__.py +0 -0
  440. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/above_nesting_level_3/test.py +0 -0
  441. {discopop-3.2.1/test/end_to_end/do_all/simple → discopop-4.0.0/test/end_to_end/do_all/calls/allowing}/__init__.py +0 -0
  442. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/allowing/test.py +0 -0
  443. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars → discopop-4.0.0/test/end_to_end/do_all/calls/allowing_2}/__init__.py +0 -0
  444. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/allowing_2/test.py +0 -0
  445. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy → discopop-4.0.0/test/end_to_end/do_all/calls/complex}/__init__.py +0 -0
  446. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_arrays → discopop-4.0.0/test/end_to_end/do_all/calls/complex_no_varname_duplicates}/__init__.py +0 -0
  447. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_struct → discopop-4.0.0/test/end_to_end/do_all/calls/preventing}/__init__.py +0 -0
  448. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors → discopop-4.0.0/test/end_to_end/do_all/calls/preventing/simple}/__init__.py +0 -0
  449. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/preventing/simple/test.py +0 -0
  450. {discopop-3.2.1/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors_and_struct → discopop-4.0.0/test/end_to_end/do_all/calls/second_order}/__init__.py +0 -0
  451. {discopop-3.2.1/test/end_to_end/do_all/simple/nested → discopop-4.0.0/test/end_to_end/do_all/calls/second_order/allowing}/__init__.py +0 -0
  452. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/second_order/allowing/test.py +0 -0
  453. {discopop-3.2.1/test/end_to_end/do_all/simple/nested/depth_2 → discopop-4.0.0/test/end_to_end/do_all/calls/second_order/allowing_2}/__init__.py +0 -0
  454. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/second_order/allowing_2/test.py +0 -0
  455. {discopop-3.2.1/test/end_to_end/do_all/simple/nested/depth_2/positive → discopop-4.0.0/test/end_to_end/do_all/calls/second_order/preventing}/__init__.py +0 -0
  456. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/second_order/preventing/test.py +0 -0
  457. {discopop-3.2.1/test/end_to_end/do_all/simple/nested/depth_2/positive/both_loops_doall → discopop-4.0.0/test/end_to_end/do_all/calls/second_order/preventing_2}/__init__.py +0 -0
  458. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/calls/second_order/preventing_2/test.py +0 -0
  459. {discopop-3.2.1/test/end_to_end/do_all/simple/not_nested → discopop-4.0.0/test/end_to_end/do_all/daxpy}/__init__.py +0 -0
  460. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/daxpy/test.py +0 -0
  461. {discopop-3.2.1/test/end_to_end/do_all/simple/not_nested → discopop-4.0.0/test/end_to_end/do_all}/negative/__init__.py +0 -0
  462. {discopop-3.2.1/test/end_to_end/do_all/simple/not_nested/negative/minimal → discopop-4.0.0/test/end_to_end/do_all/negative/nested/OMPSCR}/__init__.py +0 -0
  463. {discopop-3.2.1/test/end_to_end/do_all/simple/not_nested/negative/stack_access → discopop-4.0.0/test/end_to_end/do_all/negative/nested}/__init__.py +0 -0
  464. {discopop-3.2.1/test/end_to_end/do_all/simple/not_nested/positive → discopop-4.0.0/test/end_to_end/do_all/simple}/__init__.py +0 -0
  465. {discopop-3.2.1/test/end_to_end/do_all/stack_access → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars}/__init__.py +0 -0
  466. {discopop-3.2.1/test/end_to_end/do_all/stack_access/nested → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy}/__init__.py +0 -0
  467. {discopop-3.2.1/test/end_to_end/do_all/stack_access/nested/positive → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_arrays}/__init__.py +0 -0
  468. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_arrays/test.py +0 -0
  469. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_struct}/__init__.py +0 -0
  470. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_struct/test.py +0 -0
  471. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various/case_0 → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors}/__init__.py +0 -0
  472. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors/test.py +0 -0
  473. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various/case_1 → discopop-4.0.0/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors_and_struct}/__init__.py +0 -0
  474. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors_and_struct/test.py +0 -0
  475. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various/case_2 → discopop-4.0.0/test/end_to_end/do_all/simple/nested}/__init__.py +0 -0
  476. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various/case_3 → discopop-4.0.0/test/end_to_end/do_all/simple/nested/depth_2}/__init__.py +0 -0
  477. {discopop-3.2.1/test/end_to_end/do_all/stack_access/various/case_5 → discopop-4.0.0/test/end_to_end/do_all/simple/nested/depth_2/positive}/__init__.py +0 -0
  478. {discopop-3.2.1/test/end_to_end/do_all/struct → discopop-4.0.0/test/end_to_end/do_all/simple/nested/depth_2/positive/both_loops_doall}/__init__.py +0 -0
  479. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/nested/depth_2/positive/both_loops_doall/test.py +0 -0
  480. {discopop-3.2.1/test/end_to_end/do_all/struct/positive → discopop-4.0.0/test/end_to_end/do_all/simple/not_nested}/__init__.py +0 -0
  481. {discopop-3.2.1/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy → discopop-4.0.0/test/end_to_end/do_all/simple/not_nested/negative}/__init__.py +0 -0
  482. {discopop-3.2.1/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/access_outside_struct → discopop-4.0.0/test/end_to_end/do_all/simple/not_nested/negative/minimal}/__init__.py +0 -0
  483. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/not_nested/negative/minimal/test.py +0 -0
  484. {discopop-3.2.1/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/std_data_types → discopop-4.0.0/test/end_to_end/do_all/simple/not_nested/negative/stack_access}/__init__.py +0 -0
  485. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/not_nested/negative/stack_access/test.py +0 -0
  486. {discopop-3.2.1/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/template_data_types → discopop-4.0.0/test/end_to_end/do_all/simple/not_nested/positive}/__init__.py +0 -0
  487. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/simple/not_nested/positive/test.py +0 -0
  488. {discopop-3.2.1/test/end_to_end/optimizer → discopop-4.0.0/test/end_to_end/do_all/stack_access}/__init__.py +0 -0
  489. {discopop-3.2.1/test/end_to_end/optimizer/loop_collapse → discopop-4.0.0/test/end_to_end/do_all/stack_access/nested}/__init__.py +0 -0
  490. {discopop-3.2.1/test/end_to_end/optimizer/loop_collapse → discopop-4.0.0/test/end_to_end/do_all/stack_access/nested}/positive/__init__.py +0 -0
  491. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/nested/positive/test.py +0 -0
  492. {discopop-3.2.1/test/end_to_end/optimizer/loop_collapse/positive/simple_1 → discopop-4.0.0/test/end_to_end/do_all/stack_access/various}/__init__.py +0 -0
  493. {discopop-3.2.1/test/end_to_end/reduction_pattern → discopop-4.0.0/test/end_to_end/do_all/stack_access/various/case_0}/__init__.py +0 -0
  494. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/various/case_0/test.py +0 -0
  495. {discopop-3.2.1/test/end_to_end/reduction_pattern/positive → discopop-4.0.0/test/end_to_end/do_all/stack_access/various/case_1}/__init__.py +0 -0
  496. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/various/case_1/test.py +0 -0
  497. {discopop-3.2.1/test/end_to_end/reduction_pattern/positive/nested/OMPSCR → discopop-4.0.0/test/end_to_end/do_all/stack_access/various/case_2}/__init__.py +0 -0
  498. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/various/case_2/test.py +0 -0
  499. {discopop-3.2.1/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot → discopop-4.0.0/test/end_to_end/do_all/stack_access/various/case_3}/__init__.py +0 -0
  500. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/various/case_3/test.py +0 -0
  501. {discopop-3.2.1/test/end_to_end/reduction_pattern/positive/nested → discopop-4.0.0/test/end_to_end/do_all/stack_access/various/case_5}/__init__.py +0 -0
  502. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/stack_access/various/case_5/test.py +0 -0
  503. {discopop-3.2.1/test/utils → discopop-4.0.0/test/end_to_end/do_all/struct}/__init__.py +0 -0
  504. {discopop-3.2.1/test/utils/existence → discopop-4.0.0/test/end_to_end/do_all/struct/positive}/__init__.py +0 -0
  505. {discopop-3.2.1/test/utils/validator_classes → discopop-4.0.0/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy}/__init__.py +0 -0
  506. {discopop-3.2.1/test/wip_end_to_end → discopop-4.0.0/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/access_outside_struct}/__init__.py +0 -0
  507. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/access_outside_struct/test.py +0 -0
  508. {discopop-3.2.1/test/wip_end_to_end/do_all → discopop-4.0.0/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/std_data_types}/__init__.py +0 -0
  509. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/std_data_types/test.py +0 -0
  510. {discopop-3.2.1/test/wip_end_to_end/do_all/simple → discopop-4.0.0/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/template_data_types}/__init__.py +0 -0
  511. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/template_data_types/test.py +0 -0
  512. {discopop-3.2.1/test/wip_end_to_end/do_all/simple/nested → discopop-4.0.0/test/end_to_end/optimizer}/__init__.py +0 -0
  513. {discopop-3.2.1/test/wip_end_to_end/do_all/simple/nested/depth_2 → discopop-4.0.0/test/end_to_end/optimizer/loop_collapse}/__init__.py +0 -0
  514. {discopop-3.2.1/test/wip_end_to_end/do_all/simple/nested/depth_2 → discopop-4.0.0/test/end_to_end/optimizer/loop_collapse}/positive/__init__.py +0 -0
  515. {discopop-3.2.1/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/inner_loop_doall → discopop-4.0.0/test/end_to_end/optimizer/loop_collapse/positive/simple_1}/__init__.py +0 -0
  516. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/optimizer/loop_collapse/positive/simple_1/test.py +0 -0
  517. {discopop-3.2.1/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall → discopop-4.0.0/test/end_to_end/reduction_pattern}/__init__.py +0 -0
  518. {discopop-3.2.1/test/wip_end_to_end/do_all/stack_access → discopop-4.0.0/test/end_to_end/reduction_pattern/negative}/__init__.py +0 -0
  519. {discopop-3.2.1/test/wip_end_to_end/do_all/stack_access/various → discopop-4.0.0/test/end_to_end/reduction_pattern/negative/case_1}/__init__.py +0 -0
  520. {discopop-3.2.1/test/wip_end_to_end/do_all/stack_access/various/case_4 → discopop-4.0.0/test/end_to_end/reduction_pattern/positive}/__init__.py +0 -0
  521. {discopop-3.2.1 → discopop-4.0.0}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/test.py +0 -0
  522. {discopop-3.2.1 → discopop-4.0.0}/test/utils/existence/existence_utils.py +0 -0
  523. {discopop-3.2.1 → discopop-4.0.0}/test/utils/validator_classes/DoAllInfoForValidation.py +0 -0
  524. {discopop-3.2.1 → discopop-4.0.0}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/inner_loop_doall/test.py +0 -0
  525. {discopop-3.2.1 → discopop-4.0.0}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall/test.py +0 -0
  526. {discopop-3.2.1 → discopop-4.0.0}/test/wip_end_to_end/do_all/stack_access/various/case_4/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: discopop
3
- Version: 3.2.1
3
+ Version: 4.0.0
4
4
  Summary: DiscoPoP is a tool that helps software developers parallelize their programs with threads. It discovers potential parallelism in a sequential program and makes recommendations on how to exploit it.
5
5
  Home-page: https://www.discopop.tu-darmstadt.de/
6
6
  Author: TU Darmstadt and Iowa State University
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: discopop
3
- Version: 3.2.1
3
+ Version: 4.0.0
4
4
  Summary: DiscoPoP is a tool that helps software developers parallelize their programs with threads. It discovers potential parallelism in a sequential program and makes recommendations on how to exploit it.
5
5
  Home-page: https://www.discopop.tu-darmstadt.de/
6
6
  Author: TU Darmstadt and Iowa State University
@@ -3,38 +3,6 @@ MANIFEST.in
3
3
  README.md
4
4
  requirements.txt
5
5
  setup.py
6
- DEPRECATED_discopop_profiler/__init__.py
7
- DEPRECATED_discopop_profiler/__main__.py
8
- DEPRECATED_discopop_profiler/utils.py
9
- DEPRECATED_discopop_wizard/__init__.py
10
- DEPRECATED_discopop_wizard/__main__.py
11
- DEPRECATED_discopop_wizard/utils.py
12
- DEPRECATED_discopop_wizard/wizard.py
13
- DEPRECATED_discopop_wizard/assets/__init__.py
14
- DEPRECATED_discopop_wizard/assets/icons/__init__.py
15
- DEPRECATED_discopop_wizard/classes/Arguments.py
16
- DEPRECATED_discopop_wizard/classes/CodePreview.py
17
- DEPRECATED_discopop_wizard/classes/Console.py
18
- DEPRECATED_discopop_wizard/classes/ExecutionConfiguration.py
19
- DEPRECATED_discopop_wizard/classes/Pragma.py
20
- DEPRECATED_discopop_wizard/classes/ProfilingContainer.py
21
- DEPRECATED_discopop_wizard/classes/Settings.py
22
- DEPRECATED_discopop_wizard/classes/Suggestion.py
23
- DEPRECATED_discopop_wizard/classes/TKVarStorage.py
24
- DEPRECATED_discopop_wizard/classes/__init__.py
25
- DEPRECATED_discopop_wizard/headless/__init__.py
26
- DEPRECATED_discopop_wizard/headless/headless_execution.py
27
- DEPRECATED_discopop_wizard/screens/__init__.py
28
- DEPRECATED_discopop_wizard/screens/execution.py
29
- DEPRECATED_discopop_wizard/screens/main.py
30
- DEPRECATED_discopop_wizard/screens/settings.py
31
- DEPRECATED_discopop_wizard/screens/utils.py
32
- DEPRECATED_discopop_wizard/screens/optimizer/__init__.py
33
- DEPRECATED_discopop_wizard/screens/optimizer/binding.py
34
- DEPRECATED_discopop_wizard/screens/suggestions/__init__.py
35
- DEPRECATED_discopop_wizard/screens/suggestions/overview.py
36
- DEPRECATED_discopop_wizard/screens/widgets/ScrollableText.py
37
- DEPRECATED_discopop_wizard/screens/widgets/__init__.py
38
6
  discopop.egg-info/PKG-INFO
39
7
  discopop.egg-info/SOURCES.txt
40
8
  discopop.egg-info/dependency_links.txt
@@ -42,19 +10,64 @@ discopop.egg-info/entry_points.txt
42
10
  discopop.egg-info/requires.txt
43
11
  discopop.egg-info/top_level.txt
44
12
  discopop.egg-info/zip-safe
45
- discopop_explorer/PEGraphX.py
46
13
  discopop_explorer/__init__.py
47
14
  discopop_explorer/__main__.py
48
15
  discopop_explorer/discopop_explorer.py
49
- discopop_explorer/generate_Data_CUInst.py
50
16
  discopop_explorer/json_serializer.py
51
17
  discopop_explorer/parallel_utils.py
52
- discopop_explorer/parser.py
53
18
  discopop_explorer/pattern_detection.py
54
19
  discopop_explorer/utils.py
55
- discopop_explorer/variable.py
56
- discopop_explorer/pattern_detectors/PatternBase.py
57
- discopop_explorer/pattern_detectors/PatternInfo.py
20
+ discopop_explorer/aliases/LineID.py
21
+ discopop_explorer/aliases/MemoryRegion.py
22
+ discopop_explorer/aliases/NodeID.py
23
+ discopop_explorer/aliases/__init__.py
24
+ discopop_explorer/classes/__init__.py
25
+ discopop_explorer/classes/variable.py
26
+ discopop_explorer/classes/PEGraph/CUNode.py
27
+ discopop_explorer/classes/PEGraph/Dependency.py
28
+ discopop_explorer/classes/PEGraph/DummyNode.py
29
+ discopop_explorer/classes/PEGraph/FunctionNode.py
30
+ discopop_explorer/classes/PEGraph/LoopNode.py
31
+ discopop_explorer/classes/PEGraph/Node.py
32
+ discopop_explorer/classes/PEGraph/NodeT.py
33
+ discopop_explorer/classes/PEGraph/PEGraphX.py
34
+ discopop_explorer/classes/PEGraph/__init__.py
35
+ discopop_explorer/classes/patterns/PatternBase.py
36
+ discopop_explorer/classes/patterns/PatternInfo.py
37
+ discopop_explorer/classes/patterns/__init__.py
38
+ discopop_explorer/enums/DepType.py
39
+ discopop_explorer/enums/EdgeType.py
40
+ discopop_explorer/enums/MWType.py
41
+ discopop_explorer/enums/NodeType.py
42
+ discopop_explorer/enums/__init__.py
43
+ discopop_explorer/functions/__init__.py
44
+ discopop_explorer/functions/PEGraph/__init__.py
45
+ discopop_explorer/functions/PEGraph/output/__init__.py
46
+ discopop_explorer/functions/PEGraph/output/gephi.py
47
+ discopop_explorer/functions/PEGraph/output/json.py
48
+ discopop_explorer/functions/PEGraph/properties/__init__.py
49
+ discopop_explorer/functions/PEGraph/properties/check_reachability.py
50
+ discopop_explorer/functions/PEGraph/properties/depends_ignore_readonly.py
51
+ discopop_explorer/functions/PEGraph/properties/is_loop_index.py
52
+ discopop_explorer/functions/PEGraph/properties/is_passed_by_reference.py
53
+ discopop_explorer/functions/PEGraph/properties/is_predecessor.py
54
+ discopop_explorer/functions/PEGraph/properties/is_readonly_inside_loop_body.py
55
+ discopop_explorer/functions/PEGraph/properties/is_reduction_var_by_name.py
56
+ discopop_explorer/functions/PEGraph/properties/is_scalar_val.py
57
+ discopop_explorer/functions/PEGraph/queries/__init__.py
58
+ discopop_explorer/functions/PEGraph/queries/edges.py
59
+ discopop_explorer/functions/PEGraph/queries/memory_regions.py
60
+ discopop_explorer/functions/PEGraph/queries/nodes.py
61
+ discopop_explorer/functions/PEGraph/queries/paths.py
62
+ discopop_explorer/functions/PEGraph/queries/reductions.py
63
+ discopop_explorer/functions/PEGraph/queries/subtree.py
64
+ discopop_explorer/functions/PEGraph/queries/variables.py
65
+ discopop_explorer/functions/PEGraph/traversal/__init__.py
66
+ discopop_explorer/functions/PEGraph/traversal/children.py
67
+ discopop_explorer/functions/PEGraph/traversal/parent.py
68
+ discopop_explorer/functions/PEGraph/traversal/successors.py
69
+ discopop_explorer/functions/PEGraph/unused/__init__.py
70
+ discopop_explorer/functions/PEGraph/unused/unused_functions.py
58
71
  discopop_explorer/pattern_detectors/__init__.py
59
72
  discopop_explorer/pattern_detectors/device_updates.py
60
73
  discopop_explorer/pattern_detectors/do_all_detector.py
@@ -102,6 +115,32 @@ discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py
102
115
  discopop_explorer/plugins/__init__.py
103
116
  discopop_explorer/plugins/pipeline.py
104
117
  discopop_explorer/test/__init__.py
118
+ discopop_explorer/utilities/__init__.py
119
+ discopop_explorer/utilities/PEGraphConstruction/PEGraphConstructionUtilities.py
120
+ discopop_explorer/utilities/PEGraphConstruction/ParserUtilities.py
121
+ discopop_explorer/utilities/PEGraphConstruction/__init__.py
122
+ discopop_explorer/utilities/PEGraphConstruction/parser.py
123
+ discopop_explorer/utilities/PEGraphConstruction/classes/DependenceItem.py
124
+ discopop_explorer/utilities/PEGraphConstruction/classes/LoopData.py
125
+ discopop_explorer/utilities/PEGraphConstruction/classes/__init__.py
126
+ discopop_explorer/utilities/general/__init__.py
127
+ discopop_explorer/utilities/general/generate_Data_CUInst.py
128
+ discopop_explorer/utilities/statistics/__init__.py
129
+ discopop_explorer/utilities/statistics/collect_statistics.py
130
+ discopop_explorer/utilities/statistics/maximum_call_path_depth.py
131
+ discopop_explorer/utilities/statistics/num_function_calls.py
132
+ discopop_explorer/utilities/statistics/output_statistics.py
133
+ discopop_explorer/utilities/statistics/suggestion_call_path_depths.py
134
+ discopop_explorer/utilities/statistics/suggestion_cyclomatic_complexity.py
135
+ discopop_explorer/utilities/statistics/suggestion_lines_of_code.py
136
+ discopop_explorer/utilities/statistics/cyclomatic_complexity/__init__.py
137
+ discopop_explorer/utilities/statistics/cyclomatic_complexity/boxplot.py
138
+ discopop_explorer/utilities/statistics/cyclomatic_complexity/cc_dictionary.py
139
+ discopop_explorer/utilities/statistics/cyclomatic_complexity/subtree.py
140
+ discopop_explorer/utilities/statistics/cyclomatic_complexity/total.py
141
+ discopop_explorer/utilities/statistics/utilities/__init__.py
142
+ discopop_explorer/utilities/statistics/utilities/call_path_depth.py
143
+ discopop_explorer/utilities/statistics/utilities/num_function_calls.py
105
144
  discopop_library/__init__.py
106
145
  discopop_library/py.typed
107
146
  discopop_library/ArgumentClasses/GeneralArguments.py
@@ -114,10 +153,30 @@ discopop_library/CodeGenerator/classes/Line.py
114
153
  discopop_library/CodeGenerator/classes/Pragma.py
115
154
  discopop_library/CodeGenerator/classes/UnpackedSuggestion.py
116
155
  discopop_library/CodeGenerator/classes/__init__.py
156
+ discopop_library/Compatibility/LegacyDiscoPoP/__init__.py
157
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/ArgumentClasses.py
158
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/GEPDependencyRemover.py
159
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/Types.py
160
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__init__.py
161
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__main__.py
162
+ discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/utils.py
117
163
  discopop_library/ConfigProvider/ConfigProviderArguments.py
118
164
  discopop_library/ConfigProvider/__main__.py
119
165
  discopop_library/ConfigProvider/config_provider.py
120
166
  discopop_library/ConfigProvider/assets/.gitignore
167
+ discopop_library/DependencyMetadata/compare_metadata.py
168
+ discopop_library/EmpiricalAutotuning/ArgumentClasses.py
169
+ discopop_library/EmpiricalAutotuning/Autotuner.py
170
+ discopop_library/EmpiricalAutotuning/Types.py
171
+ discopop_library/EmpiricalAutotuning/__init__.py
172
+ discopop_library/EmpiricalAutotuning/__main__.py
173
+ discopop_library/EmpiricalAutotuning/utils.py
174
+ discopop_library/EmpiricalAutotuning/Classes/CodeConfiguration.py
175
+ discopop_library/EmpiricalAutotuning/Classes/ExecutionResult.py
176
+ discopop_library/EmpiricalAutotuning/Statistics/StatisticsGraph.py
177
+ discopop_library/FolderStructure/__init__.py
178
+ discopop_library/FolderStructure/setup.py
179
+ discopop_library/FolderStructure/teardown.py
121
180
  discopop_library/GlobalLogger/setup.py
122
181
  discopop_library/HostpotLoader/HotspotLoaderArguments.py
123
182
  discopop_library/HostpotLoader/HotspotNodeType.py
@@ -126,6 +185,7 @@ discopop_library/HostpotLoader/hostpot_loader.py
126
185
  discopop_library/JSONHandler/JSONHandler.py
127
186
  discopop_library/JSONHandler/__init__.py
128
187
  discopop_library/LineMapping/__init__.py
188
+ discopop_library/LineMapping/delete.py
129
189
  discopop_library/LineMapping/diff_modifications.py
130
190
  discopop_library/LineMapping/initialize.py
131
191
  discopop_library/LineMapping/load.py
@@ -245,6 +305,7 @@ discopop_library/discopop_optimizer/gui/presentation/__init__.py
245
305
  discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py
246
306
  discopop_library/discopop_optimizer/gui/queries/__init__.py
247
307
  discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py
308
+ discopop_library/discopop_optimizer/gui/widgets/ScrollableText.py
248
309
  discopop_library/discopop_optimizer/gui/widgets/__init__.py
249
310
  discopop_library/discopop_optimizer/interactive/interactive_optimizer.py
250
311
  discopop_library/discopop_optimizer/optimization/evaluate.py
@@ -299,6 +360,8 @@ test/end_to_end/do_all/calls/allowing_2/__init__.py
299
360
  test/end_to_end/do_all/calls/allowing_2/test.py
300
361
  test/end_to_end/do_all/calls/complex/__init__.py
301
362
  test/end_to_end/do_all/calls/complex/test.py
363
+ test/end_to_end/do_all/calls/complex_no_varname_duplicates/__init__.py
364
+ test/end_to_end/do_all/calls/complex_no_varname_duplicates/test.py
302
365
  test/end_to_end/do_all/calls/preventing/__init__.py
303
366
  test/end_to_end/do_all/calls/preventing/simple/__init__.py
304
367
  test/end_to_end/do_all/calls/preventing/simple/test.py
@@ -370,14 +433,42 @@ test/end_to_end/optimizer/loop_collapse/positive/__init__.py
370
433
  test/end_to_end/optimizer/loop_collapse/positive/simple_1/__init__.py
371
434
  test/end_to_end/optimizer/loop_collapse/positive/simple_1/test.py
372
435
  test/end_to_end/reduction_pattern/__init__.py
436
+ test/end_to_end/reduction_pattern/negative/__init__.py
437
+ test/end_to_end/reduction_pattern/negative/case_1/__init__.py
438
+ test/end_to_end/reduction_pattern/negative/case_1/test.py
373
439
  test/end_to_end/reduction_pattern/positive/__init__.py
374
440
  test/end_to_end/reduction_pattern/positive/nested/__init__.py
375
441
  test/end_to_end/reduction_pattern/positive/nested/OMPSCR/__init__.py
376
442
  test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/__init__.py
377
443
  test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/test.py
444
+ test/end_to_end/sharing_clauses/__init__.py
445
+ test/end_to_end/sharing_clauses/do_all/__init__.py
446
+ test/end_to_end/sharing_clauses/do_all/first_private/__init__.py
447
+ test/end_to_end/sharing_clauses/do_all/first_private/case_1/__init__.py
448
+ test/end_to_end/sharing_clauses/do_all/first_private/case_1/test.py
449
+ test/end_to_end/sharing_clauses/do_all/last_private/__init__.py
450
+ test/end_to_end/sharing_clauses/do_all/last_private/case_1/__init__.py
451
+ test/end_to_end/sharing_clauses/do_all/last_private/case_1/test.py
452
+ test/end_to_end/sharing_clauses/do_all/no_clause/__init__.py
453
+ test/end_to_end/sharing_clauses/do_all/no_clause/case_1/__init__.py
454
+ test/end_to_end/sharing_clauses/do_all/no_clause/case_1/test.py
455
+ test/end_to_end/sharing_clauses/do_all/private/__init__.py
456
+ test/end_to_end/sharing_clauses/do_all/private/case_1/__init__.py
457
+ test/end_to_end/sharing_clauses/do_all/private/case_1/test.py
458
+ test/end_to_end/sharing_clauses/do_all/private/case_2/__init__.py
459
+ test/end_to_end/sharing_clauses/do_all/private/case_2/test.py
460
+ test/end_to_end/sharing_clauses/do_all/shared/__init__.py
461
+ test/end_to_end/sharing_clauses/do_all/shared/case_1/__init__.py
462
+ test/end_to_end/sharing_clauses/do_all/shared/case_1/test.py
463
+ test/end_to_end/sharing_clauses/do_all/shared/case_2/__init__.py
464
+ test/end_to_end/sharing_clauses/do_all/shared/case_2/test.py
465
+ test/end_to_end/sharing_clauses/do_all/shared/case_3/__init__.py
466
+ test/end_to_end/sharing_clauses/do_all/shared/case_3/test.py
378
467
  test/utils/__init__.py
379
468
  test/utils/existence/__init__.py
380
469
  test/utils/existence/existence_utils.py
470
+ test/utils/sharing_clauses/__init__.py
471
+ test/utils/sharing_clauses/clauses_utils.py
381
472
  test/utils/validator_classes/DoAllInfoForValidation.py
382
473
  test/utils/validator_classes/__init__.py
383
474
  test/wip_end_to_end/__init__.py
@@ -393,4 +484,13 @@ test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall/test.
393
484
  test/wip_end_to_end/do_all/stack_access/__init__.py
394
485
  test/wip_end_to_end/do_all/stack_access/various/__init__.py
395
486
  test/wip_end_to_end/do_all/stack_access/various/case_4/__init__.py
396
- test/wip_end_to_end/do_all/stack_access/various/case_4/test.py
487
+ test/wip_end_to_end/do_all/stack_access/various/case_4/test.py
488
+ test/wip_end_to_end/reduction_pattern/__init__.py
489
+ test/wip_end_to_end/reduction_pattern/negative/__init__.py
490
+ test/wip_end_to_end/reduction_pattern/negative/case_2/__init__.py
491
+ test/wip_end_to_end/reduction_pattern/negative/case_2/test.py
492
+ test/wip_end_to_end/sharing_clauses/__init__.py
493
+ test/wip_end_to_end/sharing_clauses/do_all/__init__.py
494
+ test/wip_end_to_end/sharing_clauses/do_all/first_private/__init__.py
495
+ test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/__init__.py
496
+ test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/test.py
@@ -1,6 +1,5 @@
1
1
  [console_scripts]
2
- DEPRECATED_discopop_profiler = DEPRECATED_discopop_profiler.__main__:main
3
- DEPRECATED_discopop_wizard = DEPRECATED_discopop_wizard.__main__:main
2
+ discopop_auto_tuner = discopop_library.EmpiricalAutotuning.__main__:main
4
3
  discopop_config_provider = discopop_library.ConfigProvider.__main__:main
5
4
  discopop_explorer = discopop_explorer.__main__:main
6
5
  discopop_optimizer = discopop_library.discopop_optimizer.__main__:main
@@ -14,6 +14,7 @@ sympy
14
14
  sympy_plot_backends
15
15
  alive_progress
16
16
  filelock
17
+ pydot
17
18
 
18
19
  [ci]
19
20
  mypy
@@ -0,0 +1,3 @@
1
+ discopop_explorer
2
+ discopop_library
3
+ test
@@ -11,7 +11,7 @@ from pathlib import Path
11
11
  from discopop_library.GlobalLogger.setup import setup_logger
12
12
 
13
13
  from discopop_library.PathManagement.PathManagement import get_path, get_path_or_none
14
- from .discopop_explorer import ExplorerArguments, run
14
+ from discopop_explorer.discopop_explorer import ExplorerArguments, run
15
15
 
16
16
 
17
17
  def parse_args() -> ExplorerArguments:
@@ -69,8 +69,8 @@ def parse_args() -> ExplorerArguments:
69
69
  help="Dump DetectionResult object to JSON file. If a path is given, the DetectionResult object is written to the given file, otherwise to detection_result_dump.json. Contents are equivalent to the json output. NOTE: This dump contains a dump of the PET Graph!",
70
70
  )
71
71
  parser.add_argument(
72
- "--enable-patterns", type=str, nargs="?", default="*",
73
- help="Specify comma-separated list of pattern types to be identified. Options: reduction,doall,pipeline,geodec,simplegpu. Default: *",
72
+ "--enable-patterns", type=str, nargs="?", default="reduction,doall,pipeline,geodec",
73
+ help="Specify comma-separated list of pattern types to be identified. Options: reduction,doall,pipeline,geodec,simplegpu. Default: reduction,doall,pipeline,geodec",
74
74
  )
75
75
  parser.add_argument("--load-existing-doall-and-reduction-patterns", action="store_true", help="Skip pattern detection and insert existing patterns.json contents into the created detection_result.json")
76
76
  parser.add_argument("--log", type=str, default="WARNING", help="Specify log level: DEBUG, INFO, WARNING, ERROR, CRITICAL")
@@ -104,6 +104,9 @@ def parse_args() -> ExplorerArguments:
104
104
  "--llvm-cxxfilt-path", type=str, default=None,
105
105
  help="Path to llvm-cxxfilt executable. Required for task pattern detector if non-standard path should be used.",
106
106
  )
107
+ experimental_parser.add_argument(
108
+ "--enable-statistics", action="store_true", help="Disable the calculation and storing of statistics for code and generated suggestions."
109
+ )
107
110
  # fmt: on
108
111
 
109
112
  arguments = parser.parse_args()
@@ -156,10 +159,11 @@ def parse_args() -> ExplorerArguments:
156
159
  log_level=arguments.log.upper(),
157
160
  write_log=arguments.write_log,
158
161
  load_existing_doall_and_reduction_patterns=arguments.load_existing_doall_and_reduction_patterns,
162
+ collect_statistics=arguments.enable_statistics,
159
163
  )
160
164
 
161
165
 
162
- def main():
166
+ def main() -> None:
163
167
  arguments = parse_args()
164
168
  setup_logger(arguments)
165
169
  run(arguments)
@@ -0,0 +1,27 @@
1
+ # This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
2
+ #
3
+ # Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
4
+ #
5
+ # This software may be modified and distributed under the terms of
6
+ # the 3-Clause BSD License. See the LICENSE file in the package base
7
+ # directory for details.
8
+ from __future__ import annotations
9
+
10
+ from typing import List
11
+
12
+
13
+ class LineID(str):
14
+ # simpler but still strong typing alternative:
15
+ # LineID = NewType("LineID", str) or remove __init__
16
+ def __init__(self, id_string: str):
17
+ # check format of newly created LineID's
18
+ if ":" not in id_string:
19
+ raise ValueError("Mal-formatted LineID: ", id_string)
20
+ split_id: List[str] = id_string.split(":")
21
+ if len(split_id) != 2:
22
+ raise ValueError("Mal-formatted LineID: ", id_string)
23
+ try:
24
+ int(split_id[0])
25
+ int(split_id[1])
26
+ except ValueError:
27
+ raise ValueError("Mal-formatted LineID: ", id_string)
@@ -5,10 +5,11 @@
5
5
  # This software may be modified and distributed under the terms of
6
6
  # the 3-Clause BSD License. See the LICENSE file in the package base
7
7
  # directory for details.
8
- from typing import List
8
+ from __future__ import annotations
9
9
 
10
10
 
11
- class Arguments(object):
12
- no_gui: bool = False
13
- execute_all_configurations: bool = False
14
- execute_configurations_with_tag: List[str] = []
11
+ class MemoryRegion(str):
12
+ # simpler but still strong typing alternative:
13
+ def __init__(self, id_string: str):
14
+ super().__init__()
15
+ pass
@@ -0,0 +1,27 @@
1
+ # This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
2
+ #
3
+ # Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
4
+ #
5
+ # This software may be modified and distributed under the terms of
6
+ # the 3-Clause BSD License. See the LICENSE file in the package base
7
+ # directory for details.
8
+ from __future__ import annotations
9
+
10
+ from typing import List
11
+
12
+
13
+ class NodeID(str):
14
+ # simpler but still strong typing alternative:
15
+ # NodeID = NewType("NodeID", str) or remove __init__
16
+ def __init__(self, id_string: str):
17
+ # check format of newly created NodeID's
18
+ if ":" not in id_string:
19
+ raise ValueError("Mal-formatted NodeID: ", id_string)
20
+ split_id: List[str] = id_string.split(":")
21
+ if len(split_id) != 2:
22
+ raise ValueError("Mal-formatted NodeID: ", id_string)
23
+ try:
24
+ int(split_id[0])
25
+ int(split_id[1])
26
+ except ValueError:
27
+ raise ValueError("Mal-formatted NodeID: ", id_string)
@@ -0,0 +1,31 @@
1
+ # This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
2
+ #
3
+ # Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
4
+ #
5
+ # This software may be modified and distributed under the terms of
6
+ # the 3-Clause BSD License. See the LICENSE file in the package base
7
+ # directory for details.
8
+ from __future__ import annotations
9
+
10
+ from typing import TYPE_CHECKING, List
11
+
12
+ from discopop_explorer.classes.PEGraph.Node import Node
13
+ from discopop_explorer.enums.NodeType import NodeType
14
+
15
+ if TYPE_CHECKING:
16
+ from discopop_explorer.classes.variable import Variable
17
+ from discopop_explorer.aliases.NodeID import NodeID
18
+
19
+
20
+ # Data.xml: type="0"
21
+ class CUNode(Node):
22
+ instructions_count: int = -1
23
+ basic_block_id = ""
24
+ return_instructions_count: int = -1
25
+ local_vars: List[Variable] = []
26
+ global_vars: List[Variable] = []
27
+ performs_file_io: bool = False
28
+
29
+ def __init__(self, node_id: NodeID):
30
+ super().__init__(node_id)
31
+ self.type = NodeType.CU
@@ -0,0 +1,45 @@
1
+ # This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
2
+ #
3
+ # Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
4
+ #
5
+ # This software may be modified and distributed under the terms of
6
+ # the 3-Clause BSD License. See the LICENSE file in the package base
7
+ # directory for details.
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Optional, List
12
+
13
+ from discopop_explorer.aliases.LineID import LineID
14
+ from discopop_explorer.aliases.MemoryRegion import MemoryRegion
15
+ from discopop_explorer.enums.DepType import DepType
16
+ from discopop_explorer.enums.EdgeType import EdgeType
17
+
18
+
19
+ class Dependency:
20
+ etype: EdgeType
21
+ dtype: Optional[DepType] = None
22
+ var_name: Optional[str] = None
23
+ memory_region: Optional[MemoryRegion] = None
24
+ source_line: Optional[LineID] = None
25
+ sink_line: Optional[LineID] = None
26
+ intra_iteration: bool = False
27
+ intra_iteration_level: int = -1
28
+ metadata_intra_iteration_dep: Optional[List[LineID]]
29
+ metadata_inter_iteration_dep: Optional[List[LineID]]
30
+ metadata_intra_call_dep: Optional[List[LineID]]
31
+ metadata_inter_call_dep: Optional[List[LineID]]
32
+ metadata_sink_ancestors: Optional[List[LineID]]
33
+ metadata_source_ancestors: Optional[List[LineID]]
34
+
35
+ def __init__(self, type: EdgeType):
36
+ self.etype = type
37
+ self.metadata_intra_iteration_dep = []
38
+ self.metadata_inter_iteration_dep = []
39
+ self.metadata_intra_call_dep = []
40
+ self.metadata_inter_call_dep = []
41
+ self.metadata_sink_ancestors = []
42
+ self.metadata_source_ancestors = []
43
+
44
+ def __str__(self) -> str:
45
+ return self.var_name if self.var_name is not None else str(self.etype)
@@ -0,0 +1,24 @@
1
+ # This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
2
+ #
3
+ # Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
4
+ #
5
+ # This software may be modified and distributed under the terms of
6
+ # the 3-Clause BSD License. See the LICENSE file in the package base
7
+ # directory for details.
8
+ from __future__ import annotations
9
+
10
+ from typing import List
11
+
12
+ from discopop_explorer.aliases.NodeID import NodeID
13
+ from discopop_explorer.classes.PEGraph.Node import Node
14
+ from discopop_explorer.enums.NodeType import NodeType
15
+ from discopop_explorer.classes.variable import Variable
16
+
17
+
18
+ # Data.xml: type="3"
19
+ class DummyNode(Node):
20
+ args: List[Variable] = []
21
+
22
+ def __init__(self, node_id: NodeID):
23
+ super().__init__(node_id)
24
+ self.type = NodeType.DUMMY