Lines Matching defs:analysis
180 /// Common analysis builder to finalize the construction of the analysis once
186 /// Encodes whether the analysis is valid and hoisting can proceed.
367 // The analysis is valid and hoisting can occur.
544 tensor::EmptyOp emptyOp, const HoistPaddingAnalysis &analysis) {
548 scf::ForOp outerLoop = analysis.outermostEnclosingForOp;
570 for (Operation *op : analysis.backwardSlice) {
679 ArrayRef<int64_t> transposeVector, const HoistPaddingAnalysis &analysis) {
681 int nPackedLoops = analysis.packingLoops.size();
706 scf::ForOp outerLoop = analysis.outermostEnclosingForOp;
710 analysis.getHoistedPackedTensorSizes(rewriter, loc);
716 *transposedTensorType, emptyOp, analysis);
725 HoistPaddingAnalysis analysis(opToHoist, outermostEnclosingForOp);
726 analysis.enableHoistPadding(rewriter);
727 analysis.finalizeHoistPaddingAnalysis();
728 if (!analysis.isValid()) {
734 analysis);
743 /// This is a poor man's analysis that is sufficient to check the extractSliceOp
820 // Poor man's analysis sufficient to ensure extractSlice matches tensor.pad.
879 const HoistPaddingAnalysis &analysis,
893 scf::ForOp outerLoop = analysis.outermostEnclosingForOp;
894 ArrayRef<scf::ForOp> packingLoops = analysis.packingLoops;
924 scf::ForOp forOp = analysis.padConsumingForOp;
927 analysis.sliceOp, forOp);
945 HoistPaddingAnalysis analysis(opToHoist, numLoops);
946 analysis.enableHoistPadding(rewriter);
947 analysis.finalizeHoistPaddingAnalysis();
948 if (!analysis.isValid()) {
956 rewriter, bvm, opToHoist, transposeVector, analysis);
973 analysis, *packingResult);