[GVN] Support address translation through select instructions
authorSergey Kachkov <sergey.kachkov@syntacore.com>
Wed, 25 Jan 2023 13:10:29 +0000 (16:10 +0300)
committerSergey Kachkov <sergey.kachkov@syntacore.com>
Mon, 27 Feb 2023 09:08:15 +0000 (12:08 +0300)
commitb5bf6f6392a3408be1b7b7e036eb69358c5a2c29
tree7f7e3b0afad17a57121b339cdc8aba88fc18b0c9
parentd9391a37a9f8eb222a951606e0ca5d6a5b6b2199
[GVN] Support address translation through select instructions

Process cases when phi incoming in predecessor block has select
instruction, and this select address is unavailable, but there
are addresses translated from both sides of select instruction.

Differential Revision: https://reviews.llvm.org/D142705
llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
llvm/include/llvm/Analysis/PHITransAddr.h
llvm/include/llvm/Transforms/Scalar/GVN.h
llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
llvm/lib/Analysis/PHITransAddr.cpp
llvm/lib/Transforms/Scalar/GVN.cpp
llvm/test/Transforms/GVN/PRE/pre-load-through-select.ll
llvm/test/Transforms/GVN/PRE/pre-loop-load-through-select.ll
llvm/test/Transforms/GVN/opaque-ptr.ll