Thanks, Feng ________________________________________ From: Tamar Christina <tamar.christ...@arm.com> Sent: Monday, February 17, 2020 4:44 PM To: Feng Xue OS; Martin Jambor; Jan Hubicka; gcc-patches@gcc.gnu.org Cc: nd Subject: RE: [PATCH] Fix bug in recursiveness check for function to be cloned (ipa/pr93707)
Hi Feng, Thanks! The patch seems to work. Hopefully it gets reviewed soon so we can fix the two benchmarks 😊 Thanks, Tamar > -----Original Message----- > From: Feng Xue OS <f...@os.amperecomputing.com> > Sent: Thursday, February 13, 2020 05:40 > To: Tamar Christina <tamar.christ...@arm.com>; Martin Jambor > <mjam...@suse.cz>; Jan Hubicka <hubi...@ucw.cz>; gcc- > patc...@gcc.gnu.org > Cc: nd <n...@arm.com> > Subject: [PATCH] Fix bug in recursiveness check for function to be cloned > (ipa/pr93707) > > I've submitted a bug tracker, > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93707. > > The root cause is that for a self-recursive function, a for-all-contexts clone > could generate an edge whose callee is not the function. Therefore, to check > whether an edge stands for a recursive call during cloning, we should not use > ordinary way of comparing caller and callee of the edge. > > Bootstrapped/regtested on x86_64-linux and aarch64-linux, and also tested > Spec 2017 with option "--param ipa-cp-eval-threshold=1". > > Feng > --- > 2020-02-13 Feng Xue <f...@os.amperecomputing.com> > > PR ipa/93707 > * ipa-cp.c (self_recursive_pass_through_p): Add a new parameter > "node", > and check recursiveness by comparing "node" and cs->caller. > (self_recursive_agg_pass_through_p): Likewise. > (find_more_scalar_values_for_callers_subset): Add "node" argument to > self_recursive_pass_through_p call. > (intersect_aggregates_with_edge): Add a new parameter "node", and > add > "node" argument to self_cursive_agg_pass_through_p call. > (find_aggregate_values_for_callers_subset): Add "node" argument to > self_recursive_pass_through_p and intersect_aggregates_with_edge > calls. > (cgraph_edge_brings_all_agg_vals_for_node): Add "node" argument to > intersect_aggregates_with_edge call. > > > ________________________________________ > > From: gcc-patches-ow...@gcc.gnu.org <gcc-patches-ow...@gcc.gnu.org> > on > > behalf of Tamar Christina <tamar.christ...@arm.com> > > Sent: Tuesday, February 11, 2020 6:05 PM > > To: Feng Xue OS; Martin Jambor; Jan Hubicka; gcc-patches@gcc.gnu.org > > Cc: nd > > Subject: RE: [PATCH V2] Generalized value pass-through for > > self-recursive function (ipa/pr93203) > > > > Hi Feng, > > > > This patch (commit a0f6a8cb414b687f22c9011a894d5e8e398c4be0) is > > causing ICEs in the GCC and perlbench benchmark in Spec2017. > > > > during IPA pass: cp > > lto1: internal compiler error: in > > find_more_scalar_values_for_callers_subset, > > at ipa-cp.c:4709 > > 0x1698187 find_more_scalar_values_for_callers_subset > > ../.././gcc/ipa-cp.c:4709 > > 0x169f7d3 decide_about_value<tree_node*> > > ../.././gcc/ipa-cp.c:5490 > > 0x169fdc3 decide_whether_version_node > > ../.././gcc/ipa-cp.c:5537 > > 0x169fdc3 ipcp_decision_stage > > ../.././gcc/ipa-cp.c:5718 > > 0x169fdc3 ipcp_driver > > ../.././gcc/ipa-cp.c:5901 > > Please submit a full bug report, > > > > Thanks, > > Tamar > >