aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2022-03-07 18:20:12 +0000
committerPablo Marquez Tello <pablo.tello@arm.com>2022-03-10 13:44:39 +0000
commit4e66d707a292b90a344e32c59eb1dacb67a0e4c1 (patch)
tree48f8548c7a03f3586d27ae7b06d954b958912ee4
parent17c48f9e518abfcb45477f0eeebf487498c6a270 (diff)
downloadComputeLibrary-4e66d707a292b90a344e32c59eb1dacb67a0e4c1.tar.gz
Added windows native build support
Resolves MLCE-739 Signed-off-by: Pablo Tello <pablo.tello@arm.com> Change-Id: I30a11393e928061c82a5c93d8ec195c04a0e838b Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7279 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--SConstruct64
-rw-r--r--src/common/cpuinfo/CpuInfo.cpp41
-rw-r--r--src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp6
-rw-r--r--src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp6
-rw-r--r--src/core/NEON/kernels/arm_gemm/transform.cpp6
-rw-r--r--src/core/utils/misc/MMappedFile.cpp4
-rw-r--r--src/core/utils/quantization/AsymmHelpers.cpp6
-rw-r--r--src/cpu/CpuContext.cpp8
-rw-r--r--src/runtime/BlobLifetimeManager.cpp3
-rw-r--r--src/runtime/CPP/CPPScheduler.cpp4
-rw-r--r--support/ToolchainSupport.h2
-rw-r--r--tests/framework/command_line/CommonOptions.cpp6
-rw-r--r--tests/framework/instruments/Instruments.h4
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 <algorithm>
#include <cstring>
#include <fstream>
+#if !defined(_WIN64)
#include <regex.h> /* C++ std::regex takes up a lot of space in the standalone builds */
#include <sched.h>
+#endif /* !defined(_WIN64) */
+
#include <thread>
#include <unordered_map>
#endif /* !defined(BARE_METAL) */
+#if !defined(_WIN64)
#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__))
#include <asm/hwcap.h> /* Get HWCAP bits from asm/hwcap.h */
#include <sys/auxv.h>
#elif defined(__APPLE__) && defined(__aarch64__)
#include <sys/sysctl.h>
#include <sys/types.h>
+#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<CpuModel> 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<CpuModel> 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<std::string> 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 <alloca.h>
-#endif /* !defined(__OpenBSD__) */
+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
#include <algorithm>
#include <cassert>
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 <alloca.h>
-#endif /* !defined(__OpenBSD__) */
+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
#include <algorithm>
#include <cstddef>
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 <alloca.h>
-#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<double>(a)) == std::signbit(static_cast<double>(b)));
int32_t nudge = is_positive_or_zero ? (1 << 30) : (1 - (1 << 30));
int32_t ab_x2_high32 = static_cast<int32_t>((ab_64 + nudge) / (1ll << 31));
return overflow ? std::numeric_limits<int32_t>::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 <cstdlib>
#if !defined(__APPLE__) && !defined(__OpenBSD__)
#include <malloc.h>
-#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 <algorithm>
#include <cmath>
+#include <iterator>
#include <map>
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 <typename T, typename = typename std::enable_if<std::is_arithmetic<T>::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 <unistd.h>
+#endif // !defined(_WIN64)
using namespace arm_compute::utils;
@@ -43,7 +45,9 @@ CommonOptions::CommonOptions(CommandLineParser &parser)
log_file(parser.add_option<SimpleOption<std::string>>("log-file")),
log_level(),
throw_errors(parser.add_option<ToggleOption>("throw-errors")),
- color_output(parser.add_option<ToggleOption>("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<ToggleOption>("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<ToggleOption>("pretty-console", false)),
json_file(parser.add_option<SimpleOption<std::string>>("json-file")),
pretty_file(parser.add_option<SimpleOption<std::string>>("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"