harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Harmony Wiki] Update of "Jitrino OPT/rce" by Mikhail Fursov
Date Thu, 08 May 2008 10:44:08 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.

The following page has been changed by Mikhail Fursov:
http://wiki.apache.org/harmony/Jitrino_OPT/rce

New page:
''' 'rce' ''' transformation performs removing comparisons following instructions which affected
flags in the same way as CMP. In some cases instructions can be reordered for resolving comparison
as available for removing
[[BR]]
The algorithm takes one-pass over CFG.
[[BR]]
[[BR]]
This transformer ensures that
[[BR]]
    {{{1)}}} All conditional instructions get the same EFLAGS value as before transformation
[[BR]]
    {{{2)}}} All reordered instructions do the same effects as before transformation
[[BR]]
    For example:
[[BR]]
    Original code piece:
{{{
       I29: t50.:int32 (ID:v15(EFLGS):uint32) =AND .t28:int32,t49(1):int32 
       I30: (AD:v1:int32)  = CopyPseudoInst (AU:t48:int32) 
       I31: (AD:v2:int32)  = CopyPseudoInst (AU:t25:int32) 
       I32: (AD:v3:int8[]) = CopyPseudoInst (AU:t38:int8[]) 
       I33: (ID:v15(EFLGS):uint32) = CMP .t50:int32,t51(0):int32 
       I34: JNZ BB_12 t52(0):intptr (IU:v15(EFLGS):uint32) 
 }}}


   After optimization:
{{{
       I29: t50:int32 (ID:v15(EFLGS):uint32) =AND .t28:int32,t49(1):int32 
       I30: (AD:v1:int32)  = CopyPseudoInst (AU:t48:int32) 
       I31: (AD:v2:int32)  = CopyPseudoInst (AU:t25:int32) 
       I32: (AD:v3:int8[]) = CopyPseudoInst (AU:t38:int8[]) 
       I34: JNZ BB_12 t52(0):intptr (IU:v15(EFLGS):uint32) 
}}}
 
   The implementation of this transformer is located in Ia32RCE.cpp
 

Mime
View raw message