From c1def63fcccf6aba3217b7818e23393ed655bf25 Mon Sep 17 00:00:00 2001 From: Tobias Gysi Date: Wed, 17 May 2023 11:25:24 +0000 Subject: [mlir][llvm] Mark additional ops as pure. The revision marks the overflow arithmetic intrinsics and the freeze operation as pure. This change enables inlining and possible other optimizations for these operations. Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D150679 --- mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td | 2 +- mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'mlir') diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td index 03c3979212ca..7ac68c9606cc 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td @@ -251,7 +251,7 @@ def LLVM_LifetimeEndOp : LLVM_LifetimeBaseOp<"lifetime.end"> { // Intrinsics with multiple returns. class LLVM_ArithWithOverflowOp - : LLVM_IntrOp, + : LLVM_IntrOp, Arguments<(ins LLVM_ScalarOrVectorOf, LLVM_ScalarOrVectorOf)>; diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td index 3ead2d2867a6..e6aed104b6d3 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td @@ -797,7 +797,7 @@ def LLVM_SelectOp $res = op; }]; } -def LLVM_FreezeOp : LLVM_Op<"freeze", [SameOperandsAndResultType]> { +def LLVM_FreezeOp : LLVM_Op<"freeze", [Pure, SameOperandsAndResultType]> { let arguments = (ins LLVM_Type:$val); let results = (outs LLVM_Type:$res); let builders = [LLVM_OneResultOpBuilder]; -- cgit v1.2.1