https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88677

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|hubicka at gcc dot gnu.org         |rguenther at suse dot de

--- Comment #13 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
So even with the patch for TYPE_NEEDS_CONSTRUCTING I get the following
difference in fre1 dump (and it is first one). I also use -fno-strict-aliasing
--- test.ii.033t.fre1   2019-02-10 13:27:45.531305878 +0100
+++ dd/test.ii.033t.fre1        2019-02-10 13:27:34.895310810 +0100
@@ -120,7 +120,7 @@
 n::p (struct n * const this)
 {
   int SR.3;
-  struct D D.2531;
+  struct D D.2527;
   struct D D.2507;
   unsigned int _1;

@@ -221,9 +221,9 @@
 marking outgoing edge 6 -> 8 executable
 Processing block 5: BB8
 Value numbering stmt = SR.9_27 = MEM[(struct D *)&m];
-Setting value number of SR.9_27 to SR.8_23 (changed)
+Setting value number of SR.9_27 to SR.9_27 (changed)
 marking outgoing edge 8 -> 9 executable
-Making available beyond BB8 SR.9_27 for value SR.8_23
+Making available beyond BB8 SR.9_27 for value SR.9_27
 Processing block 6: BB7
 Value numbering stmt = SR.9_26 = 0;
 RHS 0 simplified to 0
@@ -233,12 +233,11 @@
 Value numbering stmt = .MEM_14 = PHI <.MEM_6(7), .MEM_6(8)>
 Setting value number of .MEM_14 to .MEM_6 (changed)
 Value numbering stmt = SR.9_12 = PHI <SR.9_26(7), SR.9_27(8)>
-Marking CSEd to PHI node SR.8_11 = PHI <SR.8_2(3), SR.8_23(4)>
-Setting value number of SR.9_12 to SR.8_11 (changed)
-SR.8_11 is available for SR.8_11
+Setting value number of SR.9_12 to SR.9_12 (changed)
+Making available beyond BB9 SR.9_12 for value SR.9_12
 Value numbering stmt = MEM[(struct D *)&D.2498] = SR.9_12;
 No store match
-Value numbering store MEM[(struct D *)&D.2498] to SR.8_11
+Value numbering store MEM[(struct D *)&D.2498] to SR.9_12
 Setting value number of .MEM_18 to .MEM_18 (changed)
 Value numbering stmt = return;
 marking outgoing edge 9 -> 1 executable
@@ -252,9 +251,7 @@
 Value numbering stmt = <L1>:
 Value numbering stmt = resx 1
 RPO iteration over 10 blocks visited 10 blocks in total discovering 10
executable blocks iterating 1.0 times, a block was visited max. 1 times
-RPO tracked 2 values available at 3 locations and 17 lattice elements
-Replaced redundant PHI node defining SR.9_12 with SR.8_11
-Removing dead stmt SR.9_12 = PHI <0(7), SR.9_27(8)>
+RPO tracked 4 values available at 4 locations and 17 lattice elements
 Removing dead stmt SR.9_26 = 0;
 Removing dead stmt _10 = a_7(D);
 Removing dead stmt SR.7_24 = SR.8_11;
@@ -281,9 +278,9 @@
   int SR.8;
   int SR.7;
   unsigned int a;
-  struct D D.2547;
-  struct D D.2545;
-  struct D D.2544;
+  struct D D.2543;
+  struct D D.2541;
+  struct D D.2540;
   struct n a;
   struct D D.2498;
   struct D D.2497;
@@ -313,7 +310,8 @@
   SR.9_27 = MEM[(struct D *)&m];

   <bb 7> :
-  MEM[(struct D *)&D.2498] = SR.8_11;
+  # SR.9_12 = PHI <0(5), SR.9_27(6)>
+  MEM[(struct D *)&D.2498] = SR.9_12;
   return;

   <bb 8> :

Richi, do you have any idea what happens here? If needed I can analyze it
more...

Reply via email to