@@ -255,105 +255,79 @@ def FunctionOpInterface : OpInterface<"FunctionOpInterface", [
255255 BlockArgListType getArguments() { return getFunctionBody().getArguments(); }
256256
257257 /// Insert a single argument of type `argType` with attributes `argAttrs` and
258- /// location `argLoc` at `argIndex`. Returns failure if the function cannot be
259- /// updated to have the new signature.
260- ::llvm::LogicalResult insertArgument(
261- unsigned argIndex, ::mlir::Type argType, ::mlir::DictionaryAttr argAttrs,
262- ::mlir::Location argLoc) {
263- return insertArguments({argIndex}, {argType}, {argAttrs}, {argLoc});
258+ /// location `argLoc` at `argIndex`.
259+ void insertArgument(unsigned argIndex, ::mlir::Type argType, ::mlir::DictionaryAttr argAttrs,
260+ ::mlir::Location argLoc) {
261+ insertArguments({argIndex}, {argType}, {argAttrs}, {argLoc});
264262 }
265263
266264 /// Inserts arguments with the listed types, attributes, and locations at the
267265 /// listed indices. `argIndices` must be sorted. Arguments are inserted in the
268266 /// order they are listed, such that arguments with identical index will
269- /// appear in the same order that they were listed here. Returns failure if
270- /// the function cannot be updated to have the new signature.
271- ::llvm::LogicalResult insertArguments(
272- ::llvm::ArrayRef<unsigned> argIndices, ::mlir::TypeRange argTypes,
273- ::llvm::ArrayRef<::mlir::DictionaryAttr> argAttrs,
274- ::llvm::ArrayRef<::mlir::Location> argLocs) {
267+ /// appear in the same order that they were listed here.
268+ void insertArguments(::llvm::ArrayRef<unsigned> argIndices, ::mlir::TypeRange argTypes,
269+ ::llvm::ArrayRef<::mlir::DictionaryAttr> argAttrs,
270+ ::llvm::ArrayRef<::mlir::Location> argLocs) {
275271 unsigned originalNumArgs = $_op.getNumArguments();
276272 ::mlir::Type newType = $_op.getTypeWithArgsAndResults(
277273 argIndices, argTypes, /*resultIndices=*/{}, /*resultTypes=*/{});
278- if (!newType)
279- return ::llvm::failure();
280274 ::mlir::function_interface_impl::insertFunctionArguments(
281275 $_op, argIndices, argTypes, argAttrs, argLocs,
282276 originalNumArgs, newType);
283- return ::llvm::success();
284277 }
285278
286- /// Insert a single result of type `resultType` at `resultIndex`.Returns
287- /// failure if the function cannot be updated to have the new signature.
288- ::llvm::LogicalResult insertResult(
289- unsigned resultIndex, ::mlir::Type resultType,
290- ::mlir::DictionaryAttr resultAttrs) {
291- return insertResults({resultIndex}, {resultType}, {resultAttrs});
279+ /// Insert a single result of type `resultType` at `resultIndex`.
280+ void insertResult(unsigned resultIndex, ::mlir::Type resultType,
281+ ::mlir::DictionaryAttr resultAttrs) {
282+ insertResults({resultIndex}, {resultType}, {resultAttrs});
292283 }
293284
294285 /// Inserts results with the listed types at the listed indices.
295286 /// `resultIndices` must be sorted. Results are inserted in the order they are
296287 /// listed, such that results with identical index will appear in the same
297- /// order that they were listed here. Returns failure if the function
298- /// cannot be updated to have the new signature.
299- ::llvm::LogicalResult insertResults(
300- ::llvm::ArrayRef<unsigned> resultIndices,
301- ::mlir::TypeRange resultTypes,
302- ::llvm::ArrayRef<::mlir::DictionaryAttr> resultAttrs) {
288+ /// order that they were listed here.
289+ void insertResults(::llvm::ArrayRef<unsigned> resultIndices, ::mlir::TypeRange resultTypes,
290+ ::llvm::ArrayRef<::mlir::DictionaryAttr> resultAttrs) {
303291 unsigned originalNumResults = $_op.getNumResults();
304292 ::mlir::Type newType = $_op.getTypeWithArgsAndResults(
305293 /*argIndices=*/{}, /*argTypes=*/{}, resultIndices, resultTypes);
306- if (!newType)
307- return ::llvm::failure();
308294 ::mlir::function_interface_impl::insertFunctionResults(
309295 $_op, resultIndices, resultTypes, resultAttrs,
310296 originalNumResults, newType);
311- return ::llvm::success();
312297 }
313298
314- /// Erase a single argument at `argIndex`. Returns failure if the function
315- /// cannot be updated to have the new signature.
316- ::llvm::LogicalResult eraseArgument(unsigned argIndex) {
299+ /// Erase a single argument at `argIndex`.
300+ void eraseArgument(unsigned argIndex) {
317301 ::llvm::BitVector argsToErase($_op.getNumArguments());
318302 argsToErase.set(argIndex);
319- return eraseArguments(argsToErase);
303+ eraseArguments(argsToErase);
320304 }
321305
322- /// Erases the arguments listed in `argIndices`. Returns failure if the
323- /// function cannot be updated to have the new signature.
324- ::llvm::LogicalResult eraseArguments(const ::llvm::BitVector &argIndices) {
306+ /// Erases the arguments listed in `argIndices`.
307+ void eraseArguments(const ::llvm::BitVector &argIndices) {
325308 ::mlir::Type newType = $_op.getTypeWithoutArgs(argIndices);
326- if (!newType)
327- return ::llvm::failure();
328309 ::mlir::function_interface_impl::eraseFunctionArguments(
329310 $_op, argIndices, newType);
330- return ::llvm::success();
331311 }
332312
333- /// Erase a single result at `resultIndex`. Returns failure if the function
334- /// cannot be updated to have the new signature.
335- LogicalResult eraseResult(unsigned resultIndex) {
313+ /// Erase a single result at `resultIndex`.
314+ void eraseResult(unsigned resultIndex) {
336315 ::llvm::BitVector resultsToErase($_op.getNumResults());
337316 resultsToErase.set(resultIndex);
338- return eraseResults(resultsToErase);
317+ eraseResults(resultsToErase);
339318 }
340319
341- /// Erases the results listed in `resultIndices`. Returns failure if the
342- /// function cannot be updated to have the new signature.
343- ::llvm::LogicalResult eraseResults(const ::llvm::BitVector &resultIndices) {
320+ /// Erases the results listed in `resultIndices`.
321+ void eraseResults(const ::llvm::BitVector &resultIndices) {
344322 ::mlir::Type newType = $_op.getTypeWithoutResults(resultIndices);
345- if (!newType)
346- return ::llvm::failure();
347323 ::mlir::function_interface_impl::eraseFunctionResults(
348324 $_op, resultIndices, newType);
349- return ::llvm::success();
350325 }
351326
352327 /// Return the type of this function with the specified arguments and
353328 /// results inserted. This is used to update the function's signature in
354329 /// the `insertArguments` and `insertResults` methods. The arrays must be
355- /// sorted by increasing index. Return nullptr if the updated type would
356- /// not be valid.
330+ /// sorted by increasing index.
357331 ::mlir::Type getTypeWithArgsAndResults(
358332 ::llvm::ArrayRef<unsigned> argIndices, ::mlir::TypeRange argTypes,
359333 ::llvm::ArrayRef<unsigned> resultIndices, ::mlir::TypeRange resultTypes) {
@@ -367,8 +341,7 @@ def FunctionOpInterface : OpInterface<"FunctionOpInterface", [
367341
368342 /// Return the type of this function without the specified arguments and
369343 /// results. This is used to update the function's signature in the
370- /// `eraseArguments` and `eraseResults` methods. Return nullptr if the
371- /// updated type would not be valid.
344+ /// `eraseArguments` and `eraseResults` methods.
372345 ::mlir::Type getTypeWithoutArgsAndResults(
373346 const ::llvm::BitVector &argIndices, const ::llvm::BitVector &resultIndices) {
374347 ::llvm::SmallVector<::mlir::Type> argStorage, resultStorage;
0 commit comments