[PATCH] D93523: [DSE] Use correct memory location for read clobber check

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 18 09:29:17 PST 2020


fhahn added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1944
     // Find the next clobbering Mod access for DefLoc, starting at StartAccess.
+    Optional<MemoryLocation> CurrentLoc;
     do {
----------------
nikic wrote:
> fhahn wrote:
> > Can this just be `MemoryLocation CurrentLoc`? We should skip the case when it would be `None` and it should always be `!= None` before after the loop.
> This uses Optional<MemoryLocation> because getLocForWriteEx() returns it that way. Should I copy it into a separate non-Optional variable after the check that it is not None?
I'd put the result of `getLocForWriteEx` into a new temprary and move the content to `CurrentLoc` after the check. Or have something like 

```
if (auto Loc = getLocForWriteEx(....)) {
  CurrentLoc = *Loc;
} else {
  StepAgain = true;
  ....
  continue;
}
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93523



More information about the llvm-commits mailing list