[llvm-dev] llvm combines "ADD frameindex, constant" to OR

Kazushi Marukawa via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 14 01:47:59 PDT 2019


Hi Tim,

I could fix this problem by defining alignments of relatively small vector data types
in DataLayout.  I defined the alignment for vector data types which use whole vector register,
but I forgot to define it for small vector types.  It caused problems on vector tests in
test-suite.  Thank you so much.

Thanks,
-- Kazushi

> -----Original Message-----
> From: Marukawa Kazushi(丸川 一志)
> Sent: Thursday, March 14, 2019 8:30 AM
> To: Tim Northover <t.p.northover at gmail.com>
> Cc: llvm-dev at lists.llvm.org
> Subject: RE: [llvm-dev] llvm combines "ADD frameindex, constant" to OR
> 
> Hi Tim,
> 
> Thank you very much for explaining the computeKnownBitsForFrameIndex
> and related functions.  I even don't notice them.  As you say, I think
> my backend has fundamental problems at that area.  I'll check it out.
> 
> > >   2. How to optimize FrameIndex?  I desire DAGCombiner use alignment
> > >      information on data, stack frame, or something.
> >
> > As I said above, I think it should already use that and something has
> > gone wrong there in your case.
> 
> That's true.  The computeKnownBitsForFrameIndex and InferPtrAlignment
> already use that.  It won't work for my case, though.
> 
> For example, a vector sized data like v8sd says 64 bytes alignment in
> InferPtrAlignment, although I allocate v8sd using 8 bytes alignment on
> stack.  This differences have caused the problem.  I'll check details.
> 
> Best Regards,
> -- Kazushi



More information about the llvm-dev mailing list