You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Daniel John Debrunner (JIRA)" <de...@db.apache.org> on 2006/02/03 21:13:33 UTC

[jira] Created: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Support 32bit branch offsets for conditional logic in generated code.
---------------------------------------------------------------------

         Key: DERBY-921
         URL: http://issues.apache.org/jira/browse/DERBY-921
     Project: Derby
        Type: Sub-task
  Components: Services, SQL  
    Reporter: Daniel John Debrunner
 Assigned to: Daniel John Debrunner 
    Priority: Minor
     Fix For: 10.2.0.0


Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.

The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
and the GOTO instruction.

This allow increasing the number of IN list values as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-921?page=all ]
     
Daniel John Debrunner closed DERBY-921:
---------------------------------------


> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>
>          Key: DERBY-921
>          URL: http://issues.apache.org/jira/browse/DERBY-921
>      Project: Derby
>         Type: Sub-task
>   Components: Services, SQL
>     Reporter: Daniel John Debrunner
>     Assignee: Daniel John Debrunner
>     Priority: Minor
>      Fix For: 10.2.0.0

>
> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of logical operators as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-921?page=all ]
     
Daniel John Debrunner resolved DERBY-921:
-----------------------------------------

    Resolution: Fixed

> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>
>          Key: DERBY-921
>          URL: http://issues.apache.org/jira/browse/DERBY-921
>      Project: Derby
>         Type: Sub-task
>   Components: Services, SQL
>     Reporter: Daniel John Debrunner
>     Assignee: Daniel John Debrunner
>     Priority: Minor
>      Fix For: 10.2.0.0

>
> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of logical operators as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-921?page=all ]

Daniel John Debrunner updated DERBY-921:
----------------------------------------

    Description: 
Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.

The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
and the GOTO instruction.

This allow increasing the number of logical operators as seen in the query in the largeCodeGen test.

  was:
Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.

The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
and the GOTO instruction.

This allow increasing the number of IN list values as seen in the query in the largeCodeGen test.


Spaced out on which query this was helping in large code gen.

> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>
>          Key: DERBY-921
>          URL: http://issues.apache.org/jira/browse/DERBY-921
>      Project: Derby
>         Type: Sub-task
>   Components: Services, SQL
>     Reporter: Daniel John Debrunner
>     Assignee: Daniel John Debrunner
>     Priority: Minor
>      Fix For: 10.2.0.0

>
> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of logical operators as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kathey Marsden updated DERBY-921:
---------------------------------

    Fix Version/s: 10.1.3.2

> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>
>                 Key: DERBY-921
>                 URL: https://issues.apache.org/jira/browse/DERBY-921
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Services, SQL
>            Reporter: Daniel John Debrunner
>            Assignee: Daniel John Debrunner
>            Priority: Minor
>             Fix For: 10.1.3.2, 10.2.1.6
>
>
> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of logical operators as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-921?page=comments#action_12365121 ] 

Daniel John Debrunner commented on DERBY-921:
---------------------------------------------

Basic solution is to turn 

if  X branch using big offset
then code

into

if  NOT X branch to T: (small fixed offset of +8)
GOTO_W big offset
T: then code

and change replace GOTO with GOTO_W when the offset is bigger than 32767.

Full details will be in the code comments for the Conditional class in the change





> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>
>          Key: DERBY-921
>          URL: http://issues.apache.org/jira/browse/DERBY-921
>      Project: Derby
>         Type: Sub-task
>   Components: Services, SQL
>     Reporter: Daniel John Debrunner
>     Assignee: Daniel John Debrunner
>     Priority: Minor
>      Fix For: 10.2.0.0

>
> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of IN list values as seen in the query in the largeCodeGen test.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira