Lines Matching full:op

27 DictionaryAttr function_interface_impl::getArgAttrDict(FunctionOpInterface op,
29 ArrayAttr attrs = op.getArgAttrsAttr();
36 function_interface_impl::getResultAttrDict(FunctionOpInterface op,
38 ArrayAttr attrs = op.getResAttrsAttr();
45 function_interface_impl::getArgAttrs(FunctionOpInterface op, unsigned index) {
46 auto argDict = getArgAttrDict(op, index);
51 function_interface_impl::getResultAttrs(FunctionOpInterface op,
53 auto resultDict = getResultAttrDict(op, index);
59 static ArrayAttr getArgResAttrs(FunctionOpInterface op) {
61 return op.getArgAttrsAttr();
63 return op.getResAttrsAttr();
68 static void setArgResAttrs(FunctionOpInterface op, ArrayAttr attrs) {
70 op.setArgAttrsAttr(attrs);
72 op.setResAttrsAttr(attrs);
77 static void removeArgResAttrs(FunctionOpInterface op) {
79 op.removeArgAttrsAttr();
81 op.removeResAttrsAttr();
86 static void setAllArgResAttrDicts(FunctionOpInterface op,
89 removeArgResAttrs<isArg>(op);
91 setArgResAttrs<isArg>(op, ArrayAttr::get(op->getContext(), attrs));
95 FunctionOpInterface op, ArrayRef<DictionaryAttr> attrs) {
96 setAllArgAttrDicts(op, ArrayRef<Attribute>(attrs.data(), attrs.size()));
99 void function_interface_impl::setAllArgAttrDicts(FunctionOpInterface op,
101 auto wrappedAttrs = llvm::map_range(attrs, [op](Attribute attr) -> Attribute {
102 return !attr ? DictionaryAttr::get(op->getContext()) : attr;
104 setAllArgResAttrDicts</*isArg=*/true>(op, llvm::to_vector<8>(wrappedAttrs));
108 FunctionOpInterface op, ArrayRef<DictionaryAttr> attrs) {
109 setAllResultAttrDicts(op, ArrayRef<Attribute>(attrs.data(), attrs.size()));
112 void function_interface_impl::setAllResultAttrDicts(FunctionOpInterface op,
114 auto wrappedAttrs = llvm::map_range(attrs, [op](Attribute attr) -> Attribute {
115 return !attr ? DictionaryAttr::get(op->getContext()) : attr;
117 setAllArgResAttrDicts</*isArg=*/false>(op, llvm::to_vector<8>(wrappedAttrs));
122 static void setArgResAttrDict(FunctionOpInterface op, unsigned numTotalIndices,
124 ArrayAttr allAttrs = getArgResAttrs<isArg>(op);
131 DictionaryAttr::get(op->getContext()));
133 setArgResAttrs<isArg>(op, ArrayAttr::get(op->getContext(), newAttrs));
146 return removeArgResAttrs<isArg>(op);
151 setArgResAttrs<isArg>(op, ArrayAttr::get(op->getContext(), newAttrs));
154 void function_interface_impl::setArgAttrs(FunctionOpInterface op,
157 assert(index < op.getNumArguments() && "invalid argument number");
159 op, op.getNumArguments(), index,
160 DictionaryAttr::get(op->getContext(), attributes));
163 void function_interface_impl::setArgAttrs(FunctionOpInterface op,
167 op, op.getNumArguments(), index,
168 attributes ? attributes : DictionaryAttr::get(op->getContext()));
172 FunctionOpInterface op, unsigned index,
174 assert(index < op.getNumResults() && "invalid result number");
176 op, op.getNumResults(), index,
177 DictionaryAttr::get(op->getContext(), attributes));
180 void function_interface_impl::setResultAttrs(FunctionOpInterface op,
183 assert(index < op.getNumResults() && "invalid result number");
185 op, op.getNumResults(), index,
186 attributes ? attributes : DictionaryAttr::get(op->getContext()));
190 FunctionOpInterface op, ArrayRef<unsigned> argIndices, TypeRange argTypes,
203 Block &entry = op->getRegion(0).front();
206 ArrayAttr oldArgAttrs = op.getArgAttrsAttr();
226 setAllArgAttrDicts(op, newArgAttrs);
230 op.setFunctionTypeAttr(TypeAttr::get(newType));
236 FunctionOpInterface op, ArrayRef<unsigned> resultIndices,
249 ArrayAttr oldResultAttrs = op.getResAttrsAttr();
270 setAllResultAttrDicts(op, newResultAttrs);
274 op.setFunctionTypeAttr(TypeAttr::get(newType));
278 FunctionOpInterface op, const BitVector &argIndices, Type newType) {
283 Block &entry = op->getRegion(0).front();
286 if (ArrayAttr argAttrs = op.getArgAttrsAttr()) {
292 setAllArgAttrDicts(op, newArgAttrs);
296 op.setFunctionTypeAttr(TypeAttr::get(newType));
301 FunctionOpInterface op, const BitVector &resultIndices, Type newType) {
307 if (ArrayAttr resAttrs = op.getResAttrsAttr()) {
313 setAllResultAttrDicts(op, newResultAttrs);
317 op.setFunctionTypeAttr(TypeAttr::get(newType));
324 void function_interface_impl::setFunctionType(FunctionOpInterface op,
326 unsigned oldNumArgs = op.getNumArguments();
327 unsigned oldNumResults = op.getNumResults();
328 op.setFunctionTypeAttr(TypeAttr::get(newType));
329 unsigned newNumArgs = op.getNumArguments();
330 unsigned newNumResults = op.getNumResults();
333 auto emptyDict = DictionaryAttr::get(op.getContext());
341 return removeArgResAttrs<isArgVal>(op);
342 ArrayAttr attrs = getArgResAttrs<isArgVal>(op);
349 op, attrs.getValue().take_front(newCount));
355 setAllArgResAttrDicts<isArgVal>(op, newAttrs);