Skip to content

Commit 086a7a5

Browse files
authored
Fixes for llvm-install-src (#404)
* Support _path for install,llvm
1 parent 9fba422 commit 086a7a5

File tree

4 files changed

+43
-25
lines changed

4 files changed

+43
-25
lines changed

automation/script/module.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3188,7 +3188,7 @@ def _update_variation_meta_with_dynamic_suffix(
31883188
item_value[i] = l_item.replace(
31893189
"#", variation_tag_dynamic_suffix)
31903190
else:
3191-
value[item] = value[item].replace(
3191+
value[item] = str(value[item]).replace(
31923192
"#", variation_tag_dynamic_suffix)
31933193

31943194
else: # scalar value, never used?

script/get-llvm/customize.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def preprocess(i):
2121
if os.path.exists(os.path.join(llvm_path, 'bin', 'clang')):
2222
env['MLC_TMP_PATH'] = os.path.join(llvm_path, 'bin')
2323
else:
24-
for l in os.listdir(aocc_path):
24+
for l in os.listdir(llvm_path):
2525
if os.path.exists(os.path.join(
2626
llvm_path, l, 'bin', 'clang')):
2727
llvm_path = os.path.join(llvm_path, l)

script/install-llvm-src/customize.py

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,36 +17,44 @@ def preprocess(i):
1717
clang_file_name = "clang"
1818
extra_cmake_options = ''
1919

20-
install_prefix = os.path.join(os.getcwd(), "install")
21-
22-
if env.get('MLC_LLVM_CONDA_ENV', '') == "yes":
23-
install_prefix = env['MLC_CONDA_PREFIX']
24-
extra_cmake_options = f"-DCMAKE_SHARED_LINKER_FLAGS=-L{install_prefix} -Wl,-rpath,{install_prefix}"
25-
26-
if is_true(env.get('MLC_LLVM_16_INTEL_MLPERF_INFERENCE', '')):
27-
env['MLC_REQUIRE_INSTALL'] = 'yes'
28-
i['run_script_input']['script_name'] = "install-llvm-16-intel-mlperf-inference"
29-
clang_file_name = "llvm-link"
30-
# env['USE_LLVM'] = install_prefix
31-
# env['LLVM_DIR'] = os.path.join(env['USE_LLVM'], "lib", "cmake", "llvm")
20+
if env.get('MLC_LLVM_INSTALLED_PATH', '') != '' and os.path.exists(
21+
env.get('MLC_LLVM_INSTALLED_PATH')):
22+
install_prefix = env['MLC_LLVM_INSTALLED_PATH']
3223
else:
33-
if env.get('+MLC_LLVM_ENABLE_RUNTIMES', '') != '':
34-
enable_runtimes = ";".join(env['+MLC_LLVM_ENABLE_RUNTIMES'])
35-
else:
36-
enable_runtimes = ''
24+
install_prefix = os.path.join(os.getcwd(), "install")
3725

38-
if env.get('+MLC_LLVM_ENABLE_PROJECTS', '') != '':
39-
enable_projects = ";".join(env['+MLC_LLVM_ENABLE_PROJECTS'])
26+
if os.path.exists(os.path.join(install_prefix, "bin", "clang")) and is_true(
27+
env.get('MLC_LLVM_USE_INSTALLED_DIR')):
28+
i['run_script_input']['script_name'] = "no-install" # skip install
29+
else:
30+
if env.get('MLC_LLVM_CONDA_ENV', '') == "yes":
31+
install_prefix = env['MLC_CONDA_PREFIX']
32+
extra_cmake_options = f"-DCMAKE_SHARED_LINKER_FLAGS=-L{install_prefix} -Wl,-rpath,{install_prefix}"
33+
34+
if is_true(env.get('MLC_LLVM_16_INTEL_MLPERF_INFERENCE', '')):
35+
env['MLC_REQUIRE_INSTALL'] = 'yes'
36+
i['run_script_input']['script_name'] = "install-llvm-16-intel-mlperf-inference"
37+
clang_file_name = "llvm-link"
38+
# env['USE_LLVM'] = install_prefix
39+
# env['LLVM_DIR'] = os.path.join(env['USE_LLVM'], "lib", "cmake", "llvm")
4040
else:
41-
enable_projects = ''
41+
if env.get('+MLC_LLVM_ENABLE_RUNTIMES', '') != '':
42+
enable_runtimes = ";".join(env['+MLC_LLVM_ENABLE_RUNTIMES'])
43+
else:
44+
enable_runtimes = ''
45+
46+
if env.get('+MLC_LLVM_ENABLE_PROJECTS', '') != '':
47+
enable_projects = ";".join(env['+MLC_LLVM_ENABLE_PROJECTS'])
48+
else:
49+
enable_projects = ''
4250

43-
llvm_build_type = env['MLC_LLVM_BUILD_TYPE']
51+
llvm_build_type = env['MLC_LLVM_BUILD_TYPE']
4452

45-
targets_to_build = env.get('MLC_LLVM_TARGETS_TO_BUILD', 'X86')
53+
targets_to_build = env.get('MLC_LLVM_TARGETS_TO_BUILD', 'X86')
4654

47-
cmake_cmd = f"""cmake {os.path.join(env["MLC_LLVM_SRC_REPO_PATH"], "llvm")} -GNinja -DCMAKE_BUILD_TYPE={llvm_build_type } -DLLVM_ENABLE_PROJECTS={q}{enable_projects}{q} -DLLVM_ENABLE_RUNTIMES={q}{enable_runtimes}{q} -DCMAKE_INSTALL_PREFIX={q}{install_prefix}{q} -DLLVM_ENABLE_RTTI=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD={targets_to_build} {extra_cmake_options}"""
55+
cmake_cmd = f"""cmake {os.path.join(env["MLC_LLVM_SRC_REPO_PATH"], "llvm")} -GNinja -DCMAKE_BUILD_TYPE={llvm_build_type } -DLLVM_ENABLE_PROJECTS={q}{enable_projects}{q} -DLLVM_ENABLE_RUNTIMES={q}{enable_runtimes}{q} -DCMAKE_INSTALL_PREFIX={q}{install_prefix}{q} -DLLVM_ENABLE_RTTI=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD={targets_to_build} {extra_cmake_options}"""
4856

49-
env['MLC_LLVM_CMAKE_CMD'] = cmake_cmd
57+
env['MLC_LLVM_CMAKE_CMD'] = cmake_cmd
5058

5159
need_version = env.get('MLC_VERSION', '')
5260

script/install-llvm-src/meta.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ deps:
2222
names:
2323
- llvm-src-repo
2424
tags: get,git,repo
25+
skip_if_env:
26+
MLC_LLVM_INSTALLED_PATH:
27+
- on
2528
update_tags_from_env_with_prefix:
2629
_branch.:
2730
- MLC_GIT_CHECKOUT
@@ -46,6 +49,9 @@ post_deps:
4649
MLC_REQUIRE_INSTALL:
4750
- 'yes'
4851
tags: get,llvm
52+
update_tags_from_env_with_prefix:
53+
_path.:
54+
- MLC_LLVM_INSTALLED_PATH
4955
prehook_deps: []
5056
sort: 1000
5157
tags:
@@ -97,6 +103,10 @@ variations:
97103
env:
98104
MLC_LLVM_BUILD_TYPE: debug
99105
group: build-type
106+
path.#:
107+
env:
108+
MLC_LLVM_INSTALLED_PATH: '#'
109+
MLC_LLVM_USE_INSTALLED_DIR: yes
100110
for-intel-mlperf-inference-v3.1-bert:
101111
adr:
102112
conda-package:

0 commit comments

Comments
 (0)