blob: 51adc2f86a4aa569b88cc09d027b67c45ef97c7a [file] [log] [blame]
// Copyright 2024 The IREE Authors
//
// Licensed 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
#ifndef IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_
#define IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_
#include <string>
#include <string_view>
namespace mlir::iree_compiler::IREE::HAL {
enum class ResolveCPUAndCPUFeaturesStatus {
OK,
InconsistentHost,
UnimplementedMapping,
ImplicitGenericFallback
};
// Given an input `triple` and the input-output parameters `cpu` and
// `cpuFeatures`, which may be empty or the special "host" value, this function
// populates `cpu` and `cpuFeatures` with all the information that is known.
ResolveCPUAndCPUFeaturesStatus
resolveCPUAndCPUFeatures(std::string_view triple, std::string &cpu,
std::string &cpuFeatures);
std::string getMessage(ResolveCPUAndCPUFeaturesStatus status,
std::string_view triple);
} // namespace mlir::iree_compiler::IREE::HAL
#endif // IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_