Skip to content

Commit a0b9aca

Browse files
committed
[MLIR][mlir-link] Implement getSection, getAddressSpace and
`getSymbol` for `ComdatOp`
1 parent cae0585 commit a0b9aca

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

mlir/lib/Dialect/LLVMIR/IR/LLVMLinkerInterface.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ void LLVM::LLVMSymbolLinkerInterface::setAlignment(
186186
bool LLVM::LLVMSymbolLinkerInterface::isConstant(Operation *op) {
187187
if (auto gv = dyn_cast<LLVM::GlobalOp>(op))
188188
return gv.getConstant();
189-
if (isa<LLVM::AliasOp>(op))
189+
if (isa<LLVM::AliasOp, LLVM::ComdatOp>(op))
190190
return true;
191191
if (isa<LLVM::GlobalCtorsOp, LLVM::GlobalDtorsOp>(op))
192192
return false;
@@ -202,7 +202,8 @@ llvm::StringRef LLVM::LLVMSymbolLinkerInterface::getSection(Operation *op) {
202202
auto section = fn.getSection();
203203
return section ? section.value() : llvm::StringRef();
204204
}
205-
if (isa<LLVM::GlobalCtorsOp, LLVM::GlobalDtorsOp, LLVM::AliasOp>(op))
205+
if (isa<LLVM::GlobalCtorsOp, LLVM::GlobalDtorsOp, LLVM::AliasOp,
206+
LLVM::ComdatOp>(op))
206207
return llvm::StringRef();
207208
llvm_unreachable("unexpected operation");
208209
}
@@ -214,7 +215,7 @@ uint32_t LLVM::LLVMSymbolLinkerInterface::getAddressSpace(Operation *op) {
214215
if (auto alias = dyn_cast<LLVM::AliasOp>(op)) {
215216
return alias.getAddrSpace();
216217
}
217-
if (isa<LLVM::GlobalCtorsOp, LLVM::GlobalDtorsOp>(op))
218+
if (isa<LLVM::GlobalCtorsOp, LLVM::GlobalDtorsOp, LLVM::ComdatOp>(op))
218219
return 0;
219220
llvm_unreachable("unexpected operation");
220221
}

0 commit comments

Comments
 (0)