Gabriel Dehame
This repository contians the files necessary to reproduce the results of the internship report.
- Directory
Benchmarks/
contains subdirectories for distinct benchmark suites. Benchmarks/benchmarks/
contains the main benchmarks, the industry ones called benchmark1, benchmark2 and benchmark3Benchmarks/olden-master/
contains the benchmarks taken from the Olden benchmark suitedynamicStructurePrefetchingPass/
is the directory used to build the LLVM passlibDynamicStructurePrefetchingPass.so
is the shared library to load inopt
to use the LLVM passGabriel_M1_Internship.pdf
is the internship report I submitted to the jury.
The dependencies for this repository are the following:
- LLVM toolchain to use the pass,
clang
,opt
, we used LLVM 16.0.0 - vTune 2023.1.0 to generate profiling measurements the same way we did. This only works on x86 architectures.
- Makefile and CMake
- Python3 to generate the graphs and time measurements.
One can either use libDynamicStructurePrefetchingPass.so
directly to load the pass when using LLVM's opt
command.
Otherwise, the source code can be recompiled and modified, to do so, modify the paths in dynamicStructurePrefetchingPass/build/Makefile
and dynamicStructurePrefetchingPass/CMakeCache.txt
from /home/jab/M1/Internship/llvm-dynamic-structure-prefetching-pass/dynamicStructurePrefetchingPass*
to {path to your directory}/llvm-dynamic-structure-prefetching-pass/dynamicStructurePrefetchingPass*