> -----Original Message-----
> From: Song, Ruiling
> Sent: Thursday, April 3, 2014 11:24 AM
> To: Zhigang Gong; Gong, Zhigang; [email protected]
> Cc: Gong, Zhigang
> Subject: RE: [Beignet] [PATCH 02/18] GBE: Remove BBs if it only has a label
> instruction.
>
> What I prefer is after you add a CFG Simplify pass, you can add an assert in
> the
> backend if we meet empty BB. Suppose this should not occur anymore.
> My concern is we may further gather some CFG info besides "loopInfo" to GEN
> IR. So, when adding new info logic need an extra label Fix here.
That's a valid concern. If we still want to use LLVM's tool to do more things,
then we'd
best not to manipulate the CFG manually in this early stage. I will just add an
assert there.
Thanks for the comment.
>
> At least I think you can let removeEmptyLabels() return quickly if there is no
> empty BBs.
> > + }
> > + revLabelMap.insert(std::make_pair(next, index));
> > + insn->remove();
> > + removeBlock(&BB);
> > + }
> > + });
>
> If no empty BB. Simply return here.
>
> > + // fix labels for loops
> > + for (auto &x : loops) {
> > + for (auto &y : x->bbs) {
> > + if (labelMap.find(y) != labelMap.end())
> > + y = labelMap.find(y)->second;
> > + }
> > +
> > + for (auto &z : x->exits) {
> > + if (labelMap.find(z.first) != labelMap.end())
> > + z.first = labelMap.find(z.first)->second;
> > + if (labelMap.find(z.second) != labelMap.end())
> > + z.second = labelMap.find(z.second)->second;
> > + }
> > + }
> > +
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet