[PATCH] D60459: SILoadStoreOptimizer pass mischedules s_add,s_addc with interfering s_lshl

Ron Lieberman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 9 13:27:28 PDT 2019


ronlieb marked an inline comment as done.
ronlieb added inline comments.


================
Comment at: lib/Target/AMDGPU/SILoadStoreOptimizer.cpp:276
+      return &*I;
+  assert(0 && "Failed to find carry instr");
+  return nullptr;
----------------
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.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60459/new/

https://reviews.llvm.org/D60459





More information about the llvm-commits mailing list