@@ -420,15 +420,14 @@ void IRNumberingState::number(Operation &op) {
420420 // Number the components of an operation that won't be numbered elsewhere
421421 // (e.g. we don't number operands, regions, or successors here).
422422
423- OperationName opName = op.getName ();
424- // For fallback ops, create a new operation name referencing the original op
423+ // For fallback ops, create a new OperationName referencing the original op
425424 // instead.
426- if (auto fallback = dyn_cast<FallbackBytecodeOpInterface>(op))
427- opName = OperationName (( fallback-> getDialect ()-> getNamespace () + " . " +
428- fallback. getOriginalOperationName ())
429- . str (),
430- op.getContext () );
431- number (opName);
425+ if (auto fallback = dyn_cast<FallbackBytecodeOpInterface>(op)) {
426+ OperationName opName ( fallback. getOriginalOperationName (), op. getContext ());
427+ number (opName, /* isOpaque= */ true );
428+ } else {
429+ number ( op.getName (), /* isOpaque= */ false );
430+ }
432431
433432 for (OpResult result : op.getResults ()) {
434433 valueIDs.try_emplace (result, nextValueID++);
@@ -467,7 +466,7 @@ void IRNumberingState::number(Operation &op) {
467466 number (op.getLoc ());
468467}
469468
470- void IRNumberingState::number (OperationName opName) {
469+ void IRNumberingState::number (OperationName opName, bool isOpaque ) {
471470 OpNameNumbering *&numbering = opNames[opName];
472471 if (numbering) {
473472 ++numbering->refCount ;
@@ -479,8 +478,8 @@ void IRNumberingState::number(OperationName opName) {
479478 else
480479 dialectNumber = &numberDialect (opName.getDialectNamespace ());
481480
482- numbering =
483- new (opNameAllocator. Allocate ()) OpNameNumbering (dialectNumber, opName);
481+ numbering = new (opNameAllocator. Allocate ())
482+ OpNameNumbering (dialectNumber, opName, isOpaque );
484483 orderedOpNames.push_back (numbering);
485484}
486485
0 commit comments