[
https://issues.apache.org/jira/browse/IMPALA-6926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tim Armstrong updated IMPALA-6926:
----------------------------------
Priority: Major (was: Critical)
> Don't use CodegenOptLevel::None on debug builds
> -----------------------------------------------
>
> Key: IMPALA-6926
> URL: https://issues.apache.org/jira/browse/IMPALA-6926
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Affects Versions: Impala 2.12.0
> Reporter: Tim Armstrong
> Assignee: Joe McDonnell
> Priority: Major
> Labels: codegen
>
> This code adds some unnecessary divergence between the codegen'd code for
> debug and release builds.
> {code}
> #ifndef NDEBUG
> // For debug builds, don't generate JIT compiled optimized assembly.
> // This takes a non-neglible amount of time (~.5 ms per function) and
> // blows up the fe tests (which take ~10-20 ms each).
> opt_level = llvm::CodeGenOpt::None;
> #endif
> {code}
> Ideally LLVM will generate correct code in both cases (and we won't
> accidentally have undefined behaviour in our code that could be exploited),
> but that isn't always a safe assumption, e.g. IMPALA-6764. The above #ifdef
> doesn't the effort required to get coverage for correctness of codegen'd
> code, since we need to run the same test for debug and release builds. More
> specifically, the random query generator is usually run against debug builds
> so that it will be able to hit DCHECKs, but that means we're not verifying
> the correctness of the generated code for a release build.
> We should re-evaluate the above code. A few observations:
> * The frontend tests shouldn't be doing codegen - almost all expressions
> being evaluated should be interpreted. So the comment may not be accurate any
> more.
> * The backend tests like expr-test may take significantly longer. I did a
> quick experiment which seemed to indicate that it added a few minutes. We
> could potentially leave the optimisation disabled for backend tests only
> * Query tests could spend a bit longer in codegen. We would have to quantify
> it but it probably isn't too bad.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]