| // RUN: %empty-directory(%t) |
| // RUN: %target-swift-frontend -parse-sil -module-name OMEStripDeserializationInput %S/Inputs/ome_strip_deserialize_input.sil -emit-module -o %t/OMEStripDeserializationInput.swiftmodule |
| // RUN: %target-sil-opt -non-transparent-func-ownership-model-eliminator -performance-linker -I %t %s | %FileCheck %s |
| // RUN: %target-sil-opt -ownership-model-eliminator -performance-linker -I %t %s | %FileCheck --check-prefix=CHECK-STRIP-ALL %s |
| |
| sil_stage canonical |
| |
| import OMEStripDeserializationInput |
| |
| // Make sure that we properly set the deserialization call back for stripping |
| // ownership SIL. |
| |
| // CHECK-LABEL: sil public_external [serialized] @bar : $@convention(thin) () -> () |
| // CHECK: } // end sil function 'bar' |
| |
| // CHECK-STRIP-ALL-LABEL: sil public_external [serialized] @bar : $@convention(thin) () -> () |
| // CHECK-STRIP-ALL: } // end sil function 'bar' |
| sil [ossa] @bar : $@convention(thin) () -> () |
| |
| // CHECK-LABEL: sil public_external [transparent] [serialized] [ossa] @transparent_bar : $@convention(thin) () -> () |
| // CHECK: } // end sil function 'transparent_bar' |
| |
| // CHECK-STRIP-ALL-LABEL: sil public_external [transparent] [serialized] @transparent_bar : $@convention(thin) () -> () |
| // CHECK-STRIP-ALL: } // end sil function 'transparent_bar' |
| |
| sil [transparent] [ossa] @transparent_bar : $@convention(thin) () -> () |
| |
| // CHECK-LABEL: sil @foo : $@convention(thin) () -> () { |
| // CHECK: } // end sil function 'foo' |
| sil [ossa] @foo : $@convention(thin) () -> () { |
| bb0: |
| %0 = function_ref @bar : $@convention(thin) () -> () |
| apply %0() : $@convention(thin) () -> () |
| |
| %1 = function_ref @transparent_bar : $@convention(thin) () -> () |
| apply %1() : $@convention(thin) () -> () |
| |
| %9999 = tuple() |
| return %9999 : $() |
| } |