search for: phiblock

Displaying 2 results from an estimated 2 matches for "phiblock".

Did you mean: iblock
2017 May 01
3
RFC: Stop using redundant PHI node entries for multi-edge predecessors
Today, the IR requires that if you have multiple edges from A to B (typically with a switch) any phi nodes in B must have an equal number of entries for A, but that all of them must have the same value. This seems rather annoying.... 1) It creates multiple uses of values in A for no apparently good reason 2) It makes updating PHI nodes using sets of predecessors incredibly hard 3) There is no
2017 May 01
4
RFC: Stop using redundant PHI node entries for multi-edge predecessors
...> >> It also seems likely to open up more efficient in-memory representations >> if it is possible at some point to build maps of these things. >> >> Thoughts? > > > > So would this lead to a case where PHI->getNumOperands() != > std::distance(pred_begin(phiblock), pred_end(phiblock)) > > If so, that would seem problematic to handle as well. > :( Also, IIUC, today deleting an edge from A to B only requires removeIncomingValue(A) on B's PHI nodes, but after this change you'll have to check if you're deleting the last edge or not. Can (...