[Bug rtl-optimization/64317] New: [5 Regression] Ineffective allocation of PIC base register
izamyatin at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 15 15:03:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64317
Bug ID: 64317
Summary: [5 Regression] Ineffective allocation of PIC base
register
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: izamyatin at gmail dot com
CC: vmakarov at redhat dot com
Target: i686
Created attachment 34285
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34285&action=edit
Reproducer
For the attached test compiled with -O2 -m32 -fPIE -pie after r218059 we
generate
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
subl $28, %esp
.cfi_def_cfa_offset 48
movl 48(%esp), %edi
movl %eax, 12(%esp) <--- PIC reg spill
testl %edi, %edi
je .L8
movl 12(%esp), %eax <--- PIC reg fill
xorl %esi, %esi
movl c@GOT(%eax), %ebp
.p2align 4,,10
.p2align 3
.L4:
movl 12(%esp), %ebx <--- PIC reg fill
addl $1, %esi
call bar@PLT
while for r218058 there is no spill and only reg-reg fill:
call __x86.get_pc_thunk.di
addl $_GLOBAL_OFFSET_TABLE_, %edi
subl $12, %esp
.cfi_def_cfa_offset 32
movl 32(%esp), %eax
testl %eax, %eax
je .L8
movl c@GOT(%edi), %ebp
xorl %esi, %esi
.p2align 4,,10
.p2align 3
.L4:
movl %edi, %ebx
addl $1, %esi
call bar@PLT
More information about the Gcc-bugs
mailing list