These are translated to an llvm::ConstantDataArray on translation to llvm IR
proper.
--
PiperOrigin-RevId:
249813111
}
return llvm::ConstantVector::get(constants);
}
+ if (auto stringAttr = attr.dyn_cast<StringAttr>()) {
+ return llvm::ConstantDataArray::get(
+ llvmModule->getContext(), ArrayRef<char>{stringAttr.getValue().data(),
+ stringAttr.getValue().size()});
+ }
mlirModule.getContext()->emitError(loc, "unsupported constant value");
return nullptr;
}
llvm.return %2 : !llvm.i32
}
+func @stringconstant() -> !llvm<"i8*"> {
+ %1 = llvm.constant("Hello world!") : !llvm<"i8*">
+ // CHECK: ret [12 x i8] c"Hello world!"
+ llvm.return %1 : !llvm<"i8*">
+}
+