This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] Gimplifying Java


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]