lists.ll 2.1 KB

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