diff options
author | Eli Friedman <efriedma@quicinc.com> | 2020-04-07 14:05:29 -0700 |
---|---|---|
committer | Eli Friedman <efriedma@quicinc.com> | 2020-04-15 13:01:41 -0700 |
commit | 7c10541e568f7453915d5d207c55f0fb7fb4c43c (patch) | |
tree | cab2ace9a75f5e4ea81b2ea9f38a6a2dc5aa127a /pstl | |
parent | 2ba4e3a4598b165245c581c506a813cd4a7dce33 (diff) | |
download | llvm-7c10541e568f7453915d5d207c55f0fb7fb4c43c.tar.gz |
[SelectionDAG] Fix usage of Align constructing MachineMemOperands.
The "Align" passed into getMachineMemOperand etc. is the alignment of
the MachinePointerInfo, not the alignment of the memory operation.
(getAlign() on a MachineMemOperand automatically reduces the alignment
to account for this.)
We were passing on wrong (overconservative) alignment in a bunch of
places. Fix a bunch of these, mostly in legalization. And while I'm
here, switch to the new Align APIs.
The test changes are all scheduling changes: the biggest effect of
preserving large alignments is that it improves alias analysis, so the
scheduler has more freedom.
(I was originally just trying to do a minor cleanup in
SelectionDAGBuilder, but I accidentally went deeper down the rabbit
hole.)
Differential Revision: https://reviews.llvm.org/D77687
Diffstat (limited to 'pstl')
0 files changed, 0 insertions, 0 deletions