From 086ad922bc27699aa064ad134e1ba4f19508d9c5 Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Thu, 27 Jun 2024 15:39:23 +0200 Subject: [PATCH 1/2] Usse CMAKE_BUILD_TYPE=Debug for dev builds. Also, added the -clean option. --- CMakeLists.txt | 1 + scripts/compile.sh | 33 +++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 55661408b..8d82a7af8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ project(GraphCompiler VERSION "0.1.0" LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/scripts/compile.sh b/scripts/compile.sh index 3d97a3926..976a3cb9a 100755 --- a/scripts/compile.sh +++ b/scripts/compile.sh @@ -8,9 +8,10 @@ repo=intel/graph-compiler print_usage() { echo "Usage:" echo "$0 " - echo " [ -d | --dev ] Dev build, build LLVM in current env and place all to 'external' dir" - echo " [ -l | --dyn ] Dynamical linking, requires rebuild of LLVM, activates 'dev' option" - echo " [ -h | --help ] Print this message" + echo " [ -d | --dev ] Dev build, build LLVM in current env and place all to 'external' dir" + echo " [ -l | --dyn ] Dynamical linking, requires rebuild of LLVM, activates 'dev' option" + echo " [ -c | --clean ] Delete the build artifacts from the previous build" + echo " [ -h | --help ] Print this message" } DEV_BUILD=false @@ -24,6 +25,9 @@ for arg in "$@"; do DEV_BUILD=true DYN_LINK=true ;; + -c | --clean) + CLEANUP=true + ;; -h | --help) print_usage exit 0 @@ -60,9 +64,12 @@ load_llvm() { build_llvm() { if ! [ -d "llvm-project" ]; then git clone https://github.com/llvm/llvm-project.git + cd llvm-project + else + cd llvm-project + git fetch --all fi - cd llvm-project git checkout ${LLVM_HASH} dylib=OFF @@ -70,12 +77,14 @@ build_llvm() { dylib=ON fi + [ -z "$CLEANUP" ] || rm -rf build cmake -G Ninja llvm -B build \ - -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=true \ - -DLLVM_ENABLE_PROJECTS="mlir" -DLLVM_TARGETS_TO_BUILD="X86" \ - -DLLVM_INSTALL_UTILS=true -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DLLVM_INSTALL_GTEST=ON -DLLVM_BUILD_LLVM_DYLIB=$dylib -DLLVM_LINK_LLVM_DYLIB=$dylib - cmake --build build + -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG="-g -O0" \ + -DLLVM_ENABLE_ASSERTIONS=true -DLLVM_ENABLE_PROJECTS="mlir"\ + -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_INSTALL_UTILS=true \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLLVM_INSTALL_GTEST=ON \ + -DLLVM_BUILD_LLVM_DYLIB=$dylib -DLLVM_LINK_LLVM_DYLIB=$dylib + cmake --build build MLIR_DIR="$PWD/build/lib/cmake/mlir" cd .. @@ -113,15 +122,19 @@ if ! LIT_PATH=$(which lit) ; then fi fi if [ "$DEV_BUILD" = 'true' ]; then + BUILD_TYPE=Debug FETCH_DIR=$PROJECT_DIR/externals LIT_PATH=$PROJECT_DIR/externals/llvm-project/build/bin/llvm-lit +else + BUILD_TYPE=RelWithDebInfo fi if [ "$DYN_LINK" = 'true' ]; then DYLIB=ON fi +[ -z "$CLEANUP" ] || rm -rf build cmake -S . -G Ninja -B build \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DMLIR_DIR=$MLIR_DIR \ -DLLVM_EXTERNAL_LIT=$LIT_PATH \ -DFETCHCONTENT_BASE_DIR=$FETCH_DIR \ From 14c66db2705b5b57a455430013f6af8769691718 Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Mon, 1 Jul 2024 16:50:39 +0200 Subject: [PATCH 2/2] Use <