X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FIntrinsics.h;h=f2d6ef32cb19052735ee2c25be945421b30101b5;hb=e0bda7df1abc5772228ecd287401806f19faae2a;hp=2027383dbfc50fecbe14768c865ebaca52a3c8a0;hpb=58d74910c6b82e622ecbb57d6644d48fec5a5c0f;p=oota-llvm.git diff --git a/include/llvm/Intrinsics.h b/include/llvm/Intrinsics.h index 2027383dbfc..f2d6ef32cb1 100644 --- a/include/llvm/Intrinsics.h +++ b/include/llvm/Intrinsics.h @@ -16,13 +16,16 @@ #ifndef LLVM_INTRINSICS_H #define LLVM_INTRINSICS_H +#include + namespace llvm { class Type; class FunctionType; class Function; +class LLVMContext; class Module; -class PAListPtr; +class AttrListPtr; /// Intrinsic Namespace - This namespace contains an enum with a value for /// every intrinsic/builtin function known by LLVM. These enum values are @@ -45,11 +48,16 @@ namespace Intrinsic { /// Intrinsic::getType(ID) - Return the function type for an intrinsic. /// - const FunctionType *getType(ID id, const Type **Tys = 0, unsigned numTys = 0); + const FunctionType *getType(LLVMContext &Context, ID id, + const Type **Tys = 0, unsigned numTys = 0); + + /// Intrinsic::isOverloaded(ID) - Returns true if the intrinsic can be + /// overloaded. + bool isOverloaded(ID id); - /// Intrinsic::getParamAttrs(ID) - Return the attributes for an intrinsic. + /// Intrinsic::getAttributes(ID) - Return the attributes for an intrinsic. /// - PAListPtr getParamAttrs(ID id); + AttrListPtr getAttributes(ID id); /// Intrinsic::getDeclaration(M, ID) - Create or insert an LLVM Function /// declaration for an intrinsic, and return it. @@ -61,6 +69,9 @@ namespace Intrinsic { /// intrinsic. Function *getDeclaration(Module *M, ID id, const Type **Tys = 0, unsigned numTys = 0); + + /// Map a GCC builtin name to an intrinsic ID. + ID getIntrinsicForGCCBuiltin(const char *Prefix, const char *BuiltinName); } // End Intrinsic namespace