[Beignet] [PATCH] GBE: Fix fast-math issue under llvm 3.6.

Zhigang Gong zhigang.gong at linux.intel.com
Fri Feb 27 21:38:38 PST 2015


LGTM, will push latter, thanks.

On Sat, Feb 28, 2015 at 01:44:05PM +0800, Ruiling Song wrote:
> "__ocl_math_fastpath_flag" was directly optimized out when compiling libocl under llvm 3.6
> And set its initialization value after loading libocl.
> 
> Signed-off-by: Ruiling Song <ruiling.song at intel.com>
> ---
>  backend/src/libocl/tmpl/ocl_math.tmpl.cl |    2 +-
>  backend/src/llvm/llvm_bitcode_link.cpp   |   10 ++++------
>  2 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/backend/src/libocl/tmpl/ocl_math.tmpl.cl b/backend/src/libocl/tmpl/ocl_math.tmpl.cl
> index aaa6cc3..2ed7b31 100644
> --- a/backend/src/libocl/tmpl/ocl_math.tmpl.cl
> +++ b/backend/src/libocl/tmpl/ocl_math.tmpl.cl
> @@ -21,7 +21,7 @@
>  #include "ocl_common.h"
>  #include "ocl_integer.h"
>  
> -constant int __ocl_math_fastpath_flag = 1;
> +extern constant int __ocl_math_fastpath_flag;
>  
>  PURE CONST float __gen_ocl_fabs(float x);
>  CONST float __gen_ocl_sin(float x) __asm("llvm.sin" ".f32");
> diff --git a/backend/src/llvm/llvm_bitcode_link.cpp b/backend/src/llvm/llvm_bitcode_link.cpp
> index 61e2ea1..96f7781 100644
> --- a/backend/src/llvm/llvm_bitcode_link.cpp
> +++ b/backend/src/llvm/llvm_bitcode_link.cpp
> @@ -73,12 +73,10 @@ namespace gbe
>        return NULL;
>      }
>  
> -    if (strictMath) {
> -      llvm::GlobalVariable* mathFastFlag = oclLib->getGlobalVariable("__ocl_math_fastpath_flag");
> -      assert(mathFastFlag);
> -      Type* intTy = IntegerType::get(ctx, 32);
> -      mathFastFlag->setInitializer(ConstantInt::get(intTy, 0));
> -    }
> +    llvm::GlobalVariable* mathFastFlag = oclLib->getGlobalVariable("__ocl_math_fastpath_flag");
> +    assert(mathFastFlag);
> +    Type* intTy = IntegerType::get(ctx, 32);
> +    mathFastFlag->setInitializer(ConstantInt::get(intTy, strictMath ? 0 : 1));
>  
>      return oclLib;
>    }
> -- 
> 1.7.10.4
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list