Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:37:05

0001 //===----- SemaX86.h ------- X86 target-specific routines -----*- C++ -*---===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 /// \file
0009 /// This file declares semantic analysis functions specific to X86.
0010 ///
0011 //===----------------------------------------------------------------------===//
0012 
0013 #ifndef LLVM_CLANG_SEMA_SEMAX86_H
0014 #define LLVM_CLANG_SEMA_SEMAX86_H
0015 
0016 #include "clang/AST/ASTFwd.h"
0017 #include "clang/Basic/LLVM.h"
0018 #include "clang/Sema/SemaBase.h"
0019 
0020 namespace clang {
0021 class ParsedAttr;
0022 class TargetInfo;
0023 
0024 class SemaX86 : public SemaBase {
0025 public:
0026   SemaX86(Sema &S);
0027 
0028   bool CheckBuiltinRoundingOrSAE(unsigned BuiltinID, CallExpr *TheCall);
0029   bool CheckBuiltinGatherScatterScale(unsigned BuiltinID, CallExpr *TheCall);
0030   bool CheckBuiltinTileArguments(unsigned BuiltinID, CallExpr *TheCall);
0031   bool CheckBuiltinTileArgumentsRange(CallExpr *TheCall, ArrayRef<int> ArgNums);
0032   bool CheckBuiltinTileDuplicate(CallExpr *TheCall, ArrayRef<int> ArgNums);
0033   bool CheckBuiltinTileRangeAndDuplicate(CallExpr *TheCall,
0034                                          ArrayRef<int> ArgNums);
0035   bool CheckBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID,
0036                                 CallExpr *TheCall);
0037 
0038   void handleAnyInterruptAttr(Decl *D, const ParsedAttr &AL);
0039   void handleForceAlignArgPointerAttr(Decl *D, const ParsedAttr &AL);
0040 };
0041 } // namespace clang
0042 
0043 #endif // LLVM_CLANG_SEMA_SEMAX86_H