Doing the cleanup at the end of BB could ensure all the groups
inserted for macrofusion will be cleaned. For groups not at the end of
a block, no matter whether they are cleaned up or not, nothing will
happen because other passes will not mess up those groups -- you said
cc0-setter/cc0-user was such a case. Is it call group a different
case?
True, it would be safe, but it seems inconsistent and confusing that
some SCHED_GROUP_P references would be purged and others remain.
Given SCHED_GROUP_P is to used strictly in the scheduler ISTM that we
should be wiping it as we leave and that our RTL checkers ought to be
verifying there are no insns with SCHED_GROUP_P left on.
For sched1 and sched2, we can do that. Actually, I find it has been
done in move_insn when commit_schedule. But for modulo scheduling, I
havn't found a good place to do it.
Well, that's where I'd suggest focusing attention.
jeff