Aditya Kishore created DRILL-1167:
-------------------------------------

             Summary: Split large runtime generated functions into a chain of 
functions
                 Key: DRILL-1167
                 URL: https://issues.apache.org/jira/browse/DRILL-1167
             Project: Apache Drill
          Issue Type: Sub-task
          Components: Execution - Codegen
    Affects Versions: 1.0.0-BETA1
            Reporter: Aditya Kishore
            Assignee: Aditya Kishore


Since a Java function can not grow beyond 64kb (of byte code), it would be 
useful to split such functions into multiple functions and invoke them as a 
chain.

For example, the following function
{code}
public boolean doEval() {
  //block 0:
  {
    ...
  }
...
  //block m-1:
  {
    ...
  }
  //block m:
  {
    ...
  }
...
  //block n:
  {
    ...
  }
  {
    return true;
  }
}
{code}

Can be re-written as:
{code}
public boolean doEval() {
  //block 0:
  {
    ...
  }
...
  //block m-1:
  {
    ...
  }
  return doEval0();
}

public boolean doEval0() {
  //block m:
  {
    ...
  }
...
  //block n:
  {
    ...
  }
  {
    return true;
  }
}
{code}




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to