[LLVMdev] how to prevent some instruction from scheduling?
Li Bin
richardustc at gmail.com
Wed Mar 12 08:08:44 PDT 2014
Hello,
I wrote the following IR code:"
...
call @fesetround int32 0x400
%result = call @llvm.rint.f32 f32 value
call @fesetround int32 0x0
...
"
However, when the IR is JITed, "llvm.rint.f32" is translated to
"roundps" and scheduled out of the two fesetround call. The final native
code looks like:"
...
movabs <fesetround>, %rax
mov 0x400, %rdi
call *%rax
xor %rdi, %rdi
call *%rax
roundps 0x4 %mmx0, %mmx0
...
"
Is there any way to stop the optimization pass from scheduling the
"llvm.rint.f32" out of two 'fesetround' calls? Or is there any other way to
solve this problem?
Bin LI,
State Key Laboratory of Computer Architecture,
Institute of Computing Technology of Chinese Academy of Sciences,
Address: NO.6 Kexueyuan South Road, Haidian District, Beijing, China
Phone: 18811212264
email: richardustc at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140312/5fdd1dc6/attachment.html>
More information about the llvm-dev
mailing list