[llvm-commits] Add operand iterator for machine instruction.

ether zhhb etherzhhb at gmail.com
Fri Oct 29 07:21:23 PDT 2010


>From 64aed599d3d9e59756d874e1693f884a4f6e5a02 Mon Sep 17 00:00:00 2001
From: ether <etherzhhb at gmail.com>
Date: Fri, 29 Oct 2010 22:18:01 +0800
Subject: [PATCH] Add operand iterator to machine instruction.

hi all,

This patch add the operand iterator to machine instruction.

best regards
ether

---
 include/llvm/CodeGen/MachineInstr.h |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/include/llvm/CodeGen/MachineInstr.h
b/include/llvm/CodeGen/MachineInstr.h
index fc84f8c..ea5f2cb 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -167,7 +167,17 @@ public:
   /// getNumExplicitOperands - Returns the number of non-implicit operands.
   ///
   unsigned getNumExplicitOperands() const;
-
+
+  /// iterator/begin/end - Iterate over all operands of a machine instruction.
+  typedef std::vector<MachineOperand>::iterator mop_iterator;
+  typedef std::vector<MachineOperand>::const_iterator const_mop_iterator;
+
+  mop_iterator operands_begin() { return Operands.begin(); }
+  mop_iterator operands_end() { return Operands.end(); }
+
+  const_mop_iterator operands_begin() { return Operands.begin(); }
+  const_mop_iterator operands_end() { return Operands.end(); }
+
   /// Access to memory operands of the instruction
   mmo_iterator memoperands_begin() const { return MemRefs; }
   mmo_iterator memoperands_end() const { return MemRefsEnd; }
-- 
1.7.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-operand-iterator-to-machine-instruction.patch
Type: application/octet-stream
Size: 1347 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20101029/c3536e00/attachment.obj>


More information about the llvm-commits mailing list