empty bb is not wrong code. My question is, where did that empty bb come from?
Sun

On Mon, Aug 30, 2010 at 7:21 PM, ruifen Shen <shenr...@gmail.com> wrote:
> hi, mei.
> As sun said that one should never produce wrong code in any stage.
> I agree with your opinion.
>
> Another, If adding label_stmt  in the front in an early pahse, it should be
> cleared or merged if the label is useless in my view.
>
> hi, sun.
> which block? rvi_emit?
>
>
>
> 2010/8/31 Sun Chan <sun.c...@gmail.com>
>>
>> I wondered why there is such a block though.
>> Sun
>>
>> On Tue, Aug 31, 2010 at 3:23 AM, Ye, Mei <mei...@amd.com> wrote:
>> > Hello Ruifen,
>> >
>> >
>> >
>> > It looks like RVI_EMIT assumes an empty block should not be a branch
>> > target.  My opinion is before “Emit_bb” is called, we should have a pass
>> > to
>> > delete empty blocks and delete/insert label stmts.
>> >
>> > If you refer to “be/opt/opt_htable_emit.cxx”, search for “Fix 592011”,
>> > “CFG::Delete_empty_BB” is called to do similar pre-processing.
>> >
>> > Adding a label stmt up in the front in an early phase can introduce
>> > useless
>> > labels.  Though it probably doesn’t hurt if later phases can clean it
>> > up.
>> >
>> >
>> >
>> > -Mei
>> >
>> >
>> >
>> > ________________________________
>> >
>> > From: ruifen Shen [mailto:shenr...@gmail.com]
>> > Sent: Sunday, August 29, 2010 6:31 PM
>> > To: Sun Chan; Ye, Mei
>> > Cc: open64-devel
>> >
>> > Subject: Re: [Open64-devel] One bug in add_one_if_stmt, Can gatekeeper
>> > review this patch? Thx very much
>> >
>> >
>> >
>> > hi, mei & sun.
>> >
>> > Thanks very much for your review. I am sorry for the later reply as I am
>> > on
>> > weekend.
>> >
>> > Attached Please find the souce file(a.c) and the trace file with flags
>> > (slcc
>> > a.c -Wb,-trLOW,-tt25:0xffffffff,-tt26:0xffffffff).
>> >
>> > we can see that the lab2050 is mapped with BB5 at line 12104 of a.t.
>> > But
>> > after the RVI_EMIT (tansform back to whirl tree), the mapping is
>> > missing.
>> >
>> > Add label_stmt at RVI_EMIT? I do not think it is a good method.
>> >
>> > Please help to analysis that. Thanks very much.
>> >
>> > 2010/8/28 Sun Chan <sun.c...@gmail.com>
>> >
>> > Mei,
>> > I think you are right. The assertion about RID is a hint of something
>> > else wrong (RID stands for region id).
>> > Sun
>> >
>> > On Sat, Aug 28, 2010 at 12:36 AM, Ye, Mei <mei...@amd.com> wrote:
>> >> My guess is that by adding a label statement you may have prevented the
>> >> elimination of an empty block or something similar which then preserves
>> >> the
>> >> label-BB map and thus avoids the assertion.
>> >>
>> >>
>> >>
>> >> -Mei
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> From: Ye, Mei [mailto:mei...@amd.com]
>> >> Sent: Friday, August 27, 2010 9:25 AM
>> >> To: ruifen Shen; open64-devel
>> >> Subject: Re: [Open64-devel] One bug in add_one_if_stmt, Can gatekeeper
>> >> review this patch? Thx very much
>> >>
>> >>
>> >>
>> >> Hello Ruifen
>> >>
>> >>
>> >>
>> >> I am not convinced that a label statement is needed here.
>> >>
>> >> It is likely that somewhere downstream after some sort of
>> >> transformations
>> >> a
>> >> different bug misses a mapping between a label and a BB which then
>> >> triggers
>> >> the assertion.
>> >>
>> >>
>> >>
>> >> -Mei
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> From: ruifen Shen [mailto:shenr...@gmail.com]
>> >> Sent: Friday, August 27, 2010 2:36 AM
>> >> To: open64-devel
>> >> Subject: [Open64-devel] One bug in add_one_if_stmt, Can gatekeeper
>> >> review
>> >> this patch? Thx very much
>> >>
>> >>
>> >>
>> >> hi, all.
>> >>
>> >>
>> >>
>> >> We found One bug in add_one_if_stmt (opt_cfg.cxx). Can gatekeeper give
>> >> a
>> >> reivew? Thanks very much.
>> >>
>> >>
>> >>
>> >> When create the else_bb, it just create label_map without label_stmt.
>> >>
>> >> Then in the later phase. if there is check_label for BB(such as dce,
>> >> reconstruction-cfg), the label_stmt will be added.
>> >>
>> >> Othere wise, the label will be missed at cg phase. Assertion will be
>> >> reported like followed.
>> >>
>> >>
>> >>
>> >> ### Assertion failure at line 5392 of
>> >> /home/test/regression/open64-SL/osprey/be/cg/whirl2ops.cxx:
>> >> ### Compiler Error in file a.c during Code_Expansion phase:
>> >> ### RID == NULL, label 2050 doesn't have a matching target
>> >>
>> >>
>> >>
>> >> I would like to fix the bug as followed.
>> >>
>> >>
>> >>
>> >> Index: opt_cfg.cxx
>> >> ===================================================================
>> >> --- opt_cfg.cxx (revision 3323)
>> >> +++ opt_cfg.cxx (working copy)
>> >> @@ -2298,8 +2298,7 @@
>> >>  CFG::Add_one_if_stmt( WN *wn, END_BLOCK *ends_bb )
>> >>  {
>> >>    // create, but do not connect, the "else" block
>> >> -  BB_NODE *else_bb = Create_bb();
>> >> -  Append_label_map(Alloc_label(), else_bb);
>> >> +  BB_NODE *else_bb = Create_labelled_bb();
>> >>
>> >>    // create if bb
>> >>    WN *end_cond = WN_CreateFalsebr(else_bb->Labnam(), WN_if_test(wn));
>> >>
>> >>
>> >>
>> >> --
>> >> Best Regards.
>> >>
>> >> Shen Ruifen
>> >>
>> >> tel: 010-51266989-226
>> >>
>> >
>> >>
>> >>
>> >> ------------------------------------------------------------------------------
>> >> Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
>> >> Be part of this innovative community and reach millions of netbook
>> >> users
>> >> worldwide. Take advantage of special opportunities to increase revenue
>> >> and
>> >> speed time-to-market. Join now, and jumpstart your future.
>> >> http://p.sf.net/sfu/intel-atom-d2d
>> >> _______________________________________________
>> >> Open64-devel mailing list
>> >> Open64-devel@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >>
>> >>
>> >
>> >
>> > --
>> > Best Regards.
>> >
>> > Shen Ruifen
>> >
>> > tel: 010-51266989-226
>
>
>
> --
> Best Regards.
>
> Shen Ruifen
>
> tel: 010-51266989-226
>
>

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to