[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