[LLVMdev] Will any pass change simple return branch into select/return pair?
Zhou Sheng
zhousheng00 at gmail.com
Thu Nov 22 19:07:06 PST 2007
Hi,
Can any llvm pass change simple return branch into select/return pair?
For example:
define i10 @mod_N(i10 zeroext %a) zeroext {
entry:
%tmp2 = icmp ugt i10 %a, -400 ; <i1> [#uses=1]
br i1 %tmp2, label %cond_true, label %return
cond_true: ; preds = %entry
%tmp5 = add i10 %a, 400 ; <i10> [#uses=1]
ret i10 %tmp5
return: ; preds = %entry
ret i10 %a
}
Changed into:
define i10 @mod_N(i10 zeroext %a) zeroext {
entry:
%tmp2 = icmp ugt i10 %a, -400 ; <i1> [#uses=1]
%tmp5 = add i10 %a, 400 ; <i10> [#uses=1]
%retval = select i1 %tmp2, i10 %tmp5, i10 %a ; <i10> [#uses=1]
ret i10 %retval
}
Thanks in advance.
Sheng.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071123/a7343111/attachment.html>
More information about the llvm-dev
mailing list