A transformation to split a global struct object.
This transformation targets a global struct object, i.e. a file-scope (i.e. top-level) object (i.e. a global variable), that has a struct type. The transformation splits it into two objects, of two new struct types, each with a subset of the original struct members, which are divided between the two new struct types (and objects). References to (members of) the original object are replaced with references to one or the other object.
Currently this transformation operates on a single translation unit.