[Beignet] beignet doesnt compile with LLVM 3.6

Paulo Dias paulo.miguel.dias at gmail.com
Wed Oct 29 19:49:22 PDT 2014


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
| paulo.miguel.dias at gmail.com

*Tempora mutantur, nos et mutamur in illis.*

On Thu, Oct 30, 2014 at 12:22 AM, Yang, Rong R <rong.r.yang at intel.com>
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,
> beignet at lists.freedesktop.org, and send bug reports to
> https://bugs.freedesktop.org/enter_bug.cgi?product=Beignet.
>
>
>
> Thanks,
>
> Yang Rong
>
>
>
> *From:* Paulo Dias [mailto:paulo.miguel.dias at gmail.com]
> *Sent:* Wednesday, October 29, 2014 21:50
> *To:* Yang, Rong R; junyan.he at linux.intel.com
> *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
>
> | paulo.miguel.dias at gmail.com
>
> *Tempora mutantur, nos et mutamur in illis.*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/beignet/attachments/20141030/7a95f628/attachment-0001.html>


More information about the Beignet mailing list