3131#include " mlir/Transforms/GreedyPatternRewriteDriver.h"
3232#include " llvm/ADT/STLExtras.h"
3333#include " llvm/ADT/TypeSwitch.h"
34+ #include " llvm/Support/DebugLog.h"
3435
3536#define DEBUG_TYPE " vector-to-gpu"
36- #define DBGS () (llvm::dbgs() << " [" DEBUG_TYPE " ]: " )
37- #define DBGSNL () (llvm::dbgs() << " \n " )
3837
3938namespace mlir {
4039#define GEN_PASS_DEF_CONVERTVECTORTOGPU
@@ -366,7 +365,7 @@ static SetVector<Operation *> getOpToConvert(mlir::Operation *op,
366365 // by all operations.
367366 if (llvm::any_of (dependentOps, [useNvGpu](Operation *op) {
368367 if (!supportsMMaMatrixType (op, useNvGpu)) {
369- LLVM_DEBUG ( DBGS ( ) << " cannot convert op: " << *op << " \n " ) ;
368+ LDBG ( ) << " cannot convert op: " << *op;
370369 return true ;
371370 }
372371 return false ;
@@ -548,7 +547,7 @@ convertTransferReadOp(RewriterBase &rewriter, vector::TransferReadOp op,
548547 std::optional<int64_t > stride =
549548 getStaticallyKnownRowStride (op.getShapedType ());
550549 if (!stride.has_value ()) {
551- LLVM_DEBUG ( DBGS ( ) << " no stride\n " ) ;
550+ LDBG ( ) << " no stride" ;
552551 return rewriter.notifyMatchFailure (op, " no stride" );
553552 }
554553
@@ -583,7 +582,7 @@ convertTransferReadOp(RewriterBase &rewriter, vector::TransferReadOp op,
583582 isTranspose ? rewriter.getUnitAttr () : UnitAttr ());
584583 valueMapping[mappingResult] = load;
585584
586- LLVM_DEBUG ( DBGS ( ) << " transfer read to: " << load << " \n " ) ;
585+ LDBG ( ) << " transfer read to: " << load;
587586 return success ();
588587}
589588
@@ -597,13 +596,13 @@ convertTransferWriteOp(RewriterBase &rewriter, vector::TransferWriteOp op,
597596 std::optional<int64_t > stride =
598597 getStaticallyKnownRowStride (op.getShapedType ());
599598 if (!stride.has_value ()) {
600- LLVM_DEBUG ( DBGS ( ) << " no stride\n " ) ;
599+ LDBG ( ) << " no stride" ;
601600 return rewriter.notifyMatchFailure (op, " no stride" );
602601 }
603602
604603 auto it = valueMapping.find (op.getVector ());
605604 if (it == valueMapping.end ()) {
606- LLVM_DEBUG ( DBGS ( ) << " no mapping\n " ) ;
605+ LDBG ( ) << " no mapping" ;
607606 return rewriter.notifyMatchFailure (op, " no mapping" );
608607 }
609608
@@ -613,9 +612,9 @@ convertTransferWriteOp(RewriterBase &rewriter, vector::TransferWriteOp op,
613612 rewriter.getIndexAttr (*stride), /* transpose=*/ UnitAttr ());
614613 (void )store;
615614
616- LLVM_DEBUG ( DBGS ( ) << " transfer write to: " << store << " \n " ) ;
615+ LDBG ( ) << " transfer write to: " << store;
617616
618- LLVM_DEBUG ( DBGS ( ) << " erase: " << op << " \n " ) ;
617+ LDBG ( ) << " erase: " << op;
619618 rewriter.eraseOp (op);
620619 return success ();
621620}
@@ -641,21 +640,21 @@ convertConstantOpMmaSync(RewriterBase &rewriter, arith::ConstantOp op,
641640 FailureOr<nvgpu::WarpMatrixInfo> warpMatrixInfo =
642641 nvgpu::getWarpMatrixInfo (op);
643642 if (failed (warpMatrixInfo)) {
644- LLVM_DEBUG ( DBGS ( ) << " no warpMatrixInfo\n " ) ;
643+ LDBG ( ) << " no warpMatrixInfo" ;
645644 return rewriter.notifyMatchFailure (op, " no warpMatrixInfo" );
646645 }
647646
648647 FailureOr<nvgpu::FragmentElementInfo> regInfo =
649648 nvgpu::getMmaSyncRegisterType (*warpMatrixInfo);
650649 if (failed (regInfo)) {
651- LLVM_DEBUG ( DBGS ( ) << " not mma sync reg info\n " ) ;
650+ LDBG ( ) << " not mma sync reg info" ;
652651 return rewriter.notifyMatchFailure (op, " not mma sync reg info" );
653652 }
654653
655654 VectorType vectorType = getMmaSyncVectorOperandType (*regInfo);
656655 auto dense = dyn_cast<SplatElementsAttr>(op.getValue ());
657656 if (!dense) {
658- LLVM_DEBUG ( DBGS ( ) << " not a splat\n " ) ;
657+ LDBG ( ) << " not a splat" ;
659658 return rewriter.notifyMatchFailure (op, " not a splat" );
660659 }
661660
@@ -677,8 +676,8 @@ static FailureOr<bool> isTransposed(vector::TransferReadOp op) {
677676 mlir::AffineMap map = op.getPermutationMap ();
678677
679678 if (map.getNumResults () != 2 ) {
680- LLVM_DEBUG ( DBGS () << " Failed because the result of `vector.transfer_read` "
681- " is not a 2d operand\n " ) ;
679+ LDBG () << " Failed because the result of `vector.transfer_read` "
680+ " is not a 2d operand" ;
682681 return failure ();
683682 }
684683
@@ -691,8 +690,8 @@ static FailureOr<bool> isTransposed(vector::TransferReadOp op) {
691690 auto exprN = dyn_cast<AffineDimExpr>(dN);
692691
693692 if (!exprM || !exprN) {
694- LLVM_DEBUG ( DBGS () << " Failed because expressions are not affine dim "
695- " expressions, then transpose cannot be determined.\n " ) ;
693+ LDBG () << " Failed because expressions are not affine dim "
694+ " expressions, then transpose cannot be determined." ;
696695 return failure ();
697696 }
698697
@@ -709,20 +708,20 @@ creatLdMatrixCompatibleLoads(RewriterBase &rewriter, vector::TransferReadOp op,
709708 FailureOr<nvgpu::WarpMatrixInfo> warpMatrixInfo =
710709 nvgpu::getWarpMatrixInfo (op);
711710 if (failed (warpMatrixInfo)) {
712- LLVM_DEBUG ( DBGS ( ) << " no warpMatrixInfo\n " ) ;
711+ LDBG ( ) << " no warpMatrixInfo" ;
713712 return rewriter.notifyMatchFailure (op, " no warpMatrixInfo" );
714713 }
715714
716715 FailureOr<nvgpu::FragmentElementInfo> regInfo =
717716 nvgpu::getMmaSyncRegisterType (*warpMatrixInfo);
718717 if (failed (regInfo)) {
719- LLVM_DEBUG ( DBGS ( ) << " not mma sync reg info\n " ) ;
718+ LDBG ( ) << " not mma sync reg info" ;
720719 return rewriter.notifyMatchFailure (op, " not mma sync reg info" );
721720 }
722721
723722 FailureOr<bool > transpose = isTransposed (op);
724723 if (failed (transpose)) {
725- LLVM_DEBUG ( DBGS ( ) << " failed to determine the transpose\n " ) ;
724+ LDBG ( ) << " failed to determine the transpose" ;
726725 return rewriter.notifyMatchFailure (
727726 op, " Op should likely not be converted to a nvgpu.ldmatrix call." );
728727 }
@@ -731,10 +730,8 @@ creatLdMatrixCompatibleLoads(RewriterBase &rewriter, vector::TransferReadOp op,
731730 nvgpu::getLdMatrixParams (*warpMatrixInfo, *transpose);
732731
733732 if (failed (params)) {
734- LLVM_DEBUG (
735- DBGS ()
736- << " failed to convert vector.transfer_read to ldmatrix. "
737- << " Op should likely not be converted to a nvgpu.ldmatrix call.\n " );
733+ LDBG () << " failed to convert vector.transfer_read to ldmatrix. "
734+ << " Op should likely not be converted to a nvgpu.ldmatrix call." ;
738735 return rewriter.notifyMatchFailure (
739736 op, " failed to convert vector.transfer_read to ldmatrix; this op "
740737 " likely should not be converted to a nvgpu.ldmatrix call." );
@@ -745,7 +742,7 @@ creatLdMatrixCompatibleLoads(RewriterBase &rewriter, vector::TransferReadOp op,
745742 FailureOr<AffineMap> offsets =
746743 nvgpu::getLaneIdToLdMatrixMatrixCoord (rewriter, loc, *params);
747744 if (failed (offsets)) {
748- LLVM_DEBUG ( DBGS ( ) << " no offsets\n " ) ;
745+ LDBG ( ) << " no offsets" ;
749746 return rewriter.notifyMatchFailure (op, " no offsets" );
750747 }
751748
@@ -934,7 +931,7 @@ convertTransferWriteToStores(RewriterBase &rewriter, vector::TransferWriteOp op,
934931 vector::StoreOp::create (rewriter, loc, el, op.getBase (), newIndices);
935932 }
936933
937- LLVM_DEBUG ( DBGS ( ) << " erase: " << op << " \n " ) ;
934+ LDBG ( ) << " erase: " << op;
938935 rewriter.eraseOp (op);
939936 return success ();
940937}
@@ -1132,9 +1129,9 @@ static scf::ForOp replaceForOpWithNewSignature(RewriterBase &rewriter,
11321129 loop.getNumResults ())))
11331130 rewriter.replaceAllUsesWith (std::get<0 >(it), std::get<1 >(it));
11341131
1135- LLVM_DEBUG ( DBGS ( ) << " newLoop now: " << newLoop << " \n " ) ;
1136- LLVM_DEBUG ( DBGS ( ) << " stripped scf.for: " << loop << " \n " ) ;
1137- LLVM_DEBUG ( DBGS ( ) << " erase: " << loop) ;
1132+ LDBG ( ) << " newLoop now: " << newLoop;
1133+ LDBG ( ) << " stripped scf.for: " << loop;
1134+ LDBG ( ) << " erase: " << loop;
11381135
11391136 rewriter.eraseOp (loop);
11401137 return newLoop;
@@ -1150,7 +1147,7 @@ static LogicalResult convertForOp(RewriterBase &rewriter, scf::ForOp op,
11501147 for (const auto &operand : llvm::enumerate (op.getInitArgs ())) {
11511148 auto it = valueMapping.find (operand.value ());
11521149 if (it == valueMapping.end ()) {
1153- LLVM_DEBUG ( DBGS ( ) << " no value mapping for: " << operand.value () << " \n " );
1150+ LDBG ( ) << " no value mapping for: " << operand.value ();
11541151 continue ;
11551152 }
11561153 argMapping.push_back (std::make_pair (
@@ -1168,7 +1165,7 @@ static LogicalResult convertForOp(RewriterBase &rewriter, scf::ForOp op,
11681165 loopBody.getArgument (mapping.second + newForOp.getNumInductionVars ());
11691166 }
11701167
1171- LLVM_DEBUG ( DBGS ( ) << " scf.for to: " << newForOp << " \n " ) ;
1168+ LDBG ( ) << " scf.for to: " << newForOp;
11721169 return success ();
11731170}
11741171
@@ -1191,7 +1188,7 @@ convertYieldOp(RewriterBase &rewriter, scf::YieldOp op,
11911188 }
11921189 scf::YieldOp::create (rewriter, op.getLoc (), yieldOperands);
11931190
1194- LLVM_DEBUG ( DBGS ( ) << " erase: " << op << " \n " ) ;
1191+ LDBG ( ) << " erase: " << op;
11951192 rewriter.eraseOp (op);
11961193 return success ();
11971194}
@@ -1244,7 +1241,7 @@ LogicalResult mlir::convertVectorToMMAOps(RewriterBase &rewriter,
12441241
12451242 auto globalRes = LogicalResult::success ();
12461243 for (Operation *op : ops) {
1247- LLVM_DEBUG ( DBGS ( ) << " Process op: " << *op << " \n " ) ;
1244+ LDBG ( ) << " Process op: " << *op;
12481245 // Apparently callers do not want to early exit on failure here.
12491246 auto res = LogicalResult::success ();
12501247 if (auto transferRead = dyn_cast<vector::TransferReadOp>(op)) {
0 commit comments