https://codereview.chromium.org/141653009/diff/80001/src/hydrogen-check-elimination.cc
File src/hydrogen-check-elimination.cc (right):
https://codereview.chromium.org/141653009/diff/80001/src/hydrogen-check-elimination.cc#newcode189
src/hydrogen-check-elimination.cc:189: HCheckTable* Merge(HBasicBlock*
succ, HCheckTable* that,
We should rename "that" to be "pred", to be more clear.
https://codereview.chromium.org/141653009/diff/80001/src/hydrogen-check-elimination.cc#newcode197
src/hydrogen-check-elimination.cc:197: InheritPhiOperands(succ, that,
that_block, MERGE, zone);
Why don't you process the phis after first merging the tables? That way,
you can just go through the phis of this block and then insert (in the
case of COPY) or union (in the case of MERGE) their entries with the
entries from the incoming block. I think that would be significantly
simpler, and potentially faster.
https://codereview.chromium.org/141653009/diff/80001/src/hydrogen-check-elimination.cc#newcode201
src/hydrogen-check-elimination.cc:201: HCheckTableEntry* this_entry =
&entries_[i];
Using the above suggestion, you can simply retain any entries in this
table for phis that are defined in "succ". Then you don't need the
dominance check for the other phis, since "that" can't have entries for
anything that doesn't dominate "succ" (i.e. they are handled
implicitly).
https://codereview.chromium.org/141653009/diff/80001/src/hydrogen-check-elimination.cc#newcode234
src/hydrogen-check-elimination.cc:234: if
(succ->predecessors()->length() == 1) return;
I think you want to check succ->phis()->length() == 0 for the early
return here.
https://codereview.chromium.org/141653009/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.