[PATCH] Optimise chains when splitting vector loads & stores

Richard Sandiford rsandifo at linux.vnet.ibm.com
Wed Jul 3 01:39:35 PDT 2013


Ping

Richard Sandiford <rsandifo at linux.vnet.ibm.com> writes:
> When vector loads and stores are split into two, the original chain
> is replaced with a TokenFactor of the two new loads or stores.
> This means that if the chain for a vector store (say) is a load
> from the same address X, we end up with:
>
>   load from Xlo  load from Xhi
>          \           /
>           TokenFactor
>          /           \
>   store to Xlo    store to Xhi
>          \           /
>           TokenFactor
>
> In cases like these we can just use:
>
>   load from Xlo  load from Xhi
>          |            |
>   store to Xlo    store to Xhi
>          \           /
>           TokenFactor
>
> This optimisation overlaps with -combiner-alias-analysis, but it seems
> like a simple and obvious case that is hopefully less controversial than
> turning -c-a-a on by default.  (But it's because of -c-a-a that isAccessTo()
> is so restricted.  It isn't trying to be a general alias check.)
>
> The motivation for doing this is that natural conditional vector stores
> become natural conditional scalar stores, which helps improve the llvmpipe
> code for SystemZ.
>
> Thanks,
> Richard
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lvt-chains.patch
Type: text/x-patch
Size: 12299 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130703/4fb9bc44/attachment.bin>


More information about the llvm-commits mailing list