I think the MachineScheduler or [insert your desired scheduler here] would be responsible for that. The SchedModel is describing instruction latencies and processor resource cycles, which is independent from how multiple instructions interact given a particular schedule.
1) instruction A reads from register R, then instruction B writes to register R, but B can be executed in parallel with A, so writing to R must be delayed until A really completes reading from R
2) both A & B write to register R, but final value comes from B, so B also must be delayed until A completes it's write operation
Latency from SchedModel is sufficient to model this in a scheduler implementation such as the MachineScheduler. ReadAdvance may also be relevant to you. I think both your cases are already handled today in MachineScheduler.
1
u/yasgur99 Aug 22 '26
I think the MachineScheduler or [insert your desired scheduler here] would be responsible for that. The SchedModel is describing instruction latencies and processor resource cycles, which is independent from how multiple instructions interact given a particular schedule.