1 //===-- llvm/Target/TargetIntrinsicInfo.h - Instruction Info ----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file describes the target intrinsic instructions to the code generator.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_TARGET_TARGETINTRINSICINFO_H
15 #define LLVM_TARGET_TARGETINTRINSICINFO_H
22 //---------------------------------------------------------------------------
24 /// TargetIntrinsicInfo - Interface to description of machine instruction set
26 class TargetIntrinsicInfo {
28 const char **Intrinsics; // Raw array to allow static init'n
29 unsigned NumIntrinsics; // Number of entries in the desc array
31 TargetIntrinsicInfo(const TargetIntrinsicInfo &); // DO NOT IMPLEMENT
32 void operator=(const TargetIntrinsicInfo &); // DO NOT IMPLEMENT
34 TargetIntrinsicInfo(const char **desc, unsigned num);
35 virtual ~TargetIntrinsicInfo();
37 unsigned getNumIntrinsics() const { return NumIntrinsics; }
39 virtual Function *getDeclaration(Module *M, const char *BuiltinName) const {
43 virtual unsigned getIntrinsicID(Function *F) const { return 0; }
46 } // End llvm namespace