File tree Expand file tree Collapse file tree 3 files changed +42
-6
lines changed
Expand file tree Collapse file tree 3 files changed +42
-6
lines changed Original file line number Diff line number Diff line change @@ -293,10 +293,9 @@ class LLVMLinkerMixin {
293293 if (isLinkOnceLinkage (srcLinkage))
294294 return ConflictResolution::LinkFromDst;
295295
296- if (isLinkOnceLinkage (dstLinkage) || isWeakLinkage (dstLinkage))
297- return ConflictResolution::LinkFromSrc;
298-
299296 if (isCommonLinkage (srcLinkage)) {
297+ if (isLinkOnceLinkage (dstLinkage) || isWeakLinkage (dstLinkage))
298+ return ConflictResolution::LinkFromSrc;
300299 if (!isCommonLinkage (dstLinkage))
301300 return ConflictResolution::LinkFromDst;
302301 if (derived.getBitWidth (pair.src ) > derived.getBitWidth (pair.dst ))
@@ -309,10 +308,9 @@ class LLVMLinkerMixin {
309308 assert (!isAvailableExternallyLinkage (dstLinkage));
310309 if (isLinkOnceLinkage (dstLinkage) && isWeakLinkage (srcLinkage)) {
311310 return ConflictResolution::LinkFromSrc;
312- } else {
313- // No need to link the `src`
314- return ConflictResolution::LinkFromDst;
315311 }
312+ // No need to link the `src`
313+ return ConflictResolution::LinkFromDst;
316314 }
317315
318316 if (isWeakForLinker (dstLinkage)) {
Original file line number Diff line number Diff line change 1+ // RUN: mlir-link -split-input-file %s | FileCheck %s
2+
3+ // CHECK: llvm.mlir.global weak @v(0 : i8)
4+
5+ llvm.mlir.global weak @v (0 : i8 ) {addr_space = 0 : i32 } : i8
6+
7+ llvm.func @use_v1 () -> !llvm.ptr {
8+ %0 = llvm.mlir.addressof @v : !llvm.ptr
9+ llvm.return %0 : !llvm.ptr
10+ }
11+
12+ // -----
13+
14+ llvm.mlir.global weak @v (1 : i8 ) {addr_space = 0 : i32 } : i8
15+
16+ llvm.func @use_v2 () -> !llvm.ptr {
17+ %0 = llvm.mlir.addressof @v : !llvm.ptr
18+ llvm.return %0 : !llvm.ptr
19+ }
Original file line number Diff line number Diff line change 1+ // RUN: mlir-link -split-input-file %s | FileCheck %s
2+
3+ // CHECK: llvm.mlir.global weak @v(1 : i8)
4+
5+ llvm.mlir.global weak @v (1 : i8 ) {addr_space = 0 : i32 } : i8
6+
7+ llvm.func @use_v2 () -> !llvm.ptr {
8+ %0 = llvm.mlir.addressof @v : !llvm.ptr
9+ llvm.return %0 : !llvm.ptr
10+ }
11+
12+ // -----
13+
14+ llvm.mlir.global weak @v (0 : i8 ) {addr_space = 0 : i32 } : i8
15+
16+ llvm.func @use_v1 () -> !llvm.ptr {
17+ %0 = llvm.mlir.addressof @v : !llvm.ptr
18+ llvm.return %0 : !llvm.ptr
19+ }
You can’t perform that action at this time.
0 commit comments