[llvm-commits] [llvm] r107529 - in /llvm/trunk: include/llvm/CodeGen/MachineInstr.h include/llvm/Target/Target.td include/llvm/Target/TargetOpcodes.h lib/CodeGen/LowerSubregs.cpp utils/TableGen/CodeGenTarget.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Sun Jul 4 15:20:02 PDT 2010


On Jul 4, 2010, at 3:06 PM, Chris Lattner wrote:

>> I also intend to change the copyRegToReg hook to only allow physical register arguments, and eliminate the register class arguments.
> 
> Ok.  By virtue of taking vregs, the new COPY instruction will have regclass info.  I assume that COPY will also allow physregs, how will it (or will it?) represent regclass info for physregs?

COPY allows physregs, and it holds no register class information in that case.

Knowing the actual physreg should be enough to choose the proper copy instruction. Only extremely exotic architectures like x86 will have trouble.

When copying an xmm register, x86 will be forced to use a movaps instruction instead of movss/movsd because register class information is not available. I don't think that is going to cause performance problems, but it might depending on the specific microarchitecture.

If a microarchitecture turns up where movaps is not the right choice, I would argue we need to model the xmm scalar sub-registers explicitly.

/jakob

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1929 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20100704/bfa3f3de/attachment.bin>


More information about the llvm-commits mailing list