[PATCH] D142705: [GVN] Support address translation through select instructions

Sergei Kachkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 1 00:43:53 PST 2023


kachkov98 reopened this revision.
kachkov98 added a comment.
This revision is now accepted and ready to land.

Patch was reverted due to issue witch cached MemDep result. There is a code like this:

  %arrayidx248 = getelementptr inbounds [0 x i8], ptr @zz_lengths, i64 0, i64 %idxprom247
  %cond.in.in = select i1 %switch8091, ptr %orec_size, ptr %arrayidx248
  %cond.in = load i8, ptr %cond.in.in, align 1, !tbaa !5

And on second iteration of processBlock() %switch8091 value is proved to be false, so select is removed and replaced with %arrayidx248, but we didn't invalidate already cached SelectDep entry of load from first GVN iteration - need to figure out how to add this logic into MemoryDependenceResults::removeInstruction method.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142705



More information about the llvm-commits mailing list