LLVM API Documentation
00001 //===-- llvm/Instrinsics.h - LLVM Intrinsic Function Handling ---*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file defines a set of enums which allow processing of intrinsic 00011 // functions. Values of these enum types are returned by 00012 // Function::getIntrinsicID. 00013 // 00014 //===----------------------------------------------------------------------===// 00015 00016 #ifndef LLVM_INTRINSICS_H 00017 #define LLVM_INTRINSICS_H 00018 00019 namespace llvm { 00020 00021 /// Intrinsic Namespace - This namespace contains an enum with a value for 00022 /// every intrinsic/builtin function known by LLVM. These enum values are 00023 /// returned by Function::getIntrinsicID(). 00024 /// 00025 namespace Intrinsic { 00026 enum ID { 00027 not_intrinsic = 0, // Must be zero 00028 00029 // Get the intrinsic enums generated from Intrinsics.td 00030 #define GET_INTRINSIC_ENUM_VALUES 00031 #include "llvm/Intrinsics.gen" 00032 #undef GET_INTRINSIC_ENUM_VALUES 00033 , num_intrinsics 00034 }; 00035 00036 /// Intrinsic::getName(ID) - Return the LLVM name for an intrinsic, such as 00037 /// "llvm.ppc.altivec.lvx". 00038 const char *getName(ID id); 00039 } // End Intrinsic namespace 00040 00041 } // End llvm namespace 00042 00043 #endif