Use linkonce_odr linkage for specific functions. (#5575)

The same specific function will (eventually) be emitted as part of
lowering multiple different source files, so don't give them unique
external linkage.
This commit is contained in:
Richard Smith
2025-05-29 20:16:37 +00:00
committed by GitHub
parent aadd29b36c
commit 42c783defa
16 changed files with 115 additions and 113 deletions
@@ -66,7 +66,7 @@ fn M() {
// CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
// CHECK:STDOUT: declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #0
// CHECK:STDOUT:
// CHECK:STDOUT: define i32 @_CF.Main.b88d1103f417c6d4(i32 %x, i32 %count) !dbg !20 {
// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.b88d1103f417c6d4(i32 %x, i32 %count) !dbg !20 {
// CHECK:STDOUT: entry:
// CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 0, !dbg !21
// CHECK:STDOUT: br i1 %int.greater, label %if.then, label %if.else, !dbg !22
@@ -80,7 +80,7 @@ fn M() {
// CHECK:STDOUT: ret i32 %F.call, !dbg !26
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: define double @_CF.Main.66be507887ceee78(double %x, i32 %count) !dbg !27 {
// CHECK:STDOUT: define linkonce_odr double @_CF.Main.66be507887ceee78(double %x, i32 %count) !dbg !27 {
// CHECK:STDOUT: entry:
// CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 0, !dbg !28
// CHECK:STDOUT: br i1 %int.greater, label %if.then, label %if.else, !dbg !29
@@ -94,7 +94,7 @@ fn M() {
// CHECK:STDOUT: ret double %F.call, !dbg !33
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: define ptr @_CF.Main.e8193710fd35b608(ptr %x, i32 %count) !dbg !34 {
// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.e8193710fd35b608(ptr %x, i32 %count) !dbg !34 {
// CHECK:STDOUT: entry:
// CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 0, !dbg !35
// CHECK:STDOUT: br i1 %int.greater, label %if.then, label %if.else, !dbg !36
@@ -108,7 +108,7 @@ fn M() {
// CHECK:STDOUT: ret ptr %F.call, !dbg !40
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: define ptr @_CF.Main.04bf2edaaa84aa22(ptr %x, i32 %count) !dbg !41 {
// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.04bf2edaaa84aa22(ptr %x, i32 %count) !dbg !41 {
// CHECK:STDOUT: entry:
// CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 0, !dbg !42
// CHECK:STDOUT: br i1 %int.greater, label %if.then, label %if.else, !dbg !43