Differences between revisions 2 and 3
Revision 2 as of 2008-05-14 08:31:57
Size: 889
Comment:
Revision 3 as of 2009-09-20 21:54:55
Size: 891
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
[[BR]] <<BR>>
Line 4: Line 4:
[[BR]] <<BR>>
Line 6: Line 6:
[[BR]] <<BR>>
Line 17: Line 17:
implementation file: [http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp?view=markup http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp] implementation file: [[http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp?view=markup|http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp]]

'btr' LIR transformation replaces branch instructions with conditional CMOVcc or SETcc instructions
The algorithm takes one-pass over CFG.
The transformation allows to reduce count of branches and is recommended to be inserted before other LIR transformations

The algorithm works as follows:

     1)    Finds branch instruction which performs branch to basic blocks with
         only instructions MOV with the same def-operand.
 
     2)    If each of thus blocks has only one predecessor they and branch 
         instruction is replaced with conditional instruction

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp

Jitrino_OPT/btr (last edited 2009-09-20 21:54:55 by localhost)