Skip to content

Commit 7bbfd2a

Browse files
authored
[mlir][ArmSVE] Restructure sources to match ArmSME dialect (NFC) (#68399)
This rearranges the Arm SVE dialect to have the same structure of the Arm SME dialect. So this just moves around some source files and adds a ArmSVE_IntrOp base class for SVE intrinsics. This makes later changes a little easier and more consistent other dialects.
1 parent 8d07d9f commit 7bbfd2a

File tree

10 files changed

+32
-25
lines changed

10 files changed

+32
-25
lines changed
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
add_mlir_dialect(ArmSVE arm_sve ArmSVE)
2-
add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
3-
4-
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
5-
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
6-
add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
1+
add_subdirectory(IR)

mlir/include/mlir/Dialect/ArmSVE/ArmSVE.td renamed to mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ def ArmSVE_Dialect : Dialect {
2828
This dialect contains the definitions necessary to target specific Arm SVE
2929
scalable vector operations.
3030
}];
31-
3231
}
3332

3433
//===----------------------------------------------------------------------===//
@@ -38,16 +37,23 @@ def ArmSVE_Dialect : Dialect {
3837
class ArmSVE_Op<string mnemonic, list<Trait> traits = []> :
3938
Op<ArmSVE_Dialect, mnemonic, traits> {}
4039

41-
class ArmSVE_IntrBinaryOverloadedOp<string mnemonic,
42-
list<Trait> traits = []> :
40+
class ArmSVE_IntrOp<string mnemonic,
41+
list<Trait> traits = [],
42+
list<int> overloadedOperands = [],
43+
list<int> overloadedResults = []> :
4344
LLVM_IntrOpBase</*Dialect dialect=*/ArmSVE_Dialect,
4445
/*string opName=*/"intr." # mnemonic,
4546
/*string enumName=*/"aarch64_sve_" # !subst(".", "_", mnemonic),
46-
/*list<int> overloadedResults=*/[0],
47-
/*list<int> overloadedOperands=*/[], // defined by result overload
47+
/*list<int> overloadedResults=*/overloadedResults,
48+
/*list<int> overloadedOperands=*/overloadedOperands,
4849
/*list<Trait> traits=*/traits,
4950
/*int numResults=*/1>;
5051

52+
class ArmSVE_IntrBinaryOverloadedOp<string mnemonic,
53+
list<Trait> traits = []>:
54+
ArmSVE_IntrOp<mnemonic, traits,
55+
/*overloadedOperands=*/[], /*overloadedResults=*/[0]>;
56+
5157
class ScalableMaskedFOp<string mnemonic, string op_description,
5258
list<Trait> traits = []> :
5359
ArmSVE_Op<mnemonic, !listconcat(traits,

mlir/include/mlir/Dialect/ArmSVE/ArmSVEDialect.h renamed to mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
#include "mlir/IR/OpDefinition.h"
2020
#include "mlir/Interfaces/SideEffectInterfaces.h"
2121

22-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h.inc"
22+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h.inc"
2323

2424
#define GET_OP_CLASSES
25-
#include "mlir/Dialect/ArmSVE/ArmSVE.h.inc"
25+
#include "mlir/Dialect/ArmSVE/IR/ArmSVE.h.inc"
2626

2727
#endif // MLIR_DIALECT_ARMSVE_ARMSVEDIALECT_H
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
add_mlir_dialect(ArmSVE arm_sve ArmSVE)
2+
add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
3+
4+
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
5+
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
6+
add_public_tablegen_target(MLIRArmSVEConversionsIncGen)

mlir/include/mlir/InitAllDialects.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h"
2525
#include "mlir/Dialect/ArmNeon/ArmNeonDialect.h"
2626
#include "mlir/Dialect/ArmSME/IR/ArmSME.h"
27-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h"
27+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
2828
#include "mlir/Dialect/Async/IR/Async.h"
2929
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
3030
#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"

mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
#include "mlir/Dialect/ArmSME/IR/ArmSME.h"
1818
#include "mlir/Dialect/ArmSME/Transforms/Passes.h"
1919
#include "mlir/Dialect/ArmSME/Transforms/Transforms.h"
20-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h"
21-
#include "mlir/Dialect/ArmSVE/Transforms.h"
20+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
21+
#include "mlir/Dialect/ArmSVE/Transforms/Transforms.h"
2222
#include "mlir/Dialect/Func/IR/FuncOps.h"
2323
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
2424
#include "mlir/Dialect/MemRef/IR/MemRef.h"

mlir/lib/Dialect/ArmSVE/IR/ArmSVEDialect.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h"
13+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
1414
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
1515
#include "mlir/IR/Builders.h"
1616
#include "mlir/IR/DialectImplementation.h"
@@ -38,17 +38,17 @@ static Type getI1SameShape(Type type) {
3838
// Tablegen Definitions
3939
//===----------------------------------------------------------------------===//
4040

41-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.cpp.inc"
41+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.cpp.inc"
4242

4343
#define GET_OP_CLASSES
44-
#include "mlir/Dialect/ArmSVE/ArmSVE.cpp.inc"
44+
#include "mlir/Dialect/ArmSVE/IR/ArmSVE.cpp.inc"
4545

4646
#define GET_TYPEDEF_CLASSES
47-
#include "mlir/Dialect/ArmSVE/ArmSVETypes.cpp.inc"
47+
#include "mlir/Dialect/ArmSVE/IR/ArmSVETypes.cpp.inc"
4848

4949
void ArmSVEDialect::initialize() {
5050
addOperations<
5151
#define GET_OP_LIST
52-
#include "mlir/Dialect/ArmSVE/ArmSVE.cpp.inc"
52+
#include "mlir/Dialect/ArmSVE/IR/ArmSVE.cpp.inc"
5353
>();
5454
}

mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"
1010
#include "mlir/Conversion/LLVMCommon/Pattern.h"
11-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h"
12-
#include "mlir/Dialect/ArmSVE/Transforms.h"
11+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
12+
#include "mlir/Dialect/ArmSVE/Transforms/Transforms.h"
1313
#include "mlir/Dialect/Func/IR/FuncOps.h"
1414
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
1515
#include "mlir/IR/BuiltinOps.h"

mlir/lib/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
#include "mlir/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.h"
14-
#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h"
14+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"
1515
#include "mlir/IR/Operation.h"
1616
#include "mlir/Target/LLVMIR/ModuleTranslation.h"
1717

@@ -35,7 +35,7 @@ class ArmSVEDialectLLVMIRTranslationInterface
3535
convertOperation(Operation *op, llvm::IRBuilderBase &builder,
3636
LLVM::ModuleTranslation &moduleTranslation) const final {
3737
Operation &opInst = *op;
38-
#include "mlir/Dialect/ArmSVE/ArmSVEConversions.inc"
38+
#include "mlir/Dialect/ArmSVE/IR/ArmSVEConversions.inc"
3939

4040
return failure();
4141
}

0 commit comments

Comments
 (0)