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

Hal Finkel hfinkel at anl.gov
Tue Oct 28 06:55:48 PDT 2014


Chandler,

Can you please look at this? How do you think we should canonicalize this (is this the right approach)?

 -Hal

----- Original Message -----
> From: "deadal nix" <deadalnix at gmail.com>
> To: "llvm-commits" <llvm-commits at cs.uiuc.edu>
> Sent: Monday, October 27, 2014 8:22:16 PM
> Subject: Re: Add a pass to convert aggregate loads/stores into scalar load	stores
> 
> 
> 
> ping ping ping ?
> 
> 
> 
> 2014-10-20 13:09 GMT-07:00 deadal nix < deadalnix at gmail.com > :
> 
> 
> 
> 
> Hi again,
> 
> Please consider this. I'd be happy to fix various problem you may
> find, please give me some feedback.
> 
> 
> 
> 2014-10-10 20:45 GMT-07:00 deadal nix < deadalnix at gmail.com > :
> 
> 
> 
> 
> 
> Hi all, I'd really like to have feedback on that one.
> 
> 
> 
> 2014-10-05 20:09 GMT-07:00 deadal nix < deadalnix at gmail.com > :
> 
> 
> 
> 
> 
> 
> 
> 
> As per title. Aggregate load and stores (granted they aren't
> unordered) are decomposed in a suite of scalar loads and stores and
> bit manipulation are used to reconstruct/deconstruct the aggregate
> using insertvalue/extractvalue.
> 
> I wasn't sure where to add the pass so I added it fairly early. It
> may not be the idea place, I'll let you expert tell me. It seems
> need that this run before SROA and any pass that manipulate memory
> as this would defeat the point entirely.
> 
> 
> It do not need to run more than once as, as far as I know, no pass
> introduce aggregate load/store ever. So once the ones generated by
> the frontend are gone, the job is finished.
> 
> 
> This pass does nothing on non aggregate load/store (except going
> thourgh the instruction to check they are none), so I don't expect
> this to impact frontend that don't use them in any major way.
> 
> I think this is a major step forward for LLVM usability from a front
> perspective.
> 
> 
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-a-pass-to-transform-aggregate-loads-and-stores-i.patch
Type: text/x-patch
Size: 27445 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141028/6bbe49b5/attachment.bin>


More information about the llvm-commits mailing list