harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaoming Gu (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-5992) [drlvm][jit] Redundant register load & store in loop nest on IA32
Date Wed, 08 Oct 2008 02:29:46 GMT
[drlvm][jit] Redundant register load & store in loop nest on IA32

                 Key: HARMONY-5992
                 URL: https://issues.apache.org/jira/browse/HARMONY-5992
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
            Reporter: Xiaoming Gu

There are two choices for Register Allocation (RA) in Harmony - Bin Packing (BP) and Coloring
Graph (CG). The first is light-weight and the unique choice in client execution modes. The
latter is heavy-weight and only selected for a function without too many operands in server
execution modes.

Even with CG, the following source code generates low-quality binary code.

------source code------
for(int i=0;i<times;i++)
    result = result*(-8);

-------binary code for "result = result*(-8);"------
MOV s54(EBP):I_32,v527[v513(ESP)+t526(-28)]:I_32    =>redundant load
MOV t197(EBX):I_32,t53(-8):I_32 
(ID:s16(EFLGS):U_32) =IMUL s54(EBP):I_32,t197(EBX):I_32 
MOV v527[v513(ESP)+t526(-28)]:I_32,s54(EBP):I_32    =>redundant store
MOV s56(EBP):I_32,v529[v513(ESP)+t528(-32)]:I_32    =>redundant load
(ID:s16(EFLGS):U_32) =ADD s56(EBP):I_32,t55(1):I_32 
MOV v529[v513(ESP)+t528(-32)]:I_32,s56(EBP):I_32    =>redundant store

It's better to move the load and store operations out of loop by improving RA.

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

View raw message