diff --git a/hpvm/scripts/llvm_installer.sh b/hpvm/scripts/llvm_installer.sh index f9600b8fc3b83a93585338f6863d7cafcedd8f79..3ed7fd3a951d27dedc9b84adf82835a0eedbd1e2 100755 --- a/hpvm/scripts/llvm_installer.sh +++ b/hpvm/scripts/llvm_installer.sh @@ -231,6 +231,8 @@ if [ ! -d $INSTALL_DIR ]; then mkdir -p $INSTALL_DIR fi +export PATH=$BUILD_DIR/bin:$PATH + cd $BUILD_DIR echo cmake ../$LLVM_SRC -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DLLVM_TARGETS_TO_BUILD=$TARGET -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR cmake ../$LLVM_SRC -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DLLVM_TARGETS_TO_BUILD=$TARGET -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR diff --git a/hpvm/tools/py-approxhpvm/CMakeLists.txt b/hpvm/tools/py-approxhpvm/CMakeLists.txt index 0d6a7fe71bd78f987dfcd7e7f5c6831154c065e7..e46c45623f13034e1cb4c5b1ed2434ec40d4c12c 100644 --- a/hpvm/tools/py-approxhpvm/CMakeLists.txt +++ b/hpvm/tools/py-approxhpvm/CMakeLists.txt @@ -52,8 +52,8 @@ set( ) add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/bin/approxhpvm.py - COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/main.py ${PROJECT_BINARY_DIR}/bin/approxhpvm.py + COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/main.py ${PROJECT_BINARY_DIR}/bin/approxhpvm.py COMMAND chmod +x ${PROJECT_BINARY_DIR}/bin/approxhpvm.py DEPENDS ${DEPS} ${CMAKE_CURRENT_BINARY_DIR}/main.py ) -add_custom_target(approxhpvm.py DEPENDS ${PROJECT_BINARY_DIR}/bin/approxhpvm.py) +add_custom_target(approxhpvm.py ALL DEPENDS ${PROJECT_BINARY_DIR}/bin/approxhpvm.py) diff --git a/hpvm/tools/py-approxhpvm/main.py.in b/hpvm/tools/py-approxhpvm/main.py.in index 9305b8a25a18541f545a1925947b1abe4465a3f8..752a7609ca0831838949b037ac7b8c0323ac8871 100644 --- a/hpvm/tools/py-approxhpvm/main.py.in +++ b/hpvm/tools/py-approxhpvm/main.py.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import argparse import os from pathlib import Path @@ -7,7 +7,7 @@ from typing import List, Union, Optional PathLike = Union[Path, str] HPVM_PROJECT_DIR = Path("@LLVM_PROJECT_DIR@") / "tools/hpvm" -LLVM_BUILD_DIR = Path("@LLVM_BUILD_DIR@") +LLVM_BUILD_DIR = Path("@LLVM_BUILD_DIR@") / "bin" CUDA_TOOLKIT_ROOT_DIR = Path("@CUDA_TOOLKIT_ROOT_DIR@") TENSOR_RUNTIME_LIBS = "@TENSOR_RUNTIME_LIBS@".split(";") AVAILABLE_PASSES = "@AVAILABLE_PASSES@".split(";") @@ -74,7 +74,7 @@ def hpvm_c_to_ll( includes = [f"-I{path}" for path in INCLUDE_DIRS + extra_includes] flags = [f"-{flg}" for flg in (flags or []) + COMPILE_FLAGS] return [ - "clang++", *includes, *flags, "-emit-llvm", "-S", + str(LLVM_BUILD_DIR / "clang++"), *includes, *flags, "-emit-llvm", "-S", str(src_file), "-o", str(target_file) ] @@ -114,14 +114,14 @@ def opt_codegen_tensor( def link_hpvm_rt(src_file: PathLike, target_file: PathLike) -> List[str]: - return ["llvm-link", str(src_file), HPVM_RT_PATH, "-o", str(target_file)] + return [str(LLVM_BUILD_DIR / "llvm-link"), str(src_file), HPVM_RT_PATH, "-o", str(target_file)] def link_binary(src_file: PathLike, target_file: PathLike) -> List[str]: linker_dir_flags = [f"-L{path}" for path in LINK_DIRS] linker_lib_flags = [f"-l{lib}" for lib in LINK_LIBS] return [ - "clang++", str(src_file), *TENSOR_RUNTIME_LIBS, "-o", str(target_file), + str(LLVM_BUILD_DIR / "clang++"), str(src_file), *TENSOR_RUNTIME_LIBS, "-o", str(target_file), *linker_dir_flags, *linker_lib_flags ] @@ -138,7 +138,7 @@ def _run_opt( load_passes_strs = [s for pass_ in pass_names for s in ["-load", f"{pass_}.so"]] pass_flags_strs = [f"-{flag}" for flag in pass_flags] return [ - "opt", *load_passes_strs, *pass_flags_strs, + str(LLVM_BUILD_DIR / "opt"), *load_passes_strs, *pass_flags_strs, "-S", str(src_file), "-o", str(target_file) ]