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]>

Reply via email to