This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Gimplifying Java
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: Jeff Sturm <jsturm at one-point dot com>
- Cc: Jeff Law <law at redhat dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: 12 Jun 2003 17:21:00 -0400
- Subject: Re: [tree-ssa] Gimplifying Java
- References: <Pine.LNX.4.44.0306121556070.32344-100000@ops2.one-point.com>
On Thu, 2003-06-12 at 17:14, Jeff Sturm wrote:
> On 12 Jun 2003, Andrew MacLeod wrote:
> > So BB5 has 12 as a successor, but there is no edge? Or you mean there
> > is an edge, but nowhere to insert the code?
>
> BB5 should _not_ have 12 as a successor, it can't get there. So, there's
> nowhere to insert the code, right?
Correct, it looks to me like 5 should only have 6 as a successor.
>
> # BLOCK 5 (NameFinder.java:6). PRED: 3. SUCC: 12 6.
> try
> {
> # BLOCK 6 (NameFinder.java:18). PRED: 5. SUCC: 8 7.
> if (file.8 == 0B)
> {
> # BLOCK 7 (NameFinder.java:18). PRED: 6. SUCC: -2 10.
> _Jv_ThrowNullPointerException ()
> };
> # BLOCK 8 (NameFinder.java:18). PRED: 6. SUCC: 9 10.
> T.11 = substring.10 (file.8, T.9);
> # BLOCK 9 (NameFinder.java:18). PRED: 8. SUCC: 12 10.
> T.14 = parseInt.13 (T.12)
> }
> catch
> {
> # BLOCK 10 (NameFinder.java:18). PRED: 9 8 7. SUCC: 12 11.
> catch (struct java.lang.NumberFormatException)
> {
> # BLOCK 11 (NameFinder.java:18). PRED: 10. SUCC: 12.
> T.15 = <<<exception object>>> - 4;
> nfe = *T.15
> }
> }
>
> > The edge inserter has not
> > had to deal with TRY's yet, so it may not understand where to insert the
> > code.
>
> Oh, OK. That may be part of the problem indeed. It seemed to fail on the
> BB9->BB12 edge.
>
Yeah, lets see. The edge from BB9-BB12 can actually insert it right at
the end of 9. So can you include vops, and show me this section, along
with block 12.
I guess the general rule would probably be that an edge needs to be
split if the src block has more than 1 *normal* edge, or the dest block
has more than 1 *normal* predecessor.
Right now it just counts edges. The edge from 9 to 10 is marked abnormal
right? so I can simple insert right at the end of block 9.
Let me try to handle that right now.. hold on..
Andrew