1*5ffd83dbSDimitry Andric //===--- VE.cpp - Implement VE target feature support ---------------------===// 2*5ffd83dbSDimitry Andric // 3*5ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*5ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*5ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*5ffd83dbSDimitry Andric // 7*5ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 8*5ffd83dbSDimitry Andric // 9*5ffd83dbSDimitry Andric // This file implements VE TargetInfo objects. 10*5ffd83dbSDimitry Andric // 11*5ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 12*5ffd83dbSDimitry Andric 13*5ffd83dbSDimitry Andric #include "VE.h" 14*5ffd83dbSDimitry Andric #include "clang/Basic/Builtins.h" 15*5ffd83dbSDimitry Andric #include "clang/Basic/MacroBuilder.h" 16*5ffd83dbSDimitry Andric #include "clang/Basic/TargetBuiltins.h" 17*5ffd83dbSDimitry Andric 18*5ffd83dbSDimitry Andric using namespace clang; 19*5ffd83dbSDimitry Andric using namespace clang::targets; 20*5ffd83dbSDimitry Andric 21*5ffd83dbSDimitry Andric void VETargetInfo::getTargetDefines(const LangOptions &Opts, 22*5ffd83dbSDimitry Andric MacroBuilder &Builder) const { 23*5ffd83dbSDimitry Andric Builder.defineMacro("_LP64", "1"); 24*5ffd83dbSDimitry Andric Builder.defineMacro("unix", "1"); 25*5ffd83dbSDimitry Andric Builder.defineMacro("__unix__", "1"); 26*5ffd83dbSDimitry Andric Builder.defineMacro("__linux__", "1"); 27*5ffd83dbSDimitry Andric Builder.defineMacro("__ve", "1"); 28*5ffd83dbSDimitry Andric Builder.defineMacro("__ve__", "1"); 29*5ffd83dbSDimitry Andric Builder.defineMacro("__STDC_HOSTED__", "1"); 30*5ffd83dbSDimitry Andric Builder.defineMacro("__STDC__", "1"); 31*5ffd83dbSDimitry Andric Builder.defineMacro("__NEC__", "1"); 32*5ffd83dbSDimitry Andric // FIXME: define __FAST_MATH__ 1 if -ffast-math is enabled 33*5ffd83dbSDimitry Andric // FIXME: define __OPTIMIZE__ n if -On is enabled 34*5ffd83dbSDimitry Andric // FIXME: define __VECTOR__ n 1 if automatic vectorization is enabled 35*5ffd83dbSDimitry Andric } 36*5ffd83dbSDimitry Andric 37*5ffd83dbSDimitry Andric ArrayRef<Builtin::Info> VETargetInfo::getTargetBuiltins() const { 38*5ffd83dbSDimitry Andric return ArrayRef<Builtin::Info>(); 39*5ffd83dbSDimitry Andric } 40