mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Describe tail merging's use of InsertBranch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65062 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4a359ea2d5
commit
c1c9d7e6a9
@ -182,15 +182,15 @@ public:
|
||||
/// 2. If this block ends with only an unconditional branch, it sets TBB to be
|
||||
/// the destination block.
|
||||
/// 3. If this block ends with an conditional branch and it falls through to
|
||||
/// an successor block, it sets TBB to be the branch destination block and a
|
||||
/// list of operands that evaluate the condition. These
|
||||
/// an successor block, it sets TBB to be the branch destination block and
|
||||
/// a list of operands that evaluate the condition. These
|
||||
/// operands can be passed to other TargetInstrInfo methods to create new
|
||||
/// branches.
|
||||
/// 4. If this block ends with an conditional branch and an unconditional
|
||||
/// block, it returns the 'true' destination in TBB, the 'false' destination
|
||||
/// in FBB, and a list of operands that evaluate the condition. These
|
||||
/// operands can be passed to other TargetInstrInfo methods to create new
|
||||
/// branches.
|
||||
/// block, it returns the 'true' destination in TBB, the 'false'
|
||||
/// destination in FBB, and a list of operands that evaluate the condition.
|
||||
/// These operands can be passed to other TargetInstrInfo methods to create
|
||||
/// new branches.
|
||||
///
|
||||
/// Note that RemoveBranch and InsertBranch must be implemented to support
|
||||
/// cases where this method returns success.
|
||||
@ -219,6 +219,11 @@ public:
|
||||
/// returns success and when an unconditional branch (TBB is non-null, FBB is
|
||||
/// null, Cond is empty) needs to be inserted. It returns the number of
|
||||
/// instructions inserted.
|
||||
///
|
||||
/// It is also invoked by tail merging to add unconditional branches in
|
||||
/// cases where AnalyzeBranch doesn't apply because there was no original
|
||||
/// branch to analyze. At least this much must be implemented, else tail
|
||||
/// merging needs to be disabled.
|
||||
virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
|
||||
MachineBasicBlock *FBB,
|
||||
const SmallVectorImpl<MachineOperand> &Cond) const {
|
||||
|
Loading…
Reference in New Issue
Block a user