-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/02/11 10:40, Michael Matz wrote: > Hi, > > On Fri, 2 Dec 2011, William J. Schmidt wrote: > >> It seems like a fair amount of rip-up to avoid keeping the PHI >> state around between blocks, so I just check to ensure the PHI >> definitions occur in the same block before recording their >> equivalence. > > Then you should at least mix the BB number into the hash value (and > possibly also check it already in hashable_expr_equal_p) in order > to reduce number of collissions. > > But I wonder why it's not enough to just do a push/pop sequence on > avail_exprs_stack around your new PHI processing in > dom_opt_enter_block, ala > > + VEC_safe_push (expr_hash_elt_t, heap, avail_exprs_stack, NULL); > /* Create equivalences from redundant PHIs. */ for (gsi = > gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) > eliminate_redundant_computations (&gsi); + > remove_local_expressions_from_table (); > > on top of your current version. That ought to remove the added PHI > expressions (and only them) from the hash table but retain the > information of equality in the const_or_copies_stack. Checking the > BB wouldn't be required then. Sorry, I haven't been following this thread and there isn't much discussion about what problem we're trying to solve using DOM within the PR.
I see a mention of creating equivalences for redundant PHIs? Are we just trying to determine that two PHIs are going to result in the same value? jeff -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJO2RB6AAoJEBRtltQi2kC7niIIAJDgImG8IWhtIDjF7t7blUNj uR8KCppurbvTkHgfuCSrn4hLRdRa14vZrY/FvP7pCaRmQ5KPBghu1IumXujVvb2i bLtwZBggjox9mVnUjv5CizURAwJcmvPhJE5axTpEACrafzI+AuADNW8qQwO2MQmF Ay3EXEPh27DbQi4E7IiytWQpuBsmFprh6Xu7nzW7YaK8zOGuGOEVdK5kDrZRPhLk etq2AY4OISwClyXZHGhPqCsC4haxo80F8qzRVJ2c2EbxEMTu45CNm4fRNutR/pA4 Ly/d0WKs1YF4yTjMSEL6w5VTIFQNk1RyDAyh1OA/M01UAMWP8BHdr9tw01s4Bws= =4X0z -----END PGP SIGNATURE-----