@@ -504,6 +504,14 @@ class SimpleWrapIterator : public SparseIterator {
504504 unsigned extraCursorVal = 0 )
505505 : SparseIterator(kind, *wrap, extraCursorVal), wrap(std::move(wrap)) {}
506506
507+ void setSparseEmitStrategy (SparseEmitStrategy strategy) override {
508+ wrap->setSparseEmitStrategy (strategy);
509+ }
510+
511+ SparseEmitStrategy getSparseEmitStrategy () const override {
512+ return wrap->getSparseEmitStrategy ();
513+ }
514+
507515 SmallVector<Type> getCursorValTypes (OpBuilder &b) const override {
508516 return wrap->getCursorValTypes (b);
509517 }
@@ -979,7 +987,7 @@ class SubSectIterator : public SparseIterator {
979987
980988void SparseIterator::genInit (OpBuilder &b, Location l,
981989 const SparseIterator *p) {
982- if (emitStrategy == SparseEmitStrategy::kDebugInterface ) {
990+ if (getSparseEmitStrategy () == SparseEmitStrategy::kDebugInterface ) {
983991 std::string prefix = getDebugInterfacePrefix ();
984992 Operation *begin = b.create (l, b.getStringAttr (prefix + " .begin" ), {},
985993 getCursorValTypes (b));
@@ -994,7 +1002,7 @@ void SparseIterator::genInit(OpBuilder &b, Location l,
9941002}
9951003
9961004Value SparseIterator::genNotEnd (OpBuilder &b, Location l) {
997- if (emitStrategy == SparseEmitStrategy::kDebugInterface ) {
1005+ if (getSparseEmitStrategy () == SparseEmitStrategy::kDebugInterface ) {
9981006 std::string prefix = getDebugInterfacePrefix ();
9991007 Operation *notEnd = b.create (l, b.getStringAttr (prefix + " .not_end" ),
10001008 getCursor (), b.getI1Type ());
@@ -1005,7 +1013,7 @@ Value SparseIterator::genNotEnd(OpBuilder &b, Location l) {
10051013}
10061014
10071015void SparseIterator::locate (OpBuilder &b, Location l, Value crd) {
1008- if (emitStrategy == SparseEmitStrategy::kDebugInterface ) {
1016+ if (getSparseEmitStrategy () == SparseEmitStrategy::kDebugInterface ) {
10091017 std::string prefix = getDebugInterfacePrefix ();
10101018 SmallVector<Value> args = getCursor ();
10111019 args.push_back (crd);
@@ -1019,7 +1027,7 @@ void SparseIterator::locate(OpBuilder &b, Location l, Value crd) {
10191027}
10201028
10211029Value SparseIterator::deref (OpBuilder &b, Location l) {
1022- if (emitStrategy == SparseEmitStrategy::kDebugInterface ) {
1030+ if (getSparseEmitStrategy () == SparseEmitStrategy::kDebugInterface ) {
10231031 std::string prefix = getDebugInterfacePrefix ();
10241032 SmallVector<Value> args = getCursor ();
10251033 Operation *deref = b.create (l, b.getStringAttr (prefix + " .deref" ),
@@ -1032,7 +1040,7 @@ Value SparseIterator::deref(OpBuilder &b, Location l) {
10321040
10331041ValueRange SparseIterator::forward (OpBuilder &b, Location l) {
10341042 assert (!randomAccessible ());
1035- if (emitStrategy == SparseEmitStrategy::kDebugInterface ) {
1043+ if (getSparseEmitStrategy () == SparseEmitStrategy::kDebugInterface ) {
10361044 std::string prefix = getDebugInterfacePrefix ();
10371045 Operation *next = b.create (l, b.getStringAttr (prefix + " .next" ),
10381046 getCursor (), getCursorValTypes (b));
0 commit comments