[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #10 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:05107d4e4ccd11ecc8712d6e271fcb4b5f17060f commit r10-6226-g05107d4e4ccd11ecc8712d6e271fcb4b5f17060f Author: Jakub Jelinek Date: Sun Jan 26 00:47:18 2020 +0100 testsuite: Fix up pr93166.C test, so that it doesn't FAIL with -std=c++98 and tests what it is supposed to test. 2020-01-26 Jakub Jelinek PR ipa/93166 * g++.dg/pr93166.C: Move to ... * g++.dg/pr93166_0.C: ... here. Turn it into a proper lto test.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #9 from Jeffrey A. Law --- Should be fixed by Feng's patch on the trunk.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #8 from CVS Commits --- The master branch has been updated by Feng Xue : https://gcc.gnu.org/g:98dd8c97e44ee8134cecf681045b715a8a73c7cd commit r10-6222-g98dd8c97e44ee8134cecf681045b715a8a73c7cd Author: Feng Xue Date: Sun Jan 19 15:49:44 2020 +0800 Remove assertion in get_info_about_necessary_edges 2020-01-25 Feng Xue PR ipa/93166 * ipa-cp.c (get_info_about_necessary_edges): Remove value check assertion. PR ipa/93166 * g++.dg/pr93166.C: New test.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #7 from fxue at gcc dot gnu.org --- (In reply to Jeffrey A. Law from comment #6) > I've got state, so I'll take this as well. Here is a patch at https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00068.html, waiting for review from someone.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 Jeffrey A. Law changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |law at redhat dot com --- Comment #6 from Jeffrey A. Law --- I've got state, so I'll take this as well.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #5 from fxue at gcc dot gnu.org --- To add a specialized class for tree lattices is a way, but will complicate the code. We can simple remove the assertion. And a one-file test case was made from original files.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #4 from fxue at gcc dot gnu.org --- Created attachment 47676 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47676=edit all-in-one test case
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #3 from fxue at gcc dot gnu.org --- (In reply to Martin Jambor from comment #2) > I have analyzed this ICE and came to the conclusion that the assert is > wrong for polymorphic context lattices - e.g. in the reported case we > always pass the same class to first parameter, which in the recursive > call then serves as a basis to ancestor JF for the second parameter. > > When propagating polymorphic contexts within SCCs we allow creating > new values because for any sane input their number will be limited by > class hierarchy (and potential insane input limited by > param_ipa_cp_value_list_size). I think that is OK too. > > So we can either simply remove the assert or make it active only for > tree lattices. At the moment I'd prefer the former, but Feng, if this > assert proved valuable in development the recursive function > versioning patch, I'll be happy to keep it. What do you think? Sorry for late response due to trip. I'll check it.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 --- Comment #2 from Martin Jambor --- I have analyzed this ICE and came to the conclusion that the assert is wrong for polymorphic context lattices - e.g. in the reported case we always pass the same class to first parameter, which in the recursive call then serves as a basis to ancestor JF for the second parameter. When propagating polymorphic contexts within SCCs we allow creating new values because for any sane input their number will be limited by class hierarchy (and potential insane input limited by param_ipa_cp_value_list_size). I think that is OK too. So we can either simply remove the assert or make it active only for tree lattices. At the moment I'd prefer the former, but Feng, if this assert proved valuable in development the recursive function versioning patch, I'll be happy to keep it. What do you think?
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 Jeffrey A. Law changed: What|Removed |Added CC||law at redhat dot com --- Comment #1 from Jeffrey A. Law --- Just to pile on, I'm seeing this as well in the code-editor package builds.
[Bug lto/93166] [10 Regression] ICE in get_info_about_necessary_edges, at ipa-cp.c:4137 since r278893
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93166 Martin Liška changed: What|Removed |Added Priority|P3 |P1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-01-06 CC||hubicka at gcc dot gnu.org, ||jamborm at gcc dot gnu.org Known to work||9.2.0 Target Milestone|--- |10.0 Ever confirmed|0 |1 Known to fail||10.0