Lines Matching refs:funcOp

99                                                   func::FuncOp funcOp) {  in getFuncOpAnalysisState()  argument
101 auto it = funcState.analyzedFuncOps.find(funcOp); in getFuncOpAnalysisState()
109 static func::ReturnOp getAssumedUniqueReturnOp(func::FuncOp funcOp) { in getAssumedUniqueReturnOp() argument
111 for (Block &b : funcOp.getBody()) { in getAssumedUniqueReturnOp()
146 static LogicalResult aliasingFuncOpBBArgsAnalysis(FuncOp funcOp, in aliasingFuncOpBBArgsAnalysis() argument
151 func::ReturnOp returnOp = getAssumedUniqueReturnOp(funcOp); in aliasingFuncOpBBArgsAnalysis()
156 for (BlockArgument bbArg : funcOp.getArguments()) in aliasingFuncOpBBArgsAnalysis()
161 funcState.equivalentFuncArgs[funcOp][returnIdx] = bbArgIdx; in aliasingFuncOpBBArgsAnalysis()
166 funcState.aliasingFuncArgs[funcOp][returnIdx].push_back(bbArgIdx); in aliasingFuncOpBBArgsAnalysis()
167 funcState.aliasingReturnVals[funcOp][bbArgIdx].push_back(returnIdx); in aliasingFuncOpBBArgsAnalysis()
174 static void annotateFuncArgAccess(func::FuncOp funcOp, BlockArgument bbArg, in annotateFuncArgAccess() argument
176 OpBuilder b(funcOp.getContext()); in annotateFuncArgAccess()
187 funcOp.setArgAttr(bbArg.getArgNumber(), "bufferization.access", accessType); in annotateFuncArgAccess()
193 static LogicalResult funcOpBbArgReadWriteAnalysis(FuncOp funcOp, in funcOpBbArgReadWriteAnalysis() argument
199 if (funcOp.getBody().empty()) { in funcOpBbArgReadWriteAnalysis()
200 for (BlockArgument bbArg : funcOp.getArguments()) { in funcOpBbArgReadWriteAnalysis()
201 funcState.readBbArgs[funcOp].insert(bbArg.getArgNumber()); in funcOpBbArgReadWriteAnalysis()
202 funcState.writtenBbArgs[funcOp].insert(bbArg.getArgNumber()); in funcOpBbArgReadWriteAnalysis()
208 for (BlockArgument bbArg : funcOp.getArguments()) { in funcOpBbArgReadWriteAnalysis()
214 annotateFuncArgAccess(funcOp, bbArg, isRead, isWritten); in funcOpBbArgReadWriteAnalysis()
216 funcState.readBbArgs[funcOp].insert(bbArg.getArgNumber()); in funcOpBbArgReadWriteAnalysis()
218 funcState.writtenBbArgs[funcOp].insert(bbArg.getArgNumber()); in funcOpBbArgReadWriteAnalysis()
227 auto funcOp = cast<func::FuncOp>(bbArg.getOwner()->getParentOp()); in removeBufferizationAttributes() local
228 funcOp.removeArgAttr(bbArg.getArgNumber(), in removeBufferizationAttributes()
230 funcOp.removeArgAttr(bbArg.getArgNumber(), in removeBufferizationAttributes()
247 static void equivalenceAnalysis(func::FuncOp funcOp, in equivalenceAnalysis() argument
251 funcOp->walk([&](func::CallOp callOp) { in equivalenceAnalysis()
287 WalkResult res = moduleOp.walk([&](func::FuncOp funcOp) -> WalkResult { in getFuncOpsOrderedByCalls() argument
288 if (!funcOp.getBody().empty()) { in getFuncOpsOrderedByCalls()
289 func::ReturnOp returnOp = getAssumedUniqueReturnOp(funcOp); in getFuncOpsOrderedByCalls()
291 return funcOp->emitError() in getFuncOpsOrderedByCalls()
296 numberCallOpsContainedInFuncOp[funcOp] = 0; in getFuncOpsOrderedByCalls()
297 return funcOp.walk([&](CallOpInterface callOp) -> WalkResult { in getFuncOpsOrderedByCalls()
304 if (calledBy[calledFunction].insert(funcOp).second) { in getFuncOpsOrderedByCalls()
305 numberCallOpsContainedInFuncOp[funcOp]++; in getFuncOpsOrderedByCalls()
335 static void foldMemRefCasts(func::FuncOp funcOp) { in foldMemRefCasts() argument
336 if (funcOp.getBody().empty()) in foldMemRefCasts()
339 func::ReturnOp returnOp = getAssumedUniqueReturnOp(funcOp); in foldMemRefCasts()
352 funcOp.getContext(), funcOp.getFunctionType().getInputs(), resultTypes); in foldMemRefCasts()
353 funcOp.setType(newFuncType); in foldMemRefCasts()
376 for (func::FuncOp funcOp : orderedFuncOps) { in analyzeModuleOp() local
378 if (funcOp.getBody().empty()) in analyzeModuleOp()
382 funcState.startFunctionAnalysis(funcOp); in analyzeModuleOp()
385 equivalenceAnalysis(funcOp, aliasInfo, state); in analyzeModuleOp()
388 if (failed(analyzeOp(funcOp, state))) in analyzeModuleOp()
392 if (failed(aliasingFuncOpBBArgsAnalysis(funcOp, state)) || in analyzeModuleOp()
393 failed(funcOpBbArgReadWriteAnalysis(funcOp, state))) in analyzeModuleOp()
397 funcState.analyzedFuncOps[funcOp] = FuncOpAnalysisState::Analyzed; in analyzeModuleOp()
421 for (func::FuncOp funcOp : orderedFuncOps) { in bufferizeModuleOp() local
424 if (failed(bufferizeOp(funcOp, options, /*copyBeforeWrite=*/false))) in bufferizeModuleOp()
429 foldMemRefCasts(funcOp); in bufferizeModuleOp()