lukel97 wrote:
> would technically re-create `BB5`'s mask when computing the mask for
> `TheBlock`.
#184838 has the same problem but it just addresses it by deferring the creation
of edges. Then it can check if there's the same number of edges to be ORd as
predecessors to the block, then it reuses the block mask:
```
// If the blend mask uses all the edges to Dst, reuse Dst's block-in mask.
if (Preds.size() == Dst->getNumPredecessors()) {
Mask = Mask ? Builder.createOr(Mask, getBlockInMask(Dst))
: getBlockInMask(Dst);
continue;
}
```
Without this it saw regressions in the in-tree tests because we were
duplicating masks between blend masks + block in masks.
You could do something similar here for each predecessor of VPBB. But I agree
that I'm not worried about this in practice given that we shouldn't really see
this with structured control flow
https://github.com/llvm/llvm-project/pull/186478
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits