I've provided a large amount of feedback on prior iterations of this, and would like to see it addressed.
Most important: I'm still worried that anyone changing IR can introduce miscompiles in function merging because the optimization doesn't know about the new IR properties. This has happened before and will happen again.
I'd also much rather see incremental changes to the existing code than another way to do function merging, with no plan to de-duplicate.
I also had comments on some of the original patches. I see some emails about this as a GSoC project, but is there a description of the planned work somewhere?
The title of this new patch should mention MergeSimilarFunctions and list the original patches in the summary. When you say they are merged into LLVM trunk, I assume you mean they are being rebased with trunk?
This is only for preliminary assignment for the student to get some idea of the project. We'll most likely restart with suggestions from the original patch and the mailing list. Please ignore this patch for now. Sorry for introducing noise.