Path: blob/main/contrib/llvm-project/clang/lib/Basic/Targets/VE.cpp
35266 views
//===--- VE.cpp - Implement VE target feature support ---------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file implements VE TargetInfo objects.9//10//===----------------------------------------------------------------------===//1112#include "VE.h"13#include "clang/Basic/Builtins.h"14#include "clang/Basic/MacroBuilder.h"15#include "clang/Basic/TargetBuiltins.h"1617using namespace clang;18using namespace clang::targets;1920static constexpr Builtin::Info BuiltinInfo[] = {21#define BUILTIN(ID, TYPE, ATTRS) \22{#ID, TYPE, ATTRS, nullptr, HeaderDesc::NO_HEADER, ALL_LANGUAGES},23#include "clang/Basic/BuiltinsVE.def"24};2526void VETargetInfo::getTargetDefines(const LangOptions &Opts,27MacroBuilder &Builder) const {28Builder.defineMacro("__ve", "1");29Builder.defineMacro("__ve__", "1");30Builder.defineMacro("__NEC__", "1");31// FIXME: define __FAST_MATH__ 1 if -ffast-math is enabled32// FIXME: define __OPTIMIZE__ n if -On is enabled33// FIXME: define __VECTOR__ n 1 if automatic vectorization is enabled3435Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");36Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");37Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");38Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");39}4041ArrayRef<Builtin::Info> VETargetInfo::getTargetBuiltins() const {42return llvm::ArrayRef(BuiltinInfo,43clang::VE::LastTSBuiltin - Builtin::FirstTSBuiltin);44}454647