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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mjambor at suse dot cz

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, quite surprisingly the code size growth is due to ipa-cp.
Due to early modref, we get two aggregate jump functions:

          value: 0x0, mask: 0xffffffffffffffe0
          VR  [1, -1]
        param 3: UNKNOWN
+         Aggregate passed by reference:
+           offset: 0, type: integer(kind=4), CONST: 33554432
          value: 0x0, mask: 0xfffffffffffffffc
          VR  [1, -1]
        param 4: CONST: &C.4517 -> -1
@@ -747,6 +744,8 @@
          value: 0x0, mask: 0xffffffffffffffe0
          VR  [1, -1]
        param 3: UNKNOWN
+         Aggregate passed by reference:
+           offset: 0, type: integer(kind=4), CONST: 33554432
          value: 0x0, mask: 0xfffffffffffffffc
          VR  [1, -1]
        param 4: CONST: &C.4512 -> 1

and later we decide to clone:

+   Estimating body: rfft/1
+   Known to be false: op3[ref offset: 0] <= 0, op3[ref offset: 0] == 1,
op3[ref offset: 0] == 2, op3[ref offset: 0] changed
+   size:602 time:9868.835632 nonspec time:9884.134781 loops with known
iterations:0.470881 known strides:0.000000
+ - estimates for value 33554432 for param #3 npts[ref offset: 0]:
time_benefit: 109.299, size: 602

so the cost metric says that cloning will speed up the function by 0.1%
however good clonning oportunity seems happy:

+ - considering value 33554432 for param #3 npts, offset: 0 (caller_count: 2)
+     good_cloning_opportunity_p (time: 109.299, size: 602, freq_sum: 16.1818)
-> evaluation: 2937.97, threshold: 500

and we clone

+  Creating a specialized node of rfft/1.
+    adding an extra known scalar value &x for param #0 x
+    adding an extra known scalar value &trg for param #1 trg
+    adding an extra known scalar value &ibi for param #2 ibi
+    replacing param #0 x with const &x
+    replacing param #1 trg with const &trg
+    replacing param #2 ibi with const &ibi

Reply via email to