diff options
author | Yingwei Zheng <dtcxzyw2333@gmail.com> | 2025-06-04 19:42:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-04 19:42:56 +0800 |
commit | 5e2dcfe42cd4af14d6e6155314aa5d4167710b65 (patch) | |
tree | 4ee649940450287fd670db0092cf2fd8e23f8f9c /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 20d70196c9a4da344d0944f3c78447c3bd7079c7 (diff) | |
download | llvm-5e2dcfe42cd4af14d6e6155314aa5d4167710b65.zip llvm-5e2dcfe42cd4af14d6e6155314aa5d4167710b65.tar.gz llvm-5e2dcfe42cd4af14d6e6155314aa5d4167710b65.tar.bz2 |
[InstCombine] Avoid infinite loop in `foldSelectValueEquivalence` (#142754)
Before this patch, InstCombine hung because it replaced a value with a
more complex one:
```
%sel = select i1 %cmp, i32 %smax, i32 0 ->
%sel = select i1 %cmp, i32 %masked, i32 0 ->
%sel = select i1 %cmp, i32 %smax, i32 0 ->
...
```
This patch makes this replacement more conservative. It only performs
the replacement iff the new value is one of the operands of the original
value.
Closes https://github.com/llvm/llvm-project/issues/142405.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions