Add a cost model analysis that allows us to estimate the cost of IR-level instructions.
[oota-llvm.git] / include / llvm / CallingConv.h
index 49dcbb8e8009c1f3da074319a9d6918fdcc13c0e..053f4eb326f9dcb241e430aea31ed12fff6ceba0 100644 (file)
@@ -96,8 +96,27 @@ namespace CallingConv {
     /// routines (i.e. GCC's save_volatiles attribute).
     MBLAZE_SVOL = 74,
 
-    /// Win64_ThisCall - Calling convention used for method calls on Win64.
-    Win64_ThisCall = 75
+    /// SPIR_FUNC - Calling convention for SPIR non-kernel device functions.
+    /// No lowering or expansion of arguments.
+    /// Structures are passed as a pointer to a struct with the byval attribute.
+    /// Functions can only call SPIR_FUNC and SPIR_KERNEL functions.
+    /// Functions can only have zero or one return values.
+    /// Variable arguments are not allowed, except for printf.
+    /// How arguments/return values are lowered are not specified.
+    /// Functions are only visible to the devices.
+    SPIR_FUNC = 75,
+
+    /// SPIR_KERNEL - Calling convention for SPIR kernel functions.
+    /// Inherits the restrictions of SPIR_FUNC, except
+    /// Cannot have non-void return values.
+    /// Cannot have variable arguments.
+    /// Can also be called by the host.
+    /// Is externally visible.
+    SPIR_KERNEL = 76,
+
+    /// Intel_OCL_BI - Calling conventions for Intel OpenCL built-ins
+    Intel_OCL_BI = 77
+
   };
 } // End CallingConv namespace