[PATCH] D12596: Fix for bootstrap bug introduced in r244921

Nemanja Ivanovic via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 16 01:47:00 PDT 2015


nemanjai updated this revision to Diff 37563.
nemanjai added a comment.

Hal, thank you for your comments and suggestions regarding this fix.
It is quite obvious that I did not adequately understand the problem. When you suggested the hasOneUse() calls, I tried that but clearly I did it incorrectly when I didn't understand the problem.

So the crux of the problem is that the load being replaced has a user of its chain (in this case, a store that nullifies the unique_ptr in the source). Because we introduced the LXVDSX, the use of the chain in the store was not updated and it still used the chain from the load (which goes away). The store was then free to move up (before the LXVDSX) and we end up with a load and splat of a null. I do not see a way to chain the store to this target specific node.

The reason we never hit this before the legalization of SCALAR_TO_VECTOR for v2i64 is that we never got in this code because the BUILD_VECTOR for v2i64 was never lowered to a vector_shuffle. I mistakenly assumed that my lowering code for SCALAR_TO_VECTOR was somehow broken and was causing this issue so my investigation took me down the wrong path.


Repository:
  rL LLVM

http://reviews.llvm.org/D12596

Files:
  lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  lib/Target/PowerPC/PPCISelLowering.cpp
  test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll
  test/CodeGen/PowerPC/vsx.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12596.37563.patch
Type: text/x-patch
Size: 4236 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151016/cf24dd4d/attachment.bin>


More information about the llvm-commits mailing list