As desired mutations are trending towards groups of "patterns" of instructions, and more complex mutations are desired, it makes sense to allow finer grain specification of SchedGroups. Previously, SchedGroups could only be defined in terms of the classes of Instructions allowed in the SchedGroup. This introduces the "rule" framework which allows for specifying SchedGroups based on how they relate to other SchedGroups.
Rules allow for greater expression of SchedGroups, while simultaneously reducing the number of SchedGroups an SU can map to, making things easier for PipelineSolver.
Can you add an addrule function in SchedGroup so that we don't need to do this extra copying?