Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3C35C200B54 for ; Thu, 14 Jul 2016 06:39:43 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3ABF3160A6E; Thu, 14 Jul 2016 04:39:43 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 83824160A6A for ; Thu, 14 Jul 2016 06:39:42 +0200 (CEST) Received: (qmail 11623 invoked by uid 500); 14 Jul 2016 04:39:41 -0000 Mailing-List: contact dev-help@impala.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@impala.incubator.apache.org Delivered-To: mailing list dev@impala.incubator.apache.org Received: (qmail 11610 invoked by uid 99); 14 Jul 2016 04:39:41 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Jul 2016 04:39:41 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id E69A21A059C for ; Thu, 14 Jul 2016 04:39:40 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.362 X-Spam-Level: X-Spam-Status: No, score=0.362 tagged_above=-999 required=6.31 tests=[RDNS_DYNAMIC=0.363, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id z87i5fJpy1RO for ; Thu, 14 Jul 2016 04:39:37 +0000 (UTC) Received: from ip-10-146-233-104.ec2.internal (ec2-75-101-130-251.compute-1.amazonaws.com [75.101.130.251]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id F11415F1F3 for ; Thu, 14 Jul 2016 04:39:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by ip-10-146-233-104.ec2.internal (8.14.4/8.14.4) with ESMTP id u6E4dZRT018126; Thu, 14 Jul 2016 04:39:35 GMT Message-Id: <201607140439.u6E4dZRT018126@ip-10-146-233-104.ec2.internal> Date: Thu, 14 Jul 2016 04:39:35 +0000 From: "Dan Hecht (Code Review)" To: Michael Ho , impala-cr@cloudera.com, dev@impala.incubator.apache.org CC: Mostafa Mokhtar , Tim Armstrong Reply-To: dhecht@cloudera.com X-Gerrit-MessageType: comment Subject: =?UTF-8?Q?=5BImpala-CR=5D=28cdh5-trunk=29_IMPALA-3674=3A_Lazy_materialization_of_LLVM_module_bitcode=2E=0A?= X-Gerrit-Change-Id: I6ed7862fc5e86005ecea83fa2ceb489e737d66b2 X-Gerrit-ChangeURL: X-Gerrit-Commit: f85dde4890774dc7172fdb2b5a662956bd2e83bb In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Disposition: inline User-Agent: Gerrit/2.12.2 archived-at: Thu, 14 Jul 2016 04:39:43 -0000 Dan Hecht has posted comments on this change. Change subject: IMPALA-3674: Lazy materialization of LLVM module bitcode. ...................................................................... Patch Set 9: (2 comments) http://gerrit.cloudera.org:8080/#/c/3220/8/be/src/codegen/llvm-codegen.cc File be/src/codegen/llvm-codegen.cc: Line 742: module_->getFunctionList().push_back(fn_clone); > Don't think it's a good idea to assume callers have already called GetFunct Why? Doesn't impala code assume that any llvm Function object it gets a hold of is already materialized (so that it can, for example, traverse the IR and do things like replace calls)? Or is there some code that wouldn't care if it's materialized? It seems best, if it's possible, to keep the materizalization detail entirely within this module so that no other code has to think about it. And that would mean that all Function * that other code operations on must be materialized. Or is there some case I'm not considering? Also, couldn't we just make it a requirement that the only way the rest of impala can get a Function is via GetFunction() to enforce this? Again, let me know if I'm missing something, but it still seems to me this should be a DCHECK that fn is materialized already. http://gerrit.cloudera.org:8080/#/c/3220/8/be/src/codegen/llvm-codegen.h File be/src/codegen/llvm-codegen.h: Line 231: > This is still called in ScalarFnCall::GetUdf(). Would it make sense to use Codegen::FnPrototype there? It would be nice to not expose module(). If FnPrototype doesn't work, we can leave this for now. -- To view, visit http://gerrit.cloudera.org:8080/3220 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6ed7862fc5e86005ecea83fa2ceb489e737d66b2 Gerrit-PatchSet: 9 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Michael Ho Gerrit-Reviewer: Dan Hecht Gerrit-Reviewer: Michael Ho Gerrit-Reviewer: Mostafa Mokhtar Gerrit-Reviewer: Tim Armstrong Gerrit-HasComments: Yes