glider added inline comments.

================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreEliminationExp.cpp:556
+      LocationSize LS = MemoryLocation::getForDest(MSI).Size;
+      ConstantRange Range(PointerSizeInBits, false);
+      if (!LS.isPrecise() ||
----------------
An assertion fires here on the Android kernel:

```
aarch64-linux-android-ld.gold: 
/usr/local/google/src/llvm-git-monorepo/llvm/lib/IR/ConstantRange.cpp:54: 
llvm::ConstantRange::ConstantRange(llvm::APInt, llvm::APInt): Assertion `(Lower 
!= Upper || (Lower.isMaxValue() || Lower.isMinValue())) && "Lower == Upper, but 
they aren't min or max value!"' failed.
```

For some reason the (APInt, APInt) version of the constructor is being invoked.
Probably PointerSizeInBits should be declared as `int32_t` here and in 
`findDeadStores()`


================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreEliminationExp.cpp:563
+        assert(RR.getBitWidth() == Range.getBitWidth());
+        ConstantRange RRR = {Range.getLower(),
+                             Range.getLower() + LS.getValue()};
----------------
I'm seeing a case in which Range.getLower() is 20179 and LS.getValue() is 0.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D61879



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to