Todd Lipcon has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/9898 )
Change subject: Upgrade to LLVM/Clang 6.0.0 ...................................................................... Upgrade to LLVM/Clang 6.0.0 This patch contains various changes required to upgrade to LLVM 6: Thirdparty build changes: - Bumped the actual version of LLVM and IWYU to 6.0.0 and 0.9 respectively. - Rejiggered the set of patches to apply: -- Recreated the amazon-linux toolchain support patch (same content, just needed to be rebased) -- Removed "fix-readability-redundant-declaration..." patch which is now incorporated upstream. -- Updated the existing IWYU patches slightly just to keep them applying. -- Pulled in a patch from IWYU github to have it build against LLVM 6. - Along the way, updated the 'package-llvm.sh' script to include packaging IWYU. - Changed the cmake invocation to disable the build of a bunch of tools which are not really necessary in our use case. This sped up the build a little bit. - Changed the sanitized LLVM library build to use the uninstrumented 'llvm-tblgen' tool from the already-built toolchain to speed it up a bit. - Had to remove --nostdinc++ from the CXXFLAGS while building LLVM. When it was being passed in CXXFLAGS, the LLVM CMake could would end up seeing 'unused arguments' errors during its configuration step and produce incorrect results. The new version of LLVM apparently does not need this flag passed in the build. - Added a small patch to libunwind which fixed a crash in TSAN. See the patch file header itself for details. Code changes: - A few trivial API changes in the codegen module. -- I verified that the resulting generated assembly is not larger than the old assembly. In fact it seems to have shaved off a couple instructions (CodegenTest.TestDumpMC lost two instructions) - Added the appropriate function attribute to disable frame pointer elimination. This was apparently the default in previous releases of LLVM but now needs to be set explicitly as a function attribute on every function in the module. I verified that with this change there is a 'push %rbp' and 'pop %rbp' in the machine code emitted by CodegenTest.TestDumpMC, which matches the results with LLVM 4. - Added _ULx86_64_step to tsan-suppressions. This appears to be a possible race which is caught by the new version of TSAN. Change-Id: I137180f0b167872d903d855282607bac17f92a83 Reviewed-on: http://gerrit.cloudera.org:8080/9898 Reviewed-by: Todd Lipcon <[email protected]> Tested-by: Todd Lipcon <[email protected]> --- A build-support/iwyu/mappings/llvm.imp M build-support/tsan-suppressions.txt M src/kudu/codegen/module_builder.cc M src/kudu/codegen/row_projector.cc M thirdparty/build-definitions.sh M thirdparty/build-thirdparty.sh M thirdparty/download-thirdparty.sh M thirdparty/package-llvm.sh A thirdparty/patches/libunwind-trace-cache-destructor.patch M thirdparty/patches/llvm-fix-amazon-linux.patch D thirdparty/patches/llvm-fix-readability-redundant-declaration-false-positive.patch A thirdparty/patches/llvm-iwyu-llvm-6-compat.patch M thirdparty/patches/llvm-iwyu-nocurses.patch M thirdparty/vars.sh 14 files changed, 271 insertions(+), 141 deletions(-) Approvals: Todd Lipcon: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/9898 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I137180f0b167872d903d855282607bac17f92a83 Gerrit-Change-Number: 9898 Gerrit-PatchSet: 5 Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]>
