1f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===--- TargetOptions.h ----------------------------------------*- C++ -*-===// 2f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 3f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// The LLVM Compiler Infrastructure 4f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 5f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file is distributed under the University of Illinois Open Source 6f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// License. See LICENSE.TXT for details. 7f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 8f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===// 9f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// 10f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// \file 11f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// \brief Defines the clang::TargetOptions class. 12f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// 13f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===// 14f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 15f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#ifndef LLVM_CLANG_BASIC_TARGETOPTIONS_H 16f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define LLVM_CLANG_BASIC_TARGETOPTIONS_H 17f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 18f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include <string> 19f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include <vector> 20f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "clang/Basic/OpenCLOptions.h" 21f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/Target/TargetOptions.h" 22f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 23f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace clang { 24f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 25f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// \brief Options for controlling the target. 26f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotclass TargetOptions { 27f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotpublic: 28f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// The name of the target triple to compile for. 29f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string Triple; 30f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 31f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// When compiling for the device side, contains the triple used to compile 32f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// for the host. 33f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string HostTriple; 34f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 35f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// If given, the name of the target CPU to generate code for. 36f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string CPU; 37f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 38f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// If given, the unit to use for floating point math. 39f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string FPMath; 40f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 41f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// If given, the name of the target ABI to use. 42f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string ABI; 43f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 44f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// The EABI version to use 45f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot llvm::EABI EABIVersion; 46f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 47f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// If given, the version string of the linker in use. 48f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::string LinkerVersion; 49f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 50f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// \brief The list of target specific features to enable or disable, as written on the command line. 51f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::vector<std::string> FeaturesAsWritten; 52f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 53f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// The list of target specific features to enable or disable -- this should 54f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// be a list of strings starting with by '+' or '-'. 55f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::vector<std::string> Features; 56f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 57f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::vector<std::string> Reciprocals; 58f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 59f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// Supported OpenCL extensions and optional core features. 60f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot OpenCLOptions SupportedOpenCLOptions; 61f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 62f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// \brief The list of OpenCL extensions to enable or disable, as written on 63f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot /// the command line. 64f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::vector<std::string> OpenCLExtensionsAsWritten; 65f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot}; 66f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 67f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // end namespace clang 68f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 69f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif 70