This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/82682] [8 Regression] FAIL: gcc.target/i386/pr50038.c scan-assembler-times movzbl 2 (found 3 times) since r253958


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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yes. r253955 to r253958 diff is:
--- pr50038.s.253955    2017-11-20 09:52:43.000000000 -0500
+++ pr50038.s.253958    2017-11-20 09:52:48.000000000 -0500
@@ -1,53 +1,55 @@
        .file   "pr50038.c"
        .text
        .p2align 4,,15
        .globl  test
        .type   test, @function
 test:
 .LFB0:
        .cfi_startproc
        pushl   %edi
        .cfi_def_cfa_offset 8
        .cfi_offset 7, -8
        pushl   %esi
        .cfi_def_cfa_offset 12
        .cfi_offset 6, -12
        pushl   %ebx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        movl    16(%esp), %eax
        movl    20(%esp), %edx
        testl   %eax, %eax
        jle     .L1
        movl    24(%esp), %ecx
        leal    (%edx,%eax,2), %edi
        .p2align 4,,10
        .p2align 3
 .L3:
        movzbl  (%edx), %esi
        addl    $2, %edx
        addl    $1, %ecx
        movzbl  -1(%edx), %eax
-       imull   $19595, %esi, %esi
+       movl    %esi, %ebx
        imull   $38470, %eax, %eax
+       movzbl  %bl, %esi
+       imull   $19595, %esi, %esi
        addl    %esi, %eax
        sarl    $16, %eax
        movb    %al, -1(%ecx)
        cmpl    %edi, %edx
        jne     .L3
 .L1:
        popl    %ebx
        .cfi_restore 3
        .cfi_def_cfa_offset 12
        popl    %esi
        .cfi_restore 6
        .cfi_def_cfa_offset 8
        popl    %edi
        .cfi_restore 7
        .cfi_def_cfa_offset 4
        ret
        .cfi_endproc
 .LFE0:
        .size   test, .-test
        .ident  "GCC: (GNU) 8.0.0 20171020 (experimental)"
        .section        .note.GNU-stack,"",@progbits
Before *.ira dump the IL is identical, RA makes different decisions because
MEMs are seen as more costly than before.
@@ -237,7 +237,7 @@ Ranges after the compression:
     Pressure: GENERAL_REGS=5
     Hard reg set forest:
       0:( 0-6 8-15)@0
-        1:( 0-6)@135464
+        1:( 0-6)@167080
       Allocno a0r99 of GENERAL_REGS(7) has 7 avail. regs  0-6, node:  0-6
(confl regs =  7-79)
       Allocno a1r104 of GENERAL_REGS(7) has 7 avail. regs  0-6, node:  0-6
(confl regs =  7-79)
       Allocno a2r103 of GENERAL_REGS(7) has 7 avail. regs  0-6, node:  0-6
(confl regs =  7-79)
@@ -266,9 +266,9 @@ Ranges after the compression:
         Making a0(r99,l0) colorable
         Making a1(r104,l0) colorable
         Making a3(r96,l0) colorable
-      Pushing a0(r99,l0)(cost 3058)
-      Pushing a3(r96,l0)(cost 9008)
-      Pushing a1(r104,l0)(cost 14358)
+      Pushing a0(r99,l0)(cost 3312)
+      Pushing a3(r96,l0)(cost 10962)
+      Pushing a1(r104,l0)(cost 16058)
       Pushing a13(r107,l0)(cost 0)
       Pushing a10(r108,l0)(cost 0)
       Pushing a8(r111,l0)(cost 0)
@@ -284,15 +284,12 @@ Ranges after the compression:
       Popping a11(r109,l0)  -- assign reg 4
       Popping a12(r93,l0)  -- assign reg 4
       Popping a2(r103,l0)  -- assign reg 0
-Spilling a0r99 for a12r93
-Assigning 3 to a12r93
-       a0(r99,l0)  -- assign hard reg 5
 Disposition:
-   12:r93  l0     3    3:r96  l0     2    0:r99  l0     5    2:r103 l0     0
+   12:r93  l0     4    3:r96  l0     2    0:r99  l0     3    2:r103 l0     0
     1:r104 l0     1   13:r107 l0     0   10:r108 l0     0   11:r109 l0     4
     9:r110 l0     4    8:r111 l0     0    7:r112 l0     0
 New iteration of spill/restore move
-+++Costs: overall 0, reg 0, mem 0, ld 0, st 0, move 0
++++Costs: overall 3400, reg 3400, mem 0, ld 0, st 0, move 0
 +++       move loops 0, new jumps 0

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]