NCG: Really avoid the need for memory-to-memory moves in the register allocator
NCG: Really avoid the need for memory-to-memory moves in the register allocator

This is a follow-up to "NCG: Handle loops in register allocator".
The newly-introduced invariant that every virtual register is always assigned to
the same spill slot wasn't kept under all circumstances.
*Now* memory-to-memory moves should never be required when compiling hand-written
cmm code.

tibbe/ghc,mettekou/ghc,jstolarek/ghc,green-haskell/ghc,TomMD/ghc,vikraman/ghc,nkaretnikov/ghc,siddhanathan/ghc,urbanslug/ghc,TomMD/ghc,anton-dessiatov/ghc,tjakway/ghcjvm,ghc-android/ghc,mfine/ghc,forked-upstream-packages-for-ghcjs/ghc,christiaanb/ghc,lukexi/ghc,spacekitteh/smcghc,sgillespie/ghc,elieux/ghc,nkaretnikov/ghc,vTurbine/ghc,bitemyapp/ghc,acowley/ghc,gcampax/ghc,bitemyapp/ghc,TomMD/ghc,oldmanmike/ghc,snoyberg/ghc,nushio3/ghc,lukexi/ghc-7.8-arm64,hferreiro/replay,ezyang/ghc,oldmanmike/ghc,olsner/ghc,da-x/ghc,christiaanb/ghc,elieux/ghc,ml9951/ghc,ekmett/ghc,fmthoma/ghc,hferreiro/replay,nathyong/microghc-ghc,ghc-android/ghc,elieux/ghc,vTurbine/ghc,siddhanathan/ghc,sgillespie/ghc,ml9951/ghc,ilyasergey/GHC-XAppFix,ryantm/ghc,nushio3/ghc,ryantm/ghc,christiaanb/ghc,snoyberg/ghc,tjakway/ghcjvm,TomMD/ghc,da-x/ghc,bitemyapp/ghc,mcmaniac/ghc,da-x/ghc,lukexi/ghc-7.8-arm64,acowley/ghc,ghc-android/ghc,GaloisInc/halvm-ghc,shlevy/ghc,bitemyapp/ghc,nushio3/ghc,sdiehl/ghc,lukexi/ghc,mettekou/ghc,snoyberg/ghc,sgillespie/ghc,sgillespie/ghc,forked-upstream-packages-for-ghcjs/ghc,wxwxwwxxx/ghc,nomeata/ghc,jstolarek/ghc,mcmaniac/ghc,ilyasergey/GHC-XAppFix,mfine/ghc,holzensp/ghc,TomMD/ghc,anton-dessiatov/ghc,TomMD/ghc,oldmanmike/ghc,lukexi/ghc,vikraman/ghc,ekmett/ghc,vTurbine/ghc,olsner/ghc,holzensp/ghc,gridaphobe/ghc,acowley/ghc,mcmaniac/ghc,olsner/ghc,mcschroeder/ghc,forked-upstream-packages-for-ghcjs/ghc,elieux/ghc,holzensp/ghc,tibbe/ghc,tjakway/ghcjvm,nkaretnikov/ghc,AlexanderPankiv/ghc,siddhanathan/ghc,mcschroeder/ghc,mcschroeder/ghc,AlexanderPankiv/ghc,sdiehl/ghc,nathyong/microghc-ghc,ml9951/ghc,gridaphobe/ghc,jstolarek/ghc,urbanslug/ghc,spacekitteh/smcghc,olsner/ghc,ekmett/ghc,gridaphobe/ghc,frantisekfarka/ghc-dsi,da-x/ghc,sdiehl/ghc,fmthoma/ghc,gridaphobe/ghc,vikraman/ghc,GaloisInc/halvm-ghc,olsner/ghc,fmthoma/ghc,mettekou/ghc,urbanslug/ghc,vikraman/ghc,gcampax/ghc,mfine/ghc,tjakway/ghcjvm,ml9951/ghc,oldmanmike/ghc,nathyong/microghc-ghc,anton-dessiatov/ghc,oldmanmike/ghc,mcmaniac/ghc,mcmaniac/ghc,acowley/ghc,AlexanderPankiv/ghc,nushio3/ghc,urbanslug/ghc,tjakway/ghcjvm,acowley/ghc,holzensp/ghc,GaloisInc/halvm-ghc,ml9951/ghc,hferreiro/replay,forked-upstream-packages-for-ghcjs/ghc,ryantm/ghc,nkaretnikov/ghc,nathyong/microghc-ghc,siddhanathan/ghc,ezyang/ghc,shlevy/ghc,mcschroeder/ghc,wxwxwwxxx/ghc,ilyasergey/GHC-XAppFix,gridaphobe/ghc,wxwxwwxxx/ghc,snoyberg/ghc,sdiehl/ghc,spacekitteh/smcghc,mfine/ghc,gcampax/ghc,AlexanderPankiv/ghc,vTurbine/ghc,tibbe/ghc,urbanslug/ghc,shlevy/ghc,gridaphobe/ghc,vikraman/ghc,AlexanderPankiv/ghc,anton-dessiatov/ghc,ezyang/ghc,lukexi/ghc,da-x/ghc,mcschroeder/ghc,ryantm/ghc,ezyang/ghc,gcampax/ghc,mettekou/ghc,ghc-android/ghc,christiaanb/ghc,nathyong/microghc-ghc,tjakway/ghcjvm,ml9951/ghc,hferreiro/replay,siddhanathan/ghc,frantisekfarka/ghc-dsi,olsner/ghc,mfine/ghc,sgillespie/ghc,spacekitteh/smcghc,sgillespie/ghc,tibbe/ghc,christiaanb/ghc,fmthoma/ghc,elieux/ghc,shlevy/ghc,ezyang/ghc,wxwxwwxxx/ghc,shlevy/ghc,AlexanderPankiv/ghc,da-x/ghc,mettekou/ghc,siddhanathan/ghc,snoyberg/ghc,GaloisInc/halvm-ghc,lukexi/ghc-7.8-arm64,nomeata/ghc,urbanslug/ghc,jstolarek/ghc,vikraman/ghc,nathyong/microghc-ghc,nathyong/microghc-ghc,hferreiro/replay,ezyang/ghc,mfine/ghc,GaloisInc/halvm-ghc,ghc-android/ghc,siddhanathan/ghc,anton-dessiatov/ghc,shlevy/ghc,ml9951/ghc,hferreiro/replay,anton-dessiatov/ghc,frantisekfarka/ghc-dsi,vTurbine/ghc,frantisekfarka/ghc-dsi,frantisekfarka/ghc-dsi,tjakway/ghcjvm,forked-upstream-packages-for-ghcjs/ghc,fmthoma/ghc,fmthoma/ghc,gcampax/ghc,lukexi/ghc-7.8-arm64,shlevy/ghc,TomMD/ghc,snoyberg/ghc,christiaanb/ghc,mcschroeder/ghc,hferreiro/replay,GaloisInc/halvm-ghc,nushio3/ghc,wxwxwwxxx/ghc,oldmanmike/ghc,snoyberg/ghc,gridaphobe/ghc,gcampax/ghc,ghc-android/ghc,olsner/ghc,mfine/ghc,mcschroeder/ghc,elieux/ghc,nomeata/ghc,nushio3/ghc,lukexi/ghc,nomeata/ghc,nkaretnikov/ghc,forked-upstream-packages-for-ghcjs/ghc,fmthoma/ghc,mettekou/ghc,nomeata/ghc,urbanslug/ghc,spacekitteh/smcghc,nushio3/ghc,wxwxwwxxx/ghc,nkaretnikov/ghc,bitemyapp/ghc,acowley/ghc,ml9951/ghc,jstolarek/ghc,vTurbine/ghc,mettekou/ghc,christiaanb/ghc,AlexanderPankiv/ghc,ekmett/ghc,ryantm/ghc,green-haskell/ghc,oldmanmike/ghc,nkaretnikov/ghc,vTurbine/ghc,ekmett/ghc,da-x/ghc,acowley/ghc,wxwxwwxxx/ghc,forked-upstream-packages-for-ghcjs/ghc,sgillespie/ghc,anton-dessiatov/ghc,holzensp/ghc,vikraman/ghc,elieux/ghc,sdiehl/ghc,lukexi/ghc-7.8-arm64,sdiehl/ghc,ilyasergey/GHC-XAppFix,GaloisInc/halvm-ghc,green-haskell/ghc,tibbe/ghc,green-haskell/ghc,gcampax/ghc,green-haskell/ghc,ghc-android/ghc,ezyang/ghc,sdiehl/ghc