Targets.h revision 341825
1341825Sdim//===------- Targets.h - Declare target feature support ---------*- C++ -*-===// 2326941Sdim// 3326941Sdim// The LLVM Compiler Infrastructure 4326941Sdim// 5326941Sdim// This file is distributed under the University of Illinois Open Source 6326941Sdim// License. See LICENSE.TXT for details. 7326941Sdim// 8326941Sdim//===----------------------------------------------------------------------===// 9326941Sdim// 10326941Sdim// This file declares things required for construction of a TargetInfo object 11326941Sdim// from a target triple. Typically individual targets will need to include from 12326941Sdim// here in order to get these functions if required. 13326941Sdim// 14326941Sdim//===----------------------------------------------------------------------===// 15326941Sdim 16326941Sdim#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_H 17326941Sdim#define LLVM_CLANG_LIB_BASIC_TARGETS_H 18326941Sdim 19326941Sdim#include "clang/Basic/LangOptions.h" 20326941Sdim#include "clang/Basic/MacroBuilder.h" 21326941Sdim#include "clang/Basic/TargetInfo.h" 22326941Sdim#include "llvm/ADT/StringRef.h" 23326941Sdim 24326941Sdimnamespace clang { 25326941Sdimnamespace targets { 26326941Sdim 27326941SdimLLVM_LIBRARY_VISIBILITY 28326941Sdimclang::TargetInfo *AllocateTarget(const llvm::Triple &Triple, 29326941Sdim const clang::TargetOptions &Opts); 30326941Sdim 31326941Sdim/// DefineStd - Define a macro name and standard variants. For example if 32326941Sdim/// MacroName is "unix", then this will define "__unix", "__unix__", and "unix" 33326941Sdim/// when in GNU mode. 34326941SdimLLVM_LIBRARY_VISIBILITY 35326941Sdimvoid DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, 36326941Sdim const clang::LangOptions &Opts); 37326941Sdim 38326941SdimLLVM_LIBRARY_VISIBILITY 39326941Sdimvoid defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName, 40326941Sdim bool Tuning = true); 41326941Sdim 42326941SdimLLVM_LIBRARY_VISIBILITY 43326941Sdimvoid addMinGWDefines(const llvm::Triple &Triple, const clang::LangOptions &Opts, 44326941Sdim clang::MacroBuilder &Builder); 45326941Sdim 46326941SdimLLVM_LIBRARY_VISIBILITY 47326941Sdimvoid addCygMingDefines(const clang::LangOptions &Opts, 48326941Sdim clang::MacroBuilder &Builder); 49326941Sdim} // namespace targets 50326941Sdim} // namespace clang 51326941Sdim#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H 52