HI, Paulo,

Nice to meet you:)
Do you use LLVM 3.6 to compile the Beignet’s C/C++ code?
Sorry, I mistake that you only use LLVM 3.6 as Beignet’s OpenCL language 
compiler.

I have quick look these compilation. For strict-aliasing warning, I think it is 
the clang’s issue.
Because in beignet/backend/src/backend/program.cpp:59 only include the file 
CodeGenAction.h, and the all warnings are in clang internal.

MB conflict with LLV, I will fix it.

And convert ‘std::unique_ptr<llvm::Module>’ to ‘llvm::Module*’ error, it is 
caused by using LLVM 3.6 as Beignet’s OpenCL language compiler, because LLVM 
3.6 haven’t officially released, Beignet don’t support it now.

Thanks,
Yang, Rong

From: Paulo Dias [mailto:[email protected]]
Sent: Thursday, October 30, 2014 10:49
To: Yang, Rong R
Cc: [email protected]; [email protected]
Subject: Re: beignet doesnt compile with LLVM 3.6

Hi Yang, nice to meet you.

I agree with LLVM changing code from the development branch, but in this case, 
the compilation is failing because they switched to a stricter language 
convention, so it might be wiser to fix the code sooner then later.

Im also creating beignet packages for future inclusion in ubuntu (im just a 
community contributor, not a canonical employee), and ive been testing beignet 
+ opencl (mesa) for radeon and intel drivers. So it would help me alot if you 
guys could fix this compilation, since i have a few bugs i want to commit to 
you guys but i need to test latest mesa, intel, radeon code.

Best regards

| Paulo Dias
| [email protected]<mailto:[email protected]>

Tempora mutantur, nos et mutamur in illis.

On Thu, Oct 30, 2014 at 12:22 AM, Yang, Rong R 
<[email protected]<mailto:[email protected]>> wrote:
Because LLVM change the head file frequently, Beignet only support the released 
version LLVM, from 3.3 to 3.5. You can get this information from Beignet wiki: 
http://www.freedesktop.org/wiki/Software/Beignet/.

For any beignet question, you can send to the mailing list, 
[email protected]<mailto:[email protected]>, and send 
bug reports to https://bugs.freedesktop.org/enter_bug.cgi?product=Beignet.

Thanks,
Yang Rong

From: Paulo Dias 
[mailto:[email protected]<mailto:[email protected]>]
Sent: Wednesday, October 29, 2014 21:50
To: Yang, Rong R; [email protected]<mailto:[email protected]>
Subject: beignet doesnt compile with LLVM 3.6

Hi, sorry to bother you.

I've been trying to compile beignet from git with LLVM 3.6.
Unfortunatelly, with the new LLVM restrictions, beignet fails to compile, could 
you take a look at it?

BTW, what is the proper way to send bug reports? do you guys have a freenode 
irc channel?

here is the compilation output:

----

In file included from /usr/lib/llvm-3.6/include/clang/AST/Decl.h:17:0,
                 from /usr/lib/llvm-3.6/include/clang/AST/ASTTypeTraits.h:20,
                 from /usr/lib/llvm-3.6/include/clang/AST/ASTContext.h:18,
                 from /usr/lib/llvm-3.6/include/clang/Frontend/ASTUnit.h:18,
                 from 
/usr/lib/llvm-3.6/include/clang/Frontend/FrontendAction.h:24,
                 from 
/usr/lib/llvm-3.6/include/clang/CodeGen/CodeGenAction.h:13,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/backend/program.cpp:59:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APSInt& clang::APValue::getInt()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:202:34: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return *(APSInt*)(char*)Data.buffer;
                                  ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APFloat& clang::APValue::getFloat()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:210:35: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return *(APFloat*)(char*)Data.buffer;
                                   ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APSInt& clang::APValue::getComplexIntReal()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:218:48: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((ComplexAPSInt*)(char*)Data.buffer)->Real;
                                                ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APSInt& clang::APValue::getComplexIntImag()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:226:48: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((ComplexAPSInt*)(char*)Data.buffer)->Imag;
                                                ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APFloat& clang::APValue::getComplexFloatReal()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:234:49: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((ComplexAPFloat*)(char*)Data.buffer)->Real;
                                                 ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue::APFloat& clang::APValue::getComplexFloatImag()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:242:49: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((ComplexAPFloat*)(char*)Data.buffer)->Imag;
                                                 ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getVectorElt(unsigned int)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:261:38: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((Vec*)(char*)Data.buffer)->Elts[I];
                                      ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘unsigned int 
clang::APValue::getVectorLength() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:268:51: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const Vec*)(const void *)Data.buffer)->NumElts;
                                                   ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getArrayInitializedElt(unsigned int)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:274:38: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((Arr*)(char*)Data.buffer)->Elts[I];
                                      ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getArrayFiller()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:285:38: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((Arr*)(char*)Data.buffer)->Elts[getArrayInitializedElts()];
                                      ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘unsigned int 
clang::APValue::getArrayInitializedElts() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:292:51: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const Arr*)(const void *)Data.buffer)->NumElts;
                                                   ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘unsigned int 
