[PATCH] D33849: DAG: Undo and->or combine with FrameIndexes

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 2 13:32:59 PDT 2017


arsenm created this revision.
Herald added subscribers: tpr, nhaehnle, wdng.

This pattern shows up when lowering byval copies on AMDGPU.

      

The byval object access is split into 4-byte chunks, adding a
constant offset to the FixedStack base. When some of the offsets
turn into ors, this prevents combining the constant offsets.

      

This makes it not apparent that the object is there when matching
addressing modes, so it ends up using a scratch wave offset
 relative access and the lengthy frame index expansion for that.


https://reviews.llvm.org/D33849

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/AMDGPU/byval-frame-setup.ll
  test/CodeGen/BPF/undef.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33849.101268.patch
Type: text/x-patch
Size: 8223 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170602/40731aa3/attachment.bin>


More information about the llvm-commits mailing list