Open hiraditya opened 3 months ago
This is a follow up from the discussion in https://github.com/llvm/llvm-project/issues/77852#issuecomment-1890090879
Hey @hiraditya , I would like to take this issue up, as far as I understand it GVNSink uses it's own implimentation of lookupOrAdd and the complete value system is defined in GVNSink.cpp itself, on the other hand GVNHoist uses the implimentation in GVN.cpp, which I agree is a much more maintanable approach.
To solve this issue I would have to refactor all occurences of the implimentation of the value system by GVNSink and replace with calls to the GVN.cpp implimetations. Right?
If I understand this issue correctly could you assign it to me and I would get working on it. :)
PS : I am here after interacting with llvm-social bangalore group :)
After further analysis , I have observed the following .
How would you like me to proceed ?
GVNSink has a custom gvn code see: https://github.com/llvm/llvm-project/blob/93b47053c6bce5862ba4a5f7d9f6d5cbaa8cbf41/llvm/lib/Transforms/Scalar/GVNSink.cpp#L504 This is not maintainable, we can reuse the one from GVN similar to how GVNHoist does it https://llvm.org/doxygen/GVNHoist_8cpp_source.html#l00225.