clang::APValue::getArraySize() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:296:51: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const Arr*)(const void *)Data.buffer)->ArrSize;
                                                   ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘unsigned int 
clang::APValue::getStructNumBases() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:301:57: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const StructData*)(const char*)Data.buffer)->NumBases;
                                                         ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘unsigned int 
clang::APValue::getStructNumFields() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:305:57: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const StructData*)(const char*)Data.buffer)->NumFields;
                                                         ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getStructBase(unsigned int)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:309:45: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((StructData*)(char*)Data.buffer)->Elts[i];
                                             ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getStructField(unsigned int)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:313:45: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((StructData*)(char*)Data.buffer)->Elts[getStructNumBases() + i];
                                             ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘const 
clang::FieldDecl* clang::APValue::getUnionField() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:324:56: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const UnionData*)(const char*)Data.buffer)->Field;
                                                        ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function 
‘clang::APValue& clang::APValue::getUnionValue()’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:328:45: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return *((UnionData*)(char*)Data.buffer)->Value;
                                             ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘const 
clang::AddrLabelExpr* clang::APValue::getAddrLabelDiffLHS() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:340:64: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const AddrLabelDiffData*)(const char*)Data.buffer)->LHSExpr;
                                                                ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘const 
clang::AddrLabelExpr* clang::APValue::getAddrLabelDiffRHS() const’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:344:64: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     return ((const AddrLabelDiffData*)(const char*)Data.buffer)->RHSExpr;
                                                                ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setInt(clang::APValue::APSInt)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:349:29: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     *(APSInt *)(char *)Data.buffer = std::move(I);
                             ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setFloat(clang::APValue::APFloat)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:353:30: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     *(APFloat *)(char *)Data.buffer = std::move(F);
                              ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setVector(const clang::APValue*, unsigned int)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:357:31: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((Vec*)(char*)Data.buffer)->Elts = new APValue[N];
                               ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:358:31: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((Vec*)(char*)Data.buffer)->NumElts = N;
                               ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:360:33: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       ((Vec*)(char*)Data.buffer)->Elts[i] = E[i];
                                 ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setComplexInt(clang::APValue::APSInt, clang::APValue::APSInt)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:366:43: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((ComplexAPSInt *)(char *)Data.buffer)->Real = std::move(R);
                                           ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:367:43: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((ComplexAPSInt *)(char *)Data.buffer)->Imag = std::move(I);
                                           ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setComplexFloat(clang::APValue::APFloat, 
clang::APValue::APFloat)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:373:44: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((ComplexAPFloat *)(char *)Data.buffer)->Real = std::move(R);
                                            ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:374:44: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((ComplexAPFloat *)(char *)Data.buffer)->Imag = std::move(I);
                                            ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setUnion(const clang::FieldDecl*, const clang::APValue&)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:383:37: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((UnionData*)(char*)Data.buffer)->Field = Field;
                                     ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:384:38: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     *((UnionData*)(char*)Data.buffer)->Value = Value;
                                      ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h: In member function ‘void 
clang::APValue::setAddrLabelDiff(const clang::AddrLabelExpr*, const 
clang::AddrLabelExpr*)’:
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:388:45: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((AddrLabelDiffData*)(char*)Data.buffer)->LHSExpr = LHSExpr;
                                             ^
/usr/lib/llvm-3.6/include/clang/AST/APValue.h:389:45: warning: dereferencing 
type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ((AddrLabelDiffData*)(char*)Data.buffer)->RHSExpr = RHSExpr;
                                             ^
In file included from 
/home/groo/devel/intel/beignet/beignet/backend/src/./sys/vector.hpp:28:0,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/./ir/register.hpp:27,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/./ir/instruction.hpp:27,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/./backend/context.hpp:23,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/backend/program.hpp:29,
                 from 
/home/groo/devel/intel/beignet/beignet/backend/src/backend/program.cpp:26:
/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h: At global scope:
/home/groo/devel/intel/beignet/beignet/backend/src/./sys/platform.hpp:263:12: 
error: expected ‘,’ or ‘...’ before ‘(’ token
 #define MB (KB*KB)
            ^
/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h:67:70: note: in 
expansion of macro ‘MB’
   static std::unique_ptr<SpecialCaseList> create(const MemoryBuffer *MB,
                                                                      ^
/home/groo/devel/intel/beignet/beignet/backend/src/./sys/platform.hpp:263:12: 
error: expected ‘,’ or ‘...’ before ‘(’ token
 #define MB (KB*KB)
            ^
/usr/lib/llvm-3.6/include/llvm/Support/SpecialCaseList.h:92:34: note: in 
expansion of macro ‘MB’
   bool parse(const MemoryBuffer *MB, std::string &Error);
                                  ^
/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*)’:
/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
     llvm::Module *module = Act->takeModule();
                                            ^
backend/src/CMakeFiles/gbe.dir/build.make:583<http://gbe.dir/build.make:583>: 
recipe for target 
'backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o<http://gbe.dir/backend/program.cpp.o>'
 failed
make[3]: *** 
[backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o<http://gbe.dir/backend/program.cpp.o>]
 Error 1
---
best regards

| Paulo Dias
| [email protected]<mailto:[email protected]>

Tempora mutantur, nos et mutamur in illis.

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to