[llvm-commits] [PATCH] Execution domain support for VMOV and VLDR

Tim Northover t.p.northover at gmail.com
Wed Aug 29 09:38:37 PDT 2012


Hi,

>> <0001-Refactor-setExecutionDomain-to-be-clearer-about-what.patch>
> Looks good!

Thanks. r162844.

>> <0002-Add-support-for-moving-pure-S-register-to-NEON-pipel.patch>
>
> This one is odd, I think. Is it really a good idea to replace a vmovs with two shuffles?

Our experiments say yes. You have an extra instruction, but switching
between NEON and VFP has enough impact to outweigh that.

> What is a vmovs doing in NEON code anyway? Is isel emitting vmovs for some shuffles?

ISel is emitting generic things like INSERT_SUBREGs and COPYs, which
copyPhysReg uses a VMOVS to implement when the register allocator has
decided what needs doing. I would guess that ISel could be improved,
but not to catch everything without large-scale reworking.

> This seems like it would be better done in isel.

I tend to think it should be done in both. ISel can probably remove
the need for copies in many cases, but for when they are needed in the
middle of a stream of NEON instructions this should be available.

>> <0003-Add-domain-setting-for-VLDR-instructions-on-ARM.patch>
>
> You can get the alignment from the instruction's memory operands, if present.

I'll look into that.

Tim.



More information about the llvm-commits mailing list