Mesa (gallium-llvmpipe): llvmpipe: basic comments

Brian Paul brianp at kemper.freedesktop.org
Wed Aug 19 19:19:29 UTC 2009


Module: Mesa
Branch: gallium-llvmpipe
Commit: 39644e32bee81a5b52e1e1c860164ba1ac408f6d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=39644e32bee81a5b52e1e1c860164ba1ac408f6d

Author: Brian Paul <brianp at vmware.com>
Date:   Wed Aug 19 13:13:49 2009 -0600

llvmpipe: basic comments

---

 src/gallium/drivers/llvmpipe/lp_bld_arit.c |   62 ++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_bld_arit.c b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
index b3429c3..bd854c5 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
@@ -55,6 +55,10 @@
 #include "lp_bld_arit.h"
 
 
+/**
+ * Generate min(a, b)
+ * No checks for special case values of a or b = 1 or 0 are done.
+ */
 static LLVMValueRef
 lp_build_min_simple(struct lp_build_context *bld,
                     LLVMValueRef a,
@@ -102,6 +106,10 @@ lp_build_min_simple(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate max(a, b)
+ * No checks for special case values of a or b = 1 or 0 are done.
+ */
 static LLVMValueRef
 lp_build_max_simple(struct lp_build_context *bld,
                     LLVMValueRef a,
@@ -149,6 +157,9 @@ lp_build_max_simple(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate 1 - a, or ~a depending on bld->type.
+ */
 LLVMValueRef
 lp_build_comp(struct lp_build_context *bld,
               LLVMValueRef a)
@@ -174,6 +185,9 @@ lp_build_comp(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate a + b
+ */
 LLVMValueRef
 lp_build_add(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -214,13 +228,19 @@ lp_build_add(struct lp_build_context *bld,
    else
       res = LLVMBuildAdd(bld->builder, a, b, "");
 
+   /* clamp to ceiling of 1.0 */
    if(bld->type.norm && (bld->type.floating || bld->type.fixed))
       res = lp_build_min_simple(bld, res, bld->one);
 
+   /* XXX clamp to floor of -1 or 0??? */
+
    return res;
 }
 
 
+/**
+ * Generate a - b
+ */
 LLVMValueRef
 lp_build_sub(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -289,6 +309,9 @@ lp_build_unpack_shuffle(unsigned n, unsigned lo_hi)
 }
 
 
+/**
+ * Build constant int vector of width 'n' and value 'c'.
+ */
 static LLVMValueRef 
 lp_build_const_vec(LLVMTypeRef type, unsigned n, long long c)
 {
@@ -379,6 +402,9 @@ lp_build_mul_u8n(LLVMBuilderRef builder,
 }
 
 
+/**
+ * Generate a * b
+ */
 LLVMValueRef
 lp_build_mul(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -448,6 +474,9 @@ lp_build_mul(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate a / b
+ */
 LLVMValueRef
 lp_build_div(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -478,6 +507,10 @@ lp_build_div(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate min(a, b)
+ * Do checks for special cases.
+ */
 LLVMValueRef
 lp_build_min(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -502,6 +535,10 @@ lp_build_min(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate max(a, b)
+ * Do checks for special cases.
+ */
 LLVMValueRef
 lp_build_max(struct lp_build_context *bld,
              LLVMValueRef a,
@@ -526,6 +563,9 @@ lp_build_max(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate abs(a)
+ */
 LLVMValueRef
 lp_build_abs(struct lp_build_context *bld,
              LLVMValueRef a)
@@ -598,6 +638,9 @@ lp_build_rcp(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate 1/sqrt(a)
+ */
 LLVMValueRef
 lp_build_rsqrt(struct lp_build_context *bld,
                LLVMValueRef a)
@@ -616,6 +659,9 @@ lp_build_rsqrt(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate cos(a)
+ */
 LLVMValueRef
 lp_build_cos(struct lp_build_context *bld,
               LLVMValueRef a)
@@ -633,6 +679,9 @@ lp_build_cos(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate sin(a)
+ */
 LLVMValueRef
 lp_build_sin(struct lp_build_context *bld,
               LLVMValueRef a)
@@ -650,6 +699,9 @@ lp_build_sin(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate pow(x, y)
+ */
 LLVMValueRef
 lp_build_pow(struct lp_build_context *bld,
              LLVMValueRef x,
@@ -663,6 +715,9 @@ lp_build_pow(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate exp(x)
+ */
 LLVMValueRef
 lp_build_exp(struct lp_build_context *bld,
              LLVMValueRef x)
@@ -674,6 +729,9 @@ lp_build_exp(struct lp_build_context *bld,
 }
 
 
+/**
+ * Generate log(x)
+ */
 LLVMValueRef
 lp_build_log(struct lp_build_context *bld,
              LLVMValueRef x)
@@ -689,6 +747,10 @@ lp_build_log(struct lp_build_context *bld,
 #define LOG_POLY_DEGREE 5
 
 
+/**
+ * Generate polynomial.
+ * Ex:  x^2 * coeffs[0] + x * coeffs[1] + coeffs[2].
+ */
 static LLVMValueRef
 lp_build_polynomial(struct lp_build_context *bld,
                     LLVMValueRef x,




More information about the mesa-commit mailing list