#define DEBUG_TYPE "codegen"
-MachineBasicBlock::MachineBasicBlock(MachineFunction &mf, const BasicBlock *bb)
- : BB(bb), Number(-1), xParent(&mf) {
+MachineBasicBlock::MachineBasicBlock(MachineFunction &MF, const BasicBlock *B)
+ : BB(B), Number(-1), xParent(&MF) {
Insts.Parent = this;
}
/// When moving a range of instructions from one MBB list to another, we need to
/// update the parent pointers and the use/def lists.
void ilist_traits<MachineInstr>::
-transferNodesFromList(ilist_traits<MachineInstr> &fromList,
- ilist_iterator<MachineInstr> first,
- ilist_iterator<MachineInstr> last) {
- assert(Parent->getParent() == fromList.Parent->getParent() &&
+transferNodesFromList(ilist_traits<MachineInstr> &FromList,
+ ilist_iterator<MachineInstr> First,
+ ilist_iterator<MachineInstr> Last) {
+ assert(Parent->getParent() == FromList.Parent->getParent() &&
"MachineInstr parent mismatch!");
// Splice within the same MBB -> no change.
- if (Parent == fromList.Parent) return;
+ if (Parent == FromList.Parent) return;
// If splicing between two blocks within the same function, just update the
// parent pointers.
- for (; first != last; ++first)
- first->setParent(Parent);
+ for (; First != Last; ++First)
+ First->setParent(Parent);
}
void ilist_traits<MachineInstr>::deleteNode(MachineInstr* MI) {
MachineBasicBlock *TBB = nullptr, *FBB = nullptr;
SmallVector<MachineOperand, 4> Cond;
- DebugLoc dl; // FIXME: this is nowhere
+ DebugLoc DL; // FIXME: this is nowhere
bool B = TII->AnalyzeBranch(*this, TBB, FBB, Cond);
(void) B;
assert(!B && "UpdateTerminators requires analyzable predecessors!");
// Finally update the unconditional successor to be reached via a branch
// if it would not be reached by fallthrough.
if (!isLayoutSuccessor(TBB))
- TII->InsertBranch(*this, TBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, TBB, nullptr, Cond, DL);
}
} else {
if (FBB) {
if (TII->ReverseBranchCondition(Cond))
return;
TII->RemoveBranch(*this);
- TII->InsertBranch(*this, FBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, FBB, nullptr, Cond, DL);
} else if (isLayoutSuccessor(FBB)) {
TII->RemoveBranch(*this);
- TII->InsertBranch(*this, TBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, TBB, nullptr, Cond, DL);
}
} else {
// Walk through the successors and find the successor which is not
// Finally update the unconditional successor to be reached via a branch
// if it would not be reached by fallthrough.
if (!isLayoutSuccessor(TBB))
- TII->InsertBranch(*this, TBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, TBB, nullptr, Cond, DL);
return;
}
if (TII->ReverseBranchCondition(Cond)) {
// We can't reverse the condition, add an unconditional branch.
Cond.clear();
- TII->InsertBranch(*this, FallthroughBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, FallthroughBB, nullptr, Cond, DL);
return;
}
TII->RemoveBranch(*this);
- TII->InsertBranch(*this, FallthroughBB, nullptr, Cond, dl);
+ TII->InsertBranch(*this, FallthroughBB, nullptr, Cond, DL);
} else if (!isLayoutSuccessor(FallthroughBB)) {
TII->RemoveBranch(*this);
- TII->InsertBranch(*this, TBB, FallthroughBB, Cond, dl);
+ TII->InsertBranch(*this, TBB, FallthroughBB, Cond, DL);
}
}
}
}
-void MachineBasicBlock::addSuccessor(MachineBasicBlock *succ, uint32_t weight) {
+void MachineBasicBlock::addSuccessor(MachineBasicBlock *Succ, uint32_t Weight) {
// If we see non-zero value for the first time it means we actually use Weight
// list, so we fill all Weights with 0's.
- if (weight != 0 && Weights.empty())
+ if (Weight != 0 && Weights.empty())
Weights.resize(Successors.size());
- if (weight != 0 || !Weights.empty())
- Weights.push_back(weight);
+ if (Weight != 0 || !Weights.empty())
+ Weights.push_back(Weight);
- Successors.push_back(succ);
- succ->addPredecessor(this);
+ Successors.push_back(Succ);
+ Succ->addPredecessor(this);
}
-void MachineBasicBlock::removeSuccessor(MachineBasicBlock *succ) {
- succ->removePredecessor(this);
- succ_iterator I = std::find(Successors.begin(), Successors.end(), succ);
+void MachineBasicBlock::removeSuccessor(MachineBasicBlock *Succ) {
+ Succ->removePredecessor(this);
+ succ_iterator I = std::find(Successors.begin(), Successors.end(), Succ);
assert(I != Successors.end() && "Not a current successor!");
// If Weight list is empty it means we don't use it (disabled optimization).
Successors.erase(OldI);
}
-void MachineBasicBlock::addPredecessor(MachineBasicBlock *pred) {
- Predecessors.push_back(pred);
+void MachineBasicBlock::addPredecessor(MachineBasicBlock *Pred) {
+ Predecessors.push_back(Pred);
}
-void MachineBasicBlock::removePredecessor(MachineBasicBlock *pred) {
- pred_iterator I = std::find(Predecessors.begin(), Predecessors.end(), pred);
+void MachineBasicBlock::removePredecessor(MachineBasicBlock *Pred) {
+ pred_iterator I = std::find(Predecessors.begin(), Predecessors.end(), Pred);
assert(I != Predecessors.end() && "Pred is not a predecessor of this block!");
Predecessors.erase(I);
}
-void MachineBasicBlock::transferSuccessors(MachineBasicBlock *fromMBB) {
- if (this == fromMBB)
+void MachineBasicBlock::transferSuccessors(MachineBasicBlock *FromMBB) {
+ if (this == FromMBB)
return;
- while (!fromMBB->succ_empty()) {
- MachineBasicBlock *Succ = *fromMBB->succ_begin();
+ while (!FromMBB->succ_empty()) {
+ MachineBasicBlock *Succ = *FromMBB->succ_begin();
uint32_t Weight = 0;
// If Weight list is empty it means we don't use it (disabled optimization).
- if (!fromMBB->Weights.empty())
- Weight = *fromMBB->Weights.begin();
+ if (!FromMBB->Weights.empty())
+ Weight = *FromMBB->Weights.begin();
addSuccessor(Succ, Weight);
- fromMBB->removeSuccessor(Succ);
+ FromMBB->removeSuccessor(Succ);
}
}
void
-MachineBasicBlock::transferSuccessorsAndUpdatePHIs(MachineBasicBlock *fromMBB) {
- if (this == fromMBB)
+MachineBasicBlock::transferSuccessorsAndUpdatePHIs(MachineBasicBlock *FromMBB) {
+ if (this == FromMBB)
return;
- while (!fromMBB->succ_empty()) {
- MachineBasicBlock *Succ = *fromMBB->succ_begin();
+ while (!FromMBB->succ_empty()) {
+ MachineBasicBlock *Succ = *FromMBB->succ_begin();
uint32_t Weight = 0;
- if (!fromMBB->Weights.empty())
- Weight = *fromMBB->Weights.begin();
+ if (!FromMBB->Weights.empty())
+ Weight = *FromMBB->Weights.begin();
addSuccessor(Succ, Weight);
- fromMBB->removeSuccessor(Succ);
+ FromMBB->removeSuccessor(Succ);
// Fix up any PHI nodes in the successor.
for (MachineBasicBlock::instr_iterator MI = Succ->instr_begin(),
ME = Succ->instr_end(); MI != ME && MI->isPHI(); ++MI)
for (unsigned i = 2, e = MI->getNumOperands()+1; i != e; i += 2) {
MachineOperand &MO = MI->getOperand(i);
- if (MO.getMBB() == fromMBB)
+ if (MO.getMBB() == FromMBB)
MO.setMBB(this);
}
}
return nullptr;
MachineFunction *MF = getParent();
- DebugLoc dl; // FIXME: this is nowhere
+ DebugLoc DL; // FIXME: this is nowhere
// Performance might be harmed on HW that implements branching using exec mask
// where both sides of the branches are always executed.
NMBB->addSuccessor(Succ);
if (!NMBB->isLayoutSuccessor(Succ)) {
Cond.clear();
- TII->InsertBranch(*NMBB, Succ, nullptr, Cond, dl);
+ TII->InsertBranch(*NMBB, Succ, nullptr, Cond, DL);
if (Indexes) {
for (instr_iterator I = NMBB->instr_begin(), E = NMBB->instr_end();
/// Note it is possible that DestA and/or DestB are LandingPads.
bool MachineBasicBlock::CorrectExtraCFGEdges(MachineBasicBlock *DestA,
MachineBasicBlock *DestB,
- bool isCond) {
+ bool IsCond) {
// The values of DestA and DestB frequently come from a call to the
// 'TargetInstrInfo::AnalyzeBranch' method. We take our meaning of the initial
// values from there.
//
// 1. If both DestA and DestB are null, then the block ends with no branches
// (it falls through to its successor).
- // 2. If DestA is set, DestB is null, and isCond is false, then the block ends
+ // 2. If DestA is set, DestB is null, and IsCond is false, then the block ends
// with only an unconditional branch.
- // 3. If DestA is set, DestB is null, and isCond is true, then the block ends
+ // 3. If DestA is set, DestB is null, and IsCond is true, then the block ends
// with a conditional branch that falls through to a successor (DestB).
- // 4. If DestA and DestB is set and isCond is true, then the block ends with a
+ // 4. If DestA and DestB is set and IsCond is true, then the block ends with a
// conditional branch followed by an unconditional branch. DestA is the
// 'true' destination and DestB is the 'false' destination.
DestA = FallThru;
DestB = FallThru;
} else if (DestA && !DestB) {
- if (isCond)
+ if (IsCond)
// Block ends in conditional jump that falls through to successor.
DestB = FallThru;
} else {
- assert(DestA && DestB && isCond &&
+ assert(DestA && DestB && IsCond &&
"CFG in a bad state. Cannot correct CFG edges");
}
}
/// Set successor weight of a given iterator.
-void MachineBasicBlock::setSuccWeight(succ_iterator I, uint32_t weight) {
+void MachineBasicBlock::setSuccWeight(succ_iterator I, uint32_t Weight) {
if (Weights.empty())
return;
- *getWeightIterator(I) = weight;
+ *getWeightIterator(I) = Weight;
}
/// Return wight iterator corresonding to the I successor iterator.