Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
Impala 2.2
-
None
Description
Codegen IR and Status with automatic storage duration don't work well together. That's because Status has a destructor that needs to be executed if an exception is thrown, and so the IR will emit INVOKE instructions rather than CALL instructions (to unwind the stack). And our IR fixup to replace indirect calls with direct calls doesn't know how to deal with INVOKE.
We should fix this so that writing IR is simpler and more robust. Currently we work around this, for example, by passing Status down IR callstacks as a pointer to Status that lives as member in a heap allocated object (e.g. in partition join/agg code). Once this (and IMPALA-1916) are fixed, we should remove these workarounds.
Attachments
Issue Links
- is related to
-
IMPALA-3181 build most of impala with -fno-exceptions
- Resolved