X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Fglobal-sections.ll;h=8c61411e53eb63c5c6923c6cb6df1da6b16e0ce3;hb=666ef776b3ca5cf45e37e0c01e6af9f15a1f9c9c;hp=11b72c1e22208058933f6c75d8d32ac8bf751eff;hpb=c3c5d7c2d6e3add269d590b2632dec48634d39cf;p=oota-llvm.git diff --git a/test/CodeGen/X86/global-sections.ll b/test/CodeGen/X86/global-sections.ll index 11b72c1e222..8c61411e53e 100644 --- a/test/CodeGen/X86/global-sections.ll +++ b/test/CodeGen/X86/global-sections.ll @@ -3,8 +3,10 @@ ; RUN: llc < %s -mtriple=i386-apple-darwin10 -relocation-model=static | FileCheck %s -check-prefix=DARWIN-STATIC ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s -check-prefix=DARWIN64 ; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -data-sections -function-sections | FileCheck %s -check-prefix=LINUX-SECTIONS +; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -function-sections | FileCheck %s -check-prefix=LINUX-FUNC-SECTIONS ; RUN: llc < %s -mtriple=x86_64-pc-linux -data-sections -function-sections -relocation-model=pic | FileCheck %s -check-prefix=LINUX-SECTIONS-PIC ; RUN: llc < %s -mtriple=i686-pc-win32 -data-sections -function-sections | FileCheck %s -check-prefix=WIN32-SECTIONS +; RUN: llc < %s -mtriple=i686-pc-win32 -function-sections | FileCheck %s -check-prefix=WIN32-FUNC-SECTIONS define void @F1() { ret void @@ -42,11 +44,62 @@ bb5: ; LINUX-SECTIONS-NEXT: .cfi_endproc ; LINUX-SECTIONS-NEXT: .section .rodata.F2,"a",@progbits +; LINUX-FUNC-SECTIONS: .section .text.F2,"ax",@progbits +; LINUX-FUNC-SECTIONS: .size F2, +; LINUX-FUNC-SECTIONS-NEXT: .cfi_endproc +; LINUX-FUNC-SECTIONS-NEXT: .section .rodata.F2,"a",@progbits + +; WIN32-FUNC-SECTIONS: .section .text,"xr",one_only,_F2 +; WIN32-FUNC-SECTIONS-NOT: .section +; WIN32-FUNC-SECTIONS: .section .rdata,"dr",associative,_F2 + + ; LINUX-SECTIONS-PIC: .section .text.F2,"ax",@progbits ; LINUX-SECTIONS-PIC: .size F2, ; LINUX-SECTIONS-PIC-NEXT: .cfi_endproc ; LINUX-SECTIONS-PIC-NEXT: .section .rodata.F2,"a",@progbits +declare void @G() + +define void @F3(i32 %y) { +bb0: + invoke void @G() + to label %bb2 unwind label %bb1 +bb1: + landingpad { i8*, i32 } personality i8* bitcast (void ()* @G to i8*) + catch i8* null + br label %bb2 +bb2: + +switch i32 %y, label %bb7 [ + i32 1, label %bb3 + i32 2, label %bb4 + i32 3, label %bb5 + i32 4, label %bb6 + ] +bb3: + ret void +bb4: + ret void +bb5: + ret void +bb6: + ret void +bb7: + ret void +} + +; DARWIN64: _F3: +; DARWIN64: Lfunc_end +; DARWIN64-NEXT: .cfi_endproc +; DARWIN64-NOT: .section +; DARWIN64: LJTI{{.*}}: +; DARWIN64-NEXT: .long +; DARWIN64-NEXT: .long +; DARWIN64-NEXT: .long +; DARWIN64-NEXT: .long +; DARWIN64-NEXT: .section __TEXT,__gcc_except_tab + ; int G1; @G1 = common global i32 0 @@ -222,8 +275,8 @@ bb5: ; LINUX-SECTIONS: .asciz "foo" ; LINUX-SECTIONS: .size .LG14, 4 -; WIN32-SECTIONS: .section .rdata,"dr" -; WIN32-SECTIONS: L_G14: +; WIN32-SECTIONS: .section .rdata,"dr",one_only,_G14 +; WIN32-SECTIONS: _G14: ; WIN32-SECTIONS: .asciz "foo" ; cannot be merged on MachO, but can on other formats.