Add a pass to convert aggregate loads/stores into scalar load stores
deadal nix
deadalnix at gmail.com
Thu Oct 30 21:45:12 PDT 2014
> Option 4 - Transform to series of smaller integer loads
> - This appears to be what this patch implements. Not entirely sure why
> this was chosen.
>
>
Yes, this is what this diff is doing.
This option allow to keep pointerness of load/stores (it could be refined
in this patch, but the idea is there). It also avoid to generate a bunch of
small load when a big load would suffice.
Making a big load of iN (option 2) is also reasonable, but in this case,
the load won't respect the target alignment's constraints. I thought it was
a problem so I went for the option 3 instead.
My first approach was option 1, but i was told that doing this in a
separate pass was a better approach. Option 5 do not really solve the
problem. It also force to generate an alloca in the first block, so it is
not possible to work at a basic block level anymore.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141030/8c7aac5d/attachment.html>
More information about the llvm-commits
mailing list