From: Owen Anderson Date: Fri, 7 Mar 2014 00:08:57 +0000 (+0000) Subject: Add iterator_range support for MachineInstr's operand and memoperand iterators. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=83710e7716d1c07f50195182fbc6ff0217404457;p=oota-llvm.git Add iterator_range support for MachineInstr's operand and memoperand iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203181 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index ff87a48efdb..b3dbaf38caf 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -22,6 +22,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/ilist.h" #include "llvm/ADT/ilist_node.h" +#include "llvm/ADT/iterator_range.h" #include "llvm/CodeGen/MachineOperand.h" #include "llvm/IR/DebugLoc.h" #include "llvm/IR/InlineAsm.h" @@ -286,11 +287,25 @@ public: const_mop_iterator operands_begin() const { return Operands; } const_mop_iterator operands_end() const { return Operands + NumOperands; } + inline iterator_range operands() { + return iterator_range(operands_begin(), operands_end()); + } + inline iterator_range operands() const { + return iterator_range(operands_begin(), operands_end()); + } + /// Access to memory operands of the instruction mmo_iterator memoperands_begin() const { return MemRefs; } mmo_iterator memoperands_end() const { return MemRefs + NumMemRefs; } bool memoperands_empty() const { return NumMemRefs == 0; } + inline iterator_range memoperands() { + return iterator_range(memoperands_begin(), memoperands_end()); + } + inline iterator_range memoperands() const { + return iterator_range(memoperands_begin(), memoperands_end()); + } + /// hasOneMemOperand - Return true if this instruction has exactly one /// MachineMemOperand. bool hasOneMemOperand() const {