From dce701ab867322db3100b3a12e0892c1ec60b384 Mon Sep 17 00:00:00 2001 From: River Riddle Date: Tue, 28 May 2019 10:23:06 -0700 Subject: [PATCH] NFC: Replace Function::args_iterator with Block::args_iterator. -- PiperOrigin-RevId: 250311059 --- mlir/include/mlir/IR/Function.h | 48 ++++++----------------------------------- 1 file changed, 7 insertions(+), 41 deletions(-) diff --git a/mlir/include/mlir/IR/Function.h b/mlir/include/mlir/IR/Function.h index 9108da7..81ba845 100644 --- a/mlir/include/mlir/IR/Function.h +++ b/mlir/include/mlir/IR/Function.h @@ -32,7 +32,6 @@ class BlockAndValueMapping; class FunctionType; class MLIRContext; class Module; -class ArgumentIterator; /// This is the base class for all of the MLIR function types. class Function : public llvm::ilist_node_with_parent { @@ -139,11 +138,13 @@ public: return getBlocks().front().getArgument(idx); } - // Supports non-const operand iteration. - using args_iterator = ArgumentIterator; - args_iterator args_begin(); - args_iterator args_end(); - llvm::iterator_range getArguments(); + // Supports argument iteration. + using args_iterator = Block::args_iterator; + args_iterator args_begin() { return front().args_begin(); } + args_iterator args_end() { return front().args_end(); } + llvm::iterator_range getArguments() { + return {args_begin(), args_end()}; + } //===--------------------------------------------------------------------===// // Attributes @@ -319,41 +320,6 @@ private: friend struct llvm::ilist_traits; }; -//===--------------------------------------------------------------------===// -// ArgumentIterator -//===--------------------------------------------------------------------===// - -/// This template implements the argument iterator in terms of getArgument(idx). -class ArgumentIterator final - : public IndexedAccessorIterator { -public: - /// Initializes the result iterator to the specified index. - ArgumentIterator(Function *object, unsigned index) - : IndexedAccessorIterator( - object, index) {} - - BlockArgument *operator*() const { - return this->object->getArgument(this->index); - } -}; - -//===--------------------------------------------------------------------===// -// Function iterator methods. -//===--------------------------------------------------------------------===// - -inline Function::args_iterator Function::args_begin() { - return args_iterator(this, 0); -} - -inline Function::args_iterator Function::args_end() { - return args_iterator(this, getNumArguments()); -} - -inline llvm::iterator_range Function::getArguments() { - return {args_begin(), args_end()}; -} - } // end namespace mlir //===----------------------------------------------------------------------===// -- 2.7.4