The intent is to make it easier to check for conditions where we want to maintain an accurate ONEMAPPING and do splits and coalescing. There are now more callsites that create non-anonymous mappings than there are anonymous. This head lead to a buggy proliferation of code that likely wants to set NOSPLIT but does not and which would probably benefit from OBJ_COLOR but does not set it. I changed the default flags for swap and default objects to be those suitable for non-anonymous mappings. I added a new function, vm_object_anonymous(), that is used for the few cases that do want anonymous mappings. I also could've eliminated NOSPLIT and replaced those with checks for ANONYMOUS but I have left it for now.
I am a little concerned about OBJT_DEAD vs OBJ_DEAD. It may be possible that the exact behavior with destruction races will change but I don't believe any of the code I changed yet is affected. It is just another complexity to evaluate if we convert more (type == default || type == swap) checks.
pho is testing this along with my other recent object locking work.