From 0dde0c39e18c69b77283f073696e14ce541b783c Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Thu, 4 Sep 2025 12:19:36 -0300 Subject: [PATCH 1/7] dockerfile update --- artifact/docker/Dockerfile | 66 ++++++++++++++------------------------ 1 file changed, 24 insertions(+), 42 deletions(-) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index 568a227..2259c55 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -45,46 +45,28 @@ WORKDIR llvm-test-suite RUN mkdir -p build RUN mkdir -p /lit-results -RUN cmake -G "Ninja" \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_C_FLAGS="-flto" \ - -DCMAKE_CXX_FLAGS="-flto" \ - -DTEST_SUITE_COLLECT_INSTCOUNT=ON \ - -DTEST_SUITE_SELECTED_PASSES= \ - -DTEST_SUITE_PASSES_ARGS= \ - -DTEST_SUITE_COLLECT_COMPILE_TIME=OFF \ - -DCMAKE_EXE_LINKER_FLAGS="-flto -fuse-ld=lld -Wl,--plugin-opt=-lto-embed-bitcode=post-merge-pre-opt" \ - "-DTEST_SUITE_SUBDIRS=SingleSource;MultiSource" \ - -C "cmake/caches/Os.cmake" \ - -S . -B build -RUN cmake --build build -- -j 10 || exit 0 -RUN llvm-lit \ - --timeout 200 \ - -j 10 \ - -s \ - -o /lit-results/baseline.json build || exit 0 - -RUN rm -rf build/* - -RUN cmake -G "Ninja" \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_C_FLAGS="-flto" \ - -DCMAKE_CXX_FLAGS="-flto" \ - -DTEST_SUITE_COLLECT_INSTCOUNT=ON \ - -DTEST_SUITE_SELECTED_PASSES=daedalus \ - "-DTEST_SUITE_PASSES_ARGS=-load-pass-plugin=/src/Daedalus/build/lib/libdaedalus.so" \ - -DTEST_SUITE_COLLECT_COMPILE_TIME=OFF \ - -DCMAKE_EXE_LINKER_FLAGS="-flto -fuse-ld=lld -Wl,--plugin-opt=-lto-embed-bitcode=post-merge-pre-opt" \ - "-DTEST_SUITE_SUBDIRS=SingleSource;MultiSource" \ - -C "cmake/caches/Os.cmake" \ - -S . -B build -RUN cmake --build build -- -k 0 -j 10 || exit 0 -RUN llvm-lit \ - --timeout 200 \ - -j 10 \ - -s \ - -o /lit-results/daedalus.json build || exit 0 +# Clone daedalus-dbg-toolkit to run the experiment +WORKDIR /src +RUN git clone https://github.com/Casperento/daedalus-dbg-toolkit.git +RUN python3 -m pip install -r /src/daedalus-dbg-toolkit/requirements.txt -RUN python3 utils/compare.py --full --diff -m instcount -m size..text /lit-results/baseline.json /lit-results/daedalus.json > /lit-results/comparison_results.txt +# Build llvm with func-merging pass +RUN git clone --depth 100 -b code-size https://github.com/rcorcs/llvm-project.git code-size +WORKDIR code-size +RUN mkdir -p build +RUN cmake -G Ninja \ + -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ + -DCMAKE_BUILD_TYPE="Release" \ + -DLLVM_TARGETS_TO_BUILD=X86 \ + -DLLVM_ENABLE_ASSERTIONS=On \ + -S llvm -B build +RUN cmake --build build -- -j 10 +WORKDIR /src/daedalus-dbg-toolkit +RUN ./run-experiment.sh -w 10 \ + -t 120 \ + --llvm-project /src/llvm-project \ + --code-size-llvm-project /src/code-size \ + --llvm-test-suite /src/llvm-test-suite \ + --daedalus /src/Daedalus \ + --lit-results /lit-results \ + --errors-dbg /src/daedalus-dbg-toolkit From a28a5c6616fc8c018f3e97b6507e3849fa18d823 Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Thu, 4 Sep 2025 12:38:53 -0300 Subject: [PATCH 2/7] change compiler --- artifact/docker/Dockerfile | 41 ++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index 2259c55..c924ea6 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -3,15 +3,16 @@ WORKDIR /src RUN apt update && apt upgrade -y RUN apt install -y sudo \ - git \ - tcl \ - tcl-dev \ - vim \ - build-essential \ - cmake \ - ninja-build \ - python3 \ - python3-venv + git \ + tcl \ + tcl-dev \ + vim \ + build-essential \ + cmake \ + ninja-build \ + python3 \ + python3-venv \ + clang RUN python3 -m venv /src/venv-py ENV PATH="/src/venv-py/bin:$PATH" @@ -22,11 +23,11 @@ RUN git clone --depth 100 -b merge-functions-pass https://github.com/Casperento/ WORKDIR llvm-project RUN mkdir -p build RUN cmake -G Ninja \ - -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ - -DCMAKE_BUILD_TYPE="Release" \ - -DLLVM_TARGETS_TO_BUILD=X86 \ - -DLLVM_ENABLE_ASSERTIONS=On \ - -S llvm -B build + -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ + -DCMAKE_BUILD_TYPE="Release" \ + -DLLVM_TARGETS_TO_BUILD=X86 \ + -DLLVM_ENABLE_ASSERTIONS=On \ + -S llvm -B build RUN cmake --build build -- -j 10 ENV PATH="/src/llvm-project/build/bin:$PATH" @@ -55,11 +56,13 @@ RUN git clone --depth 100 -b code-size https://github.com/rcorcs/llvm-project.gi WORKDIR code-size RUN mkdir -p build RUN cmake -G Ninja \ - -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ - -DCMAKE_BUILD_TYPE="Release" \ - -DLLVM_TARGETS_TO_BUILD=X86 \ - -DLLVM_ENABLE_ASSERTIONS=On \ - -S llvm -B build + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ + -DCMAKE_BUILD_TYPE="Release" \ + -DLLVM_TARGETS_TO_BUILD=X86 \ + -DLLVM_ENABLE_ASSERTIONS=On \ + -S llvm -B build RUN cmake --build build -- -j 10 WORKDIR /src/daedalus-dbg-toolkit RUN ./run-experiment.sh -w 10 \ From 5a4ce6c15395c5166494773f7bba66d7ff75e5bc Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Thu, 4 Sep 2025 13:03:42 -0300 Subject: [PATCH 3/7] change compiler pt2 --- artifact/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index c924ea6..d3aa37e 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -23,6 +23,8 @@ RUN git clone --depth 100 -b merge-functions-pass https://github.com/Casperento/ WORKDIR llvm-project RUN mkdir -p build RUN cmake -G Ninja \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD=X86 \ From be61c0ea877bf67183f4fd55f64329ae4e79f8fc Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Thu, 4 Sep 2025 13:55:24 -0300 Subject: [PATCH 4/7] change opt level --- artifact/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index d3aa37e..8748e32 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -25,6 +25,7 @@ RUN mkdir -p build RUN cmake -G Ninja \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_CXX_FLAGS="-O2" \ -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD=X86 \ @@ -60,6 +61,7 @@ RUN mkdir -p build RUN cmake -G Ninja \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_CXX_FLAGS="-O2" \ -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD=X86 \ From a090477b3ffe3c764c02579256d7a0a075045474 Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Thu, 4 Sep 2025 14:26:59 -0300 Subject: [PATCH 5/7] rollback changes --- artifact/docker/Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index 8748e32..1446a09 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -23,9 +23,6 @@ RUN git clone --depth 100 -b merge-functions-pass https://github.com/Casperento/ WORKDIR llvm-project RUN mkdir -p build RUN cmake -G Ninja \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS="-O2" \ -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD=X86 \ @@ -59,9 +56,6 @@ RUN git clone --depth 100 -b code-size https://github.com/rcorcs/llvm-project.gi WORKDIR code-size RUN mkdir -p build RUN cmake -G Ninja \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS="-O2" \ -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld' \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD=X86 \ From 8f1e0c515aeecbf21d9eee781124d92bc642025b Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Fri, 5 Sep 2025 12:06:01 -0300 Subject: [PATCH 6/7] param fixed on dockerfile --- artifact/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index 1446a09..be7ab5c 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -66,7 +66,7 @@ WORKDIR /src/daedalus-dbg-toolkit RUN ./run-experiment.sh -w 10 \ -t 120 \ --llvm-project /src/llvm-project \ - --code-size-llvm-project /src/code-size \ + --code-size /src/code-size \ --llvm-test-suite /src/llvm-test-suite \ --daedalus /src/Daedalus \ --lit-results /lit-results \ From b6b9e99373b03c1e9ffc39a69f1cf73cfad8441c Mon Sep 17 00:00:00 2001 From: Casperento <44746868+Casperento@users.noreply.github.com> Date: Fri, 5 Sep 2025 12:07:18 -0300 Subject: [PATCH 7/7] no need for clang --- artifact/docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/artifact/docker/Dockerfile b/artifact/docker/Dockerfile index be7ab5c..e123120 100644 --- a/artifact/docker/Dockerfile +++ b/artifact/docker/Dockerfile @@ -11,8 +11,7 @@ RUN apt install -y sudo \ cmake \ ninja-build \ python3 \ - python3-venv \ - clang + python3-venv RUN python3 -m venv /src/venv-py ENV PATH="/src/venv-py/bin:$PATH"