aboutsummaryrefslogtreecommitdiff
path: root/offload/ci/openmp-offload-amdgpu-runtime.py
blob: e93f54f09ac486207034b58b1019ecbc3c155a6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#! /usr/bin/env python3
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

import os
import sys

# Adapt to location in source tree
llvmsrcroot = os.path.normpath(f"{__file__}/../../..")

sys.path.insert(0, os.path.join(llvmsrcroot, ".ci/buildbot"))
import worker

llvmbuilddir = "llvm.build"
llvminstalldir = "llvm.inst"

with worker.run(
    __file__,
    llvmsrcroot,
    clobberpaths=[llvmbuilddir, llvminstalldir],
    workerjobs=32,
) as w:
    with w.step("configure-openmp", halt_on_fail=True):
        w.run_command(
            [
                "cmake",
                f"-S{w.in_llvmsrc('llvm')}",
                f"-B{llvmbuilddir}",
                "-GNinja",
                "-DCMAKE_BUILD_TYPE=Release",
                "-DLLVM_ENABLE_ASSERTIONS=ON",
                f"-DLLVM_LIT_ARGS=-vv --show-unsupported --show-xfail -j {w.jobs} --time-tests --timeout 100",
                f"-DCMAKE_INSTALL_PREFIX={w.in_workdir(llvminstalldir)}",
                "-DCLANG_DEFAULT_LINKER=lld",
                "-DLLVM_TARGETS_TO_BUILD=X86;AMDGPU",
                "-DCMAKE_C_COMPILER_LAUNCHER=ccache",
                "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache",
                "-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=compiler-rt;openmp",
                "-DLLVM_RUNTIME_TARGETS=default;amdgcn-amd-amdhsa",
                "-DLLVM_ENABLE_PROJECTS=clang;lld;llvm",
                "-DLLVM_ENABLE_RUNTIMES=offload;compiler-rt;openmp",
            ]
        )

    with w.step("compile-openmp", halt_on_fail=True):
        w.run_ninja(builddir=llvmbuilddir, ccache_stats=True)

    with w.step("test-openmp"):
        w.run_ninja(
            ["check-openmp"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
        )

    with w.step("Add check check-offload"):
        w.run_ninja(
            ["check-offload"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
        )

    with w.step("LLVM: Install", halt_on_fail=True):
        w.run_ninja(["install"], builddir=llvmbuilddir)