@@ -34,18 +34,6 @@ class CIRDialectLLVMIRTranslationInterface
3434public:
3535 using LLVMTranslationDialectInterface::LLVMTranslationDialectInterface;
3636
37- // / Any named attribute in the CIR dialect, i.e, with name started with
38- // / "cir.", will be handled here.
39- virtual mlir::LogicalResult amendOperation (
40- mlir::Operation *op, llvm::ArrayRef<llvm::Instruction *> instructions,
41- mlir::NamedAttribute attribute,
42- mlir::LLVM::ModuleTranslation &moduleTranslation) const override {
43- if (auto func = mlir::dyn_cast<mlir::LLVM::LLVMFuncOp>(op)) {
44- amendFunction (func, instructions, attribute, moduleTranslation);
45- }
46- return mlir::success ();
47- }
48-
4937 // / Translates the given operation to LLVM IR using the provided IR builder
5038 // / and saving the state in `moduleTranslation`.
5139 mlir::LogicalResult convertOperation (
@@ -59,39 +47,6 @@ class CIRDialectLLVMIRTranslationInterface
5947
6048 return mlir::success ();
6149 }
62-
63- // Translate CIR's inline attribute to LLVM's function attributes.
64- void amendFunction (mlir::LLVM::LLVMFuncOp func,
65- llvm::ArrayRef<llvm::Instruction *> instructions,
66- mlir::NamedAttribute attribute,
67- mlir::LLVM::ModuleTranslation &moduleTranslation) const {
68- llvm::Function *llvmFunc = moduleTranslation.lookupFunction (func.getName ());
69-
70- if (auto inlineAttr =
71- mlir::dyn_cast<cir::InlineAttr>(attribute.getValue ())) {
72- const auto toLLVMAttr =
73- [](const cir::InlineAttr &attr) -> llvm::Attribute::AttrKind {
74- switch (attr.getValue ()) {
75- case cir::InlineKind::NoInline:
76- return llvm::Attribute::NoInline;
77- case cir::InlineKind::AlwaysInline:
78- return llvm::Attribute::AlwaysInline;
79- case cir::InlineKind::InlineHint:
80- return llvm::Attribute::InlineHint;
81- }
82- llvm_unreachable (" Unknown cir::InlineKind value in inlineAttr" );
83- };
84-
85- llvmFunc->addFnAttr (toLLVMAttr (inlineAttr));
86- func->removeAttr (attribute.getName ());
87- }
88-
89- assert (!cir::MissingFeatures::opFuncOptNoneAttr ());
90- assert (!cir::MissingFeatures::opFuncNoUnwind ());
91- assert (!cir::MissingFeatures::opFuncColdHotAttr ());
92- assert (!cir::MissingFeatures::opFuncUnwindTablesAttr ());
93- assert (!cir::MissingFeatures::openCL ());
94- }
9550};
9651
9752void registerCIRDialectTranslation (mlir::DialectRegistry ®istry) {
0 commit comments