Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-1948

Fix automatic storage Status and codegen

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • Impala 2.2
    • None
    • Backend

    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

          Activity

            People

              Unassigned Unassigned
              dhecht Daniel Hecht
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: