Optimise scavenge_large_srt_bitmap
Optimise scavenge_large_srt_bitmap

Very large modules can sometimes contain very large SRT bitmaps (this
is a separate problem that I need to look into).  The large bitmaps
often contain a lot of zeros, so this patch skips over empty words in
the bitmap.

It makes a dramatic difference in the particular example that I saw,
where an old gen GC was taking 0.5s before this change and 0.07s after
it.

ghc-android/ghc,christiaanb/ghc,siddhanathan/ghc,da-x/ghc,gridaphobe/ghc,wxwxwwxxx/ghc,nkaretnikov/ghc,AlexanderPankiv/ghc,oldmanmike/ghc,GaloisInc/halvm-ghc,mcschroeder/ghc,elieux/ghc,tjakway/ghcjvm,anton-dessiatov/ghc,vikraman/ghc,snoyberg/ghc,fmthoma/ghc,urbanslug/ghc,vTurbine/ghc,sgillespie/ghc,gridaphobe/ghc,mettekou/ghc,nushio3/ghc,sdiehl/ghc,AlexanderPankiv/ghc,da-x/ghc,gcampax/ghc,mcschroeder/ghc,ghc-android/ghc,nushio3/ghc,olsner/ghc,TomMD/ghc,nkaretnikov/ghc,fmthoma/ghc,shlevy/ghc,tjakway/ghcjvm,anton-dessiatov/ghc,gcampax/ghc,elieux/ghc,mettekou/ghc,ezyang/ghc,mfine/ghc,green-haskell/ghc,ml9951/ghc,gcampax/ghc,elieux/ghc,vTurbine/ghc,gridaphobe/ghc,siddhanathan/ghc,gridaphobe/ghc,gcampax/ghc,sgillespie/ghc,GaloisInc/halvm-ghc,ml9951/ghc,wxwxwwxxx/ghc,christiaanb/ghc,shlevy/ghc,ml9951/ghc,sgillespie/ghc,ghc-android/ghc,anton-dessiatov/ghc,mfine/ghc,sdiehl/ghc,acowley/ghc,GaloisInc/halvm-ghc,christiaanb/ghc,nkaretnikov/ghc,urbanslug/ghc,ghc-android/ghc,snoyberg/ghc,TomMD/ghc,mettekou/ghc,anton-dessiatov/ghc,acowley/ghc,nushio3/ghc,vTurbine/ghc,gcampax/ghc,AlexanderPankiv/ghc,fmthoma/ghc,mettekou/ghc,tjakway/ghcjvm,sgillespie/ghc,TomMD/ghc,sgillespie/ghc,acowley/ghc,AlexanderPankiv/ghc,mettekou/ghc,vTurbine/ghc,tjakway/ghcjvm,nushio3/ghc,olsner/ghc,vikraman/ghc,ezyang/ghc,mcschroeder/ghc,olsner/ghc,AlexanderPankiv/ghc,fmthoma/ghc,olsner/ghc,TomMD/ghc,GaloisInc/halvm-ghc,vTurbine/ghc,nushio3/ghc,mcschroeder/ghc,tjakway/ghcjvm,fmthoma/ghc,oldmanmike/ghc,mcschroeder/ghc,shlevy/ghc,siddhanathan/ghc,christiaanb/ghc,gridaphobe/ghc,wxwxwwxxx/ghc,tjakway/ghcjvm,ghc-android/ghc,gcampax/ghc,mcschroeder/ghc,shlevy/ghc,wxwxwwxxx/ghc,urbanslug/ghc,oldmanmike/ghc,elieux/ghc,mfine/ghc,wxwxwwxxx/ghc,ml9951/ghc,gcampax/ghc,snoyberg/ghc,vikraman/ghc,green-haskell/ghc,siddhanathan/ghc,vikraman/ghc,oldmanmike/ghc,tjakway/ghcjvm,vTurbine/ghc,vikraman/ghc,nkaretnikov/ghc,sgillespie/ghc,mettekou/ghc,acowley/ghc,ml9951/ghc,elieux/ghc,wxwxwwxxx/ghc,ghc-android/ghc,urbanslug/ghc,sgillespie/ghc,da-x/ghc,vikraman/ghc,GaloisInc/halvm-ghc,elieux/ghc,sdiehl/ghc,TomMD/ghc,fmthoma/ghc,mettekou/ghc,olsner/ghc,ghc-android/ghc,green-haskell/ghc,green-haskell/ghc,green-haskell/ghc,mfine/ghc,da-x/ghc,acowley/ghc,snoyberg/ghc,siddhanathan/ghc,wxwxwwxxx/ghc,sdiehl/ghc,nkaretnikov/ghc,urbanslug/ghc,oldmanmike/ghc,ml9951/ghc,da-x/ghc,siddhanathan/ghc,GaloisInc/halvm-ghc,urbanslug/ghc,snoyberg/ghc,anton-dessiatov/ghc,mfine/ghc,nushio3/ghc,nushio3/ghc,olsner/ghc,oldmanmike/ghc,acowley/ghc,AlexanderPankiv/ghc,mfine/ghc,mcschroeder/ghc,anton-dessiatov/ghc,snoyberg/ghc,mfine/ghc,ezyang/ghc,acowley/ghc,snoyberg/ghc,fmthoma/ghc,christiaanb/ghc,christiaanb/ghc,ml9951/ghc,da-x/ghc,da-x/ghc,vikraman/ghc,TomMD/ghc,gridaphobe/ghc,shlevy/ghc,nkaretnikov/ghc,anton-dessiatov/ghc,siddhanathan/ghc,ezyang/ghc,sdiehl/ghc,gridaphobe/ghc,shlevy/ghc,vTurbine/ghc,GaloisInc/halvm-ghc,oldmanmike/ghc,ezyang/ghc,christiaanb/ghc,shlevy/ghc,olsner/ghc,nkaretnikov/ghc,sdiehl/ghc,sdiehl/ghc,ezyang/ghc,elieux/ghc,ezyang/ghc,AlexanderPankiv/ghc,TomMD/ghc,ml9951/ghc,urbanslug/ghc