[PATCH] D30400: For Thumb1, lower ADDC/ADDE/SUBC/SUBE via the glueless ARMISD nodes, same as already done for ARM and Thumb2.
A. Skrobov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 3 07:14:32 PST 2017
tyomitch updated this revision to Diff 90476.
tyomitch added a comment.
`Select(RHS.getNode())` must be deferred until RHS has users; otherwise, if `Select()` converts RHS into a duplicate of an existing node, then the DAG automatically updates all uses of RHS to use the existing node instead, and deletes the RHS's own node.
If we call `Select(RHS.getNode())` when RHS doesn't yet have any users, then nothing gets updated, RHS's node gets deleted, and we end up adding uses to a deleted node. Boom!
Updating D30400: For Thumb1, lower ADDC/ADDE/SUBC/SUBE via the glueless ARMISD nodes,
=====================================================================================
same as already done for ARM and Thumb2.
https://reviews.llvm.org/D30400
Files:
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrThumb.td
test/CodeGen/Thumb/long.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30400.90476.patch
Type: text/x-patch
Size: 13109 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170303/6e4d9c69/attachment.bin>
More information about the llvm-commits
mailing list