summaryrefslogtreecommitdiff
path: root/include/llvm/Target/TargetIntrinsicInfo.h
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2009-02-24 23:17:49 +0000
committerMon P Wang <wangmp@apple.com>2009-02-24 23:17:49 +0000
commit0d52ff1f7b993750a74a5d4432273092de9af069 (patch)
tree06eeb3bc80811d1d3161e8587d4da8db368da646 /include/llvm/Target/TargetIntrinsicInfo.h
parentd8e880c670699bd56dc3968647a4b963793d201d (diff)
downloadllvm-0d52ff1f7b993750a74a5d4432273092de9af069.tar.gz
llvm-0d52ff1f7b993750a74a5d4432273092de9af069.tar.bz2
llvm-0d52ff1f7b993750a74a5d4432273092de9af069.tar.xz
Added support to have TableGen provide information if an intrinsic (core
or target) can be overloaded or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65404 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetIntrinsicInfo.h')
-rw-r--r--include/llvm/Target/TargetIntrinsicInfo.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/llvm/Target/TargetIntrinsicInfo.h b/include/llvm/Target/TargetIntrinsicInfo.h
index 323e29afee..c14275f52a 100644
--- a/include/llvm/Target/TargetIntrinsicInfo.h
+++ b/include/llvm/Target/TargetIntrinsicInfo.h
@@ -18,6 +18,7 @@ namespace llvm {
class Function;
class Module;
+class Type;
//---------------------------------------------------------------------------
///
@@ -39,7 +40,19 @@ public:
virtual Function *getDeclaration(Module *M, const char *BuiltinName) const {
return 0;
}
-
+
+ // Returns the Function declaration for intrinsic BuiltinName. If the
+ // intrinsic can be overloaded, uses Tys to return the correct function.
+ virtual Function *getDeclaration(Module *M, const char *BuiltinName,
+ const Type **Tys, unsigned numTys) const {
+ return 0;
+ }
+
+ // Returns true if the Builtin can be overloaded.
+ virtual bool isOverloaded(Module *M, const char *BuiltinName) const {
+ return false;
+ }
+
virtual unsigned getIntrinsicID(Function *F) const { return 0; }
};