On Fri, Oct 31, 2014 at 1:05 AM, Yang, Rong R <[email protected]> wrote:
> 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. > That is correct, im trying to create ubuntu packages for beignet with latest mesa git + llvm 3.6, and like i reported, im getting compilations errors because of the new stricter c11 rules that llvm started to enforce (at least i think thats the cause of the miss compilation) > 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. > > > I know its beyond your scope but could you send me a patch with fixes that allows me to cleanly compile beignet under llvm 3.6? radeon opencl uses llvm too and i caught several missbehaviours when using both opencl implementations that would be nice to report, once i get a working system running. > Thanks, > > Yang, Rong > best regards > > > *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] > > *Tempora mutantur, nos et mutamur in illis.* > > > > On Thu, Oct 30, 2014 at 12:22 AM, Yang, Rong R <[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], and send bug reports to > https://bugs.freedesktop.org/enter_bug.cgi?product=Beignet. > > > > Thanks, > > Yang Rong > > > > *From:* Paulo Dias [mailto:[email protected]] > *Sent:* Wednesday, October 29, 2014 21:50 > *To:* Yang, Rong R; [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: recipe for target > 'backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o' failed > > make[3]: *** [backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o] Error > 1 > > --- > > best regards > > > > | Paulo Dias > > | [email protected] > > *Tempora mutantur, nos et mutamur in illis.* > > >
_______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
