This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions
- From: "zadeck at naturalbridge dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Dec 2007 19:13:56 -0000
- Subject: [Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions
- References: <bug-34400-286@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #14 from zadeck at naturalbridge dot com 2007-12-10 19:13 -------
[13:51] <stevenb> you wont believe this
[13:51] <zadeck> yes ????
[13:51] <stevenb> but that SJLJ thing, that's almost entirely call
overhead
[13:52] <spark> stevenb: calling what ?
[13:52] <stevenb> the calls to df_live_{confluence_n,tranfer_function}
[13:52] <spark> we need c++ functor :(
[13:52] <stevenb> yup
[13:53] <zadeck> the thing that i do not understand is how/why it shows
up most uninitialized regs or am i reading comment #9 wrong
[13:53] <stevenb> no, that is true
[13:53] <stevenb> it seems this LIVE problem has more issues with a
densely connected CFG than RU and LR
[13:54] <stevenb> it really is the LIVE problem only.
[13:55] <stevenb> i'm not sure i understand why...
[13:55] <stevenb> (actually I am sure I don't understand why ;))
[13:55] <spark> LR is fine but LIVE is not ?
[13:55] <stevenb> yes
[13:57] <zadeck> remember that live is one of the few forwards problems.
it could be that your (sparks) ordering of the blocks is wierd for forwards
problems
[13:57] <zadeck> s/wierd/bad/
[13:57] <stevenb> yeah, that crossed my mind too
[13:58] <spark> could be.
[13:58] <zadeck> i see a reassignment in pr3400's future
[13:58] <stevenb> or we may be passing it the wrong order
[13:58] <zadeck> you could easily get n**2 behavior in either case.
[13:59] <stevenb> what was it again, forward problems need pre-order??
[14:00] <spark> both reverse post order. but one is with inverted graph.
[14:00] <stevenb> right
[14:00] <stevenb> i always have to look this up :)
[14:01] <spark> actually there's no literature on this - cause the literature
is wrong.
[14:01] <stevenb> we pass it postorder_inverted for DF_FORWARD
[14:02] <spark> hm. i think i might know what's wrong.
[14:03] <stevenb> pray tell
[14:03] <spark> when the graph is inverted, it could have multiple entries.
[14:04] <spark> we deal with that by some hack.
[14:04] <stevenb> you mean fake edges
[14:04] <spark> no. without fake edges.
[14:04] <stevenb> uh...
[14:04] <spark> if we add fake edges, there's no multiple entries.
[14:05] <spark> but we can't, because some passes do not want to have those
fake edges.
[14:06] <spark> i think we might not have the correct order between regions
from multiple entries in an inverted graph - i haven't thought about that, and
i should have.
[14:07] <spark> hold on. i think it shouldn't matter for the forward problem.
hm.
[14:07] <stevenb> are you going to think about it now then, and take the
bug?
[14:07] <spark> send it to me anyway :(
--
zadeck at naturalbridge dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|steven at gcc dot gnu dot |spark at gcc dot gnu dot org
|org |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400