Internal Jenkins has submitted this change and it was merged.
Change subject: IMPALA-4231: fix codegen time regression
IMPALA-4231: fix codegen time regression
The commit "IMPALA-3567 Part 2, IMPALA-3899: factor out PHJ builder"
slightly increased codegen time, which caused TPC-H Q2 to sometimes
regress significantly because of races in runtime filter arrival.
This patch attempts to fix the regression by improving codegen time in a
* Revert to using the old bool/Status return pattern. The regular Status
return pattern results in significantly more complex IR because it has
to emit code to copy and free statuses. I spent some time trying to
convince it to optimise the extra code out, but didn't have much success.
* Remove some code that cannot be specialized from cross-compilation.
* Add noexcept to some functions that are used from the IR to ensure
exception-handling IR is not emitted. This is less important after the
first change but still should help produce cleaner IR.
I was able to reproduce a regression locally, which is fixed by this
patch. I'm in the process of trying to verify the fix on a cluster.
Reviewed-by: Tim Armstrong <tarmstr...@cloudera.com>
Tested-by: Internal Jenkins
19 files changed, 382 insertions(+), 368 deletions(-)
Internal Jenkins: Verified
Tim Armstrong: Looks good to me, approved
To view, visit http://gerrit.cloudera.org:8080/4623
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Internal Jenkins
Gerrit-Reviewer: Marcel Kornacker <mar...@cloudera.com>
Gerrit-Reviewer: Michael Ho
Gerrit-Reviewer: Michael Ho <k...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>