In preparation for an upcoming commit (D28786) that will make
ExecutionDepsFix more agressive about inserting dependency breaking instructions,
teach ExecutionDepsFix to be smarter about inserting these instructions.
There are two aspects to this:
- Recognize dependency breaking instructions and if there already is such an instruction, simply re-use it, rather than inserting a new one.
- For undef reads, which register is used does not matter. Thus, if there is many such reads in close succession, we only need to insert one dependency breaking instruction for many such reads.
Note: This revision depends on D28759
Why not make it return true/false (true dependency) instead of void?