| //===---- TargetInfo.h - Encapsulate target details -------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // These classes wrap the information about a call or function |
| // definition used to handle ABI compliancy. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef CLANG_CODEGEN_TARGETINFO_H |
| #define CLANG_CODEGEN_TARGETINFO_H |
| |
| namespace llvm { |
| class GlobalValue; |
| } |
| |
| namespace clang { |
| class ABIInfo; |
| class Decl; |
| |
| namespace CodeGen { |
| class CodeGenModule; |
| } |
| |
| /// TargetCodeGenInfo - This class organizes various target-specific |
| /// codegeneration issues, like target-specific attributes, builtins and so |
| /// on. |
| class TargetCodeGenInfo { |
| ABIInfo *Info; |
| public: |
| // WARNING: Acquires the ownership of ABIInfo. |
| TargetCodeGenInfo(ABIInfo *info = 0):Info(info) { } |
| virtual ~TargetCodeGenInfo(); |
| |
| /// getABIInfo() - Returns ABI info helper for the target. |
| const ABIInfo& getABIInfo() const { return *Info; } |
| |
| /// SetTargetAttributes - Provides a convenient hook to handle extra |
| /// target-specific attributes for the given global. |
| virtual void SetTargetAttributes(const Decl *D, llvm::GlobalValue *GV, |
| CodeGen::CodeGenModule &M) const { } |
| }; |
| } |
| |
| #endif // CLANG_CODEGEN_TARGETINFO_H |