> So back to the original task for you: Show me in the generated output where 
> the benefits are.

I can offer a bit more information for this software development discussion.


The afffected source files can be compiled for the processor architecture 
"x86_64"
by a tool like "GCC 6.2.1+r239849-1.3" from the software distribution
"openSUSE Tumbleweed" with the following command examples.

git checkout next-20161014 && my_cc=/usr/bin/gcc-6 && make HOSTCC="${my_cc}" 
allmodconfig && make -j6 HOSTCC="${my_cc}" drivers/md/
git checkout next_usage_of_seq_putc_in_md_raid_1 && my_cc=/usr/bin/gcc-6 && 
make HOSTCC="${my_cc}" allmodconfig && make -j6 HOSTCC="${my_cc}" drivers/md/


The tool "objdump" from the software package "binutils 2.27-1.3" can be used
to get corresponding disassemblies for a file like "drivers/md/raid1.obj"
which can then be compared as follows.


--- ../disassembly-md-raid1-next-20161014-1.txt 2016-10-18 18:00:12.341222741 
+0200
+++ ../disassembly-md-raid1-seq_putc-1.txt      2016-10-18 18:03:54.135887333 
+0200
@@ -3349,7 +3349,7 @@
     37ad:      85 c0                   test   %eax,%eax
     37af:      74 0d                   je     37be <raid1_status+0x9e>
     37b1:      80 3d 00 00 00 00 00    cmpb   $0x0,0x0(%rip)        # 37b8 
<raid1_status+0x98>
-    37b8:      0f 84 1d 01 00 00       je     38db <raid1_status+0x1bb>
+    37b8:      0f 84 1b 01 00 00       je     38d9 <raid1_status+0x1b9>
     37be:      4c 89 ff                mov    %r15,%rdi
     37c1:      31 db                   xor    %ebx,%ebx
     37c3:      e8 00 00 00 00          callq  37c8 <raid1_status+0xa8>
@@ -3404,42 +3404,43 @@
     3891:      85 c0                   test   %eax,%eax
     3893:      74 09                   je     389e <raid1_status+0x17e>
     3895:      80 3d 00 00 00 00 00    cmpb   $0x0,0x0(%rip)        # 389c 
<raid1_status+0x17c>
-    389c:      74 6e                   je     390c <raid1_status+0x1ec>
+    389c:      74 6c                   je     390a <raid1_status+0x1ea>
     389e:      48 c7 c2 00 00 00 00    mov    $0x0,%rdx
     38a5:      be 01 00 00 00          mov    $0x1,%esi
     38aa:      48 c7 c7 00 00 00 00    mov    $0x0,%rdi
     38b1:      65 ff 0d 00 00 00 00    decl   %gs:0x0(%rip)        # 38b8 
<raid1_status+0x198>
     38b8:      e8 00 00 00 00          callq  38bd <raid1_status+0x19d>
     38bd:      4c 89 f7                mov    %r14,%rdi
