[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

--- Comment #7 from Martin Liška marxin at gcc dot gnu.org ---
Author: marxin
Date: Thu Dec 18 12:02:22 2014
New Revision: 218860

URL: https://gcc.gnu.org/viewcvs?rev=218860root=gccview=rev
Log:
Fix for PR ipa/64146

PR ipa/64146
* ipa-icf.c (sem_function::merge): Check for
decl_binds_to_current_def_p is newly added to merge operation.
* g++.dg/ipa/pr64146.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/ipa/pr64146.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-icf.c
trunk/gcc/testsuite/ChangeLog

[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

Martin Liška marxin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Martin Liška marxin at gcc dot gnu.org ---
Fixed in 5.0.0.

[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

--- Comment #4 from Martin Liška marxin at gcc dot gnu.org ---
Hello.

Test case you described should be covered by IPA ICF, where we create a
non-interposable alias of a original symbol that is target of newly created
thunk.

There's -fpic snippet:

_Z8test_barv:
.LFB3:
.cfi_startproc
pushq%rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq%rsp, %rbp
.cfi_def_cfa_register 6
callbar@PLT
popq%rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE3:
.size_Z8test_barv, .-_Z8test_barv
.set_Z8test_barv.localalias.0,_Z8test_barv
.identGCC: (GNU) 5.0.0 20141209 (experimental)
.section.note.GNU-stack,,@progbits

But it's probably not enough, what exactly means binds_local_p ?

Thanks,
Martin

[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-09 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

--- Comment #5 from Alan Modra amodra at gmail dot com ---
Right, the problem is
 .set_Z8test_barv.localalias.0,_Z8test_barv

or really, using that alias here (-O2 -fpic)
.globl  _Z8test_foov
.type   _Z8test_foov, @function
_Z8test_foov:
.LFB5:
.cfi_startproc
jmp _Z8test_barv.localalias.0
.cfi_endproc
.LFE5:
.size   _Z8test_foov, .-_Z8test_foov

You shouldn't be using the alias for a call where TARGET_BINDS_LOCAL_P (see
gcc/doc/tm.texi, varasm.c:default_binds_local_p) is not true.


[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-09 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

--- Comment #6 from Alan Modra amodra at gmail dot com ---
Actually, I think you want decl_binds_to_current_def_p rather than
binds_local_p.


[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-02 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-12-02
 CC||marxin at gcc dot gnu.org,
   ||trippels at gcc dot gnu.org
  Component|tree-optimization   |ipa
   Target Milestone|--- |5.0
 Ever confirmed|0   |1


[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P1


[Bug ipa/64146] [5 Regression] ipa-icf breaks gold dynamic_test_2 test

2014-12-02 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64146

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com ---
Missing targetm.binds_local_p check?