Hello. It's going to be almost a year Richard advised me to utilize IPA ICF infrastructure in tree-ssa-tail-merge, currently using value numbering which is quite hard to maintain. Following small patch set is kick-off and I am opened for advices. Meanwhile, I'm going to send statistics about merged basic blocks before/after the patch set.
Patch set can bootstrap on x86_64-linux-pc and survives regression tests. Thanks, Martin mliska (3): tree-ssa-tail-merge: add IPA ICF infrastructure. Fully remove legacy tree-ssa-tail-merge value numbering infrastructure. Fix ubsan tests by disabling of an optimization. gcc/dbgcnt.def | 1 + gcc/ipa-icf-gimple.c | 272 ++++++++++++++++++++++++++++++++---- gcc/ipa-icf-gimple.h | 78 ++++++++++- gcc/ipa-icf.c | 67 +-------- gcc/ipa-icf.h | 14 +- gcc/testsuite/g++.dg/ubsan/vptr-1.C | 2 +- gcc/testsuite/g++.dg/ubsan/vptr-2.C | 2 +- gcc/testsuite/g++.dg/ubsan/vptr-3.C | 2 +- gcc/tree-ssa-tail-merge.c | 212 ++++++---------------------- 9 files changed, 377 insertions(+), 273 deletions(-) -- 2.4.5