[clang] [CIR] Upstream global initialization for ComplexType (PR #141369)
Henrich Lauko via cfe-commits
cfe-commits at lists.llvm.org
Sun May 25 05:53:59 PDT 2025
================
@@ -577,12 +577,31 @@ mlir::Attribute ConstantEmitter::tryEmitPrivate(const APValue &value,
case APValue::Union:
cgm.errorNYI("ConstExprEmitter::tryEmitPrivate struct or union");
return {};
- case APValue::FixedPoint:
case APValue::ComplexInt:
- case APValue::ComplexFloat:
+ case APValue::ComplexFloat: {
+ mlir::Type desiredType = cgm.convertType(destType);
+ cir::ComplexType complexType =
+ mlir::dyn_cast<cir::ComplexType>(desiredType);
+
+ mlir::Type compelxElemTy = complexType.getElementType();
+ if (isa<cir::IntType>(compelxElemTy)) {
+ llvm::APSInt real = value.getComplexIntReal();
+ llvm::APSInt imag = value.getComplexIntImag();
+ return builder.getAttr<cir::ConstComplexAttr>(
+ complexType, builder.getAttr<cir::IntAttr>(compelxElemTy, real),
----------------
xlauko wrote:
```suggestion
complexType, builder.getAttr<cir::IntAttr>(complexElemTy, real),
```
https://github.com/llvm/llvm-project/pull/141369
More information about the cfe-commits
mailing list