Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/4.0.0 #615

Merged
merged 110 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
87ece3e
cleanup: disabled detection of II_<type> dependencies
lukasrothenberger Jun 20, 2024
17faf3b
cleanup: remove Memory dealiasing and stack detection
lukasrothenberger Jun 20, 2024
1fb1654
feat[profiler,explorer]: add calltree profiling and dependency metadata
lukasrothenberger Jul 2, 2024
d790240
Merge branch 'master' into release/4.0.0
lukasrothenberger Jul 2, 2024
dfbbea9
Merge branch 'master' into release/4.0.0
lukasrothenberger Jul 3, 2024
3fea67e
fix[merge conflicts]: renamed iFunctions -> runtimeFunctions
lukasrothenberger Jul 3, 2024
a9dc636
feat: update c++ version from 11 to 17
lukasrothenberger Jul 3, 2024
57efb83
chore: refactor static analysis pass
lukasrothenberger Jul 8, 2024
25ba673
enable compilation of benchmark suite
lukasrothenberger Jul 8, 2024
338ffe5
use improved data structure PerfectShadow_2
lukasrothenberger Jul 8, 2024
119fed0
minor optimization
lukasrothenberger Jul 8, 2024
4673582
Lossy metadata calculation: loop iteration threshold
lukasrothenberger Jul 9, 2024
7c9058a
formatting
lukasrothenberger Jul 9, 2024
9e7f533
cleanup
lukasrothenberger Jul 9, 2024
e2e628b
add probabilistic cutoff ignore
lukasrothenberger Jul 9, 2024
79b58f0
improved default values
lukasrothenberger Jul 9, 2024
952e70e
Merge pull request #625 from discopop-project/lossy_metadata_calculat…
lukasrothenberger Jul 9, 2024
10d87b9
Add ci test for false positive reduction
lukasrothenberger Jul 10, 2024
6eb4ea5
added option to mypy.ini
lukasrothenberger Jul 10, 2024
b959b01
fix: enable mypy --check-untyped-defs
lukasrothenberger Jul 10, 2024
1e6205c
fix: python 3.8 compatibility
lukasrothenberger Jul 10, 2024
6db4051
mypy: add --disallow-incomplete-defs
lukasrothenberger Jul 10, 2024
bed0b34
chore(mypy): add type annotations
lukasrothenberger Jul 11, 2024
b9d588f
mypy: add --disallow-untyped-defs
lukasrothenberger Jul 11, 2024
b3f79bf
chore(mypy): add type annotations
lukasrothenberger Jul 12, 2024
179c8f8
chore(CI): move to python 3.10
lukasrothenberger Jul 12, 2024
906c5e1
fix: potential false positive reduction
lukasrothenberger Jul 9, 2024
e5b41b7
fix(explorer): exception handling when profiling enabled
lukasrothenberger Jul 12, 2024
793e0a4
chore(build): cleanup warning messages
lukasrothenberger Jul 15, 2024
b72f848
fix(explorer): exception handling when profiling enabled
lukasrothenberger Jul 15, 2024
fa8b969
fix(explorer): default-enabled pattern types
lukasrothenberger Jul 16, 2024
f71dd3c
Empirical autotuning of applicable suggestions (#640)
lukasrothenberger Jul 17, 2024
1fc2fef
fix(autotuner): delete invalid code during cleanup
lukasrothenberger Jul 18, 2024
6d23e8a
Tests and fixes for detection of data sharing clauses (#641)
lukasrothenberger Jul 22, 2024
833cc3a
feat(explorer)[clauses]: improved detection of data sharing clauses (…
lukasrothenberger Jul 23, 2024
df49c93
feat(autotuner): create statistics graph output (#643)
lukasrothenberger Jul 23, 2024
f0e2673
cleanup: remove deprecated tools
lukasrothenberger Jul 23, 2024
f71955a
fix(profiler)[hybrid]: potential segfault
lukasrothenberger Jul 24, 2024
d174b29
feat[autotuner]: improved reporting
lukasrothenberger Jul 26, 2024
4312d32
fix[explorer](variable classification): prevent duplicates
lukasrothenberger Jul 26, 2024
c5e3458
fix: formatting
lukasrothenberger Jul 26, 2024
2c2ca03
fix(explorer): incorrect variable clauses due to pass by value arguments
lukasrothenberger Jul 18, 2024
07eb085
fix(autotuner): minor reliablity fixes
lukasrothenberger Jul 26, 2024
9575ba3
feat[autotuner]: allow absence of hotspot information
lukasrothenberger Jul 29, 2024
4f54617
feat(build): add flag DP_BRANCH_TRACKING
lukasrothenberger Jul 29, 2024
6963f24
fix(profiler): potential segmentation fault due to regex recursion
lukasrothenberger Jul 29, 2024
76fa24f
fix(profiler): prevent potential invalid_argument error
lukasrothenberger Jul 29, 2024
3c0b8d3
feat(autotuner): print only sequential and best measurement
lukasrothenberger Jul 30, 2024
acff879
refactor: EdgeType
lukasrothenberger Jul 30, 2024
dffb64c
refactor: DepType
lukasrothenberger Jul 30, 2024
efa101b
refactor: MWType
lukasrothenberger Jul 30, 2024
428ee71
refactor: NodeType
lukasrothenberger Jul 30, 2024
f7d1a47
refactor: NodeID
lukasrothenberger Jul 30, 2024
052f4c0
refactor: LineID
lukasrothenberger Jul 30, 2024
c474f4e
refactor: MemoryRegion
lukasrothenberger Jul 30, 2024
8be9d1f
refactor: Dependency
lukasrothenberger Jul 30, 2024
5512534
fix: updated .gitignore
lukasrothenberger Jul 30, 2024
a3d3470
refactor: Node
lukasrothenberger Jul 30, 2024
fd07455
refactor: CUNode
lukasrothenberger Jul 30, 2024
160e63b
refactor: FunctionNode and LoopNode
lukasrothenberger Jul 30, 2024
bab42fb
refactor: utilities.PEGraphConstruction
lukasrothenberger Jul 30, 2024
81e3573
refactor: PatternInfo
lukasrothenberger Jul 31, 2024
4aeb093
refactor: PatternBase
lukasrothenberger Jul 31, 2024
4d80138
refactor: moved utility
lukasrothenberger Jul 31, 2024
fd168fb
refactor: restructuring
lukasrothenberger Jul 31, 2024
f41912f
refactor: moved variable
lukasrothenberger Jul 31, 2024
ca0819c
fix: modified .gitignore
lukasrothenberger Jul 31, 2024
2ed7287
refactor: get_parent_id
lukasrothenberger Jul 31, 2024
43ac09c
refactor: resolved circular import
lukasrothenberger Jul 31, 2024
15f81f7
fix: minor
lukasrothenberger Jul 31, 2024
eb39dd4
refactor: prevent circular imports
lukasrothenberger Jul 31, 2024
a80e555
refactor: minor move
lukasrothenberger Jul 31, 2024
115ed26
refactor: move
lukasrothenberger Jul 31, 2024
2cd0a75
refactor: move
lukasrothenberger Jul 31, 2024
38a2f38
refactor: move
lukasrothenberger Jul 31, 2024
129fbc6
refactor: absolute imports
lukasrothenberger Jul 31, 2024
29242fd
refactor: separate functions from PEGraphX
lukasrothenberger Aug 1, 2024
01bdf19
fix: missing replacements of all_nodes calls
lukasrothenberger Aug 1, 2024
aab879a
fix: missing replacements of all_nodes calls
lukasrothenberger Aug 1, 2024
6d1c9e7
chore: update requirements.txt
lukasrothenberger Aug 1, 2024
1b58bb4
chore: formatting
lukasrothenberger Aug 2, 2024
1f05641
chore: formatting
lukasrothenberger Aug 2, 2024
eb3ba81
fix: show test output
lukasrothenberger Aug 2, 2024
8f39372
fix: add missing __init__.py
lukasrothenberger Aug 2, 2024
cecffbb
fix: revert: show test output
lukasrothenberger Aug 2, 2024
0d95c2b
Merge branch 'master' into release/4.0.0
lukasrothenberger Aug 7, 2024
ca99b5e
feat: add distinguished behavior to reduction and doall detector
lukasrothenberger Aug 12, 2024
2824197
feat(autotuner): skip loops with runtime contribution < 1 %
lukasrothenberger Aug 19, 2024
1c48575
fix: implemented TODO targeting InvokeInst
lukasrothenberger Aug 12, 2024
024c47d
feat(autotuner): adaptive timeout
lukasrothenberger Aug 20, 2024
3872b4f
feat: add utility: GEPDependencyRemover
lukasrothenberger Aug 20, 2024
7eb0b05
fix: minor
lukasrothenberger Aug 21, 2024
84f856d
Merge branch 'master' into release/4.0.0
lukasrothenberger Aug 26, 2024
b6c4e71
fix(autotuner): consider result validity in plotting
lukasrothenberger Aug 26, 2024
43b33dc
fix(autotuner): filtering of relevant loops
lukasrothenberger Aug 26, 2024
e84d9b5
fix(explorer)[reduction,doall]: minor fix regarding considered metadata
lukasrothenberger Aug 26, 2024
2a788f2
fix(instrumentation): stability improvement, allow invoke instructions
lukasrothenberger Aug 26, 2024
328a60d
fix: potential endless recursion in hybrid instrumentation
lukasrothenberger Aug 27, 2024
781a66c
fix(autotuner): minor
lukasrothenberger Oct 14, 2024
1bcc70b
feat(profiler)[statistics]: profiling time
lukasrothenberger Oct 17, 2024
c4a8834
feat(explorer): calculate code statistics
lukasrothenberger Oct 23, 2024
d4c420e
fix: formatting
lukasrothenberger Oct 23, 2024
c788aa8
fix: minor
lukasrothenberger Oct 23, 2024
4386817
fix: enable console output
lukasrothenberger Oct 23, 2024
d773f29
fix: add missing __init__.py files
lukasrothenberger Oct 23, 2024
0de72b3
fix: disabled statistics collection by default
lukasrothenberger Oct 23, 2024
3c28d73
feat(explorer): cleanup old results before start
lukasrothenberger Oct 23, 2024
95a4d1b
feat(folder_structure): add proper utilities to setup and teardown
lukasrothenberger Oct 23, 2024
c9909d4
feat(explorer): automatically create patch files
lukasrothenberger Oct 23, 2024
8d7b7d0
doc: updated version file
lukasrothenberger Oct 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 24 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: '3.10'
cache: 'pip' # uses requirements.txt

- name: Install Python dependencies
Expand All @@ -47,23 +47,23 @@ jobs:
- name: "Run MyPy Type Checker - DiscoPoP Library"
run: python -m mypy --config-file=mypy.ini -p discopop_library

- name: "Run MyPy Type Checker - DiscoPoP Profiler - DEPRECATED"
run: python -m mypy --config-file=mypy.ini -p DEPRECATED_discopop_profiler

- name: "Run MyPy Type Checker - DiscoPoP Wizard - DEPRECATED"
run: python -m mypy --config-file=mypy.ini -p DEPRECATED_discopop_wizard
# - name: "Run MyPy Type Checker - DiscoPoP Profiler - DEPRECATED"
# run: python -m mypy --config-file=mypy.ini -p DEPRECATED_discopop_profiler
#
# - name: "Run MyPy Type Checker - DiscoPoP Wizard - DEPRECATED"
# run: python -m mypy --config-file=mypy.ini -p DEPRECATED_discopop_wizard

- name: "Check formatting of DiscoPoP Explorer"
run: python -m black -l 120 --check discopop_explorer

- name: "Check formatting of DiscoPoP Library"
run: python -m black -l 120 --check discopop_library

- name: "Check formatting of DiscoPoP Profiler - DEPRECATED"
run: python -m black -l 120 --check DEPRECATED_discopop_profiler

- name: "Check formatting of DiscoPoP Wizard - DEPRECATED"
run: python -m black -l 120 --check DEPRECATED_discopop_wizard
# - name: "Check formatting of DiscoPoP Profiler - DEPRECATED"
# run: python -m black -l 120 --check DEPRECATED_discopop_profiler
#
# - name: "Check formatting of DiscoPoP Wizard - DEPRECATED"
# run: python -m black -l 120 --check DEPRECATED_discopop_wizard

execute_cxx_unit_tests:
runs-on: ubuntu-20.04
Expand All @@ -76,7 +76,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: '3.10'
cache: 'pip' # uses requirements.txt

- name: Install Python dependencies
Expand All @@ -95,13 +95,17 @@ jobs:
sudo ln -s /usr/bin/llvm-link-11 /usr/bin/llvm-link || true
sudo ln -s /usr/bin/opt-11 /usr/bin/opt || true
sudo apt-get install -y python3-tk
sudo apt-get install -y libboost-all-dev

- name: "Setup DiscoPoP Profiler - Build"
run: |
rm -rf build
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DDP_CALLTREE_PROFILING=1 \
..
make -j3

- name: C++ unit tests
Expand All @@ -119,7 +123,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: '3.10'
cache: 'pip' # uses requirements.txt

- name: Install Python dependencies
Expand All @@ -138,13 +142,18 @@ jobs:
sudo ln -s /usr/bin/llvm-link-11 /usr/bin/llvm-link || true
sudo ln -s /usr/bin/opt-11 /usr/bin/opt || true
sudo apt-get install -y python3-tk
sudo apt-get install -y libboost-all-dev

- name: "Setup DiscoPoP Profiler - Build"
run: |
rm -rf build
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DDP_CALLTREE_PROFILING=1 \
-DDP_CALLTREE_PROFILING_METADATA_CUTOFF=0 \
..
make -j3

- name: Python end-to-end-tests
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ coverage.xml
# Profiling reports
profiling_stats.txt

# Code structure diagrams
classes.svg
packages.svg

# Translations
*.mo
*.pot
Expand Down Expand Up @@ -163,4 +167,4 @@ _deps
!/test/**/Makefile

**/.discopop
**/prog
**/prog
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ repos:

# black -- more info: https://github.com/psf/black/blob/main/docs/integrations/source_version_control.md
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 23.9.1
rev: 24.4.2
hooks:
- id: black
args: [--line-length=120]
Expand Down
12 changes: 9 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
cmake_minimum_required(VERSION 3.4.3)
project(DiscoPoP)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)

if (POLICY CMP0077)
cmake_policy(SET CMP0077 NEW)
Expand Down Expand Up @@ -46,6 +46,8 @@ For more information, please refer to https://discopop-project.github.io/discopo
endif()
endif()

find_package(Boost REQUIRED)

message(STATUS "Using LLVM version ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR})
Expand All @@ -68,7 +70,7 @@ add_subdirectory(scripts)

add_subdirectory(test/unit_tests)

#add_subdirectory(benchmark)
add_subdirectory(benchmark)

##### DEPRECATED #####
# save build configuration to build/build_config.txt
Expand All @@ -93,8 +95,12 @@ file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_RTLIB_VERBOSE=\"${DP_RTLIB_VERBOSE}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_NUM_WORKERS=\"${DP_NUM_WORKERS}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_INTERNAL_TIMER=\"${DP_INTERNAL_TIMER}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_CALLTREE_PROFILING=\"${DP_CALLTREE_PROFILING}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_CALLTREE_PROFILING_METADATA_CUTOFF=\"${DP_CALLTREE_PROFILING_METADATA_CUTOFF}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_CALLTREE_PROFILING_METADATA_CUTOFF_IGNORE_PROBABILITY=\"${DP_CALLTREE_PROFILING_METADATA_CUTOFF_IGNORE_PROBABILITY}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_MEMORY_REGION_DEALIASING=\"${DP_MEMORY_REGION_DEALIASING}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_STACK_ACCESS_DETECTION=\"${DP_STACK_ACCESS_DETECTION}\"\n")
file(APPEND "${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py" "DP_BRANCH_TRACKING=\"${DP_BRANCH_TRACKING}\"\n")


# print DiscoPoP configuration
file(READ ${DiscoPoP_SOURCE_DIR}/discopop_library/ConfigProvider/assets/build_config.py DiscoPoP_CONFIGURATION)
Expand Down
85 changes: 0 additions & 85 deletions DEPRECATED_discopop_profiler/__init__.py

This file was deleted.

91 changes: 0 additions & 91 deletions DEPRECATED_discopop_profiler/__main__.py

This file was deleted.

52 changes: 0 additions & 52 deletions DEPRECATED_discopop_profiler/utils.py

This file was deleted.

Loading
Loading