Lines Matching defs:funcOp
23 SmallVector<func::ReturnOp> bufferization::getReturnOps(func::FuncOp funcOp) {
25 for (Block &b : funcOp.getBody())
34 void FuncAnalysisState::startFunctionAnalysis(FuncOp funcOp) {
35 analyzedFuncOps[funcOp] = FuncOpAnalysisState::InProgress;
36 auto createdEquiv = equivalentFuncArgs.try_emplace(funcOp, IndexMapping());
38 aliasingReturnVals.try_emplace(funcOp, IndexToIndexListMapping());
39 auto createdRead = readBbArgs.try_emplace(funcOp, BbArgIndexSet());
40 auto createdWritten = writtenBbArgs.try_emplace(funcOp, BbArgIndexSet());
57 getBufferizedFunctionArgType(FuncOp funcOp, int64_t index,
60 dyn_cast<TensorType>(funcOp.getFunctionType().getInput(index));
64 tensorType, *options.defaultMemorySpaceFn(tensorType), funcOp, options);
66 auto layoutAttr = funcOp.getArgAttrOfType<AffineMapAttr>(
100 FuncOp funcOp) {
108 auto it = analyzedFuncOps.find(funcOp);
117 getEquivalentFuncArgIdx(FuncOp funcOp, const FuncAnalysisState &state,
119 auto funcOpIt = state.equivalentFuncArgs.find(funcOp);
121 // No equivalence info stores for funcOp.
138 FuncOp funcOp = getCalledFunction(callOp);
139 assert(funcOp && "expected CallOp to a FuncOp");
141 if (getFuncOpAnalysisState(state, funcOp) != FuncOpAnalysisState::Analyzed)
146 return funcState.readBbArgs.lookup(funcOp).contains(
153 FuncOp funcOp = getCalledFunction(callOp);
154 assert(funcOp && "expected CallOp to a FuncOp");
156 if (getFuncOpAnalysisState(state, funcOp) != FuncOpAnalysisState::Analyzed)
161 return funcState.writtenBbArgs.lookup(funcOp).contains(
168 FuncOp funcOp = getCalledFunction(callOp);
169 assert(funcOp && "expected CallOp to a FuncOp");
170 if (getFuncOpAnalysisState(state, funcOp) != FuncOpAnalysisState::Analyzed)
177 funcState.aliasingReturnVals.lookup(funcOp).lookup(
183 equivalent = getEquivalentFuncArgIdx(funcOp, funcState,
202 FuncOp funcOp = getCalledFunction(callOp);
203 assert(funcOp && "expected CallOp to a FuncOp");
207 FunctionType funcType = funcOp.getFunctionType();
216 tensorType, *options.defaultMemorySpaceFn(tensorType), funcOp, options);
246 FuncOp funcOp = getCalledFunction(callOp);
247 assert(funcOp && "expected CallOp to a FuncOp");
248 FunctionType funcType = funcOp.getFunctionType();
272 funcOp.getArgument(opOperand.getOperandNumber()), options);
299 callOp.getLoc(), funcOp.getSymName(), resultTypes, newOperands);
350 auto funcOp = cast<FuncOp>(op);
351 bool hasTensorArg = any_of(funcOp.getArgumentTypes(), isaTensor);
352 bool hasTensorResult = any_of(funcOp.getResultTypes(), isaTensor);
361 for (Block &block : funcOp.getBody())
377 auto funcOp = cast<FuncOp>(op);
381 if (bbArg.getOwner() == &funcOp.getBody().front())
382 return getBufferizedFunctionArgType(funcOp, bbArg.getArgNumber(),
398 auto funcOp = cast<FuncOp>(op);
399 FunctionType funcType = funcOp.getFunctionType();
407 getBufferizedFunctionArgType(funcOp, it.index(), options));
418 tensorType, *options.defaultMemorySpaceFn(tensorType), funcOp,
430 if (funcOp.isExternal()) {
431 funcOp.setType(newFuncType);
436 for (Block &block : funcOp.getBody())
442 for (func::ReturnOp returnOp : getReturnOps(funcOp)) {
468 funcOp.setType(newFuncType);
475 auto funcOp = cast<FuncOp>(op);
481 if (bbArg.getOwner() != &funcOp.getBody().front())
486 if (BoolAttr writable = funcOp.getArgAttrOfType<BoolAttr>(