Issue 91665
Summary GVNHoist: Split Parent when profitable to do so.
Labels new issue
Assignees
Reporter hiraditya
    GVNHoist currently bails out unless a value is fully anticipable at a dominator. It may be profitable to split the parents and create a common dominator for all the basic blocks that have a fully anticipable value. e.g.,
```
                      BB
 /       |     \
             /        |         \
           BB1(v) BB2(v)        BB3
```

If only BB1 and BB2 has `v`(for an instruction `I`). it might be profitable to create a common predecessor for BB1,BB2 and hoist `I` there.
```
                       BB
 /         \ 
                   BB0 (v)    \
 /       |             \
             /        |                 \
 BB1  BB2            BB3
```

_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to