LLVM API Documentation

Intrinsics.h

Go to the documentation of this file.
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