Re: [Beignet] [PATCH] support LLVM 3.4

2013-09-25 Thread Zhigang Gong
Yi,

Could you help to do a fully regression test for llvm 3.4?

On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> LLVM 3.3 or earlier version don't support unary addition of vectors,
> such as "++ int2". This patch supports LLVM 3.4.
> Tested by PIGLIT, no regression.
> 
> Signed-off-by: Homer Hsing 
> ---
>  CMake/FindLLVM.cmake  | 4 ++--
>  backend/src/backend/program.cpp   | 7 ++-
>  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
>  docs/Beignet.mdwn | 2 +-
>  4 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake
> index e76ab42..3fa9ad9 100644
> --- a/CMake/FindLLVM.cmake
> +++ b/CMake/FindLLVM.cmake
> @@ -7,9 +7,9 @@
>  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
>  # LLVM_FOUND   - True if llvm found.
>  if (LLVM_INSTALL_DIR)
> -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
> llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable" PATHS 
> ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
> +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
> llvm-config-31 llvm-config-3.1 llvm-config-3.4 llvm-config DOC "llvm-config 
> executable" PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
>  else (LLVM_INSTALL_DIR)
> -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
> llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable")
> +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
> llvm-config-31 llvm-config-3.1 llvm-config-3.4 llvm-config DOC "llvm-config 
> executable")
>  endif (LLVM_INSTALL_DIR)
>  
>  if (LLVM_CONFIG_EXECUTABLE)
> diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp
> index 68bb17e..9956e11 100644
> --- a/backend/src/backend/program.cpp
> +++ b/backend/src/backend/program.cpp
> @@ -535,7 +535,12 @@ namespace gbe {
>  llvm::Module *module = Act->takeModule();
>  
>  std::string ErrorInfo;
> -llvm::raw_fd_ostream OS(output, 
> ErrorInfo,llvm::raw_fd_ostream::F_Binary);
> +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
> +auto mode = llvm::sys::fs::F_Binary;
> +#else
> +auto mode = llvm::raw_fd_ostream::F_Binary;
> +#endif
> +llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
>  //still write to temp file for code simply, otherwise need add another 
> function.
>  //because gbe_program_new_from_llvm also be used by 
> cl_program_create_from_llvm, can't be removed
>  //TODO: Pass module to llvmToGen, if use module, should return Act and 
> use OwningPtr out of this funciton
> diff --git a/backend/src/llvm/llvm_gen_backend.cpp 
> b/backend/src/llvm/llvm_gen_backend.cpp
> index fd42dca..c8c0866 100644
> --- a/backend/src/llvm/llvm_gen_backend.cpp
> +++ b/backend/src/llvm/llvm_gen_backend.cpp
> @@ -154,9 +154,9 @@
>  #define LLVM_VERSION_MINOR 0
>  #endif /* !defined(LLVM_VERSION_MINOR) */
>  
> -#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3)
> -#error "Only LLVM 3.0 - 3.3 is supported"
> -#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) */
> +#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4)
> +#error "Only LLVM 3.0 - 3.4 is supported"
> +#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) */
>  
>  using namespace llvm;
>  
> diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn
> index c0f88de..86a235e 100644
> --- a/docs/Beignet.mdwn
> +++ b/docs/Beignet.mdwn
> @@ -55,7 +55,7 @@ with any thing older.
>  
>  [http://llvm.org/releases/](http://llvm.org/releases/)
>  
> -LLVM 3.1,3.2 and 3.3 are supported.
> +LLVM 3.1,3.2,3.3 and 3.4 are supported.
>  
>  Also note that the code was compiled on GCC 4.6 and GCC 4.7. Since the code 
> uses
>  really recent C++11 features, you may expect problems with older compilers. 
> Last
> -- 
> 1.8.1.2
> 
> ___
> Beignet mailing list
> Beignet@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] [PATCH] support LLVM 3.4

2013-09-25 Thread Sun, Yi
Hi Zhigang,

I may lose some context.
So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3 version.

Thanks
  --Sun, Yi

> -Original Message-
> From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
> [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On Behalf Of
> Zhigang Gong
> Sent: Wednesday, September 25, 2013 1:42 AM
> To: Xing, Homer
> Cc: beignet@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> 
> Yi,
> 
> Could you help to do a fully regression test for llvm 3.4?
> 
> On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> > LLVM 3.3 or earlier version don't support unary addition of vectors,
> > such as "++ int2". This patch supports LLVM 3.4.
> > Tested by PIGLIT, no regression.
> >
> > Signed-off-by: Homer Hsing 
> > ---
> >  CMake/FindLLVM.cmake  | 4 ++--
> >  backend/src/backend/program.cpp   | 7 ++-
> >  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
> >  docs/Beignet.mdwn | 2 +-
> >  4 files changed, 12 insertions(+), 7 deletions(-)
> >
> > diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
> > e76ab42..3fa9ad9 100644
> > --- a/CMake/FindLLVM.cmake
> > +++ b/CMake/FindLLVM.cmake
> > @@ -7,9 +7,9 @@
> >  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
> >  # LLVM_FOUND   - True if llvm found.
> >  if (LLVM_INSTALL_DIR)
> > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC
> > "llvm-config executable" PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
> > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4
> > + llvm-config DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
> > + NO_DEFAULT_PATH)
> >  else (LLVM_INSTALL_DIR)
> > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC
> > "llvm-config executable")
> > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4
> > + llvm-config DOC "llvm-config executable")
> >  endif (LLVM_INSTALL_DIR)
> >
> >  if (LLVM_CONFIG_EXECUTABLE)
> > diff --git a/backend/src/backend/program.cpp
> > b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
> > --- a/backend/src/backend/program.cpp
> > +++ b/backend/src/backend/program.cpp
> > @@ -535,7 +535,12 @@ namespace gbe {
> >  llvm::Module *module = Act->takeModule();
> >
> >  std::string ErrorInfo;
> > -llvm::raw_fd_ostream OS(output,
> ErrorInfo,llvm::raw_fd_ostream::F_Binary);
> > +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
> > +auto mode = llvm::sys::fs::F_Binary; #else
> > +auto mode = llvm::raw_fd_ostream::F_Binary; #endif
> > +llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
> >  //still write to temp file for code simply, otherwise need add another
> function.
> >  //because gbe_program_new_from_llvm also be used by
> cl_program_create_from_llvm, can't be removed
> >  //TODO: Pass module to llvmToGen, if use module, should return
> > Act and use OwningPtr out of this funciton diff --git
> > a/backend/src/llvm/llvm_gen_backend.cpp
> > b/backend/src/llvm/llvm_gen_backend.cpp
> > index fd42dca..c8c0866 100644
> > --- a/backend/src/llvm/llvm_gen_backend.cpp
> > +++ b/backend/src/llvm/llvm_gen_backend.cpp
> > @@ -154,9 +154,9 @@
> >  #define LLVM_VERSION_MINOR 0
> >  #endif /* !defined(LLVM_VERSION_MINOR) */
> >
> > -#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) -#error
> > "Only LLVM 3.0 - 3.3 is supported"
> > -#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) */
> > +#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) #error
> > +"Only LLVM 3.0 - 3.4 is supported"
> > +#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) */
> >
> >  using namespace llvm;
> >
> > diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index
> > c0f88de..86a235e 100644
> > --- a/docs/Beignet.mdwn
> > +++ b/docs/Beignet.mdwn
> > @@ -55,7 +55,7 @@ with any thing older.
> >
> >  [http://llvm.org/releases/](http://llvm.org/releases/)
> >
> > -LLVM 3.1,3.2 and 3.3 are supported.
> > +LLVM 3.1,3.2,3.3 and 3.4 are supported.
> >
>

Re: [Beignet] [PATCH] support LLVM 3.4

2013-09-26 Thread Zhigang Gong
Ruiling tell me that llvm3.4 has not been released yet, so we may not switch
to LLVM 3.4 immediately.
But we will switch it eventually. For now, just test it with the llvm 3.4
svn trunk is good enough for us.

And as it will not break llvm 3.3, after the regression test pass, we can
accept this patch.

-Original Message-
From: beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
[mailto:beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org]
On Behalf Of Sun, Yi
Sent: Thursday, September 26, 2013 2:23 PM
To: Zhigang Gong; Xing, Homer
Cc: beignet@lists.freedesktop.org
Subject: Re: [Beignet] [PATCH] support LLVM 3.4

Hi Zhigang,

I may lose some context.
So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3 version.

Thanks
  --Sun, Yi

> -Original Message-
> From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
> [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On 
> Behalf Of Zhigang Gong
> Sent: Wednesday, September 25, 2013 1:42 AM
> To: Xing, Homer
> Cc: beignet@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> 
> Yi,
> 
> Could you help to do a fully regression test for llvm 3.4?
> 
> On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> > LLVM 3.3 or earlier version don't support unary addition of vectors, 
> > such as "++ int2". This patch supports LLVM 3.4.
> > Tested by PIGLIT, no regression.
> >
> > Signed-off-by: Homer Hsing 
> > ---
> >  CMake/FindLLVM.cmake  | 4 ++--
> >  backend/src/backend/program.cpp   | 7 ++-
> >  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
> >  docs/Beignet.mdwn | 2 +-
> >  4 files changed, 12 insertions(+), 7 deletions(-)
> >
> > diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
> > e76ab42..3fa9ad9 100644
> > --- a/CMake/FindLLVM.cmake
> > +++ b/CMake/FindLLVM.cmake
> > @@ -7,9 +7,9 @@
> >  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
> >  # LLVM_FOUND   - True if llvm found.
> >  if (LLVM_INSTALL_DIR)
> > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > "llvm-config executable" PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
> > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
> > + llvm-config DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
> > + NO_DEFAULT_PATH)
> >  else (LLVM_INSTALL_DIR)
> > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > "llvm-config executable")
> > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
> > + llvm-config DOC "llvm-config executable")
> >  endif (LLVM_INSTALL_DIR)
> >
> >  if (LLVM_CONFIG_EXECUTABLE)
> > diff --git a/backend/src/backend/program.cpp 
> > b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
> > --- a/backend/src/backend/program.cpp
> > +++ b/backend/src/backend/program.cpp
> > @@ -535,7 +535,12 @@ namespace gbe {
> >  llvm::Module *module = Act->takeModule();
> >
> >  std::string ErrorInfo;
> > -llvm::raw_fd_ostream OS(output,
> ErrorInfo,llvm::raw_fd_ostream::F_Binary);
> > +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
> > +auto mode = llvm::sys::fs::F_Binary; #else
> > +auto mode = llvm::raw_fd_ostream::F_Binary; #endif
> > +llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
> >  //still write to temp file for code simply, otherwise need add 
> > another
> function.
> >  //because gbe_program_new_from_llvm also be used by
> cl_program_create_from_llvm, can't be removed
> >  //TODO: Pass module to llvmToGen, if use module, should return 
> > Act and use OwningPtr out of this funciton diff --git 
> > a/backend/src/llvm/llvm_gen_backend.cpp
> > b/backend/src/llvm/llvm_gen_backend.cpp
> > index fd42dca..c8c0866 100644
> > --- a/backend/src/llvm/llvm_gen_backend.cpp
> > +++ b/backend/src/llvm/llvm_gen_backend.cpp
> > @@ -154,9 +154,9 @@
> >  #define LLVM_VERSION_MINOR 0
> >  #endif /* !defined(LLVM_VERSION_MINOR) */
> >
> > -#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) -#error 
> > "Only LLVM 3.0 - 3.3 is supported"
> > -#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) */
> > +#

Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Yang, Rong R
Update to llvm 3.4 svn, all utest pass.

-Original Message-
From: beignet-bounces+rong.r.yang=intel@lists.freedesktop.org 
[mailto:beignet-bounces+rong.r.yang=intel@lists.freedesktop.org] On Behalf 
Of Homer Hsing
Sent: Tuesday, September 24, 2013 10:11 AM
To: beignet@lists.freedesktop.org
Subject: [Beignet] [PATCH] support LLVM 3.4

LLVM 3.3 or earlier version don't support unary addition of vectors, such as 
"++ int2". This patch supports LLVM 3.4.
Tested by PIGLIT, no regression.

Signed-off-by: Homer Hsing 
---
 CMake/FindLLVM.cmake  | 4 ++--
 backend/src/backend/program.cpp   | 7 ++-
 backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
 docs/Beignet.mdwn | 2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index e76ab42..3fa9ad9 
100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -7,9 +7,9 @@
 # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
 # LLVM_FOUND   - True if llvm found.
 if (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable" PATHS 
${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR} 
+ NO_DEFAULT_PATH)
 else (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable")
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC "llvm-config executable")
 endif (LLVM_INSTALL_DIR)
 
 if (LLVM_CONFIG_EXECUTABLE)
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp 
index 68bb17e..9956e11 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -535,7 +535,12 @@ namespace gbe {
 llvm::Module *module = Act->takeModule();
 
 std::string ErrorInfo;
-llvm::raw_fd_ostream OS(output, ErrorInfo,llvm::raw_fd_ostream::F_Binary);
+#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
+auto mode = llvm::sys::fs::F_Binary; #else
+auto mode = llvm::raw_fd_ostream::F_Binary; #endif
+llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
 //still write to temp file for code simply, otherwise need add another 
function.
 //because gbe_program_new_from_llvm also be used by 
cl_program_create_from_llvm, can't be removed
 //TODO: Pass module to llvmToGen, if use module, should return Act and use 
OwningPtr out of this funciton diff --git 
a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index fd42dca..c8c0866 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -154,9 +154,9 @@
 #define LLVM_VERSION_MINOR 0
 #endif /* !defined(LLVM_VERSION_MINOR) */
 
-#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) -#error "Only LLVM 
3.0 - 3.3 is supported"
-#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) */
+#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) #error "Only 
+LLVM 3.0 - 3.4 is supported"
+#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) */
 
 using namespace llvm;
 
diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index c0f88de..86a235e 100644
--- a/docs/Beignet.mdwn
+++ b/docs/Beignet.mdwn
@@ -55,7 +55,7 @@ with any thing older.
 
 [http://llvm.org/releases/](http://llvm.org/releases/)
 
-LLVM 3.1,3.2 and 3.3 are supported.
+LLVM 3.1,3.2,3.3 and 3.4 are supported.
 
 Also note that the code was compiled on GCC 4.6 and GCC 4.7. Since the code 
uses  really recent C++11 features, you may expect problems with older 
compilers. Last
--
1.8.1.2

___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Zhigang Gong
Hi Yi,

Do you have any update for this patch's testing? Thanks.

On Thu, Sep 26, 2013 at 04:20:04PM +0800, Zhigang Gong wrote:
> Ruiling tell me that llvm3.4 has not been released yet, so we may not switch
> to LLVM 3.4 immediately.
> But we will switch it eventually. For now, just test it with the llvm 3.4
> svn trunk is good enough for us.
> 
> And as it will not break llvm 3.3, after the regression test pass, we can
> accept this patch.
> 
> -Original Message-
> From: beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
> [mailto:beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org]
> On Behalf Of Sun, Yi
> Sent: Thursday, September 26, 2013 2:23 PM
> To: Zhigang Gong; Xing, Homer
> Cc: beignet@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> 
> Hi Zhigang,
> 
> I may lose some context.
> So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3 version.
> 
> Thanks
>   --Sun, Yi
> 
> > -Original Message-
> > From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
> > [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On 
> > Behalf Of Zhigang Gong
> > Sent: Wednesday, September 25, 2013 1:42 AM
> > To: Xing, Homer
> > Cc: beignet@lists.freedesktop.org
> > Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> > 
> > Yi,
> > 
> > Could you help to do a fully regression test for llvm 3.4?
> > 
> > On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> > > LLVM 3.3 or earlier version don't support unary addition of vectors, 
> > > such as "++ int2". This patch supports LLVM 3.4.
> > > Tested by PIGLIT, no regression.
> > >
> > > Signed-off-by: Homer Hsing 
> > > ---
> > >  CMake/FindLLVM.cmake  | 4 ++--
> > >  backend/src/backend/program.cpp   | 7 ++-
> > >  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
> > >  docs/Beignet.mdwn | 2 +-
> > >  4 files changed, 12 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
> > > e76ab42..3fa9ad9 100644
> > > --- a/CMake/FindLLVM.cmake
> > > +++ b/CMake/FindLLVM.cmake
> > > @@ -7,9 +7,9 @@
> > >  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
> > >  # LLVM_FOUND   - True if llvm found.
> > >  if (LLVM_INSTALL_DIR)
> > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > > "llvm-config executable" PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
> > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
> > > + llvm-config DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
> > > + NO_DEFAULT_PATH)
> > >  else (LLVM_INSTALL_DIR)
> > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > > "llvm-config executable")
> > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
> > > + llvm-config DOC "llvm-config executable")
> > >  endif (LLVM_INSTALL_DIR)
> > >
> > >  if (LLVM_CONFIG_EXECUTABLE)
> > > diff --git a/backend/src/backend/program.cpp 
> > > b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
> > > --- a/backend/src/backend/program.cpp
> > > +++ b/backend/src/backend/program.cpp
> > > @@ -535,7 +535,12 @@ namespace gbe {
> > >  llvm::Module *module = Act->takeModule();
> > >
> > >  std::string ErrorInfo;
> > > -llvm::raw_fd_ostream OS(output,
> > ErrorInfo,llvm::raw_fd_ostream::F_Binary);
> > > +#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
> > > +auto mode = llvm::sys::fs::F_Binary; #else
> > > +auto mode = llvm::raw_fd_ostream::F_Binary; #endif
> > > +llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
> > >  //still write to temp file for code simply, otherwise need add 
> > > another
> > function.
> > >  //because gbe_program_new_from_llvm also be used by
> > cl_program_create_from_llvm, can't be removed
> > >  //TODO: Pass module to llvmToGen, if use module, should return 
> > > Act and use OwningPtr out of this funcit

Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Sun, Yi
Sorry not yet. So is it necessary? 
I'm just worrying about if it can roll back successfully after I update to 3.4?
I'll have a quick test if it is necessary and can be roll back to 3.3.

Thanks
  --Sun, Yi

> -Original Message-
> From: Zhigang Gong [mailto:zhigang.g...@linux.intel.com]
> Sent: Monday, October 14, 2013 2:52 PM
> To: Sun, Yi; Xing, Homer
> Cc: beignet@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> 
> Hi Yi,
> 
> Do you have any update for this patch's testing? Thanks.
> 
> On Thu, Sep 26, 2013 at 04:20:04PM +0800, Zhigang Gong wrote:
> > Ruiling tell me that llvm3.4 has not been released yet, so we may not
> > switch to LLVM 3.4 immediately.
> > But we will switch it eventually. For now, just test it with the llvm
> > 3.4 svn trunk is good enough for us.
> >
> > And as it will not break llvm 3.3, after the regression test pass, we
> > can accept this patch.
> >
> > -Original Message-
> > From:
> > beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
> > [mailto:beignet-bounces+zhigang.gong=linux.intel.com@lists.freedesktop
> > .org]
> > On Behalf Of Sun, Yi
> > Sent: Thursday, September 26, 2013 2:23 PM
> > To: Zhigang Gong; Xing, Homer
> > Cc: beignet@lists.freedesktop.org
> > Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> >
> > Hi Zhigang,
> >
> > I may lose some context.
> > So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3 version.
> >
> > Thanks
> >   --Sun, Yi
> >
> > > -Original Message-
> > > From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
> > > [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On
> > > Behalf Of Zhigang Gong
> > > Sent: Wednesday, September 25, 2013 1:42 AM
> > > To: Xing, Homer
> > > Cc: beignet@lists.freedesktop.org
> > > Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> > >
> > > Yi,
> > >
> > > Could you help to do a fully regression test for llvm 3.4?
> > >
> > > On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> > > > LLVM 3.3 or earlier version don't support unary addition of
> > > > vectors, such as "++ int2". This patch supports LLVM 3.4.
> > > > Tested by PIGLIT, no regression.
> > > >
> > > > Signed-off-by: Homer Hsing 
> > > > ---
> > > >  CMake/FindLLVM.cmake  | 4 ++--
> > > >  backend/src/backend/program.cpp   | 7 ++-
> > > >  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
> > > >  docs/Beignet.mdwn | 2 +-
> > > >  4 files changed, 12 insertions(+), 7 deletions(-)
> > > >
> > > > diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
> > > > e76ab42..3fa9ad9 100644
> > > > --- a/CMake/FindLLVM.cmake
> > > > +++ b/CMake/FindLLVM.cmake
> > > > @@ -7,9 +7,9 @@
> > > >  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
> > > >  # LLVM_FOUND   - True if llvm found.
> > > >  if (LLVM_INSTALL_DIR)
> > > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC
> > > > "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
> > > > NO_DEFAULT_PATH)
> > > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4
> > > > + llvm-config DOC "llvm-config executable" PATHS
> > > > + ${LLVM_INSTALL_DIR}
> > > > + NO_DEFAULT_PATH)
> > > >  else (LLVM_INSTALL_DIR)
> > > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC
> > > > "llvm-config executable")
> > > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4
> > > > + llvm-config DOC "llvm-config executable")
> > > >  endif (LLVM_INSTALL_DIR)
> > > >
> > > >  if (LLVM_CONFIG_EXECUTABLE)
> > > > diff --git a/backend/src/backend/program.cpp
> > > > b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
> > > > --- a/backend/src/backend/program.cpp
> > > > +++ b/backend/src/backend/program.cpp
> > 

Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Xing, Homer
Thanks!

