[PATCH] D31833: [x86] Relax the check in areLoadsFromSameBasePtr

NAKAMURA Takumi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 12 04:25:51 PDT 2017


chapuni added a comment.

Seems it causes crash in stage2.
http://bb.pgr.jp/builders/clang-3stage-x86_64-linux/builds/14942

As far as I investigated, this change misses the case "Load1->getOperand(5) != Load2->getOperand(5)"

  t69: i64,ch = <<Unknown Machine Node #63812>><Mem:LD8[%_M_p.i.i.i.i.i34](tbaa=<0xa62bec8>)> t2, TargetConstant:i8<1>, Register:i64 %noreg, TargetConstant:i32<0>, Register:i32 %noreg, t2:1
  t78: i64,ch = <<Unknown Machine Node #63812>><Mem:LD8[%9](tbaa=<0xa55faf8>)> t2, TargetConstant:i8<1>, Register:i64 %noreg, TargetConstant:i32<56>, Register:i32 %noreg, t29:1

Is it true for areLoadsFromSameBasePtr() ?



================
Comment at: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp:8985
-  if (Load1->getOperand(0) != Load2->getOperand(0) ||
-      Load1->getOperand(5) != Load2->getOperand(5))
     return false;
----------------
Crashes can be fixed if this logic is included.


Repository:
  rL LLVM

https://reviews.llvm.org/D31833





More information about the llvm-commits mailing list