OSDN Git Service

Parallel Move Resolver: Perform Stack/Stack first
authorMark Mendell <mark.p.mendell@intel.com>
Tue, 28 Jul 2015 21:26:55 +0000 (17:26 -0400)
committerMark Mendell <mark.p.mendell@intel.com>
Tue, 28 Jul 2015 21:26:55 +0000 (17:26 -0400)
commit6e18dcb5d2c35c646f2c95cb776abb79799f52ae
tree7db4912d4d10f465a162dc93be717526dbb075c4
parent595335100a947693b9af5fb6c0b5b3c1f0b91788
Parallel Move Resolver: Perform Stack/Stack first

On machines like x86, by the time other parallel moves are done, there
may be no free registers available to move/swap without having to save
and restore a register.

To avoid this, perform stack/stack first, while there is a good chance
that there is a destination register that we can use.  On the X86, this
avoids a lot of push eax/pop eax code.

Change-Id: I57076271b5672c931a93888ff23e30b2567f43b8
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
compiler/optimizing/parallel_move_resolver.cc