Bug 108308

Summary: Segfault when using LLVM7 -
Product: Mesa Reporter: Thiago Macieira <thiago>
Component: Drivers/Gallium/swrAssignee: mesa-dev
Status: RESOLVED MOVED QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Patch to make compile with LLVM 7
Actual patch to make compile with LLVM 7

Description Thiago Macieira 2018-10-10 00:25:40 UTC
Created attachment 141967 [details] [review]
Patch to make compile with LLVM 7

Build of d3682766f66b69ab636a2b9ca74db48fab68e024 using the attached patch to make it compile with LLVM 7. When loading X, it crashes with the backtrace:

(gdb) bt
#6  <signal handler called>
#7  0x00007f1e48432c20 in llvm::djbHash (Buffer=..., H=0) at /usr/src/debug/llvm-7.0.0.src/include/llvm/Support/DJB.h:23
#8  llvm::StringMapImpl::LookupBucketFor (this=<optimized out>, Name=...) at /usr/src/debug/llvm-7.0.0.src/lib/Support/StringMap.cpp:84
#9  0x00007f1e486547f9 in llvm::StringMap<llvm::MDString, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul> >::try_emplace<>(llvm::StringRef) (this=0xcd3be8, Key=...) at /usr/src/debug/llvm-7.0.0.src/include/llvm/ADT/StringMap.h:396
#10 0x00007f1e4864a271 in llvm::MDString::get (Context=..., Str=...) at /usr/src/debug/llvm-7.0.0.src/lib/IR/Metadata.cpp:456
#11 0x00007f1e485c9bc6 in llvm::DINode::getCanonicalMDString (Context=..., S=...)
    at /usr/src/debug/llvm-7.0.0.src/include/llvm/IR/DebugInfoMetadata.h:181
#12 llvm::DIFile::getImpl (Context=..., Filename=..., Directory=..., CS=..., Source=..., Storage=<optimized out>, ShouldCreate=true)
    at /usr/src/debug/llvm-7.0.0.src/include/llvm/IR/DebugInfoMetadata.h:556
#13 0x00007f1e485c5e32 in llvm::DIFile::get (Context=..., Filename=..., Directory=..., CS=..., Source=...)
    at /usr/src/debug/llvm-7.0.0.src/include/llvm/IR/DebugInfoMetadata.h:571
#14 llvm::DIBuilder::createFile (this=<optimized out>, this@entry=0x7ffd876022a0, Filename=..., Directory=..., CS=..., Source=...)
    at /usr/src/debug/llvm-7.0.0.src/lib/IR/DIBuilder.cpp:215
#15 0x00007f1e4b41be11 in SwrJit::Gen_SWR_VERTEX_BUFFER_STATE (pJitMgr=0xcd6e10) at /usr/include/llvm/ADT/StringRef.h:85
#16 SwrJit::Gen_SWR_FETCH_CONTEXT (pJitMgr=0xcd6e10) at rasterizer/jitter/gen_state_llvm.h:903
#17 0x00007f1e4b41ecd3 in JitManager::JitManager (this=0xcd6e10, simdWidth=<optimized out>, arch=<optimized out>, core=<optimized out>)
    at rasterizer/jitter/JitManager.cpp:169
#18 0x00007f1e4b41fb0e in JitCreateContext (targetSimdWidth=targetSimdWidth@entry=8, arch=arch@entry=0x7f1e4bb3dec9 "", 
    core=core@entry=0x7f1e4ba2d0f7 "swr") at rasterizer/jitter/JitManager.cpp:507
#19 0x00007f1e4b3ce063 in swr_create_screen_internal (winsys=winsys@entry=0xcd19b0) at swr_screen.cpp:1184
#20 0x00007f1e4b431692 in swr_create_screen (winsys=winsys@entry=0xcd19b0) at swr_loader.cpp:74
#21 0x00007f1e4a9639f8 in sw_screen_create_named (driver=0x7f1e4ba2d0f7 "swr", winsys=0xcd19b0)
    at ../../../../src/gallium/auxiliary/target-helpers/sw_helper.h:39
#22 sw_screen_create (winsys=0xcd19b0) at ../../../../src/gallium/auxiliary/target-helpers/sw_helper.h:81
#23 0x00007f1e4b0bc316 in pipe_loader_sw_create_screen (dev=0xcd1940, config=<optimized out>) at pipe_loader_sw.c:310
#24 0x00007f1e4b0bc12c in pipe_loader_create_screen (dev=0xcd1940) at pipe_loader.c:137
#25 0x00007f1e4ae8b58c in dri_kms_init_screen (sPriv=0xccfc90) at dri2.c:2208
#26 0x00007f1e4ae86923 in driCreateNewScreen2 (scrn=0, fd=13, extensions=<optimized out>, driver_extensions=<optimized out>, 
    driver_configs=0xc7af58, data=0xc7ad90) at dri_util.c:153
