Targets.h revision 353358
1341825Sdim//===------- Targets.h - Declare target feature support ---------*- C++ -*-===// 2326941Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6326941Sdim// 7326941Sdim//===----------------------------------------------------------------------===// 8326941Sdim// 9326941Sdim// This file declares things required for construction of a TargetInfo object 10326941Sdim// from a target triple. Typically individual targets will need to include from 11326941Sdim// here in order to get these functions if required. 12326941Sdim// 13326941Sdim//===----------------------------------------------------------------------===// 14326941Sdim 15326941Sdim#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_H 16326941Sdim#define LLVM_CLANG_LIB_BASIC_TARGETS_H 17326941Sdim 18326941Sdim#include "clang/Basic/LangOptions.h" 19326941Sdim#include "clang/Basic/MacroBuilder.h" 20326941Sdim#include "clang/Basic/TargetInfo.h" 21326941Sdim#include "llvm/ADT/StringRef.h" 22326941Sdim 23326941Sdimnamespace clang { 24326941Sdimnamespace targets { 25326941Sdim 26326941SdimLLVM_LIBRARY_VISIBILITY 27326941Sdimclang::TargetInfo *AllocateTarget(const llvm::Triple &Triple, 28326941Sdim const clang::TargetOptions &Opts); 29326941Sdim 30326941Sdim/// DefineStd - Define a macro name and standard variants. For example if 31326941Sdim/// MacroName is "unix", then this will define "__unix", "__unix__", and "unix" 32326941Sdim/// when in GNU mode. 33326941SdimLLVM_LIBRARY_VISIBILITY 34326941Sdimvoid DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, 35326941Sdim const clang::LangOptions &Opts); 36326941Sdim 37326941SdimLLVM_LIBRARY_VISIBILITY 38326941Sdimvoid defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName, 39326941Sdim bool Tuning = true); 40326941Sdim 41326941SdimLLVM_LIBRARY_VISIBILITY 42326941Sdimvoid addCygMingDefines(const clang::LangOptions &Opts, 43326941Sdim clang::MacroBuilder &Builder); 44326941Sdim} // namespace targets 45326941Sdim} // namespace clang 46326941Sdim#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H 47