[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 --- Comment #4 from Martin Liška --- Created attachment 43071 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43071&action=edit IPA CP dump file before the revision
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 --- Comment #5 from Martin Liška --- Created attachment 43072 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43072&action=edit IPA CP dump file after the revision
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Martin Liška changed: What|Removed |Added CC||jamborm at gcc dot gnu.org --- Comment #6 from Martin Liška --- Difference is that a new specialized clone is created with the revision: --- /tmp/before/devirt-22.C.075i.cp 2018-01-09 13:30:36.973652893 +0100 +++ /tmp/after/devirt-22.C.075i.cp 2018-01-09 13:30:07.333100054 +0100 @@ -114,12 +114,12 @@ Node: void lookupSourceDone()/8: Node: void sort(C&, C&)/7: param [0]: VARIABLE - ctxs: Outer type:struct C offset 0 [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0] + ctxs: Outer type:struct C offset 0 [loc_time: 0, loc_size: 0, prop_time: 32, prop_size: 13] Bits: value = 0x0, mask = 0xfff8 ~[0, 0] ref offset 0: &MEM[(void *)&_ZTV1C + 16B] [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0] -param [1]: &b [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0] - ctxs: Outer type:struct C offset 0 [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0] +param [1]: &b [loc_time: 0, loc_size: 0, prop_time: 70, prop_size: 32] + ctxs: Outer type:struct C offset 0 [loc_time: 0, loc_size: 0, prop_time: 64, prop_size: 26] Bits: value = 0x0, mask = 0xfff8 ~[0, 0] AGGS VARIABLE @@ -156,6 +156,10 @@ replacing param #1 p1 with const 0 ipa-prop: Discovered a virtual call to a known target (operator[].constprop/21 -> virtual int C::m_fn1()/0), for stmt OBJ_TYPE_REF(_2;this_4(D)->0) (this_4(D)); Speculative call turned into direct call. + Creating a specialized node of A& C::operator[](int)/1. +replacing param #1 p1 with const 0 +ipa-prop: Discovered a virtual call to a known target (operator[].constprop/22 -> virtual int C::m_fn1()/0), for stmt OBJ_TYPE_REF(_2;this_4(D)->0) (this_4(D)); +Speculative call turned into direct call. Creating a specialized node of virtual int C::m_fn1()/0. replacing param #0 this with const &b - Creating a specialized node of virtual int C::m_fn1()/0 for all known contexts. Martin can you please take a look and adjust expected scan output?
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 --- Comment #7 from Martin Jambor --- We create an additional clone because the edge that brings the context now satisfies maybe_hot_p and previously it didn't. The reason is that the caller (which is called sort) now has frequency NODE_FREQUENCY_EXECUTED_ONCE whereas previously it was NODE_FREQUENCY_UNLIKELY_EXECUTED. sort in term is a static function called from an externally visible update_sources with frequency NODE_FREQUENCY_NORMAL and looks like: int *e; void update_sources() { if (e) { C f; sort(f, b); } } I am not sure I understand why this should mean that sort is only likely to be executed once but it does not seem to be any worse than the previous value. I'll prepare the patch adjusting the test.
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 --- Comment #8 from Jeffrey A. Law --- Author: law Date: Thu Jan 11 15:56:07 2018 New Revision: 256542 URL: https://gcc.gnu.org/viewcvs?rev=256542&root=gcc&view=rev Log: PR ipa/83178 * g++.dg/ipa/devirt-22.C: Adjust scan-dump-times count. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/ipa/devirt-22.C
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #9 from Jeffrey A. Law --- Fixed by Martin's patch on the trunk.
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Richard Biener changed: What|Removed |Added Target Milestone|--- |8.0
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Christophe Lyon changed: What|Removed |Added Target|x86_64-*-* |x86_64-*-* arm aarch64 CC||clyon at gcc dot gnu.org --- Comment #1 from Christophe Lyon --- Confirmed on arm and aarch64 as well.
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 seurer at gcc dot gnu.org changed: What|Removed |Added CC||seurer at gcc dot gnu.org --- Comment #2 from seurer at gcc dot gnu.org --- Also on powerpc64 both BE and LE.
[Bug ipa/83178] [8 regression] g++.dg/ipa/devirt-22.C fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83178 Ramana Radhakrishnan changed: What|Removed |Added Keywords||missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed||2017-12-12 CC||ramana at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Ramana Radhakrishnan --- Confirmed then.