public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression
@ 2015-02-18 11:41 enkovich.gnu at gmail dot com
2015-03-12 11:27 ` [Bug target/65103] " ienkovich at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: enkovich.gnu at gmail dot com @ 2015-02-18 11:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65103
Bug ID: 65103
Summary: [i386] GOTOFF relocation is not propagated into
address expression
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: enkovich.gnu at gmail dot com
In PIC code there are multiple cases when GOTOFF relocation is put into
register and then used in address expression instead of using relocation
directly in address expression. Here is an example:
>cat test.c
typedef struct S
{
int a;
int sum;
int delta;
} S;
S gs;
int global_opt (int max)
{
while (gs.sum < max)
gs.sum += gs.delta;
return gs.a;
}
>gcc test.c -m32 -O2 -fPIE -S
>cat test.s
...
pushl %esi
leal gs@GOTOFF, %esi
pushl %ebx
call __x86.get_pc_thunk.bx
addl $_GLOBAL_OFFSET_TABLE_, %ebx
movl 12(%esp), %edx
movl 4(%esi,%ebx), %eax
cmpl %eax, %edx
jle .L4
movl 8(%esi,%ebx), %ecx
.L3:
addl %ecx, %eax
cmpl %eax, %edx
jg .L3
movl %eax, 4(%esi,%ebx)
.L4:
movl gs@GOTOFF(%ebx), %eax
popl %ebx
popl %esi
ret
A separate instruction to get gs@GOTOFF is generated in expand. Later fwprop
propagates this constant only into memory references with zero offset and leave
register usage in all others.
Used compiler:
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure --enable-languages=c,c++,fortran
--disable-bootstrap --prefix=/export/users/ienkovic/ --disable-libsanitizer
Thread model: posix
gcc version 5.0.0 20150217 (experimental) (GCC)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/65103] [i386] GOTOFF relocation is not propagated into address expression
2015-02-18 11:41 [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression enkovich.gnu at gmail dot com
@ 2015-03-12 11:27 ` ienkovich at gcc dot gnu.org
2015-04-15 17:04 ` LpSolit at netscape dot net
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-12 11:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65103
--- Comment #1 from ienkovich at gcc dot gnu.org ---
Author: ienkovich
Date: Thu Mar 12 09:53:36 2015
New Revision: 221380
URL: https://gcc.gnu.org/viewcvs?rev=221380&root=gcc&view=rev
Log:
gcc/
PR target/65103
* config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
register.
gcc/testsuite/
PR target/65103
* gcc.target/i386/pr65103-1.c: New.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr65103-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/65103] [i386] GOTOFF relocation is not propagated into address expression
2015-02-18 11:41 [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression enkovich.gnu at gmail dot com
2015-03-12 11:27 ` [Bug target/65103] " ienkovich at gcc dot gnu.org
@ 2015-04-15 17:04 ` LpSolit at netscape dot net
2015-05-13 8:29 ` ienkovich at gcc dot gnu.org
2021-08-16 8:34 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: LpSolit at netscape dot net @ 2015-04-15 17:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65103
--- Comment #1 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
Author: ienkovich
Date: Thu Mar 12 09:53:36 2015
New Revision: 221380
URL: https://gcc.gnu.org/viewcvs?rev=221380&root=gcc&view=rev
Log:
gcc/
PR target/65103
* config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
register.
gcc/testsuite/
PR target/65103
* gcc.target/i386/pr65103-1.c: New.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr65103-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/65103] [i386] GOTOFF relocation is not propagated into address expression
2015-02-18 11:41 [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression enkovich.gnu at gmail dot com
2015-03-12 11:27 ` [Bug target/65103] " ienkovich at gcc dot gnu.org
2015-04-15 17:04 ` LpSolit at netscape dot net
@ 2015-05-13 8:29 ` ienkovich at gcc dot gnu.org
2021-08-16 8:34 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-05-13 8:29 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65103
--- Comment #2 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
Author: ienkovich
Date: Wed May 13 08:29:14 2015
New Revision: 223119
URL: https://gcc.gnu.org/viewcvs?rev=223119&root=gcc&view=rev
Log:
gcc/
PR target/65103
* config/i386/i386.c (ix86_rtx_costs): We want to propagate
link time constants into adress expressions and therefore set
their cost to 0.
gcc/testsuite/
PR target/65103
* gcc.target/i386/pr65103-3.c: New.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr65103-3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/65103] [i386] GOTOFF relocation is not propagated into address expression
2015-02-18 11:41 [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression enkovich.gnu at gmail dot com
` (2 preceding siblings ...)
2015-05-13 8:29 ` ienkovich at gcc dot gnu.org
@ 2021-08-16 8:34 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-16 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65103
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Severity|normal |enhancement
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-08-16 8:34 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-18 11:41 [Bug target/65103] New: [i386] GOTOFF relocation is not propagated into address expression enkovich.gnu at gmail dot com
2015-03-12 11:27 ` [Bug target/65103] " ienkovich at gcc dot gnu.org
2015-04-15 17:04 ` LpSolit at netscape dot net
2015-05-13 8:29 ` ienkovich at gcc dot gnu.org
2021-08-16 8:34 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).