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.


Mime
View raw message