From 4e66d707a292b90a344e32c59eb1dacb67a0e4c1 Mon Sep 17 00:00:00 2001 From: Pablo Tello Date: Mon, 7 Mar 2022 18:20:12 +0000 Subject: Added windows native build support Resolves MLCE-739 Signed-off-by: Pablo Tello Change-Id: I30a11393e928061c82a5c93d8ec195c04a0e838b Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7279 Tested-by: Arm Jenkins Reviewed-by: Giorgio Arena Comments-Addressed: Arm Jenkins --- SConstruct | 64 +++++++++++++++++----- src/common/cpuinfo/CpuInfo.cpp | 41 ++++++++------ .../NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp | 6 +- .../NEON/kernels/arm_gemm/interleave_indirect.cpp | 6 +- src/core/NEON/kernels/arm_gemm/transform.cpp | 6 +- src/core/utils/misc/MMappedFile.cpp | 4 +- src/core/utils/quantization/AsymmHelpers.cpp | 6 +- src/cpu/CpuContext.cpp | 8 ++- src/runtime/BlobLifetimeManager.cpp | 3 +- src/runtime/CPP/CPPScheduler.cpp | 4 +- support/ToolchainSupport.h | 2 + tests/framework/command_line/CommonOptions.cpp | 6 +- tests/framework/instruments/Instruments.h | 4 +- 13 files changed, 107 insertions(+), 53 deletions(-) diff --git a/SConstruct b/SConstruct index ec669f246e..0f3397278f 100644 --- a/SConstruct +++ b/SConstruct @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2016-2021 Arm Limited. +# Copyright (c) 2016-2022 Arm Limited. # # SPDX-License-Identifier: MIT # @@ -94,7 +94,7 @@ vars.AddVariables( allowed_values=("armv7a", "armv7a-hf", "arm64-v8a", "arm64-v8.2-a", "arm64-v8.2-a-sve", "arm64-v8.2-a-sve2", "x86_32", "x86_64", "armv8a", "armv8.2-a", "armv8.2-a-sve", "armv8.6-a", "armv8.6-a-sve", "armv8.6-a-sve2", "armv8r64", "x86")), EnumVariable("estate", "Execution State", "auto", allowed_values=("auto", "32", "64")), - EnumVariable("os", "Target OS", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd")), + EnumVariable("os", "Target OS", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd","windows")), EnumVariable("build", "Build type", "cross_compile", allowed_values=("native", "cross_compile", "embed_only")), BoolVariable("examples", "Build example programs", True), BoolVariable("gemm_tuner", "Build gemm_tuner programs", True), @@ -128,7 +128,9 @@ vars.AddVariables( ) -env = Environment(platform="posix", variables=vars, ENV = os.environ) +env = Environment(variables=vars, ENV = os.environ) + + build_path = env['build_dir'] # If build_dir is a relative path then add a #build/ prefix: if not env['build_dir'].startswith('/'): @@ -201,15 +203,26 @@ if not env['exceptions']: env.Append(CXXFLAGS = ['-fno-exceptions']) env.Append(CXXFLAGS = ['-Wall','-DARCH_ARM', - '-Wextra','-pedantic','-Wdisabled-optimization','-Wformat=2', + '-Wextra','-Wdisabled-optimization','-Wformat=2', '-Winit-self','-Wstrict-overflow=2','-Wswitch-default', - '-std=c++14','-Woverloaded-virtual', '-Wformat-security', + '-Woverloaded-virtual', '-Wformat-security', '-Wctor-dtor-privacy','-Wsign-promo','-Weffc++','-Wno-overlength-strings']) +if not 'windows' in env['os']: + env.Append(CXXFLAGS = ['-std=c++14', '-pedantic' ]) + env.Append(CPPDEFINES = ['_GLIBCXX_USE_NANOSLEEP']) -default_cpp_compiler = 'g++' if env['os'] not in ['android', 'macos', 'openbsd'] else 'clang++' -default_c_compiler = 'gcc' if env['os'] not in ['android', 'macos', 'openbsd'] else 'clang' +cpp_tool = {'linux': 'g++', 'android' : 'clang++', + 'tizen': 'g++', 'macos':'clang++', + 'bare_metal':'g++', 'openbsd':'g++','windows':'clang-cl'} + +c_tool = {'linux':'gcc', 'android': 'clang', 'tizen':'gcc', + 'macos':'clang','bare_metal':'gcc', + 'openbsd':'gcc','windows':'clang-cl'} + +default_cpp_compiler = cpp_tool[env['os']] +default_c_compiler = c_tool[env['os']] cpp_compiler = os.environ.get('CXX', default_cpp_compiler) c_compiler = os.environ.get('CC', default_c_compiler) @@ -220,8 +233,8 @@ if 'clang++' in cpp_compiler: env.Append(CXXFLAGS = ['-Wno-vla-extension']) elif 'armclang' in cpp_compiler: pass -else: - env.Append(CXXFLAGS = ['-Wlogical-op','-Wnoexcept','-Wstrict-null-sentinel', '-Wno-misleading-indentation']) +elif not 'windows' in env['os']: + env.Append(CXXFLAGS = ['-Wlogical-op','-Wnoexcept','-Wstrict-null-sentinel','-Wno-misleading-indentation']) if cpp_compiler == 'g++': # Don't strip comments that could include markers @@ -344,12 +357,21 @@ env['CC'] = env['compiler_cache']+ " " + compiler_prefix + c_compiler env['CXX'] = env['compiler_cache']+ " " + compiler_prefix + cpp_compiler env['LD'] = prefix + "ld" env['AS'] = prefix + "as" -env['AR'] = prefix + "ar" + + +if env['os'] == 'windows': + env['AR'] = "LIB" +else: + env['AR'] = prefix + "ar" + env['RANLIB'] = prefix + "ranlib" if not GetOption("help"): try: - compiler_ver = subprocess.check_output(env['CXX'].split() + ["-dumpversion"]).decode().strip() + if env['os'] == 'windows': + compiler_ver = subprocess.check_output("clang++ -dumpversion").decode().strip() + else: + compiler_ver = subprocess.check_output(env['CXX'].split() + ["-dumpversion"]).decode().strip() except OSError: print("ERROR: Compiler '%s' not found" % env['CXX']) Exit(1) @@ -396,7 +418,8 @@ else: env = update_data_type_layout_flags(env, data_types, data_layouts) if env['standalone']: - env.Append(CXXFLAGS = ['-fPIC']) + if not 'windows' in env['os']: + env.Append(CXXFLAGS = ['-fPIC']) env.Append(LINKFLAGS = ['-static-libgcc','-static-libstdc++']) if env['Werror']: @@ -414,6 +437,15 @@ elif env['os'] == 'bare_metal': env.Append(CPPDEFINES = ['BARE_METAL']) if env['os'] == 'linux' and env['arch'] == 'armv7a': env.Append(CXXFLAGS = [ '-Wno-psabi' ]) +if env['os'] == 'windows': + env.Append(CXXFLAGS = [ '/std:c++14','/EHa']) + env.Append(CXXFLAGS = [ '-Wno-c++98-compat', '-Wno-covered-switch-default','-Wno-c++98-compat-pedantic']) + env.Append(CXXFLAGS = [ '-Wno-shorten-64-to-32', '-Wno-sign-conversion','-Wno-documentation']) + env.Append(CXXFLAGS = [ '-Wno-extra-semi-stmt', '-Wno-float-equal','-Wno-implicit-int-conversion']) + env.Append(CXXFLAGS = [ '-Wno-documentation-pedantic', '-Wno-extra-semi','-Wno-shadow-field-in-constructor']) + env.Append(CXXFLAGS = [ '-Wno-float-conversion', '-Wno-switch-enum','-Wno-comma']) + env.Append(CXXFLAGS = [ '-Wno-implicit-float-conversion', '-Wno-deprecated-declarations','-Wno-old-style-cast']) + env.Append(CXXFLAGS = [ '-Wno-zero-as-null-pointer-constant', '-Wno-inconsistent-missing-destructor-override']) if env['specs_file'] != "": env.Append(LINKFLAGS = ['-specs='+env['specs_file']]) @@ -446,8 +478,12 @@ if env['debug']: env.Append(CXXFLAGS = ['-O0','-g','-gdwarf-2']) env.Append(CPPDEFINES = ['ARM_COMPUTE_DEBUG_ENABLED']) else: - env.Append(CXXFLAGS = ['-O3']) - + if not 'windows' in env['os']: + env.Append(CXXFLAGS = ['-O3']) + else: + # on windows we use clang-cl which does not support the option -O3 + env.Append(CXXFLAGS = ['-O2']) + if env['asserts']: env.Append(CPPDEFINES = ['ARM_COMPUTE_ASSERTS_ENABLED']) env.Append(CXXFLAGS = ['-fstack-protector-strong']) diff --git a/src/common/cpuinfo/CpuInfo.cpp b/src/common/cpuinfo/CpuInfo.cpp index 2b85375654..0be21be085 100644 --- a/src/common/cpuinfo/CpuInfo.cpp +++ b/src/common/cpuinfo/CpuInfo.cpp @@ -34,18 +34,23 @@ #include #include #include +#if !defined(_WIN64) #include /* C++ std::regex takes up a lot of space in the standalone builds */ #include +#endif /* !defined(_WIN64) */ + #include #include #endif /* !defined(BARE_METAL) */ +#if !defined(_WIN64) #if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) #include /* Get HWCAP bits from asm/hwcap.h */ #include #elif defined(__APPLE__) && defined(__aarch64__) #include #include +#endif /* defined(__APPLE__) && defined(__aarch64__)) */ #endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ #define ARM_COMPUTE_CPU_FEATURE_HWCAP_CPUID (1 << 11) @@ -57,7 +62,7 @@ namespace cpuinfo { namespace { -#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) +#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) /** Extract MIDR using CPUID information that are exposed to user-space * * @param[in] max_num_cpus Maximum number of possible CPUs @@ -261,19 +266,19 @@ int get_max_cpus() } return max_cpus; } -#elif defined(__aarch64__) && defined(__APPLE__) /* !defined(BARE_METAL) && !defined(__APPLE__) && (defined(__arm__) || defined(__aarch64__)) */ +#elif defined(__aarch64__) && defined(__APPLE__) /* !defined(BARE_METAL) && !defined(__APPLE__) && (defined(__arm__) || defined(__aarch64__)) */ /** Query features through sysctlbyname * * @return int value queried */ -int get_hw_capability(const std::string& cap) +int get_hw_capability(const std::string &cap) { - int64_t result(0); - size_t size = sizeof(result); - sysctlbyname(cap.c_str(), &result, &size, NULL, 0); - return result; + int64_t result(0); + size_t size = sizeof(result); + sysctlbyname(cap.c_str(), &result, &size, NULL, 0); + return result; } -#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ +#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ #if defined(BARE_METAL) && defined(__aarch64__) uint64_t get_sve_feature_reg() @@ -297,7 +302,7 @@ CpuInfo::CpuInfo(CpuIsaInfo isa, std::vector cpus) CpuInfo CpuInfo::build() { -#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) +#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) const uint32_t hwcaps = getauxval(AT_HWCAP); const uint32_t hwcaps2 = getauxval(AT_HWCAP2); const uint32_t max_cpus = get_max_cpus(); @@ -328,7 +333,7 @@ CpuInfo CpuInfo::build() CpuInfo info(isa, cpus_model); return info; -#elif(BARE_METAL) && defined(__aarch64__) /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ +#elif(BARE_METAL) && defined(__aarch64__) /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ // Assume single CPU in bare metal mode. Just read the ID register and feature bits directly. uint64_t isar0 = 0, isar1 = 0, pfr0 = 0, svefr0 = 0, midr = 0; @@ -346,18 +351,18 @@ CpuInfo CpuInfo::build() CpuInfo info(isa, cpus_model); return info; #elif defined(__aarch64__) && defined(__APPLE__) /* #elif(BARE_METAL) && defined(__aarch64__) */ - int ncpus = get_hw_capability("hw.logicalcpu"); - CpuIsaInfo isainfo; + int ncpus = get_hw_capability("hw.logicalcpu"); + CpuIsaInfo isainfo; std::vector cpus_model(ncpus); isainfo.neon = get_hw_capability("hw.optional.neon"); isainfo.fp16 = get_hw_capability("hw.optional.neon_fp16"); - isainfo.dot = get_hw_capability("hw.optional.arm.FEAT_DotProd"); - CpuInfo info(isainfo,cpus_model); + isainfo.dot = get_hw_capability("hw.optional.arm.FEAT_DotProd"); + CpuInfo info(isainfo, cpus_model); return info; -#else /* #elif defined(__aarch64__) && defined(__APPLE__) */ +#else /* #elif defined(__aarch64__) && defined(__APPLE__) */ CpuInfo info(CpuIsaInfo(), { CpuModel::GENERIC }); return info; -#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ +#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ } CpuModel CpuInfo::cpu_model(uint32_t cpuid) const @@ -371,7 +376,7 @@ CpuModel CpuInfo::cpu_model(uint32_t cpuid) const CpuModel CpuInfo::cpu_model() const { -#if defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) +#if defined(_WIN64) || defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) return cpu_model(0); #else /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) */ return cpu_model(sched_getcpu()); @@ -387,7 +392,7 @@ uint32_t num_threads_hint() { unsigned int num_threads_hint = 1; -#if !defined(BARE_METAL) +#if !defined(BARE_METAL) && !defined(_WIN64) std::vector cpus; cpus.reserve(64); diff --git a/src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp b/src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp index 79fc65e561..5b3ef4203d 100644 --- a/src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp +++ b/src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2021 Arm Limited. + * Copyright (c) 2017-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -23,9 +23,9 @@ */ #pragma once -#if !defined(__OpenBSD__) +#if !defined(_WIN64) && !defined(__OpenBSD__) #include -#endif /* !defined(__OpenBSD__) */ +#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ #include #include diff --git a/src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp b/src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp index 91988e8c33..59591935cd 100644 --- a/src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp +++ b/src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Arm Limited. + * Copyright (c) 2020-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -28,9 +28,9 @@ #include "interleave_indirect.hpp" #include "bfloat.hpp" -#if !defined(__OpenBSD__) +#if !defined(_WIN64) && !defined(__OpenBSD__) #include -#endif /* !defined(__OpenBSD__) */ +#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ #include #include diff --git a/src/core/NEON/kernels/arm_gemm/transform.cpp b/src/core/NEON/kernels/arm_gemm/transform.cpp index c6a3bc0edb..ef5a01a578 100644 --- a/src/core/NEON/kernels/arm_gemm/transform.cpp +++ b/src/core/NEON/kernels/arm_gemm/transform.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Arm Limited. + * Copyright (c) 2021-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -25,9 +25,9 @@ #include "bfloat.hpp" -#if !defined(__OpenBSD__) +#if !defined(_WIN64) && !defined(__OpenBSD__) #include -#endif /* !defined(__OpenBSD__) */ +#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ namespace arm_gemm { diff --git a/src/core/utils/misc/MMappedFile.cpp b/src/core/utils/misc/MMappedFile.cpp index 0b9414107e..adae8a2bf0 100644 --- a/src/core/utils/misc/MMappedFile.cpp +++ b/src/core/utils/misc/MMappedFile.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019, 2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#if !defined(BARE_METAL) +#if !defined(_WIN64) && !defined(BARE_METAL) #include "arm_compute/core/utils/misc/MMappedFile.h" diff --git a/src/core/utils/quantization/AsymmHelpers.cpp b/src/core/utils/quantization/AsymmHelpers.cpp index 4ce60996f5..eb008639b1 100644 --- a/src/core/utils/quantization/AsymmHelpers.cpp +++ b/src/core/utils/quantization/AsymmHelpers.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2021 Arm Limited. + * Copyright (c) 2017-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -206,7 +206,9 @@ int32_t saturating_rounding_doubling_highmul(int32_t a, int32_t b) int64_t a_64(a); int64_t b_64(b); int64_t ab_64 = a_64 * b_64; - bool is_positive_or_zero = a == 0 || b == 0 || (std::signbit(a) == std::signbit(b)); + const bool is_positive_or_zero = + a == 0 || b == 0 || + (std::signbit(static_cast(a)) == std::signbit(static_cast(b))); int32_t nudge = is_positive_or_zero ? (1 << 30) : (1 - (1 << 30)); int32_t ab_x2_high32 = static_cast((ab_64 + nudge) / (1ll << 31)); return overflow ? std::numeric_limits::max() : ab_x2_high32; diff --git a/src/cpu/CpuContext.cpp b/src/cpu/CpuContext.cpp index 0cc5070917..d91f917963 100644 --- a/src/cpu/CpuContext.cpp +++ b/src/cpu/CpuContext.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Arm Limited. + * Copyright (c) 2021-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -30,8 +30,12 @@ #include #if !defined(__APPLE__) && !defined(__OpenBSD__) #include -#endif // !defined(__APPLE__) && !defined(__OpenBSD__) +#if defined(_WIN64) +#define posix_memalign _aligned_realloc +#define posix_memalign_free _aligned_free +#endif // defined(_WIN64) +#endif // !defined(__APPLE__) && !defined(__OpenBSD__) namespace arm_compute { diff --git a/src/runtime/BlobLifetimeManager.cpp b/src/runtime/BlobLifetimeManager.cpp index 1c983aa329..bea55d8eb9 100644 --- a/src/runtime/BlobLifetimeManager.cpp +++ b/src/runtime/BlobLifetimeManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -30,6 +30,7 @@ #include #include +#include #include namespace arm_compute diff --git a/src/runtime/CPP/CPPScheduler.cpp b/src/runtime/CPP/CPPScheduler.cpp index 94a2f31d64..39811ec156 100644 --- a/src/runtime/CPP/CPPScheduler.cpp +++ b/src/runtime/CPP/CPPScheduler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Arm Limited. + * Copyright (c) 2016-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -104,7 +104,7 @@ void set_thread_affinity(int core_id) return; } -#if !defined(__APPLE__) && !defined(__OpenBSD__) +#if !defined(_WIN64) && !defined(__APPLE__) && !defined(__OpenBSD__) cpu_set_t set; CPU_ZERO(&set); CPU_SET(core_id, &set); diff --git a/support/ToolchainSupport.h b/support/ToolchainSupport.h index cddcd542c8..8ea50ebe15 100644 --- a/support/ToolchainSupport.h +++ b/support/ToolchainSupport.h @@ -310,6 +310,7 @@ inline bool isfinite(bfloat16 value) return std::isfinite(float(value)); } +#if !defined(_WIN64) // std::signbit template ::value>::type> inline bool signbit(T value) @@ -326,6 +327,7 @@ inline bool signbit(bfloat16 value) { return std::signbit(float(value)); } +#endif // !defined(_WIN64) } // namespace cpp11 } // namespace support } // namespace arm_compute diff --git a/tests/framework/command_line/CommonOptions.cpp b/tests/framework/command_line/CommonOptions.cpp index 6fb37470c1..e56366c9ab 100644 --- a/tests/framework/command_line/CommonOptions.cpp +++ b/tests/framework/command_line/CommonOptions.cpp @@ -25,7 +25,9 @@ #include "../Framework.h" #include "../printers/Printers.h" +#if !defined(_WIN64) #include +#endif // !defined(_WIN64) using namespace arm_compute::utils; @@ -43,7 +45,9 @@ CommonOptions::CommonOptions(CommandLineParser &parser) log_file(parser.add_option>("log-file")), log_level(), throw_errors(parser.add_option("throw-errors")), - color_output(parser.add_option("color-output", isatty(STDOUT_FILENO))), // Only enable colors by default if we're running in a terminal +#if !defined(_WIN64) + color_output(parser.add_option("color-output", isatty(STDOUT_FILENO))), // Only enable colors by default if we're running in a terminal +#endif // !defined(_WIN64) pretty_console(parser.add_option("pretty-console", false)), json_file(parser.add_option>("json-file")), pretty_file(parser.add_option>("pretty-file")), diff --git a/tests/framework/instruments/Instruments.h b/tests/framework/instruments/Instruments.h index 28c994b119..d80032a032 100644 --- a/tests/framework/instruments/Instruments.h +++ b/tests/framework/instruments/Instruments.h @@ -24,12 +24,12 @@ #ifndef ARM_COMPUTE_TEST_INSTRUMENTS #define ARM_COMPUTE_TEST_INSTRUMENTS -#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) +#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) #include "MaliCounter.h" #include "OpenCLMemoryUsage.h" #include "OpenCLTimer.h" #include "PMUCounter.h" -#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) */ +#endif /* !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) */ #include "SchedulerTimer.h" #include "WallClockTimer.h" -- cgit v1.2.1