[Bug fortran/55341] address-sanitizer and Fortran

Joost.VandeVondele at mat dot ethz.ch gcc-bugzilla@gcc.gnu.org
Mon Dec 24 11:54:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55341

Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #29019|0                           |1
        is obsolete|                            |

--- Comment #47 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> 2012-12-24 11:53:57 UTC ---
Created attachment 29041
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29041
good and bad version of the asm of
__qs_dispersion_pairpot_MOD_calculate_dispersion_pairpot

two asm files for the routine that appears to be problematic (
__qs_dispersion_pairpot_MOD_calculate_dispersion_pairpot), compiled once with
and once without -march=native

I'm not particularly versed in asm, but this part of the diff seems like it
could be significant, it is just before the return of the subroutine, and could
be some difference in unpoisoning ?:

35418,35423d35699
<       movq    -10392(%rbp), %rdx
<       movl    $724, %esi
<       testb   $1, %dl
<       je      .L66
<       movb    $0, (%rdx)
< .LVL2656:
35425,35426c35701,35702
<       leaq    1(%rax), %rdx
<       movb    $-45, %sil
---
>       addq    $724, %rax
> .LVL2645:
35428,35460c35704,35708
<       testb   $2, %dl
<       je      .L67
<       movw    $0, (%rdx)
<       addq    $2, %rdx
<       subl    $2, %esi
< .L67:
<       testb   $4, %dl
<       je      .L68
<       movl    $0, (%rdx)
<       addq    $4, %rdx
<       subl    $4, %esi
< .L68:
<       movl    %esi, %eax
<       shrl    $3, %eax
<       movl    %eax, %ecx
<       movl    $0, %eax
<       movq    %rdx, %rdi
<       rep stosq
<       movq    %rdi, %rdx
<       testb   $4, %sil
<       je      .L69
<       movl    $0, (%rdi)
<       addq    $4, %rdx
< .L69:
<       testb   $2, %sil
<       je      .L70
<       movw    $0, (%rdx)
<       addq    $2, %rdx
< .L70:
<       testb   $1, %sil
<       je      .L71
<       movb    $0, (%rdx)
< .L71:
---
>       movq    -10392(%rbp), %rbx
>       movl    $0, (%rbx)
>       addq    $4, -10392(%rbp)
>       cmpq    %rax, -10392(%rbp)
>       jb      .L66
35653c35901



More information about the Gcc-bugs mailing list