-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DO NOT MERGE: Remove ineffective distribute-constants optimization #734
Conversation
Woah, I tried replacing it with NodeReduction and got errors, I had not considered just downright removing it. I think the reason there was a dedicated "move constants in" pass was to avoid buffers holding constant values being created, e.g. before thetas. Do we have any quick way of determining if this change has a drastic effect on the size of the HLS? |
I don't think we currently have any quick way of doing it. But I guess it wouldn't be difficult to count nodes and different types of nodes in the final graph and compare numbers. |
@haved Adding the NodeReduction before mem_sep_argument() causes an assert to be triggered similarly if it is placed before mem_queue(). I've not debugged these to find out what assumptions that break. |
The distributed-constants optimization has no effect on the cycle count for the hls test suite. So, it is being removed.
Replaced in the main pipeline defined in rvsdg2rhls.cpp, but unfortunately still part of the mem-conv.cpp. So the code has not been removed completely.
2dda309
to
d99c18e
Compare
@haved I was not able to eliminate the code completely, as the remove_unused_state() is also used in the mem_conv() pass, and simply replacing it there caused logical faults. |
|
|
@sjalander @phate
|
This commit removes code that is not necessary and replaced by InvariantValueRedirection.
|
|
The distributed-constants optimization has no effect on the cycle count for the hls test suite. So, it is being removed.