Open Aaron3154518 opened 3 years ago
Ran into bug where removing a producer-consumer dependency creates new instances of such dependencies. I haven't been able to account for all cases where this occurs yet. I've implemented a rough solution which just keeps calling the producer-consumer function until we stop removing statements.
In implementing this, I created a graph data structure using the Stmt object. This structure has some bugs: 1) When removing statements, it needs to remap specific read/write dataspaces around the deleted statement. We can't edit the Stmt's actual reads and writes though, just the graph representation of them. 2) We can't get read/write relation information which we need to determine whether or not to perform the compression.
I'll add more bugs here as I find them
Edit: fixed by #116, #117
Some dataspaces are written to and then only used once. These are unnecessary to display on the dot graph. We would like to remove these and have all reads used by that dataspace instead point that statement which reads from the dataspace.
Example:
foo = 45; bar = 65; baz = 85; foo = bar + 10; baz = foo + 10;
Normally we would display dependencies as follows:
bar -> foo, foo -> baz
Because foo is only read once, we would instead display:
bar -> baz