| // RUN: %target-sil-opt -enable-sil-verify-all %s -inline -dce | %FileCheck %s -check-prefix=REGULAR |
| // RUN: %target-sil-opt -enable-sil-verify-all %s -inline -dce -ignore-always-inline | %FileCheck %s -check-prefix=IGNORED |
| |
| sil_stage canonical |
| |
| // REGULAR: sil [Osize] @caller |
| // IGNORED: sil [Osize] @caller |
| sil [Osize] @caller : $@convention(thin) () -> () { |
| bb0: |
| // REGULAR-NOT: function_ref @callee |
| // REGULAR: function_ref @foobar |
| // IGNORED: function_ref @callee |
| %d1 = function_ref @callee : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| |
| %9999 = tuple() |
| return %9999 : $() |
| } |
| |
| sil @foobar : $@convention(thin) () -> () |
| |
| // callee is "expensive" enough to not get inlined unless [always_inline] is used |
| // REGULAR: sil [always_inline] [Osize] @callee |
| // IGNORED: sil [always_inline] [Osize] @callee |
| sil [always_inline] [Osize] @callee : $@convention(thin) () -> () { |
| bb0: |
| %d1 = function_ref @foobar : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| apply %d1() : $@convention(thin) () -> () |
| |
| %9999 = tuple() |
| return %9999 : $() |
| } |