2019-11-22 06:38:28 -06:00
|
|
|
CHECK: define void @call_a_bunch_of_functions({{.*}} {
|
|
|
|
|
|
|
|
# Make sure that indirect call promotion inserted a check against the most
|
|
|
|
# frequently called function.
|
2022-02-21 04:21:23 -06:00
|
|
|
CHECK: %{{.*}} = icmp eq {{void \(\)\*|ptr}} %{{.*}}, @function_called_always
|
2019-11-22 06:38:28 -06:00
|
|
|
|
|
|
|
# Check that the call to `function_called_always` was inlined, so that we
|
|
|
|
# directly call `opaque_f1` from the upstream crate.
|
|
|
|
CHECK: call void @opaque_f1()
|
|
|
|
|
|
|
|
|
|
|
|
# Same checks as above, repeated for the trait object case
|
|
|
|
|
|
|
|
CHECK: define void @call_a_bunch_of_trait_methods({{.*}}
|
2022-02-21 04:21:23 -06:00
|
|
|
CHECK: %{{.*}} = icmp eq {{void \(\{\}\*\)\*|ptr}} %{{.*}}, {{.*}}@foo
|
2019-11-22 06:38:28 -06:00
|
|
|
CHECK: tail call void @opaque_f2()
|