brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · 8ca6a56 Raw
153 lines · plain
1; RUN: split-file %s %t2; RUN: cat %t/main.ll %t/a.ll > %t/a2.ll3; RUN: cat %t/main.ll %t/b.ll > %t/b2.ll4; RUN: cat %t/main.ll %t/c.ll > %t/c2.ll5; RUN: cat %t/main.ll %t/d.ll > %t/d2.ll6; RUN: cat %t/main.ll %t/e.ll > %t/e2.ll7; RUN: cat %t/main.ll %t/f.ll > %t/f2.ll8; RUN: cat %t/main.ll %t/g.ll > %t/g2.ll9; RUN: cat %t/main.ll %t/h.ll > %t/h2.ll10; RUN: cat %t/existedGV.ll %t/main.ll %t/h.ll > %t/h3.ll11; RUN: cat %t/main.ll %t/i.ll > %t/i2.ll12; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/a2.ll | FileCheck --check-prefix=CHECK-TLS-FS-40 %s13; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/b2.ll | FileCheck --check-prefix=CHECK-TLS-FS-40 %s14; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/c2.ll | FileCheck --check-prefix=CHECK-GLOBAL %s15; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/d2.ll | FileCheck --check-prefix=CHECK-TLS-FS-40 %s16; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/e2.ll | FileCheck --check-prefix=CHECK-GS %s17; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/f2.ll | FileCheck --check-prefix=CHECK-OFFSET %s18; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/g2.ll | FileCheck --check-prefix=CHECK-NEGATIVE-OFFSET %s19; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/h2.ll | FileCheck --check-prefix=CHECK-SYM %s20; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/h3.ll | FileCheck --check-prefix=CHECK-SYMGV %s21; RUN: llc -mtriple=x86_64-pc-linux-gnu -o - < %t/i2.ll | FileCheck --check-prefix=CHECK-SYM2 %s22 23; CHECK-TLS-FS-40:       movq    %fs:40, %rax24; CHECK-TLS-FS-40:       movq    %fs:40, %rax25; CHECK-TLS-FS-40-NEXT:  cmpq    16(%rsp), %rax26; CHECK-TLS-FS-40-NEXT:  jne     .LBB0_227; CHECK-TLS-FS-40:       .LBB0_2:28; CHECK-TLS-FS-40-NEXT:  .cfi_def_cfa_offset 3229; CHECK-TLS-FS-40-NEXT:  callq   __stack_chk_fail30 31; CHECK-GS:       movq    %gs:40, %rax32; CHECK-GS:       movq    %gs:40, %rax33; CHECK-GS-NEXT:  cmpq    16(%rsp), %rax34; CHECK-GS-NEXT:  jne     .LBB0_235; CHECK-GS:       .LBB0_2:36; CHECK-GS-NEXT:  .cfi_def_cfa_offset 3237; CHECK-GS-NEXT:  callq   __stack_chk_fail38 39; CHECK-OFFSET:       movq    %fs:20, %rax40; CHECK-OFFSET:       movq    %fs:20, %rax41; CHECK-OFFSET-NEXT:  cmpq    16(%rsp), %rax42; CHECK-OFFSET-NEXT:  jne     .LBB0_243; CHECK-OFFSET:       .LBB0_2:44; CHECK-OFFSET-NEXT:  .cfi_def_cfa_offset 3245; CHECK-OFFSET-NEXT:  callq   __stack_chk_fail46 47; CHECK-NEGATIVE-OFFSET:       movl    $4294967276, %eax               # imm = 0xFFFFFFEC48; CHECK-NEGATIVE-OFFSET:       movq    %fs:(%rax), %rcx49; CHECK-NEGATIVE-OFFSET:       movq    %fs:(%rax), %rax50; CHECK-NEGATIVE-OFFSET-NEXT:  cmpq    16(%rsp), %rax51; CHECK-NEGATIVE-OFFSET-NEXT:  jne     .LBB0_252; CHECK-NEGATIVE-OFFSET:       .LBB0_2:53; CHECK-NEGATIVE-OFFSET-NEXT:  .cfi_def_cfa_offset 3254; CHECK-NEGATIVE-OFFSET-NEXT:  callq   __stack_chk_fail55 56; CHECK-GLOBAL:       movq    __stack_chk_guard(%rip), %rax57; CHECK-GLOBAL:       movq    __stack_chk_guard(%rip), %rax58; CHECK-GLOBAL-NEXT:  cmpq    16(%rsp), %rax59; CHECK-GLOBAL-NEXT:  jne     .LBB0_260; CHECK-GLOBAL:       .LBB0_2:61; CHECK-GLOBAL-NEXT:  .cfi_def_cfa_offset 3262; CHECK-GLOBAL-NEXT:  callq   __stack_chk_fail63 64; CHECK-SYM:         movq    __woof@GOTPCREL(%rip), %rax65; CHECK-SYM-NEXT:    movq    %fs:(%rax), %rcx66; CHECK-SYM-NEXT:    movq    %rcx, 16(%rsp)67; CHECK-SYM:         movq    %fs:(%rax), %rax68; CHECK-SYM-NEXT:    cmpq    16(%rsp), %rax69; CHECK-SYM-NEXT:    jne     .LBB0_270; CHECK-SYM:         .LBB0_2:71; CHECK-SYM-NEXT:    .cfi_def_cfa_offset 3272; CHECK-SYM-NEXT:    callq   __stack_chk_fail73 74; CHECK-SYMGV:       movq    __woof(%rip), %rax75; CHECK-SYMGV-NEXT:  movq    %rax, 16(%rsp)76; CHECK-SYMGV:       cmpq    16(%rsp), %rax77; CHECK-SYMGV-NEXT:  jne     .LBB0_278; CHECK-SYMGV:       .LBB0_2:79; CHECK-SYMGV-NEXT:  .cfi_def_cfa_offset 3280; CHECK-SYMGV-NEXT:  callq   __stack_chk_fail81 82; CHECK-SYM2:         movq    %fs:__woof(%rip), %rax83; CHECK-SYM2-NEXT:    movq    %rax, 16(%rsp)84; CHECK-SYM2:         movq    %fs:__woof(%rip), %rax85; CHECK-SYM2-NEXT:    cmpq    16(%rsp), %rax86; CHECK-SYM2-NEXT:    jne     .LBB0_287; CHECK-SYM2:         .LBB0_2:88; CHECK-SYM2-NEXT:    .cfi_def_cfa_offset 3289; CHECK-SYM2-NEXT:    callq   __stack_chk_fai90 91; ModuleID = 't.c'92;--- existedGV.ll93 94@__woof = dso_local local_unnamed_addr global ptr null, align 895 96;--- main.ll97 98@.str = private unnamed_addr constant [14 x i8] c"stackoverflow\00", align 199@a = dso_local local_unnamed_addr global ptr null, align 8100 101; Function Attrs: nounwind sspreq uwtable writeonly102define dso_local i32 @main() local_unnamed_addr #0 {103entry:104  %array = alloca [5 x i8], align 1105  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %array) #2106  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 dereferenceable(14) %array, ptr nonnull align 1 dereferenceable(14) @.str, i64 14, i1 false) #2107  store ptr %array, ptr @a, align 8108  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %array) #2109  ret i32 0110}111 112; Function Attrs: argmemonly nounwind willreturn113declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1114 115; Function Attrs: argmemonly nounwind willreturn116declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1117 118; Function Attrs: argmemonly nounwind willreturn119declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1120 121attributes #0 = { nounwind sspreq uwtable writeonly "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "use-soft-float"="false" }122attributes #1 = { argmemonly nounwind willreturn }123attributes #2 = { nounwind }124 125;--- a.ll126;--- b.ll127!llvm.module.flags = !{!1}128!1 = !{i32 2, !"stack-protector-guard", !"tls"}129;--- c.ll130!llvm.module.flags = !{!0,!1}131!0 = !{i32 7, !"direct-access-external-data", i32 1}132!1 = !{i32 2, !"stack-protector-guard", !"global"}133;--- d.ll134!llvm.module.flags = !{!1}135!1 = !{i32 2, !"stack-protector-guard-reg", !"fs"}136;--- e.ll137!llvm.module.flags = !{!1}138!1 = !{i32 2, !"stack-protector-guard-reg", !"gs"}139;--- f.ll140!llvm.module.flags = !{!1}141!1 = !{i32 2, !"stack-protector-guard-offset", i32 20}142;--- g.ll143!llvm.module.flags = !{!1}144!1 = !{i32 2, !"stack-protector-guard-offset", i32 -20}145;--- h.ll146!llvm.module.flags = !{!0,!1}147!0 = !{i32 7, !"direct-access-external-data", i32 0}148!1 = !{i32 2, !"stack-protector-guard-symbol", !"__woof"}149;--- i.ll150!llvm.module.flags = !{!0,!1}151!0 = !{i32 7, !"direct-access-external-data", i32 1}152!1 = !{i32 2, !"stack-protector-guard-symbol", !"__woof"}153