Hi, the source code for class preparation calls set_instance_data_size_constraint_bit() for three situations: special alignment requirement, having finalizer, and to be pinned. And the comments there say the constraint bit is for GC to understand.
But current GC actually doesn't care about this bit, and simply masks it off. Does anybody know what are the situations for the size constraint bit to be set for allocation? I recall this kind of constraint bit was ORP legacy, when the intention was for gc_alloc_fast to be really fast, avoiding any special allocation treatment. So once the big flag is set, gc_alloc_fast will simply return NULL, and the VM will invoke gc_alloc to accomplish the allocation. Now DRLVM has different processing, and the GC doesn't use the flag in size for allocation. I wonder what is the real purpose of this size flag in allocation. Thanks, xiaofeng