Add a pass to convert aggregate loads/stores into scalar load stores

deadal nix deadalnix at gmail.com
Thu Oct 30 21:56:52 PDT 2014


I don't think it is an hard requirement. Simply good to have.

2014-10-30 21:49 GMT-07:00 Hal Finkel <hfinkel at anl.gov>:

> ----- Original Message -----
> > From: "deadal nix" <deadalnix at gmail.com>
> > To: "Philip Reames" <listmail at philipreames.com>
> > Cc: "Chandler Carruth" <chandlerc at google.com>, "Hal Finkel" <
> hfinkel at anl.gov>, "llvm-commits"
> > <llvm-commits at cs.uiuc.edu>
> > Sent: Thursday, October 30, 2014 11:45:12 PM
> > Subject: Re: Add a pass to convert aggregate loads/stores into scalar
> load stores
> >
> > 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.
>
> Why do you think that the transformation needs to be basic-block local?
>
>  -Hal
>
> >
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141030/3365056a/attachment.html>


More information about the llvm-commits mailing list