[llvm] a964e0f - [test] Add explicit dso_local to definitions in ELF static relocation model tests

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 30 15:47:23 PST 2020


Author: Fangrui Song
Date: 2020-12-30T15:47:16-08:00
New Revision: a964e0f085000dc90c6175f21ac455263ed76d68

URL: https://github.com/llvm/llvm-project/commit/a964e0f085000dc90c6175f21ac455263ed76d68
DIFF: https://github.com/llvm/llvm-project/commit/a964e0f085000dc90c6175f21ac455263ed76d68.diff

LOG: [test] Add explicit dso_local to definitions in ELF static relocation model tests

Added: 
    llvm/test/CodeGen/Mips/tls-static.ll

Modified: 
    llvm/test/CodeGen/Hexagon/tls_static.ll
    llvm/test/CodeGen/Mips/tls.ll
    llvm/test/CodeGen/PowerPC/dsolocal-static.ll
    llvm/test/CodeGen/Thumb2/tls1.ll
    llvm/test/CodeGen/WebAssembly/offset-folding.ll
    llvm/test/CodeGen/XCore/codemodel.ll
    llvm/test/DebugInfo/X86/debug-loc-frame.ll
    llvm/test/DebugInfo/X86/live-debug-values.ll
    llvm/test/DebugInfo/X86/machinecse-wrongdebug-hoist.ll
    llvm/test/MC/AArch64/elf-globaladdress.ll
    llvm/test/MC/X86/intel-syntax-var-offset.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/Hexagon/tls_static.ll b/llvm/test/CodeGen/Hexagon/tls_static.ll
index f4e882b4ff28..224753d80e0c 100644
--- a/llvm/test/CodeGen/Hexagon/tls_static.ll
+++ b/llvm/test/CodeGen/Hexagon/tls_static.ll
@@ -1,12 +1,12 @@
 ; RUN: llc -O0 -mtriple=hexagon-- -relocation-model=static < %s | FileCheck %s
 
- at dst_le = thread_local global i32 0, align 4
- at src_le = thread_local global i32 0, align 4
+ at dst_le = dso_local thread_local global i32 0, align 4
+ at src_le = dso_local thread_local global i32 0, align 4
 
 ; CHECK-LABEL: test_local_exec
 ; CHECK-DAG:   ##src_le at TPREL
 ; CHECK-DAG:   ##dst_le at TPREL
