[PATCH] D60459: SILoadStoreOptimizer pass mischedules s_add,s_addc with interfering s_lshl
Stanislav Mekhanoshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 9 13:33:30 PDT 2019
rampitec added inline comments.
================
Comment at: lib/Target/AMDGPU/SILoadStoreOptimizer.cpp:276
+ return &*I;
+ assert(0 && "Failed to find carry instr");
+ return nullptr;
----------------
ronlieb wrote:
> rampitec wrote:
> > It can be defined in another block. It can be also undef.
> Splitting a pair of instructions across basic block boundaries in this situation seems really crazy. These instruction pairs are implementing a 64 bit add or 64 bit subtract. I understand that generally speaking we could see both situations (split or under). If this were to occur in this pass, i would want to assert (which is what this patch will do) so we can go look into it, rather than having broken code generated. To split them would mean that $SCC is live in to the block.
Why not? What if half of that pair was hoisted out of the block into parent?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60459/new/
https://reviews.llvm.org/D60459
More information about the llvm-commits
mailing list