[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