Tim Armstrong has uploaded a new patch set (#2). Change subject: Update LLVM to 3.7 ......................................................................
Update LLVM to 3.7 This requires various changes for Impala to be fully functional with the new version of LLVM. The original JIT was removed from LLVM, we need to switch to the new MCJIT API and implementation. MCJIT only supports module-at-a-time compilation, so the module must be finalised before any compilation happens. We did't depend on the old behaviour deeply, but various small fixes were required. MCJIT requires that every IR module has a name. We relied on the old JIT's workaround for the __dso_handle symbol, which we have to emulate for MCJIT with a customer memory manager until we can get rid of global initialisers in cross-compiled code. LLVM made a number of incompatible API changes and reorganised headers. Clang took over responsibility for padding structs by marking structs as packed and inserting bytes so that members are aligned correctly (previously it relies LLVM aligning struct members based on the target's alignment rules). This means Impala also needs to manually pad its structs since clang-emitted structs look to LLVM like they have do not need to be inlined. Our inlining pass would require some modification to work and is redundant with LLVM's inlining pass, so was removed along with the unused subexpr elimination pass. LLVM now depends on another system library libtinfo, so we use llvm-config to get the required system libs directly. Change-Id: I17d7afd05ad3b472a0bfe035bfc3daada5597b2d --- M be/CMakeLists.txt M be/src/benchmarks/hash-benchmark.cc M be/src/codegen/CMakeLists.txt M be/src/codegen/codegen-anyval.cc M be/src/codegen/instruction-counter-test.cc M be/src/codegen/llvm-codegen-test.cc M be/src/codegen/llvm-codegen.cc M be/src/codegen/llvm-codegen.h A be/src/codegen/mcjit-mem-mgr.h D be/src/codegen/subexpr-elimination.cc D be/src/codegen/subexpr-elimination.h M be/src/exec/aggregation-node.cc M be/src/exec/hash-join-node.cc M be/src/exec/hash-table.cc M be/src/exec/hdfs-avro-scanner.cc M be/src/exec/hdfs-scanner.cc M be/src/exec/old-hash-table.cc M be/src/exec/partitioned-aggregation-node.cc M be/src/exec/partitioned-hash-join-node.cc M be/src/exec/text-converter.cc M be/src/exprs/expr.cc M be/src/exprs/scalar-fn-call.cc M be/src/exprs/slot-ref.cc M be/src/runtime/descriptors.cc M bin/impala-config.sh M cmake_modules/FindLlvm.cmake 26 files changed, 388 insertions(+), 590 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/86/2486/2 -- To view, visit http://gerrit.cloudera.org:8080/2486 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I17d7afd05ad3b472a0bfe035bfc3daada5597b2d Gerrit-PatchSet: 2 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Tim Armstrong <[email protected]>
