You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (JIRA)" <ji...@apache.org> on 2017/09/18 16:34:00 UTC

[jira] [Resolved] (IMPALA-3877) Support unpatched LLVM

     [ https://issues.apache.org/jira/browse/IMPALA-3877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Armstrong resolved IMPALA-3877.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.11.0



IMPALA-3877: support unpatched LLVM

The p1 patch we use for LLVM avoided merging of structurally
identical Struct types in unpredictable ways when linking in
IR UDF modules. This avoided hitting type assertions when
generating calls to IR UDfs.

This implements an alternative solution, which is to bitcast
the arguments when calling IR UDFs. This means we do not need to carry
the patch when we upgrade LLVM.

Testing:
Ran core tests with unpatched LLVM 3.8, including the IR UDF test that
originally required the patch to pass.

Change-Id: I3dfbe44ed8a1464b9b0991fd54e72b194ad6155d
Reviewed-on: http://gerrit.cloudera.org:8080/7973
Reviewed-by: Tim Armstrong <ta...@cloudera.com>
Tested-by: Impala Public Jenkins
---

> Support unpatched LLVM
> ----------------------
>
>                 Key: IMPALA-3877
>                 URL: https://issues.apache.org/jira/browse/IMPALA-3877
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>    Affects Versions: Impala 2.7.0
>            Reporter: Tim Armstrong
>            Assignee: Tim Armstrong
>            Priority: Minor
>              Labels: asf
>             Fix For: Impala 2.11.0
>
>
> We currently depend on a patched version of LLVM to work around a feature/limitation/bug of LLVM's linker. It seems unlikely that the patch will make it into LLVM, so we should implement a workaround.
> The problem is that function call arguments may have different types to the called functions. We should implement a wrapper for the IRBuilder CreateCall() function that adds bitcasts to arguments as appropriate and use that consistently for codegen.
> I implemented a version of this as part of the larger IMPALA-3066, but we could separate this out.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)