This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][4/n] Remove GENERIC stmt combining from SCCVN
- From: Jeff Law <law at redhat dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 13 Jul 2015 15:45:32 -0600
- Subject: Re: [PATCH][4/n] Remove GENERIC stmt combining from SCCVN
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1506251522320 dot 26650 at zhemvz dot fhfr dot qr> <alpine dot LSU dot 2 dot 11 dot 1506261118200 dot 26650 at zhemvz dot fhfr dot qr> <558DD3F5 dot 5010905 at redhat dot com> <alpine dot LSU dot 2 dot 11 dot 1506290937520 dot 26650 at zhemvz dot fhfr dot qr> <55A34CD1 dot 8010707 at redhat dot com> <alpine dot LSU dot 2 dot 11 dot 1507130950560 dot 9923 at zhemvz dot fhfr dot qr>
On 07/13/2015 01:55 AM, Richard Biener wrote:
I *think* these are closely enough related that some code can be factored out
a bit and reused in both r_e_f_i_e and r_t_e to discover both types of
equivalences for DOM and for jump threading.
Indeed - the odd thing here is that one function uses
const_and_copies->record_const_or_copy directly while the other one
record_equality (this function is _solely_ used by
record_equivalences_from_incoming_edge). I didn't want to introduce
a callback to commonize the code (though in principle we could use
a template function with a function template parameter...)
Funny you should mention that -- I poked at a bit at refactoring the
code last night, saw this issue and decided to sleep on it a bit as I
didn't want to introduce the callback either.
The code for handling the equivalency tables is in a bit of a state of
flux in preparation for handling 47679. That work got pushed down on
the stack. There's still untangling to do in this space.
That said, I don't see that record_equality does sth not suitable
if called from record_temporary_equivalences. So if we make
use of that function we could simply call record_temporary_equivalences
from record_equivalences_from_incoming_edge.
Agreed.
jeff