Page MenuHomePhabricator

[DAGCombine] Fold overlapping constant stores
ClosedPublic

Authored by niravd on Feb 20 2019, 11:43 AM.

Details

Summary

Fold a smaller constant store into larger constant stores immediately
preceeding it.

Diff Detail

Repository
rL LLVM

Event Timeline

niravd created this revision.Feb 20 2019, 11:43 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 20 2019, 11:43 AM
rnk added inline comments.Feb 20 2019, 11:56 AM
llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
67 ↗(On Diff #187640)

Why zero initialize here but not in the other call site? It gives the impression that it reads it as an input, but it doesn't.

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
15444 ↗(On Diff #187640)

Implementing this FIXME is just a matter of changing the Offset * 8 calculation below, right? And, updating test cases, of course. If so, I think it's easy enough to be worth implementing just for completeness.

niravd updated this revision to Diff 187803.Feb 21 2019, 8:38 AM
niravd marked 2 inline comments as done.

Add big endian support and rebase past added big and little endian test case.

LGTM

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
15441 ↗(On Diff #187803)

nit: preceding (here and elsewhere)

15454 ↗(On Diff #187803)

clang-format ?

niravd updated this revision to Diff 187934.Feb 22 2019, 7:18 AM

LGTMed, but not accepted. Presumably oversight, but address nits and clang format just in case.

courbet accepted this revision.Feb 22 2019, 7:21 AM
This revision is now accepted and ready to land.Feb 22 2019, 7:21 AM
This revision was automatically updated to reflect the committed changes.