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.sois the shared library to load inoptto use the LLVM passGabriel_M1_Internship.pdfis 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*