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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Between r266170 and r266171 the difference was in veclower21 dump with -O3:
--- transfer_intrinsic_3.f90.168t.veclower21_   2019-01-18 16:34:47.478873237
+0100
+++ transfer_intrinsic_3.f90.168t.veclower21    2019-01-18 16:35:09.503515118
+0100
@@ -370,14 +370,7 @@ main (integer(kind=4) argc, character(ki
   __builtin_free (_27);
   parm.10 ={v} {CLOBBER};
   ivtmp.52_75 = ivtmp.52_82 + 1;
-  if (ivtmp.52_75 == 3)
-    goto <bb 19>; [12.36%]
-  else
-    goto <bb 5>; [87.64%]
-
-  <bb 19> [local count: 1069422300]:
-  __builtin_free (_7);
-  return 0;
+  goto <bb 5>; [100.00%]

 }

and, if I revert the r266171 change on current trunk, the difference between
f951 with the patch reverted and vanilla trunk is (again -O3,
powerpc64le-linux):
--- transfer_intrinsic_3.f90.161t.cunroll_      2019-01-18 17:14:06.625536698
+0100
+++ transfer_intrinsic_3.f90.161t.cunroll       2019-01-18 17:14:24.992238353
+0100
@@ -55,8 +55,10 @@ Number of blocks in CFG: 46
 Number of blocks to update: 11 ( 24%)


+Removing basic block 21
 Removing basic block 32
 Removing basic block 41
+Merging blocks 20 and 23
 Merging blocks 30 and 33
 Removing basic block 34
 Removing basic block 36
@@ -178,8 +180,8 @@ main (integer(kind=4) argc, character(ki
   pretmp_65 = &MEM[(character(kind=1)[0:][1:1] *)_7][0];

   <bb 7> [local count: 8656061039]:
-  # n_63 = PHI <0(30), _28(23)>
-  # ivtmp_13 = PHI <4(30), ivtmp_31(23)>
+  # n_63 = PHI <0(30), _28(20)>
+  # ivtmp_13 = PHI <4(30), ivtmp_31(20)>
   _19 = n_63 + -1;
   _20 = (integer(kind=8)) _19;
   _22 = MAX_EXPR <_20, 0>;
@@ -264,18 +266,8 @@ main (integer(kind=4) argc, character(ki
   parm.10 ={v} {CLOBBER};
   _28 = n_63 + 1;
   ivtmp_31 = ivtmp_13 - 1;
-  if (ivtmp_31 == 0)
-    goto <bb 21>; [12.36%]
-  else
-    goto <bb 23>; [87.64%]
-
-  <bb 23> [local count: 7582748748]:
   goto <bb 7>; [100.00%]

-  <bb 21> [local count: 1069422300]:
-  __builtin_free (_7);
-  return 0;
-
 }


so in both cases, the loop condition is optimized out.

Reply via email to