Home | History | Annotate | Download | only in WebAssembly

Lines Matching refs:Branch

128       // FIXME: add branch's Condition and Code below.
146 // Branch
148 Branch::Branch(const char *ConditionInit, const char *CodeInit)
155 Branch::~Branch() {
179 "cannot add more than one branch to the same target");
180 BranchesOut[Target] = make_unique<Branch>(Condition, Code);
256 std::unique_ptr<Branch> Details;
258 Prior->BranchesOut[Split] = make_unique<Branch>(Details->Condition,
262 Branch *Details = iter.second.get();
263 Split->BranchesOut[Post] = make_unique<Branch>(Details->Condition,
317 void Solipsize(Block *Target, Branch::FlowType Type, Shape *Ancestor,
328 std::unique_ptr<Branch> PriorOut;
354 Solipsize(iter, Branch::Direct, Simple, JustInner);
395 Solipsize(iter, Branch::Continue, Loop, InnerBlocks);
399 Solipsize(iter, Branch::Break, Loop, InnerBlocks);
556 Solipsize(CurrTarget, Branch::Break, Multiple, CurrBlocks);
660 // TODO: handle not just dead ends, but also that do not branch to the
835 Branch *Details = iter.second.get();
836 if (Details->Type == Branch::Break) {
840 } else if (Details->Type != Branch::Direct)
845 Branch *Details = iter.second.get();
846 if (Details->Type == Branch::Break) {
847 Details->Type = Branch::Direct;
852 assert(Details->Type == Branch::Direct);
853 Details->Type = Branch::Nested;
867 Branch *Details = iter.second.get();
868 if (Details->Type != Branch::Direct &&
871 Details->Type = Branch::Direct;
875 } else if (Details->Type == Branch::Break && LastLoop &&
930 Branch *Details = iter.second.get();
931 if (Details->Type == Branch::Break ||
932 Details->Type == Branch::Continue) {