-Original Message-
From: Yang, Rong R 
Sent: Monday, October 14, 2013 3:24 PM
To: Xing, Homer; beignet@lists.freedesktop.org
Subject: RE: [Beignet] [PATCH] support LLVM 3.4

Update to llvm 3.4 svn, all utest pass.

-Original Message-
From: beignet-bounces+rong.r.yang=intel@lists.freedesktop.org 
[mailto:beignet-bounces+rong.r.yang=intel@lists.freedesktop.org] On Behalf 
Of Homer Hsing
Sent: Tuesday, September 24, 2013 10:11 AM
To: beignet@lists.freedesktop.org
Subject: [Beignet] [PATCH] support LLVM 3.4

LLVM 3.3 or earlier version don't support unary addition of vectors, such as 
"++ int2". This patch supports LLVM 3.4.
Tested by PIGLIT, no regression.

Signed-off-by: Homer Hsing 
---
 CMake/FindLLVM.cmake  | 4 ++--
 backend/src/backend/program.cpp   | 7 ++-
 backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
 docs/Beignet.mdwn | 2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index e76ab42..3fa9ad9 
100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -7,9 +7,9 @@
 # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
 # LLVM_FOUND   - True if llvm found.
 if (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable" PATHS 
${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
+ NO_DEFAULT_PATH)
 else (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC "llvm-config executable")
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC "llvm-config executable")
 endif (LLVM_INSTALL_DIR)
 
 if (LLVM_CONFIG_EXECUTABLE)
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp 
index 68bb17e..9956e11 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -535,7 +535,12 @@ namespace gbe {
 llvm::Module *module = Act->takeModule();
 
 std::string ErrorInfo;
-llvm::raw_fd_ostream OS(output, ErrorInfo,llvm::raw_fd_ostream::F_Binary);
+#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR > 3)
+auto mode = llvm::sys::fs::F_Binary; #else
+auto mode = llvm::raw_fd_ostream::F_Binary; #endif
+llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
 //still write to temp file for code simply, otherwise need add another 
function.
 //because gbe_program_new_from_llvm also be used by 
cl_program_create_from_llvm, can't be removed
 //TODO: Pass module to llvmToGen, if use module, should return Act and use 
OwningPtr out of this funciton diff --git 
a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index fd42dca..c8c0866 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -154,9 +154,9 @@
 #define LLVM_VERSION_MINOR 0
 #endif /* !defined(LLVM_VERSION_MINOR) */
 
-#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) -#error "Only LLVM 
3.0 - 3.3 is supported"
-#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 3) */
+#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) #error "Only 
+LLVM 3.0 - 3.4 is supported"
+#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR > 4) */
 
 using namespace llvm;
 
diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index c0f88de..86a235e 100644
--- a/docs/Beignet.mdwn
+++ b/docs/Beignet.mdwn
@@ -55,7 +55,7 @@ with any thing older.
 
 [http://llvm.org/releases/](http://llvm.org/releases/)
 
-LLVM 3.1,3.2 and 3.3 are supported.
+LLVM 3.1,3.2,3.3 and 3.4 are supported.
 
 Also note that the code was compiled on GCC 4.6 and GCC 4.7. Since the code 
uses  really recent C++11 features, you may expect problems with older 
compilers. Last
--
1.8.1.2

___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Zhigang Gong
If you haven't tested it with gcc3.4 then no need to upgrade your
environment to 3.4. Rong already did that test.
I will push this patch latter. Thanks.

-Original Message-
From: beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
[mailto:beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org]
On Behalf Of Sun, Yi
Sent: Monday, October 14, 2013 3:31 PM
To: Zhigang Gong; Xing, Homer
Cc: beignet@lists.freedesktop.org
Subject: Re: [Beignet] [PATCH] support LLVM 3.4

Sorry not yet. So is it necessary? 
I'm just worrying about if it can roll back successfully after I update to
3.4?
I'll have a quick test if it is necessary and can be roll back to 3.3.

Thanks
  --Sun, Yi

> -Original Message-
> From: Zhigang Gong [mailto:zhigang.g...@linux.intel.com]
> Sent: Monday, October 14, 2013 2:52 PM
> To: Sun, Yi; Xing, Homer
> Cc: beignet@lists.freedesktop.org
> Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> 
> Hi Yi,
> 
> Do you have any update for this patch's testing? Thanks.
> 
> On Thu, Sep 26, 2013 at 04:20:04PM +0800, Zhigang Gong wrote:
> > Ruiling tell me that llvm3.4 has not been released yet, so we may 
> > not switch to LLVM 3.4 immediately.
> > But we will switch it eventually. For now, just test it with the 
> > llvm
> > 3.4 svn trunk is good enough for us.
> >
> > And as it will not break llvm 3.3, after the regression test pass, 
> > we can accept this patch.
> >
> > -Original Message-
> > From:
> > beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
> > [mailto:beignet-bounces+zhigang.gong=linux.intel.com@lists.freedeskt
> > op
> > .org]
> > On Behalf Of Sun, Yi
> > Sent: Thursday, September 26, 2013 2:23 PM
> > To: Zhigang Gong; Xing, Homer
> > Cc: beignet@lists.freedesktop.org
> > Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> >
> > Hi Zhigang,
> >
> > I may lose some context.
> > So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3
version.
> >
> > Thanks
> >   --Sun, Yi
> >
> > > -Original Message-
> > > From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
> > > [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On 
> > > Behalf Of Zhigang Gong
> > > Sent: Wednesday, September 25, 2013 1:42 AM
> > > To: Xing, Homer
> > > Cc: beignet@lists.freedesktop.org
> > > Subject: Re: [Beignet] [PATCH] support LLVM 3.4
> > >
> > > Yi,
> > >
> > > Could you help to do a fully regression test for llvm 3.4?
> > >
> > > On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
> > > > LLVM 3.3 or earlier version don't support unary addition of 
> > > > vectors, such as "++ int2". This patch supports LLVM 3.4.
> > > > Tested by PIGLIT, no regression.
> > > >
> > > > Signed-off-by: Homer Hsing 
> > > > ---
> > > >  CMake/FindLLVM.cmake  | 4 ++--
> > > >  backend/src/backend/program.cpp   | 7 ++-
> > > >  backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
> > > >  docs/Beignet.mdwn | 2 +-
> > > >  4 files changed, 12 insertions(+), 7 deletions(-)
> > > >
> > > > diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
> > > > e76ab42..3fa9ad9 100644
> > > > --- a/CMake/FindLLVM.cmake
> > > > +++ b/CMake/FindLLVM.cmake
> > > > @@ -7,9 +7,9 @@
> > > >  # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
> > > >  # LLVM_FOUND   - True if llvm found.
> > > >  if (LLVM_INSTALL_DIR)
> > > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > > > "llvm-config executable" PATHS ${LLVM_INSTALL_DIR}
> > > > NO_DEFAULT_PATH)
> > > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
> > > > + llvm-config DOC "llvm-config executable" PATHS 
> > > > + ${LLVM_INSTALL_DIR}
> > > > + NO_DEFAULT_PATH)
> > > >  else (LLVM_INSTALL_DIR)
> > > > -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > > > llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
> > > > "llvm-config executable")
> > > > +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
> > >