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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
Reduced set of options to reproduce with 4.9.1 are

-mno-red-zone -mcmodel=kernel -maccumulate-outgoing-args -mno-sse -g  -Os
-fno-omit-frame-pointer

if you use -fno-var-tracking the bug goes away, similar if you update to
the 4.9 branch head.

If you use -fno-schedule-insns2 you see a similar pattern to the mentioned PR:

        subq    $424, %rsp
.LCFI427:
        movl    %edi, -400(%rbp)
        movq    %rdx, %rbx
        movl    %ecx, -396(%rbp)
        movq    %r8, -464(%rbp)
.LVL1306:
        .loc 2 6489 0
        movq    (%rdx), %rax
        movq    %rax, -440(%rbp)
.LVL1307:
.LBB2616:
        .loc 2 6493 0
        movq    $load_balance_mask, -384(%rbp)
        movq    -384(%rbp), %rax
.LVL1308:
#APP
# 6493 "kernel/sched/fair.c" 1
        add %gs:this_cpu_off, %rax

so that spill is right before the asm and we immediately re-load it into
a register required by an asm constraint (stupid register allocator).

*** This bug has been marked as a duplicate of bug 61801 ***

Reply via email to