What is the use of base fill after streaming out the gds in asics ?

Is it only to fill in the gaps where there is nothing placed, for eg. between the core and IO areas, or in the halo areas around macros ?

Or is something filled between the base layers of the already existing standard cells, macros etc ?