-define i32 @test_local_exec() nounwind {
+define dso_local i32 @test_local_exec() nounwind {
 entry:
   %0 = load i32, i32* @src_le, align 4
   store i32 %0, i32* @dst_le, align 4
@@ -19,7 +19,7 @@ entry:
 ; CHECK-LABEL: test_initial_exec:
 ; CHECK-DAG:   = memw(##src_ie at IE)
 ; CHECK-DAG:   = memw(##dst_ie at IE)
-define i32 @test_initial_exec() nounwind {
+define dso_local i32 @test_initial_exec() nounwind {
 entry:
   %0 = load i32, i32* @src_ie, align 4
   store i32 %0, i32* @dst_ie, align 4

diff  --git a/llvm/test/CodeGen/Mips/tls-static.ll b/llvm/test/CodeGen/Mips/tls-static.ll
new file mode 100644
index 000000000000..85cbb9bcb15c
--- /dev/null
+++ b/llvm/test/CodeGen/Mips/tls-static.ll
@@ -0,0 +1,82 @@
+; RUN: llc -mtriple=mipsel-- -disable-mips-delay-filler \
+; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATIC32
+; RUN: llc -mtriple=mips64el-- -disable-mips-delay-filler \
+; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATIC64
+
+; RUN: llc -mtriple=mipsel-- -disable-mips-delay-filler -mips-fix-global-base-reg=false \
+; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATICGP32
+; RUN: llc -mtriple=mips64el-- -disable-mips-delay-filler -mips-fix-global-base-reg=false \
+; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATICGP64
+
+ at t1 = dso_local thread_local global i32 0, align 4
+
+define dso_local i32 @f1() nounwind {
+entry:
+  %tmp = load i32, i32* @t1, align 4
+  ret i32 %tmp
+
+; STATIC32-LABEL:   f1:
+; STATIC32:   lui     $[[R0:[0-9]+]], %tprel_hi(t1)
+; STATIC32:   addiu   $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
+; STATIC32:   rdhwr   $3, $29{{$}}
+; STATIC32:   addu    $[[R2:[0-9]+]], $3, $[[R1]]
+; STATIC32:   lw      $2, 0($[[R2]])
+
+; STATIC64-LABEL:   f1:
+; STATIC64:   lui     $[[R0:[0-9]+]], %tprel_hi(t1)
+; STATIC64:   daddiu  $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
+; STATIC64:   rdhwr   $3, $29{{$}}
+; STATIC64:   daddu   $[[R2:[0-9]+]], $3, $[[R0]]
+; STATIC64:   lw      $2, 0($[[R2]])
+}
+
+ at t2 = external thread_local global i32
+
+define dso_local i32 @f2() nounwind {
+entry:
+  %tmp = load i32, i32* @t2, align 4
+  ret i32 %tmp
+
+; STATICGP32-LABEL: f2:
+; STATICGP32: lui     $[[R0:[0-9]+]], %hi(__gnu_local_gp)
+; STATICGP32: addiu   $[[GP:[0-9]+]], $[[R0]], %lo(__gnu_local_gp)
+; STATICGP32: lw      ${{[0-9]+}}, %gottprel(t2)($[[GP]])
+
+; STATICGP64-LABEL: f2:
+; STATICGP64: lui     $[[R0:[0-9]+]], %hi(%neg(%gp_rel(f2)))
+; STATICGP64: daddiu  $[[GP:[0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f2)))
+; STATICGP64: ld      $1, %gottprel(t2)($[[GP]])
+
+; STATIC32-LABEL:   f2:
+; STATIC32:   lui     $[[R0:[0-9]+]], %hi(__gnu_local_gp)
+; STATIC32:   addiu   $[[GP:[0-9]+]], $[[R0]], %lo(__gnu_local_gp)
+; STATIC32:   rdhwr   $3, $29{{$}}
+; STATIC32:   lw      $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
+; STATIC32:   addu    $[[R1:[0-9]+]], $3, $[[R0]]
+; STATIC32:   lw      $2, 0($[[R1]])
+
+; STATIC64-LABEL:   f2:
+; STATIC64:   lui     $[[R0:[0-9]+]], %hi(%neg(%gp_rel(f2)))
+; STATIC64:   daddiu  $[[GP:[0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f2)))
+; STATIC64:   rdhwr   $3, $29{{$}}
+; STATIC64:   ld      $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
+; STATIC64:   daddu   $[[R1:[0-9]+]], $3, $[[R0]]
+; STATIC64:   lw      $2, 0($[[R1]])
+}
+
+ at f3.i = internal thread_local unnamed_addr global i32 1, align 4
+
+define dso_local i32 @f3() nounwind {
+entry:
+; MM-LABEL:       f3:
+; MM:   addiu   $4, ${{[a-z0-9]+}}, %tlsldm(f3.i)
+; MM:   jalr    $25
+; MM:   lui     $[[R0:[0-9]+]], %dtprel_hi(f3.i)
+; MM:   addu16  $[[R1:[0-9]+]], $[[R0]], $2
+; MM:   lw      ${{[0-9]+}}, %dtprel_lo(f3.i)($[[R1]])
+
+  %0 = load i32, i32* @f3.i, align 4
+  %inc = add nsw i32 %0, 1
+  store i32 %inc, i32* @f3.i, align 4
+  ret i32 %inc
+}

diff  --git a/llvm/test/CodeGen/Mips/tls.ll b/llvm/test/CodeGen/Mips/tls.ll
index 126cfea97287..4ef885e8fb06 100644
--- a/llvm/test/CodeGen/Mips/tls.ll
+++ b/llvm/test/CodeGen/Mips/tls.ll
@@ -6,19 +6,9 @@
 ; RUN: llc -mtriple=mipsel-- -mattr=+micromips -disable-mips-delay-filler \
 ; RUN:     -relocation-model=pic < %s | FileCheck %s -check-prefix=MM
 
-; RUN: llc -mtriple=mipsel-- -disable-mips-delay-filler \
-; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATIC32
-; RUN: llc -mtriple=mips64el-- -disable-mips-delay-filler \
-; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATIC64
-
-; RUN: llc -mtriple=mipsel-- -disable-mips-delay-filler -mips-fix-global-base-reg=false \
-; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATICGP32
-; RUN: llc -mtriple=mips64el-- -disable-mips-delay-filler -mips-fix-global-base-reg=false \
-; RUN:     -relocation-model=static < %s | FileCheck %s -check-prefix=STATICGP64
+ at t1 = dso_preemptable thread_local global i32 0, align 4
 
- at t1 = thread_local global i32 0, align 4
-
-define i32 @f1() nounwind {
+define dso_preemptable i32 @f1() nounwind {
 entry:
   %tmp = load i32, i32* @t1, align 4
   ret i32 %tmp
@@ -44,25 +34,11 @@ entry:
 ; MM-DAG:   move    $gp, $2
 ; MM-DAG:   jalr    $25
 ; MM-DAG:   lw16    $2, 0($2)
-
-; STATIC32-LABEL:   f1:
-; STATIC32:   lui     $[[R0:[0-9]+]], %tprel_hi(t1)
-; STATIC32:   addiu   $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
-; STATIC32:   rdhwr   $3, $29{{$}}
-; STATIC32:   addu    $[[R2:[0-9]+]], $3, $[[R1]]
-; STATIC32:   lw      $2, 0($[[R2]])
-
-; STATIC64-LABEL:   f1:
-; STATIC64:   lui     $[[R0:[0-9]+]], %tprel_hi(t1)
-; STATIC64:   daddiu  $[[R1:[0-9]+]], $[[R0]], %tprel_lo(t1)
-; STATIC64:   rdhwr   $3, $29{{$}}
-; STATIC64:   daddu   $[[R2:[0-9]+]], $3, $[[R0]]
-; STATIC64:   lw      $2, 0($[[R2]])
 }
 
 @t2 = external thread_local global i32
 
-define i32 @f2() nounwind {
+define dso_preemptable i32 @f2() nounwind {
 entry:
   %tmp = load i32, i32* @t2, align 4
   ret i32 %tmp
@@ -87,37 +63,11 @@ entry:
 ; MM-DAG:   addiu   $4, $[[R0]], %tlsgd(t2)
 ; MM-DAG:   jalr    $25
 ; MM-DAG:   lw16    $2, 0($2)
-
-; STATICGP32-LABEL: f2:
-; STATICGP32: lui     $[[R0:[0-9]+]], %hi(__gnu_local_gp)
-; STATICGP32: addiu   $[[GP:[0-9]+]], $[[R0]], %lo(__gnu_local_gp)
-; STATICGP32: lw      ${{[0-9]+}}, %gottprel(t2)($[[GP]])
-
-; STATICGP64-LABEL: f2:
-; STATICGP64: lui     $[[R0:[0-9]+]], %hi(%neg(%gp_rel(f2)))
-; STATICGP64: daddiu  $[[GP:[0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f2)))
-; STATICGP64: ld      $1, %gottprel(t2)($[[GP]])
-
-; STATIC32-LABEL:   f2:
-; STATIC32:   lui     $[[R0:[0-9]+]], %hi(__gnu_local_gp)
-; STATIC32:   addiu   $[[GP:[0-9]+]], $[[R0]], %lo(__gnu_local_gp)
-; STATIC32:   rdhwr   $3, $29{{$}}
-; STATIC32:   lw      $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
-; STATIC32:   addu    $[[R1:[0-9]+]], $3, $[[R0]]
-; STATIC32:   lw      $2, 0($[[R1]])
-
-; STATIC64-LABEL:   f2:
-; STATIC64:   lui     $[[R0:[0-9]+]], %hi(%neg(%gp_rel(f2)))
-; STATIC64:   daddiu  $[[GP:[0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f2)))
-; STATIC64:   rdhwr   $3, $29{{$}}
-; STATIC64:   ld      $[[R0:[0-9]+]], %gottprel(t2)($[[GP]])
-; STATIC64:   daddu   $[[R1:[0-9]+]], $3, $[[R0]]
-; STATIC64:   lw      $2, 0($[[R1]])
 }
 
 @f3.i = internal thread_local unnamed_addr global i32 1, align 4
 
-define i32 @f3() nounwind {
+define dso_preemptable i32 @f3() nounwind {
 entry:
 ; PIC32-LABEL:      f3:
 ; PIC32:   addu    $[[R0:[a-z0-9]+]], $2, $25

diff  --git a/llvm/test/CodeGen/PowerPC/dsolocal-static.ll b/llvm/test/CodeGen/PowerPC/dsolocal-static.ll
index a4ef632f6877..9a1b28358f73 100644
--- a/llvm/test/CodeGen/PowerPC/dsolocal-static.ll
+++ b/llvm/test/CodeGen/PowerPC/dsolocal-static.ll
@@ -1,6 +1,6 @@
 ; RUN: llc -mtriple=ppc64le -relocation-model=static < %s | FileCheck %s
 
- at default = global i32 55
+ at default = dso_local global i32 55
 define dso_local i32* @get_default_global() {
 ; CHECK-LABEL: get_default_global:
 ; CHECK:         addis 3, 2, default at toc@ha

diff  --git a/llvm/test/CodeGen/Thumb2/tls1.ll b/llvm/test/CodeGen/Thumb2/tls1.ll
index 6acf27d1ad5d..6e46433ec848 100644
--- a/llvm/test/CodeGen/Thumb2/tls1.ll
+++ b/llvm/test/CodeGen/Thumb2/tls1.ll
@@ -6,15 +6,15 @@
 ; RUN:     -relocation-model=pic | grep "__tls_get_addr"
 
 
- at i = thread_local global i32 15		; <i32*> [#uses=2]
+ at i = dso_local thread_local global i32 15		; <i32*> [#uses=2]
 
-define i32 @f() {
+define dso_local i32 @f() {
 entry:
 	%tmp1 = load i32, i32* @i		; <i32> [#uses=1]
 	ret i32 %tmp1
 }
 
-define i32* @g() {
+define dso_local i32* @g() {
 entry:
 	ret i32* @i
 }

diff  --git a/llvm/test/CodeGen/WebAssembly/offset-folding.ll b/llvm/test/CodeGen/WebAssembly/offset-folding.ll
index 79ebafbb9007..52e32d31ab9a 100644
--- a/llvm/test/CodeGen/WebAssembly/offset-folding.ll
+++ b/llvm/test/CodeGen/WebAssembly/offset-folding.ll
@@ -6,7 +6,7 @@ target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
 target triple = "wasm32-unknown-unknown"
 
 @x = external dso_local global [0 x i32]
- at y = global [50 x i32] zeroinitializer
+ at y = dso_local global [50 x i32] zeroinitializer
 
 ; Test basic constant offsets of both defined and external symbols.
 
@@ -14,7 +14,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: .functype test0 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, x+188{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test0() {
+define dso_local i32* @test0() {
   ret i32* getelementptr ([0 x i32], [0 x i32]* @x, i32 0, i32 47)
 }
 
@@ -22,7 +22,7 @@ define i32* @test0() {
 ; CHECK-NEXT: .functype test1 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, y+188{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test1() {
+define dso_local i32* @test1() {
   ret i32* getelementptr ([50 x i32], [50 x i32]* @y, i32 0, i32 47)
 }
 
@@ -32,7 +32,7 @@ define i32* @test1() {
 ; CHECK-NEXT: .functype test2 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, x{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test2() {
+define dso_local i32* @test2() {
   ret i32* getelementptr ([0 x i32], [0 x i32]* @x, i32 0, i32 0)
 }
 
@@ -40,7 +40,7 @@ define i32* @test2() {
 ; CHECK-NEXT: .functype test3 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, y{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test3() {
+define dso_local i32* @test3() {
   ret i32* getelementptr ([50 x i32], [50 x i32]* @y, i32 0, i32 0)
 }
 
@@ -50,7 +50,7 @@ define i32* @test3() {
 ; CHECK-NEXT: .functype test4 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, x-188{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test4() {
+define dso_local i32* @test4() {
   ret i32* getelementptr ([0 x i32], [0 x i32]* @x, i32 0, i32 -47)
 }
 
@@ -58,6 +58,6 @@ define i32* @test4() {
 ; CHECK-NEXT: .functype test5 () -> (i32){{$}}
 ; CHECK-NEXT: i32.const $push0=, y-188{{$}}
 ; CHECK=NEXT: return $pop0{{$}}
-define i32* @test5() {
+define dso_local i32* @test5() {
   ret i32* getelementptr ([50 x i32], [50 x i32]* @y, i32 0, i32 -47)
 }

diff  --git a/llvm/test/CodeGen/XCore/codemodel.ll b/llvm/test/CodeGen/XCore/codemodel.ll
index cf22385e7cb0..7e9e1f4bf022 100644
--- a/llvm/test/CodeGen/XCore/codemodel.ll
+++ b/llvm/test/CodeGen/XCore/codemodel.ll
@@ -95,7 +95,7 @@ entry:
 ; LARGE: ldw r1, dp[s+36]
 ; LARGE: add r0, r0, r1
 ; LARGE: retsp 0
-define i32 @f(i32* %i) {
+define dso_local i32 @f(i32* %i) {
 entry:
   %0 = getelementptr inbounds i32, i32* %i, i32 16383
   %1 = load i32, i32* %0
@@ -131,7 +131,7 @@ entry:
 ; LARGE-NEXT: ldw r0, r0[0]
 ; LARGE-NEXT: retsp 0
 @NoSize = external dso_local global [0 x i32]
-define i32 @UnknownSize() nounwind {
+define dso_local i32 @UnknownSize() nounwind {
 entry:
   %0 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @NoSize, i32 0, i32 10)
   ret i32 %0
@@ -163,14 +163,14 @@ entry:
 ; LARGE: .section  .dp.bss.large,"awd", at nobits
 ; LARGE-LABEL: l:
 ; LARGE: .space  400
- at l = global [100 x i32] zeroinitializer
+ at l = dso_local global [100 x i32] zeroinitializer
 
 ; CHECK-LABEL: s:
 ; CHECK: .space 40
 ; LARGE: .section  .dp.bss,"awd", at nobits
 ; LARGE-LABEL: s:
 ; LARGE: .space  40
- at s = global [10 x i32] zeroinitializer
+ at s = dso_local global [10 x i32] zeroinitializer
 
 ; CHECK: .section .dp.rodata,"awd", at progbits
 ; CHECK-LABEL: cl:
@@ -178,14 +178,14 @@ entry:
 ; LARGE: .section .dp.rodata.large,"awd", at progbits
 ; LARGE-LABEL: cl:
 ; LARGE: .space 400
- at cl = constant  [100 x i32] zeroinitializer
+ at cl = dso_local constant  [100 x i32] zeroinitializer
 
 ; CHECK-LABEL: cs:
 ; CHECK: .space 40
 ; LARGE: .section .dp.rodata,"awd", at progbits
 ; LARGE-LABEL: cs:
 ; LARGE: .space 40
- at cs = constant  [10 x i32] zeroinitializer
+ at cs = dso_local constant  [10 x i32] zeroinitializer
 
 ; CHECK: .section .cp.rodata,"ac", at progbits
 ; CHECK-LABEL: icl:
@@ -205,10 +205,10 @@ entry:
 ; CHECK: .section  .cp.namedsection,"ac", at progbits
 ; CHECK-LABEL: cpsec:
 ; CHECK: .long 0
- at cpsec = constant i32 0, section ".cp.namedsection"
+ at cpsec = dso_local constant i32 0, section ".cp.namedsection"
 
 ; CHECK: .section  .dp.namedsection,"awd", at progbits
 ; CHECK-LABEL: dpsec:
 ; CHECK: .long 0
- at dpsec = global i32 0, section ".dp.namedsection"
+ at dpsec = dso_local global i32 0, section ".dp.namedsection"
 

diff  --git a/llvm/test/DebugInfo/X86/debug-loc-frame.ll b/llvm/test/DebugInfo/X86/debug-loc-frame.ll
index 83c678ccedf9..f4f71c533ed0 100644
--- a/llvm/test/DebugInfo/X86/debug-loc-frame.ll
+++ b/llvm/test/DebugInfo/X86/debug-loc-frame.ll
@@ -40,12 +40,12 @@
 ; ModuleID = 'frame.c'
 source_filename = "frame.c"
 
- at data = global i32 17, align 4, !dbg !0
- at sum = local_unnamed_addr global i32 0, align 4, !dbg !6
- at zero = local_unnamed_addr global i32 0, align 4, !dbg !9
- at ptr = common local_unnamed_addr global i32* null, align 8, !dbg !11
+ at data = dso_local global i32 17, align 4, !dbg !0
+ at sum = dso_local local_unnamed_addr global i32 0, align 4, !dbg !6
+ at zero = dso_local local_unnamed_addr global i32 0, align 4, !dbg !9
+ at ptr = common dso_local local_unnamed_addr global i32* null, align 8, !dbg !11
 
-define i32 @main() local_unnamed_addr !dbg !17 {
+define dso_local i32 @main() local_unnamed_addr !dbg !17 {
 entry:
   %val = alloca i32, align 4
   %0 = bitcast i32* %val to i8*, !dbg !22

diff  --git a/llvm/test/DebugInfo/X86/live-debug-values.ll b/llvm/test/DebugInfo/X86/live-debug-values.ll
index fc8517a671ce..2ba82b5e7aed 100644
--- a/llvm/test/DebugInfo/X86/live-debug-values.ll
+++ b/llvm/test/DebugInfo/X86/live-debug-values.ll
@@ -40,11 +40,11 @@ source_filename = "test/DebugInfo/X86/live-debug-values.ll"
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
- at m = common global i32 0, align 4, !dbg !0
+ at m = common dso_local global i32 0, align 4, !dbg !0
 @.str = private unnamed_addr constant [13 x i8] c"m(main): %d\0A\00", align 1
 
 ; Function Attrs: nounwind uwtable
-define i32 @main(i32 %argc, i8** nocapture readonly %argv) #0 !dbg !10 {
+define dso_local i32 @main(i32 %argc, i8** nocapture readonly %argv) #0 !dbg !10 {
 entry:
   tail call void @llvm.dbg.value(metadata i32 %argc, metadata !17, metadata !20), !dbg !21
   tail call void @llvm.dbg.value(metadata i8** %argv, metadata !18, metadata !20), !dbg !22

diff  --git a/llvm/test/DebugInfo/X86/machinecse-wrongdebug-hoist.ll b/llvm/test/DebugInfo/X86/machinecse-wrongdebug-hoist.ll
index 8f3b08a91eb5..4d552b1d6200 100644
--- a/llvm/test/DebugInfo/X86/machinecse-wrongdebug-hoist.ll
+++ b/llvm/test/DebugInfo/X86/machinecse-wrongdebug-hoist.ll
@@ -7,10 +7,10 @@
 target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-apple-macosx10.15.0"
 
- at a = local_unnamed_addr global i32 0, align 4, !dbg !0
+ at a = dso_local local_unnamed_addr global i32 0, align 4, !dbg !0
 
 ; Function Attrs: norecurse nounwind readonly ssp uwtable
-define i32 @b(i8 signext %0) local_unnamed_addr #0 !dbg !12 {
+define dso_local i32 @b(i8 signext %0) local_unnamed_addr #0 !dbg !12 {
   call void @llvm.dbg.value(metadata i8 %0, metadata !17, metadata !DIExpression()), !dbg !18
   %2 = load i32, i32* @a, align 4, !dbg !19, !tbaa !20
   %3 = icmp sgt i32 %2, 1, !dbg !24
@@ -31,7 +31,7 @@ define i32 @b(i8 signext %0) local_unnamed_addr #0 !dbg !12 {
   ret i32 %11, !dbg !30
 }
 
-define i32 @main() local_unnamed_addr #0 !dbg !31 {
+define dso_local i32 @main() local_unnamed_addr #0 !dbg !31 {
   %1 = call i32 @b(i8 signext 0), !dbg !34
   ret i32 %1, !dbg !35
 }

diff  --git a/llvm/test/MC/AArch64/elf-globaladdress.ll b/llvm/test/MC/AArch64/elf-globaladdress.ll
index 37e473b0092c..dc4d60a3c280 100644
--- a/llvm/test/MC/AArch64/elf-globaladdress.ll
+++ b/llvm/test/MC/AArch64/elf-globaladdress.ll
@@ -6,12 +6,12 @@
 ;; RUN:     llvm-mc -triple=arm64-none-linux-gnu -filetype=obj -o - | \
 ;; RUN:     llvm-readobj -h -r - | FileCheck -check-prefix=OBJ %s
 
- at var8 = global i8 0
- at var16 = global i16 0
- at var32 = global i32 0
- at var64 = global i64 0
+ at var8 = dso_local global i8 0
+ at var16 = dso_local global i16 0
+ at var32 = dso_local global i32 0
+ at var64 = dso_local global i64 0
 
-define void @loadstore() {
+define dso_local void @loadstore() {
     %val8 = load i8, i8* @var8
     store volatile i8 %val8, i8* @var8
 
@@ -27,9 +27,9 @@ define void @loadstore() {
     ret void
 }
 
- at globaddr = global i64* null
+ at globaddr = dso_local global i64* null
 
-define void @address() {
+define dso_local void @address() {
     store i64* @var64, i64** @globaddr
     ret void
 }

diff  --git a/llvm/test/MC/X86/intel-syntax-var-offset.ll b/llvm/test/MC/X86/intel-syntax-var-offset.ll
index d5319fe2c3f5..b38f09ab6f86 100644
--- a/llvm/test/MC/X86/intel-syntax-var-offset.ll
+++ b/llvm/test/MC/X86/intel-syntax-var-offset.ll
@@ -30,14 +30,14 @@
 ; CHECK:	mov	rdx, offset X
 ; CHECK:	mov	qword ptr [PX], rdx
 
- at PZ = common global i8* null, align 8
- at Z = common global [4 x i8] zeroinitializer, align 1
- at X = common global [4 x i8] zeroinitializer, align 1
- at PX = common global i8* null, align 8
- at Y = common global [4 x i8] zeroinitializer, align 1
- at PY = common global i8* null, align 8
+ at PZ = common dso_local global i8* null, align 8
+ at Z = common dso_local global [4 x i8] zeroinitializer, align 1
+ at X = common dso_local global [4 x i8] zeroinitializer, align 1
+ at PX = common dso_local global i8* null, align 8
+ at Y = common dso_local global [4 x i8] zeroinitializer, align 1
+ at PY = common dso_local global i8* null, align 8
 
-define i8* @test057(i64 %x) {
+define dso_local i8* @test057(i64 %x) {
 entry:
   %x.addr = alloca i64, align 8
   store i64 %x, i64* %x.addr, align 8

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll
index c45406e2ab0a..3db3ef794b49 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=aarch64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -38,7 +38,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
index a2f0b078157b..428be9ee4311 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
@@ -2,7 +2,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=aarch64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -39,7 +39,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
index 11592d00e20d..bf4e4564086f 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
@@ -2,7 +2,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=aarch64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       // %bb.0:
 ; CHECK-NEXT:    sub sp, sp, #48 // =48
@@ -68,7 +68,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       // %bb.0:
 ; CHECK-NEXT:    sub sp, sp, #48 // =48

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll
index 5736e1759c9f..d3a1a722494a 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll
@@ -1,9 +1,9 @@
 ; RUN: llc -enable-machine-outliner -mtriple=amdgcn-adm-amdhsa < %s | FileCheck %s
 ;
 ; NOTE: Machine outliner doesn't run.
- at x = global i32 0, align 4
+ at x = dso_local global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4, addrspace(5)
   %2 = alloca i32, align 4, addrspace(5)
   %3 = alloca i32, align 4, addrspace(5)
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4, addrspace(5)
   %2 = alloca i32, align 4, addrspace(5)
   %3 = alloca i32, align 4, addrspace(5)

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
index 6aaf63b4a884..5a7eedb82298 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
@@ -1,9 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --include-generated-funcs
 ; RUN: llc -enable-machine-outliner -mtriple=amdgcn-adm-amdhsa < %s | FileCheck %s
 ; NOTE: Machine outliner doesn't run.
- at x = global i32 0, align 4
+ at x = dso_local global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4, addrspace(5)
   %2 = alloca i32, align 4, addrspace(5)
   %3 = alloca i32, align 4, addrspace(5)
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4, addrspace(5)
   %2 = alloca i32, align 4, addrspace(5)
   %3 = alloca i32, align 4, addrspace(5)
@@ -64,7 +64,8 @@ define i32 @main() #0 {
 
 attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
 ; CHECK-LABEL: check_boundaries:
-; CHECK:       ; %bb.0:
+; CHECK:       check_boundaries$local:
+; CHECK-NEXT:  ; %bb.0:
 ; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
 ; CHECK-NEXT:    s_mov_b32 s4, s33
 ; CHECK-NEXT:    s_mov_b32 s33, s32
@@ -73,16 +74,15 @@ attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
 ; CHECK-NEXT:    s_setpc_b64 s[30:31]
 ;
 ; CHECK-LABEL: main:
-; CHECK:       ; %bb.0:
+; CHECK:       main$local:
+; CHECK-NEXT:  ; %bb.0:
 ; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
 ; CHECK-NEXT:    s_mov_b32 s6, s33
 ; CHECK-NEXT:    s_mov_b32 s33, s32
 ; CHECK-NEXT:    s_getpc_b64 s[4:5]
-; CHECK-NEXT:    s_add_u32 s4, s4, x at gotpcrel32@lo+4
-; CHECK-NEXT:    s_addc_u32 s5, s5, x at gotpcrel32@hi+12
-; CHECK-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x0
+; CHECK-NEXT:    s_add_u32 s4, s4, x at rel32@lo+4
+; CHECK-NEXT:    s_addc_u32 s5, s5, x at rel32@hi+12
 ; CHECK-NEXT:    v_mov_b32_e32 v2, 1
-; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
 ; CHECK-NEXT:    v_mov_b32_e32 v0, s4
 ; CHECK-NEXT:    v_mov_b32_e32 v1, s5
 ; CHECK-NEXT:    flat_store_dword v[0:1], v2

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
index ee9d6dfe678a..e7e35a9e7308 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
@@ -2,11 +2,12 @@
 ; RUN: llc -enable-machine-outliner -mtriple=amdgcn-adm-amdhsa < %s | FileCheck %s
 ;
 ; NOTE: Machine outliner doesn't run.
- at x = global i32 0, align 4
+ at x = dso_local global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
-; CHECK:       ; %bb.0:
+; CHECK:       check_boundaries$local:
+; CHECK-NEXT:  ; %bb.0:
 ; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
 ; CHECK-NEXT:    s_mov_b32 s4, s33
 ; CHECK-NEXT:    s_mov_b32 s33, s32
@@ -49,18 +50,17 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
-; CHECK:       ; %bb.0:
+; CHECK:       main$local:
+; CHECK-NEXT:  ; %bb.0:
 ; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
 ; CHECK-NEXT:    s_mov_b32 s6, s33
 ; CHECK-NEXT:    s_mov_b32 s33, s32
 ; CHECK-NEXT:    s_getpc_b64 s[4:5]
-; CHECK-NEXT:    s_add_u32 s4, s4, x at gotpcrel32@lo+4
-; CHECK-NEXT:    s_addc_u32 s5, s5, x at gotpcrel32@hi+12
-; CHECK-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x0
+; CHECK-NEXT:    s_add_u32 s4, s4, x at rel32@lo+4
+; CHECK-NEXT:    s_addc_u32 s5, s5, x at rel32@hi+12
 ; CHECK-NEXT:    v_mov_b32_e32 v2, 1
-; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
 ; CHECK-NEXT:    v_mov_b32_e32 v0, s4
 ; CHECK-NEXT:    v_mov_b32_e32 v1, s5
 ; CHECK-NEXT:    flat_store_dword v[0:1], v2

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll
index a9150376fb8e..cdc7d3b63fba 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner runs, but doesn't do anything.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.generated.expected
index 3463d1398e23..ddf87ee3a29d 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner runs, but doesn't do anything.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.nogenerated.expected
index af4851316652..316e7743209c 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner runs, but doesn't do anything.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       @ %bb.0:
 ; CHECK-NEXT:    sub sp, sp, #20
@@ -83,7 +83,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       @ %bb.0:
 ; CHECK-NEXT:    sub sp, sp, #20

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll
index b05e97801dc8..0fd51eb5bd54 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.generated.expected
index 190a854d08d3..0844707eab3e 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.nogenerated.expected
index 407f4b78c46e..5a58b1aff042 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/hexagon_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:         .cfi_startproc
 ; CHECK-NEXT:  // %bb.0:
@@ -81,7 +81,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:         .cfi_startproc
 ; CHECK-NEXT:  // %bb.0:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll
index ec5ea6718a60..c9259e1ec6da 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.generated.expected
index bc604fc28c19..1cf6afe050e9 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -64,7 +64,9 @@ define i32 @main() #0 {
 
 attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
 ; CHECK-LABEL: check_boundaries:
-; CHECK:       ! %bb.0:
+; CHECK:       .Lcheck_boundaries$local:
+; CHECK-NEXT:    .cfi_startproc
+; CHECK-NEXT:  ! %bb.0:
 ; CHECK-NEXT:    st %fp, [--%sp]
 ; CHECK-NEXT:    add %sp, 0x8, %fp
 ; CHECK-NEXT:    sub %sp, 0x20, %sp
@@ -109,7 +111,9 @@ attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
 ; CHECK-NEXT:    ld -8[%fp], %fp
 ;
 ; CHECK-LABEL: main:
-; CHECK:       ! %bb.0:
+; CHECK:       .Lmain$local:
+; CHECK-NEXT:    .cfi_startproc
+; CHECK-NEXT:  ! %bb.0:
 ; CHECK-NEXT:    st %fp, [--%sp]
 ; CHECK-NEXT:    add %sp, 0x8, %fp
 ; CHECK-NEXT:    sub %sp, 0x20, %sp

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.nogenerated.expected
index 10f466fe6e14..60b4fbe852d8 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/lanai_generated_funcs.ll.nogenerated.expected
@@ -4,9 +4,11 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
-; CHECK:       ! %bb.0:
+; CHECK:       .Lcheck_boundaries$local:
+; CHECK-NEXT:    .cfi_startproc
+; CHECK-NEXT:  ! %bb.0:
 ; CHECK-NEXT:    st %fp, [--%sp]
 ; CHECK-NEXT:    add %sp, 0x8, %fp
 ; CHECK-NEXT:    sub %sp, 0x20, %sp
@@ -85,9 +87,11 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
-; CHECK:       ! %bb.0:
+; CHECK:       .Lmain$local:
+; CHECK-NEXT:    .cfi_startproc
+; CHECK-NEXT:  ! %bb.0:
 ; CHECK-NEXT:    st %fp, [--%sp]
 ; CHECK-NEXT:    add %sp, 0x8, %fp
 ; CHECK-NEXT:    sub %sp, 0x20, %sp

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll
index 5c1be9bbb394..44fb1a1e81f1 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.generated.expected
index 0af161179eed..c0b639e69ccb 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.nogenerated.expected
index f6053fe26930..1e891cf494fd 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    addiu $sp, $sp, -32
@@ -92,7 +92,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    addiu $sp, $sp, -32

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll
index b37c6652016c..59df592f5955 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.generated.expected
index c4790f5c7b61..7f988a4c0d75 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.nogenerated.expected
index 2bef3455f06c..294b942d9886 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/msp430_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       ; %bb.0:
 ; CHECK-NEXT:    push r4
@@ -90,7 +90,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       ; %bb.0:
 ; CHECK-NEXT:    push r4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll
index 654a72814a82..cd545199697f 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected
index 7a4b7aa4dfdc..57298fa6e019 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected
index 63cb1cd1d0bc..2005ff401b4b 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ppc_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stwu 1, -32(1)
@@ -74,7 +74,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stwu 1, -32(1)

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll
index 904d1ca28432..e0c6edc2d09c 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.generated.expected
index db3fcdeaf67a..3e6a9b760274 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.nogenerated.expected
index ec5855f582c3..973b695370ca 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/sparc_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:         .cfi_startproc
 ; CHECK-NEXT:  ! %bb.0:
@@ -86,7 +86,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:         .cfi_startproc
 ; CHECK-NEXT:  ! %bb.0:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll
index 138057a625fa..38b0ec04887d 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected
index 24a1d43a1aba..3d6877316312 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected
index 37a314f0060f..9e72b2084c52 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)
@@ -77,7 +77,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stmg %r11, %r15, 88(%r15)

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll
index 499e6e09d3a6..a56e183825ea 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.generated.expected
index c032945acdfb..89ba09a5aa9f 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.generated.expected
@@ -3,7 +3,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -40,7 +40,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.nogenerated.expected
index 14ae2ea71cb4..cd6cf84c8183 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/wasm_generated_funcs.ll.nogenerated.expected
@@ -4,7 +4,7 @@
 ; NOTE: Machine outliner doesn't run.
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:         .functype check_boundaries () -> (i32)
 ; CHECK-NEXT:    .local i32
@@ -113,7 +113,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:         .functype main (i32, i32) -> (i32)
 ; CHECK-NEXT:  # %bb.0: # %body

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll
index be87e33156eb..fe94f5ee3a0c 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=x86_64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -38,7 +38,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
index 966b5095c252..eb88ffcb425d 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
@@ -2,7 +2,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=x86_64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
@@ -39,7 +39,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
index 2d8c128f1a9f..bd710b4b2081 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
@@ -2,7 +2,7 @@
 ; RUN: llc -enable-machine-outliner -mtriple=x86_64-unknown-linux < %s | FileCheck %s
 @x = global i32 0, align 4
 
-define i32 @check_boundaries() #0 {
+define dso_local i32 @check_boundaries() #0 {
 ; CHECK-LABEL: check_boundaries:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    pushq %rbp
@@ -71,7 +71,7 @@ define i32 @check_boundaries() #0 {
   ret i32 0
 }
 
-define i32 @main() #0 {
+define dso_local i32 @main() #0 {
 ; CHECK-LABEL: main:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    pushq %rbp


        


More information about the llvm-commits mailing list