[LLVMdev] spilling & xmm register usage

Ralf Karrenberg Chareos at gmx.de
Wed Sep 29 08:35:44 PDT 2010


Hello everybody,

I have stumbled upon a test case (the attached module is a slightly
reduced version) that shows extremely reduced performance on linux
compared to windows when executed using LLVM's JIT.

We narrowed the problem down to the actual code being generated, the
source IR on both systems is the same.
Try compiling the attached module:

llc -O3 -filetype=asm -o BAD.s BAD.ll

Under linux, the resulting assembly file shows that only registers up to
xmm5, while the same command under windows generates assembly that uses
all registers up to xmm15 (on the same 64bit Intel Q9550).
At the same time, the linux-assembly shows lots and lots of spills and
reloads.

Although I did not check whether the code generated by the JIT is the
same or comparable, the fact that this occurs with the static llc seems
to prove that there is a major problem here.

This applies both to the current SVN trunk and SVN revision 112036.

Can somebody reproduce that or give comments on what happens there?


Best regards,
Ralf
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: BAD.ll
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100929/7119ae2f/attachment.ksh>


More information about the llvm-dev mailing list