<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Mar 24, 2017 at 7:45 AM, Nikolai Kosjar via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi!<br>
<br>
I've trouble building/running llvm+clang 4.0 with/from mingw 32 bit for different mingw versions (4.9.y/5.x.y) [1]. When building in release mode, llvm-tblgen.exe crashes. I can overcome this by explicitly building llvm-tblgen.exe (and only that one) in debug mode, but then I get funny crashes with libclang during parse operations.<br></blockquote><div><br></div><div>Some versions of GCC miscompile llvm-tblgen when targeting Windows: <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78936">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78936</a> You should be able to check if this is the same issue by looking at the assembly produced for SubtargetEmitter.cpp and checking if it has the same mismatch between the call and the epilogue described in the bug.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I get no crashes for libclang parse operations from binaries produced by MSVC2015 (for both, 32 and 64 bit) and mingw 64 bit.<br>
<br>
According to clang's default target, it seems that llvm/clang is build with MSVC nowadays, starting with version 3.8.x:<br>
<br>
  D:\>D:\usr\llvm-3.7.1-win32\bi<wbr>n\clang --version<br>
  clang version 3.7.1 (tags/RELEASE_371/final)<br>
  Target: i686-pc-windows-gnu<br>
  Thread model: posix<br>
<br>
  D:\>D:\usr\llvm-3.8.1-win32\bi<wbr>n\clang --version<br>
  clang version 3.8.1 (branches/release_38)<br>
  Target: i686-pc-windows-msvc<br>
  Thread model: posix<br>
  InstalledDir: D:\usr\llvm-3.8.1-win32\bin<br></blockquote><div><br></div><div>I think the downloads from <a href="http://llvm.org">llvm.org</a> have always been built with MSVC since we started providing Windows binaries in LLVM 3.4, since that's what's Hans has been using since he took over release management. Something changed in how we compute our default target triple, but I wasn't able to find the commit that did it. In any case, the intention is that Clang is configured to target whatever it was built with by default, and the user can change that at runtime with --target or by rebuilding clang from source and reconfiguring it with a different default (-DLLVM_DEFAULT_TARGET_TRIPLE=whatever).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Does anybody know why this has changed? I'm asking because last time I compared, libclang binaries build with mingw were significantly faster than the ones from MSVC. In addition to this, the profile guided optimization support of mingw produced faster binaries than the one optimized with MSVC.<br></blockquote><div><br></div><div>I couldn't say anything about the relative strengths of GCC vs MSVC PGO. I will say that in our experience, 64-bit clang is faster than 32-bit clang, and Clang is pretty good at optimizing Clang. So if you just want a faster compiler, you can build clang twice for 64-bit. You can set the default triple back to 32-bit if that's what you need.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Can somebody reproduce [1] with mingw 32 bit?<br>
Any plans to make a build bot/job for mingw 32 bit available (again?) so that such errors will be caught earlier?<br>
<br>
Nikolai<br>
<br>
<br>
[1] <a href="https://bugs.llvm.org/show_bug.cgi?id=32018" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug<wbr>.cgi?id=32018</a><br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div>