rewrite.ll 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ; RUN: opt -mtriple i686-win32 -rewrite-symbols -rewrite-map-file %p/rewrite.map \
  2. ; RUN: %s -o - | llvm-dis | FileCheck %s
  3. declare void @source_function()
  4. @source_variable = external global i32
  5. declare void @source_function_pattern_function()
  6. declare void @source_function_pattern_multiple_function_matches()
  7. @source_variable_pattern_variable = external global i32
  8. @source_variable_pattern_multiple_variable_matches = external global i32
  9. declare void @"\01naked_source_function"()
  10. declare void @"\01__imp_missing_global_leader_prefix"()
  11. declare i32 @first_callee()
  12. declare i32 @second_callee()
  13. define i32 @caller() {
  14. %rhs = call i32 @first_callee()
  15. %lhs = call i32 @second_callee()
  16. %res = add i32 %rhs, %lhs
  17. ret i32 %res
  18. }
  19. %struct.S = type { i8 }
  20. @_ZN1SC1Ev = alias void (%struct.S*)* @_ZN1SC2Ev
  21. define void @_ZN1SC2Ev(%struct.S* %this) unnamed_addr align 2 {
  22. entry:
  23. %this.addr = alloca %struct.S*, align 4
  24. store %struct.S* %this, %struct.S** %this.addr, align 4
  25. ret void
  26. }
  27. $source_comdat_function = comdat any
  28. define dllexport void @source_comdat_function() comdat($source_comdat_function) {
  29. entry:
  30. ret void
  31. }
  32. $source_comdat_function_1 = comdat exactmatch
  33. define dllexport void @source_comdat_function_1() comdat($source_comdat_function_1) {
  34. entry:
  35. ret void
  36. }
  37. $source_comdat_variable = comdat largest
  38. @source_comdat_variable = global i32 32, comdat($source_comdat_variable)
  39. $source_comdat_variable_1 = comdat noduplicates
  40. @source_comdat_variable_1 = global i32 64, comdat($source_comdat_variable_1)
  41. ; CHECK: $target_comdat_function = comdat any
  42. ; CHECK: $target_comdat_function_1 = comdat exactmatch
  43. ; CHECK: $target_comdat_variable = comdat largest
  44. ; CHECK: $target_comdat_variable_1 = comdat noduplicates
  45. ; CHECK: @target_variable = external global i32
  46. ; CHECK-NOT: @source_variable = external global i32
  47. ; CHECK: @target_pattern_variable = external global i32
  48. ; CHECK-NOT: @source_pattern_variable = external global i32
  49. ; CHECK: @target_pattern_multiple_variable_matches = external global i32
  50. ; CHECK-NOT: @source_pattern_multiple_variable_matches = external global i32
  51. ; CHECK: @target_comdat_variable = global i32 32, comdat
  52. ; CHECK-NOT: @source_comdat_variable = global i32 32, comdat
  53. ; CHECK: @target_comdat_variable_1 = global i32 64, comdat
  54. ; CHECK-NOT: @source_comdat_variable_1 = global i32 64, comdat
  55. ; CHECK: declare void @target_function()
  56. ; CHECK-NOT: declare void @source_function()
  57. ; CHECK: declare void @target_pattern_function()
  58. ; CHECK-NOT: declare void @source_function_pattern_function()
  59. ; CHECK: declare void @target_pattern_multiple_function_matches()
  60. ; CHECK-NOT: declare void @source_function_pattern_multiple_function_matches()
  61. ; CHECK: declare void @naked_target_function()
  62. ; CHECK-NOT: declare void @"\01naked_source_function"()
  63. ; CHECK-NOT: declare void @"\01__imp__imported_function"()
  64. ; CHECK: declare void @"\01__imp_missing_global_leader_prefix"()
  65. ; CHECK-NOT: declare void @"\01__imp_DO_NOT_REWRITE"()
  66. ; CHECK: declare i32 @renamed_callee()
  67. ; CHECK-NOT: declare i32 @first_callee()
  68. ; CHECK: declare i32 @second_callee()
  69. ; CHECK: define i32 @caller() {
  70. ; CHECK: %rhs = call i32 @renamed_callee()
  71. ; CHECK-NOT: %rhs = call i32 @first_callee()
  72. ; CHECK: %lhs = call i32 @second_callee()
  73. ; CHECK: %res = add i32 %rhs, %lhs
  74. ; CHECK: ret i32 %res
  75. ; CHECK: }
  76. ; CHECK: define dllexport void @target_comdat_function() comdat
  77. ; CHECK-NOT: define dllexport void @source_comdat_function() comdat
  78. ; CHECK: define dllexport void @target_comdat_function_1() comdat
  79. ; CHECK-NOT: define dllexport void @source_comdat_function_1() comdat