Home | History | Annotate | Download | only in Internalize
      1 ; No arguments means internalize everything
      2 ; RUN: opt < %s -internalize -S | FileCheck --check-prefix=ALL %s
      3 
      4 ; Non-existent files should be treated as if they were empty (so internalize
      5 ; everything)
      6 ; RUN: opt < %s -internalize -internalize-public-api-file /nonexistent/file 2> /dev/null -S | FileCheck --check-prefix=ALL %s
      7 
      8 ; Internalize all but foo and j
      9 ; RUN: opt < %s -internalize -internalize-public-api-list foo -internalize-public-api-list j -S | FileCheck --check-prefix=FOO_AND_J %s
     10 
     11 ; RUN: opt < %s -S -internalize -internalize-public-api-list bar -internalize-public-api-list foo -internalize-public-api-file /nonexistent/file  2> /dev/null | FileCheck --check-prefix=FOO_AND_BAR %s
     12 
     13 ; -file and -list options should be merged, the apifile contains foo and j
     14 ; RUN: opt < %s -internalize -internalize-public-api-list bar -internalize-public-api-file %S/apifile -S | FileCheck --check-prefix=FOO_J_AND_BAR %s
     15 
     16 ; ALL: @i = internal global
     17 ; FOO_AND_J: @i = internal global
     18 ; FOO_AND_BAR: @i = internal global
     19 ; FOO_J_AND_BAR: @i = internal global
     20 @i = global i32 0
     21 
     22 ; ALL: @j = internal global
     23 ; FOO_AND_J: @j = global
     24 ; FOO_AND_BAR: @j = internal global
     25 ; FOO_J_AND_BAR: @j = global
     26 @j = global i32 0
     27 
     28 ; ALL: define internal void @main() {
     29 ; FOO_AND_J: define internal void @main() {
     30 ; FOO_AND_BAR: define internal void @main() {
     31 ; FOO_J_AND_BAR: define internal void @main() {
     32 define void @main() {
     33         ret void
     34 }
     35 
     36 ; ALL: define internal void @foo() {
     37 ; FOO_AND_J: define void @foo() {
     38 ; FOO_AND_BAR: define void @foo() {
     39 ; FOO_J_AND_BAR: define void @foo() {
     40 define void @foo() {
     41         ret void
     42 }
     43 
     44 ; ALL: define available_externally void @bar() {
     45 ; FOO_AND_J: define available_externally void @bar() {
     46 ; FOO_AND_BAR: define available_externally void @bar() {
     47 ; FOO_J_AND_BAR: define available_externally void @bar() {
     48 define available_externally void @bar() {
     49   ret void
     50 }
     51 
     52 ; ALL: define dllexport void @export_foo() {
     53 ; FOO_AND_J: define dllexport void @export_foo() {
     54 ; FOO_AND_BAR: define dllexport void @export_foo() {
     55 ; FOO_J_AND_BAR: define dllexport void @export_foo() {
     56 define dllexport void @export_foo() {
     57   ret void
     58 }
     59 
     60