<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="text-indent:9.0pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I planned to support llvm3.6 before. But after fix all llvm3.6 compiler errors, there are some beignet’s utests fails.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:9.0pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Because llvm 3.6 seems has some bugs in that time and it’s release schedule delayed, I pending it.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:9.0pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Now, I will restart supporting and need some time.<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> Beignet [mailto:beignet-bounces@lists.freedesktop.org]
<b>On Behalf Of </b>Paulo Dias<br>
<b>Sent:</b> Monday, December 15, 2014 19:47<br>
<b>To:</b> Zhenyu Wang; Yang, Rong R<br>
<b>Cc:</b> junyan.he@linux.intel.com; beignet@lists.freedesktop.org<br>
<b>Subject:</b> Re: [Beignet] beignet doesnt compile with LLVM 3.6<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi to you,<br>
<br>
sorry to bother you guys again, but llvm 3.6 is almost out and beignet still doesnt compile with the latest git:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">In file included from /home/groo/devel/intel/beignet/beignet/backend/src/./sys/vector.hpp:28:0,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                 from /home/groo/devel/intel/beignet/beignet/backend/src/./ir/register.hpp:27,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                 from /home/groo/devel/intel/beignet/beignet/backend/src/./ir/instruction.hpp:27,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                 from /home/groo/devel/intel/beignet/beignet/backend/src/./backend/context.hpp:23,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                 from /home/groo/devel/intel/beignet/beignet/backend/src/backend/program.hpp:29,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                 from /home/groo/devel/intel/beignet/beignet/backend/src/backend/program.cpp:26:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h: At global scope:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/home/groo/devel/intel/beignet/beignet/backend/src/./sys/platform.hpp:263:12: error: expected ‘,’ or ‘...’ before ‘(’ token<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #define MB (KB*KB)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ^<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h:67:70: note: in expansion of macro ‘MB’<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">   static std::unique_ptr<SpecialCaseList> create(const MemoryBuffer *MB,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                                                      ^<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/home/groo/devel/intel/beignet/beignet/backend/src/./sys/platform.hpp:263:12: error: expected ‘,’ or ‘...’ before ‘(’ token<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #define MB (KB*KB)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ^<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h:92:34: note: in expansion of macro ‘MB’<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">   bool parse(const MemoryBuffer *MB, std::string &Error);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                  ^<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/home/groo/devel/intel/beignet/beignet/backend/src/backend/program.cpp: In function ‘bool gbe::buildModuleFromSource(const char*, llvm::Module**, llvm::LLVMContext*, std::vector<std::basic_string<char> >&, size_t, char*, size_t*)’:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/home/groo/devel/intel/beignet/beignet/backend/src/backend/program.cpp:614:44: error: cannot convert ‘std::unique_ptr<llvm::Module>’ to ‘llvm::Module*’ in initialization<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">     llvm::Module *module = Act->takeModule();<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                            ^<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">backend/src/CMakeFiles/<a href="http://gbe.dir/build.make:586">gbe.dir/build.make:586</a>: recipe for target 'backend/src/CMakeFiles/<a href="http://gbe.dir/backend/program.cpp.o">gbe.dir/backend/program.cpp.o</a>' failed<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">make[2]: *** [backend/src/CMakeFiles/<a href="http://gbe.dir/backend/program.cpp.o">gbe.dir/backend/program.cpp.o</a>] Error 1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">CMakeFiles/Makefile2:114: recipe for target 'backend/src/CMakeFiles/<a href="http://gbe.dir/all">gbe.dir/all</a>' failed<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">could you guys take a look at it?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">thanks in advance<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Paulo Dias<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Tue Nov 04 2014 at 5:18:25 AM Zhenyu Wang <<a href="mailto:zhenyuw@linux.intel.com">zhenyuw@linux.intel.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">On 2014.11.03 08:46:41 +0000, Yang, Rong R wrote:<br>
> Yes, some errors is because llvm use std:: unique_ptr as some function’s return<br>
> value instead of the normal ptr, there are some other errors after fix std::<br>
> unique_ptr error.<br>
><br>
> As we notice that LLVM plan to release LLVM/Clang 3.6 soon, suppose the LLVM<br>
> 3.6 approach to stable now, I am working to support LLVM 3.6 now. Hope could<br>
> finish it soon.<br>
><br>
<br>
One option is to explicitly say the llvm version that beignet does support<br>
and refuse to go on otherwise, like below one?<br>
<br>
From: Zhenyu Wang <<a href="mailto:zhenyuw@linux.intel.com" target="_blank">zhenyuw@linux.intel.com</a>><br>
Date: Tue, 4 Nov 2014 15:14:44 +0800<br>
Subject: [PATCH] Explicitly check LLVM version when building<br>
<br>
Instead of allowing for failure attemps to build with llvm unstable<br>
version this trys to explicitly tell the llvm version that beignet support.<br>
<br>
Signed-off-by: Zhenyu Wang <<a href="mailto:zhenyuw@linux.intel.com" target="_blank">zhenyuw@linux.intel.com</a>><br>
---<br>
 CMakeLists.txt | 3 +++<br>
 1 file changed, 3 insertions(+)<br>
<br>
diff --git a/CMakeLists.txt b/CMakeLists.txt<br>
index 40cb74c..7059b2b 100644<br>
--- a/CMakeLists.txt<br>
+++ b/CMakeLists.txt<br>
@@ -94,6 +94,9 @@ set (CMAKE_C_FLAGS_RELEASE        "-O2 -DNDEBUG -DGBE_DEBUG=0")<br>
 # Front end stuff we need<br>
 #INCLUDE(CMake/FindLLVM.cmake)<br>
 Find_Package(LLVM 3.3)<br>
+IF(LLVM_VERSION VERSION_GREATER 3.5)<br>
+  MESSAGE(FATAL_ERROR "Don't support LLVM > 3.5 now.")<br>
+ENDIF(LLVM_VERSION VERSION_GREATER 3.5)<br>
<br>
 set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${LLVM_LDFLAGS}")<br>
<br>
--<br>
2.1.1<br>
<br>
--<br>
Open Source Technology Center, Intel ltd.<br>
<br>
$gpg --keyserver <a href="http://wwwkeys.pgp.net" target="_blank">wwwkeys.pgp.net</a> --recv-keys 4D781827<o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</body>
</html>