#27 0x00007f1e4c0de30e in dri_screen_create_dri2 (dri=dri@entry=0xc7ad90, driver_name=<optimized out>) at backends/dri/gbm_dri.c:461
#28 0x00007f1e4c0de3ca in dri_screen_create_sw (dri=0xc7ad90) at backends/dri/gbm_dri.c:549
#29 0x00007f1e4c0de6d8 in dri_device_create (fd=13) at backends/dri/gbm_dri.c:1447
#30 0x00007f1e4c0dbbce in gbm_create_device (fd=13) at main/gbm.c:137

#7  0x00007f1e48432c20 in llvm::djbHash (Buffer=..., H=0) at /usr/src/debug/llvm-7.0.0.src/include/llvm/Support/DJB.h:23
23        for (unsigned char C : Buffer.bytes())

Crashed on:
0x00007f1e48432c20 <+192>:   movzbl (%rcx),%edi
%rcx is 0x3000000002

Buffer is:
$5 = {Data = 0x3000000002 <error: Cannot access memory at address 0x3000000002>, Length = 140726874677440}

Confirming on frame 14:
#14 llvm::DIBuilder::createFile (this=<optimized out>, this@entry=0x7ffd876022a0, Filename=..., Directory=..., CS=..., Source=...)
    at /usr/src/debug/llvm-7.0.0.src/lib/IR/DIBuilder.cpp:215
215       return DIFile::get(VMContext, Filename, Directory, CS, Source);
(gdb) x/2ga &Source
0x7ffd87602020: 0x3000000002    0x7ffd876020c0

Unfortunately, frame 15 (the first SWR one) is not debuggable due to the inlining of StringRef inside the function and I can't find "Gen_SWR_VERTEX_BUFFER_STATE" in the Mesa sources.
Comment 1 Thiago Macieira 2018-10-10 00:30:28 UTC
If it helps:

