Displaying 2 results from an estimated 2 matches for "wider_cond".
2018 Jul 10
2
Giving up using implicit control flow in guards
...ned with any other conditions without loss of correctness. In other words, if the following code is correct:
call void (i1, ...) @llvm.experimental.guard(i1 %cond) [ "deopt"() ]
<some operations>
The following code will also be correct, no matter what %other_cond is:
%wider_cond = and i1 %cond, %other_cond
call void (i1, ...) @llvm.experimental.guard(i1 %wider_cond) [ "deopt"() ]
<do some useful stuff>
More formally, if %cond_a implies %cond_b, it is always valid to replace guard(%cond_b) with guard(%cond_a). We use this fact to make some optimizat...
2018 Jul 13
2
Giving up using implicit control flow in guards
..., if the following code is correct:
>
>
>
> call void (i1, ...) @llvm.experimental.guard(i1 %cond) [ "deopt"()
> ]
>
> <some operations>
>
>
>
> The following code will also be correct, no matter what %other_cond is:
>
>
>
> %wider_cond = and i1 %cond, %other_cond
>
> call void (i1, ...) @llvm.experimental.guard(i1 %wider_cond) [
> "deopt"() ]
>
> <do some useful stuff>
>
>
>
> More formally, if %cond_a implies %cond_b, it is always valid to replace guard(%cond_b) with guard(%con...