Currently, SchedBoundary::checkHazard() checks if an instruction begins or ends a group and if its micro-ops fits in the current group and may decide to put SU into Pending instead of Available based on this.
These are exact checks, but since so many things can happen with the code between pre-RA scheduling and final output, it seems far-fetched to put a priority pre-RA on this. It seems better to let such an instruction into Available and pick it if it e.g. helps with register pressure, and trust that post-RA scheduling will fix the grouping (which it most likely has to do anyway).
This patch introduces a new member SchedBoundary::IsPostRA and uses this to only do these checks post regalloc.
I also removed a TODO comment which seems already done.
This will be committed along with SystemZ changes soon, hopefully.
Probably the comment here needs updating if we are going to change behaviour.
There is another problem -
"Single Issue " relies on BeginGroup/EndGroup and that is not just PostRA related.