[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-19 Thread dan at danny dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

--- Comment #5 from Dan HorĂ¡k  ---
Jan, can you backport the fix also to 4.9? It is causing a problem in Fedora
where at least one build is failing due this problem.

[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-19 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

--- Comment #6 from Jan Hubicka  ---
Yes, this patch should apply to 4.9 as well.


[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-05 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

--- Comment #1 from Jakub Jelinek  ---
For the case when any of the bbs considered for being split (into
function.part.N) refers to a label which is defined in one of the basic blocks
that are not considered for split we already kind of have code to handle that,
the DECL_UID of the label is put into non_ssa_vars bitmap and then
verify_non_ssa_vars is called which if it sees a GIMPLE_LABEL with a label set
in non_ssa_vars bitmap will give up.  Unfortunately, verify_non_ssa_vars
doesn't walk all basic blocks that aren't being split off, but only those that
can be executed before reaching the split entry_bb.  In the testcase the label
is in a basic block that just returns afterwards.  So perhaps we'd need to
remember if we put any LABEL_DECL uids into non_ssa_vars bitmap and if yes, in
addition to what non_ssa_vars does right now also walk all other basic blocks
that would not be split away (just the labels at the start of each) and just
handle GIMPLE_LABELs for those.  Or do that always.

Not sure what is supposed to handle the case when a label anywhere in the
split_bbs would be referenced from the header basic blocks though.


[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-07 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

Jan Hubicka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-09-08
   Assignee|unassigned at gcc dot gnu.org  |hubicka at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Jan Hubicka  ---
I guess it is easiest to disallow nonlocal goto, forced labels and their
references in the function headers, I will take a look.


[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-07 Thread andi-gcc at firstfloor dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

Andi Kleen  changed:

   What|Removed |Added

 CC||andi-gcc at firstfloor dot org

--- Comment #3 from Andi Kleen  ---
Looks very similar to my problem in 
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61635


[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.2


[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit

2014-09-10 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186

--- Comment #4 from Jan Hubicka  ---
Author: hubicka
Date: Thu Sep 11 06:46:23 2014
New Revision: 215149

URL: https://gcc.gnu.org/viewcvs?rev=215149&root=gcc&view=rev
Log:

PR tree-optimization/63186
* ipa-split.c (test_nonssa_use): Skip nonforced labels.
(mark_nonssa_use): Likewise.
(verify_non_ssa_vars): Verify all header blocks for label
definitions.

* gcc.dg/pr63186.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr63186.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-split.c
trunk/gcc/testsuite/ChangeLog