- '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