1 //===----- SemaX86.h ------- X86 target-specific routines -----*- C++ -*---===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 /// \file 9 /// This file declares semantic analysis functions specific to X86. 10 /// 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_CLANG_SEMA_SEMAX86_H 14 #define LLVM_CLANG_SEMA_SEMAX86_H 15 16 #include "clang/AST/DeclBase.h" 17 #include "clang/AST/Expr.h" 18 #include "clang/Basic/LLVM.h" 19 #include "clang/Basic/TargetInfo.h" 20 #include "clang/Sema/SemaBase.h" 21 22 namespace clang { 23 class ParsedAttr; 24 25 class SemaX86 : public SemaBase { 26 public: 27 SemaX86(Sema &S); 28 29 bool CheckBuiltinRoundingOrSAE(unsigned BuiltinID, CallExpr *TheCall); 30 bool CheckBuiltinGatherScatterScale(unsigned BuiltinID, CallExpr *TheCall); 31 bool CheckBuiltinTileArguments(unsigned BuiltinID, CallExpr *TheCall); 32 bool CheckBuiltinTileArgumentsRange(CallExpr *TheCall, ArrayRef<int> ArgNums); 33 bool CheckBuiltinTileDuplicate(CallExpr *TheCall, ArrayRef<int> ArgNums); 34 bool CheckBuiltinTileRangeAndDuplicate(CallExpr *TheCall, 35 ArrayRef<int> ArgNums); 36 bool CheckBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID, 37 CallExpr *TheCall); 38 39 void handleAnyInterruptAttr(Decl *D, const ParsedAttr &AL); 40 void handleForceAlignArgPointerAttr(Decl *D, const ParsedAttr &AL); 41 }; 42 } // namespace clang 43 44 #endif // LLVM_CLANG_SEMA_SEMAX86_H 45