[Mlir-commits] [mlir] [MLIR][LLVMIR] Add support for empty global ctor/dtor lists (PR #128969)

Bruno Cardoso Lopes llvmlistbot at llvm.org
Thu Feb 27 15:05:06 PST 2025


================
@@ -1071,32 +1071,39 @@ LogicalResult
 ModuleImport::convertGlobalCtorsAndDtors(llvm::GlobalVariable *globalVar) {
   if (!globalVar->hasInitializer() || !globalVar->hasAppendingLinkage())
     return failure();
-  auto *initializer =
-      dyn_cast<llvm::ConstantArray>(globalVar->getInitializer());
-  if (!initializer)
+  llvm::Constant *initializer = globalVar->getInitializer();
+
+  bool knownInit = isa<llvm::ConstantArray>(initializer) ||
+                   isa<llvm::ConstantAggregateZero>(initializer);
+  if (!knownInit)
     return failure();
 
   SmallVector<Attribute> funcs;
   SmallVector<int32_t> priorities;
-  for (llvm::Value *operand : initializer->operands()) {
-    auto *aggregate = dyn_cast<llvm::ConstantAggregate>(operand);
-    if (!aggregate || aggregate->getNumOperands() != 3)
-      return failure();
+  if (isa<llvm::ConstantArray>(initializer)) {
----------------
bcardosolopes wrote:

Yea, that was kind my intent, I can probably try to convey that with an extra comment though

https://github.com/llvm/llvm-project/pull/128969


More information about the Mlir-commits mailing list