[CGP] Fix the crash for combining address mode when having cyclic dependency
authorAndrew Wei <weiwei64@huawei.com>
Thu, 26 Aug 2021 14:52:42 +0000 (22:52 +0800)
committerAndrew Wei <weiwei64@huawei.com>
Thu, 26 Aug 2021 14:52:42 +0000 (22:52 +0800)
commitc9066c5d37755c7d9049dd1fb7bd365bdef6155f
treef8622f5981b7dcdb007f7774d5a6ed7c8e33f5ad
parent05f3219b38dad2806beda523fe83d43ffae3927c
[CGP] Fix the crash for combining address mode when having cyclic dependency

In the combination of addressing modes, when replacing the matched phi nodes,
sometimes the phi node to be replaced has been modified. For example,
there’s matcher set [A, B] and [C, A], which will have cyclic dependency:
A is replaced by B and C will be replaced by A. Because we tried to match new phi node
to another new phi node, we should ignore new phi nodes when mapping new phi node to old one.

Reviewed By: skatkov

Differential Revision: https://reviews.llvm.org/D108635
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/test/Transforms/CodeGenPrepare/AArch64/combine-address-mode.ll [new file with mode: 0644]