diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-07-12 01:55:32 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-07-12 01:55:32 +0000 |
commit | 98226e3d93f6cfbfc93b02ef79a988fcbe20ae38 (patch) | |
tree | 25aabac7d80623761ec657cdd8c37f28ed7f01d5 /llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp | |
parent | fdd30c620da25a98c7cae6e413577ac7534fa9e0 (diff) | |
download | bcm5719-llvm-98226e3d93f6cfbfc93b02ef79a988fcbe20ae38.tar.gz bcm5719-llvm-98226e3d93f6cfbfc93b02ef79a988fcbe20ae38.zip |
Hexagon: Avoid implicit iterator conversions, NFC
Avoid implicit iterator conversions from MachineInstrBundleIterator to
MachineInstr* in the Hexagon backend, mostly by preferring MachineInstr&
over MachineInstr* and switching to range-based for loops.
There's a long tail of API cleanup here, but I'm planning to leave the
rest to the Hexagon maintainers. HexagonInstrInfo defines many of its
own predicates, and most of them still take MachineInstr*. Some of
those actually check for nullptr, so I didn't feel comfortable changing
them to MachineInstr& en masse.
llvm-svn: 275142
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp b/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp index 58db4b75c72..559bdfb16a6 100644 --- a/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp +++ b/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp @@ -37,9 +37,9 @@ namespace { class HexagonCFGOptimizer : public MachineFunctionPass { private: - void InvertAndChangeJumpTarget(MachineInstr*, MachineBasicBlock*); + void InvertAndChangeJumpTarget(MachineInstr &, MachineBasicBlock *); - public: +public: static char ID; HexagonCFGOptimizer() : MachineFunctionPass(ID) { initializeHexagonCFGOptimizerPass(*PassRegistry::getPassRegistry()); @@ -68,14 +68,12 @@ static bool IsUnconditionalJump(int Opc) { return (Opc == Hexagon::J2_jump); } - -void -HexagonCFGOptimizer::InvertAndChangeJumpTarget(MachineInstr* MI, - MachineBasicBlock* NewTarget) { +void HexagonCFGOptimizer::InvertAndChangeJumpTarget( + MachineInstr &MI, MachineBasicBlock *NewTarget) { const TargetInstrInfo *TII = - MI->getParent()->getParent()->getSubtarget().getInstrInfo(); + MI.getParent()->getParent()->getSubtarget().getInstrInfo(); int NewOpcode = 0; - switch(MI->getOpcode()) { + switch (MI.getOpcode()) { case Hexagon::J2_jumpt: NewOpcode = Hexagon::J2_jumpf; break; @@ -96,8 +94,8 @@ HexagonCFGOptimizer::InvertAndChangeJumpTarget(MachineInstr* MI, llvm_unreachable("Cannot handle this case"); } - MI->setDesc(TII->get(NewOpcode)); - MI->getOperand(1).setMBB(NewTarget); + MI.setDesc(TII->get(NewOpcode)); + MI.getOperand(1).setMBB(NewTarget); } @@ -113,8 +111,8 @@ bool HexagonCFGOptimizer::runOnMachineFunction(MachineFunction &Fn) { // Traverse the basic block. MachineBasicBlock::iterator MII = MBB->getFirstTerminator(); if (MII != MBB->end()) { - MachineInstr *MI = MII; - int Opc = MI->getOpcode(); + MachineInstr &MI = *MII; + int Opc = MI.getOpcode(); if (IsConditionalBranch(Opc)) { // @@ -166,9 +164,9 @@ bool HexagonCFGOptimizer::runOnMachineFunction(MachineFunction &Fn) { // The target of the unconditional branch must be JumpAroundTarget. // TODO: If not, we should not invert the unconditional branch. MachineBasicBlock* CondBranchTarget = nullptr; - if ((MI->getOpcode() == Hexagon::J2_jumpt) || - (MI->getOpcode() == Hexagon::J2_jumpf)) { - CondBranchTarget = MI->getOperand(1).getMBB(); + if (MI.getOpcode() == Hexagon::J2_jumpt || + MI.getOpcode() == Hexagon::J2_jumpf) { + CondBranchTarget = MI.getOperand(1).getMBB(); } if (!LayoutSucc || (CondBranchTarget != JumpAroundTarget)) { |