Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions clang/include/clang/Basic/TargetInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -1864,6 +1864,11 @@ class TargetInfo : public TransferrableTargetInfo,
void CheckFixedPointBits() const;
};

namespace targets {
std::unique_ptr<clang::TargetInfo>
AllocateTarget(const llvm::Triple &Triple, const clang::TargetOptions &Opts);
} // namespace targets

} // end namespace clang

#endif
39 changes: 39 additions & 0 deletions clang/lib/Basic/TargetDefines.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//===------- TargetDefines.h - Target define helpers ------------*- C++ -*-===//
//
// Part of the LLVM Project, 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
//
//===----------------------------------------------------------------------===//
//
// This file declares a series of helper functions for defining target-specific
// macros.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H
#define LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H

#include "clang/Basic/LangOptions.h"
#include "clang/Basic/MacroBuilder.h"
#include "llvm/ADT/StringRef.h"

namespace clang {
namespace targets {
/// Define a macro name and standard variants. For example if MacroName is
/// "unix", then this will define "__unix", "__unix__", and "unix" when in GNU
/// mode.
LLVM_LIBRARY_VISIBILITY
void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName,
const clang::LangOptions &Opts);

LLVM_LIBRARY_VISIBILITY
void defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName,
bool Tuning = true);

LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETDEFINES_H
27 changes: 1 addition & 26 deletions clang/lib/Basic/Targets.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,7 @@
#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_H
#define LLVM_CLANG_LIB_BASIC_TARGETS_H

#include "clang/Basic/LangOptions.h"
#include "clang/Basic/MacroBuilder.h"
#include "TargetDefines.h"
#include "clang/Basic/TargetInfo.h"
#include "llvm/ADT/StringRef.h"

namespace clang {
namespace targets {

LLVM_LIBRARY_VISIBILITY
std::unique_ptr<clang::TargetInfo>
AllocateTarget(const llvm::Triple &Triple, const clang::TargetOptions &Opts);

/// DefineStd - Define a macro name and standard variants. For example if
/// MacroName is "unix", then this will define "__unix", "__unix__", and "unix"
/// when in GNU mode.
LLVM_LIBRARY_VISIBILITY
void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName,
const clang::LangOptions &Opts);

LLVM_LIBRARY_VISIBILITY
void defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName,
bool Tuning = true);

LLVM_LIBRARY_VISIBILITY
void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
} // namespace targets
} // namespace clang
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
Loading