-    38c0:      48 c7 c6 00 00 00 00    mov    $0x0,%rsi
-    38c7:      e8 00 00 00 00          callq  38cc <raid1_status+0x1ac>
-    38cc:      48 83 c4 10             add    $0x10,%rsp
-    38d0:      5b                      pop    %rbx
-    38d1:      41 5c                   pop    %r12
-    38d3:      41 5d                   pop    %r13
-    38d5:      41 5e                   pop    %r14
-    38d7:      41 5f                   pop    %r15
-    38d9:      5d                      pop    %rbp
-    38da:      c3                      retq   
-    38db:      e8 00 00 00 00          callq  38e0 <raid1_status+0x1c0>
-    38e0:      84 c0                   test   %al,%al
-    38e2:      0f 85 d6 fe ff ff       jne    37be <raid1_status+0x9e>
-    38e8:      48 c7 c2 00 00 00 00    mov    $0x0,%rdx
-    38ef:      be 69 03 00 00          mov    $0x369,%esi
-    38f4:      48 c7 c7 00 00 00 00    mov    $0x0,%rdi
-    38fb:      c6 05 00 00 00 00 01    movb   $0x1,0x0(%rip)        # 3902 
<raid1_status+0x1e2>
-    3902:      e8 00 00 00 00          callq  3907 <raid1_status+0x1e7>
-    3907:      e9 b2 fe ff ff          jmpq   37be <raid1_status+0x9e>
-    390c:      e8 00 00 00 00          callq  3911 <raid1_status+0x1f1>
-    3911:      84 c0                   test   %al,%al
-    3913:      75 89                   jne    389e <raid1_status+0x17e>
-    3915:      48 c7 c2 00 00 00 00    mov    $0x0,%rdx
-    391c:      be 9c 03 00 00          mov    $0x39c,%esi
-    3921:      48 c7 c7 00 00 00 00    mov    $0x0,%rdi
-    3928:      c6 05 00 00 00 00 01    movb   $0x1,0x0(%rip)        # 392f 
<raid1_status+0x20f>
-    392f:      e8 00 00 00 00          callq  3934 <raid1_status+0x214>
-    3934:      e9 65 ff ff ff          jmpq   389e <raid1_status+0x17e>
-    3939:      0f 1f 80 00 00 00 00    nopl   0x0(%rax)
+    38c0:      be 5d 00 00 00          mov    $0x5d,%esi
+    38c5:      e8 00 00 00 00          callq  38ca <raid1_status+0x1aa>
+    38ca:      48 83 c4 10             add    $0x10,%rsp
+    38ce:      5b                      pop    %rbx
+    38cf:      41 5c                   pop    %r12
+    38d1:      41 5d                   pop    %r13
+    38d3:      41 5e                   pop    %r14
+    38d5:      41 5f                   pop    %r15
+    38d7:      5d                      pop    %rbp
+    38d8:      c3                      retq   
+    38d9:      e8 00 00 00 00          callq  38de <raid1_status+0x1be>
+    38de:      84 c0                   test   %al,%al
+    38e0:      0f 85 d8 fe ff ff       jne    37be <raid1_status+0x9e>
+    38e6:      48 c7 c2 00 00 00 00    mov    $0x0,%rdx
+    38ed:      be 69 03 00 00          mov    $0x369,%esi
+    38f2:      48 c7 c7 00 00 00 00    mov    $0x0,%rdi
+    38f9:      c6 05 00 00 00 00 01    movb   $0x1,0x0(%rip)        # 3900 
<raid1_status+0x1e0>
+    3900:      e8 00 00 00 00          callq  3905 <raid1_status+0x1e5>
+    3905:      e9 b4 fe ff ff          jmpq   37be <raid1_status+0x9e>
+    390a:      e8 00 00 00 00          callq  390f <raid1_status+0x1ef>
+    390f:      84 c0                   test   %al,%al
+    3911:      75 8b                   jne    389e <raid1_status+0x17e>
+    3913:      48 c7 c2 00 00 00 00    mov    $0x0,%rdx
+    391a:      be 9c 03 00 00          mov    $0x39c,%esi
+    391f:      48 c7 c7 00 00 00 00    mov    $0x0,%rdi
+    3926:      c6 05 00 00 00 00 01    movb   $0x1,0x0(%rip)        # 392d 
<raid1_status+0x20d>
+    392d:      e8 00 00 00 00          callq  3932 <raid1_status+0x212>
+    3932:      e9 67 ff ff ff          jmpq   389e <raid1_status+0x17e>
+    3937:      66 0f 1f 84 00 00 00    nopw   0x0(%rax,%rax,1)
+    393e:      00 00 
 
 0000000000003940 <print_conf>:
     3940:      e8 00 00 00 00          callq  3945 <print_conf+0x5>
@@ -11134,7 +11135,7 @@
 
 0000000000000000 <_GLOBAL__sub_D_65535_0_raid1.c>:
    0:  55                      push   %rbp
-   1:  be 35 00 00 00          mov    $0x35,%esi
+   1:  be 34 00 00 00          mov    $0x34,%esi
    6:  48 c7 c7 00 00 00 00    mov    $0x0,%rdi
    d:  48 89 e5                mov    %rsp,%rbp
   10:  e8 00 00 00 00          callq  15 <_GLOBAL__sub_D_65535_0_raid1.c+0x15>
@@ -11145,7 +11146,7 @@
 
 0000000000000000 <_GLOBAL__sub_I_65535_1_raid1.c>:
    0:  55                      push   %rbp
-   1:  be 35 00 00 00          mov    $0x35,%esi
+   1:  be 34 00 00 00          mov    $0x34,%esi
    6:  48 c7 c7 00 00 00 00    mov    $0x0,%rdi
    d:  48 89 e5                mov    %rsp,%rbp
   10:  e8 00 00 00 00          callq  15 <_GLOBAL__sub_I_65535_1_raid1.c+0x15>


Does this kind of data display contain differences which are worth for further 
considerations?

Regards,
Markus

Reply via email to