[llvm-dev] Why MachineBasicBlcok doesn't have transferPredecessors() ?
Nicolai Hähnle via llvm-dev
llvm-dev at lists.llvm.org
Fri Mar 13 08:56:59 PDT 2020
On Fri, Mar 13, 2020 at 12:22 PM PenYiWang via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I found that there is transferSuccessors() in MachineBasicBlcok
>
> So that when manipulating MachineBasicBlock,
> we can use transferSuccessors to update the CFG easily.
>
> Why there is not transferPredecessors in MachineBasicBlcok ?
What would you want to use it for? If it's for splitting a block: the
common pattern for splitting seems to be to create a new block that
will be the successor of the old one rather than the other way around.
One good reason for this is that doing it this way only requires
fixing up (target-independent) phi instructions, while doing it the
other way around would require fixing up the (target-specific!) branch
instructions.
Cheers,
Nicolai
--
Lerne, wie die Welt wirklich ist,
aber vergiss niemals, wie sie sein sollte.
More information about the llvm-dev
mailing list