Skip to content
Snippets Groups Projects
Commit d19a1626 authored by Yifan Zhao's avatar Yifan Zhao
Browse files

Fixed some usability issues with approxhpvm.py

parent c52e166c
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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)
#!/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)
]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment