|
Size: 986
Comment:
|
← Revision 3 as of 2009-09-20 21:55:27 ⇥
Size: 988
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]] | <<BR>><<BR>> |
| Line 6: | Line 6: |
| [[BR]] | <<BR>> |
| Line 15: | Line 15: |
| [[BR]] | <<BR>> |
| Line 17: | Line 17: |
| [[BR]]the first one before a register allocator - to inline the conversions and provide more | <<BR>>the first one before a register allocator - to inline the conversions and provide more |
| Line 19: | Line 19: |
| [[BR]]And the second one - after the register allocator to improve the instructions selection. | <<BR>>And the second one - after the register allocator to improve the instructions selection. |
| Line 21: | Line 21: |
| implementation file: [http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32PeepHole.cpp?view=markup http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32PeepHole.cpp] | implementation file: [[http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32PeepHole.cpp?view=markup|http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32PeepHole.cpp]] |
'peephole' Performs various architecture specific per-Inst optimizations.
The transformation performs simple local (per-BB) or per-Inst optimizations
Some of them include:
1) Inlined F2I conversion
2) A better instructions selection:
Change 32bit immediate values to 8bit in ALU instructions
MOVSS/MOVSD replaced with MOVQ
MOVSS/MOVSD xmm, [memconst=0.] => PXOR xmm, xmm
It's recommended to have 2 passes of peephole:
the first one before a register allocator - to inline the conversions and provide more opportunities for further optimization.
And the second one - after the register allocator to improve the instructions selection.
implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32PeepHole.cpp