(gdb) p *pJitMgr
$28 = {mContext = {<llvm::LLVMContext> = {pImpl = 0xcd3af0}, <No data fields>}, mBuilder = {<llvm::IRBuilderBase> = {CurDbgLocation = {Loc = {
          Ref = {MD = 0x0}}}, BB = 0x0, 
      InsertPt = {<llvm::ilist_detail::SpecificNodeAccess<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void> >> = {<llvm::ilist_detail::NodeAccess> = {<No data fields>}, <No data fields>}, NodePtr = 0x0}, Context = @0xcd6e10, DefaultFPMathTag = 0x0, FMF = {
        Flags = 0}, DefaultOperandBundles = {Data = 0x0, Length = 0}}, <llvm::IRBuilderDefaultInserter> = {<No data fields>}, 
    Folder = {<No data fields>}}, mpExec = 0xcdbd20, mCache = {<llvm::ObjectCache> = {
      _vptr$ObjectCache = 0x7f1e4bd63938 <vtable for JitCache+16>}, mCpu = {
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xcd6e80 ""}, 
      _M_string_length = 0, {_M_local_buf = "\000ellaneous\"/>\n<d", _M_allocated_capacity = 8026943275567703296}}, 
    mCacheDir = {<llvm::SmallVector<char, 4096>> = {<llvm::SmallVectorImpl<char>> = {<llvm::SmallVectorTemplateBase<char, true>> = {<llvm::SmallVectorTemplateCommon<char, void>> = {<llvm::SmallVectorBase> = {BeginX = 0xcd6ea0, Size = 19, 
                Capacity = 4096}, <No data fields>}, <No data fields>}, <No data fields>}, <llvm::SmallVectorStorage<char, 4096>> = {
          InlineElts = {{<llvm::AlignedCharArray<1, 1>> = {buffer = "/"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "/"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "."}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "w"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "/"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "j"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "c"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "h"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "/"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = ">"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "<"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "d"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "r"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "p"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = " "}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "g"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "="}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = " "}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "x"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "="}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "M"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "c"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "u"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "/"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = ">"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "\n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "<"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "d"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "c"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "p"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = " "}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "g"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "="}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "f"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = " "}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "x"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "="}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "M"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "u"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "/"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = ">"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "<"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "d"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "p"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = " "}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "g"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "="}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "v"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = " "}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "x"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "="}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "M"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "i"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "u"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\""}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "/"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = ">"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "\n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "<"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "p"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "o"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = " "}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "n"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "m"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "="}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "\""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "w"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "a"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "y"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "s"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "_"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "h"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "v"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "d"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "p"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "t"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "h"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {buffer = "b"}, <No data fields>}, 
            {<llvm::AlignedCharArray<1, 1>> = {buffer = "u"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
                buffer = "f"}, <No data fields>}...}}, <No data fields>}, <No data fields>}, mCurrentModuleCRC = 0, mpJitMgr = 0x0, 
    mOptLevel = llvm::CodeGenOpt::None}, mpCurrentModule = 0xcd9050, mIsModuleFinalized = true, mJitNumber = 0, mVWidth = 8, 
  mUsingAVX512 = false, mFetchShaderTy = 0x0, mArch = {<InstructionSet> = {CPU_Rep = {nIds_ = 13, nExIds_ = 2147483656, vendor_ = {
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
            _M_p = 0xcd7ef0 "GenuineIntel"}, _M_string_length = 12, {_M_local_buf = "GenuineIntel\000\000\000", 
            _M_allocated_capacity = 5288754736637306183}}, brand_ = {
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
            _M_p = 0xcd9010 "Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz"}, _M_string_length = 41, {
            _M_local_buf = ")", '\000' <repeats 14 times>, _M_allocated_capacity = 41}}, isIntel_ = true, isAMD_ = false, 
        f_1_ECX_ = {<std::_Base_bitset<1>> = {_M_w = 4294586915}, <No data fields>}, f_1_EDX_ = {<std::_Base_bitset<1>> = {
            _M_w = 529267711}, <No data fields>}, f_7_EBX_ = {<std::_Base_bitset<1>> = {_M_w = 1963}, <No data fields>}, 
        f_7_ECX_ = {<std::_Base_bitset<1>> = {_M_w = 4}, <No data fields>}, f_81_ECX_ = {<std::_Base_bitset<1>> = {
            _M_w = 33}, <No data fields>}, f_81_EDX_ = {<std::_Base_bitset<1>> = {_M_w = 739248128}, <No data fields>}, 
        data_ = {<std::_Vector_base<std::array<int, 4>, std::allocator<std::array<int, 4> > >> = {
            _M_impl = {<std::allocator<std::array<int, 4> >> = {<__gnu_cxx::new_allocator<std::array<int, 4> >> = {<No data fields>}, <No data fields>}, _M_start = 0xcadf50, _M_finish = 0xcae030, _M_end_of_storage = 0xcae050}}, <No data fields>}, 
        extdata_ = {<std::_Vector_base<std::array<int, 4>, std::allocator<std::array<int, 4> > >> = {
            _M_impl = {<std::allocator<std::array<int, 4> >> = {<__gnu_cxx::new_allocator<std::array<int, 4> >> = {<No data fields>}, <No data fields>}, _M_start = 0xcd8f00, _M_finish = 0xcd8f90, _M_end_of_storage = 0xcd9000}}, <No data fields>}}}, bForceAVX = false, 
    bForceAVX2 = false, bForceAVX512 = false, isaRequest = {
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xcd7fa0 ""}, 
      _M_string_length = 0, {_M_local_buf = '\000' <repeats 15 times>, _M_allocated_capacity = 0}}}, mDebugStructMap = {
    _M_h = {_M_buckets = 0xcd7fe0, _M_bucket_count = 1, 
      _M_before_begin = {_M_nxt = 0x0}, _M_element_count = 0, _M_rehash_policy = {_M_max_load_factor = 1, _M_next_resize = 0}, 
      _M_single_bucket = 0x0}}}
Comment 2 Alok Hota 2018-10-10 01:03:16 UTC
Hi Thiago,

Thanks for the details and patch on this. Can you describe what compile error you're receiving with LLVM 7? And what configure flags you're using? We have an upcoming patch to support LLVM 7, but it has different fixes compared to the patch provided.
Comment 3 Thiago Macieira 2018-10-10 03:04:48 UTC
(In reply to Alok Hota from comment #2)
> Hi Thiago,
> 
> Thanks for the details and patch on this. Can you describe what compile
> error you're receiving with LLVM 7? And what configure flags you're using?
> We have an upcoming patch to support LLVM 7, but it has different fixes
> compared to the patch provided.

That's because I uploaded the wrong patch...
Comment 4 Thiago Macieira 2018-10-10 03:05:44 UTC
Created attachment 141969 [details] [review]
Actual patch to make compile with LLVM 7
Comment 5 Thiago Macieira 2018-10-10 03:24:21 UTC
(In reply to Alok Hota from comment #2)
> Hi Thiago,
> 
> Thanks for the details and patch on this. Can you describe what compile
> error you're receiving with LLVM 7? And what configure flags you're using?
> We have an upcoming patch to support LLVM 7, but it has different fixes
> compared to the patch provided.

I created https://bugs.freedesktop.org/show_bug.cgi?id=108310 to track the need for patch.
Comment 6 GitLab Migration User 2019-09-18 18:24:36 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/199.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.