diff options
author | Nikita Popov <npopov@redhat.com> | 2025-09-04 10:23:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-04 08:23:29 +0000 |
commit | d1408667de830da8817c24cb9788da6caae551c7 (patch) | |
tree | b080f576f0225d07213ae961305b5212daffac38 /libc | |
parent | d0246fe1e79c6ea06b6b72f66a71a96a3342aa42 (diff) | |
download | llvm-d1408667de830da8817c24cb9788da6caae551c7.zip llvm-d1408667de830da8817c24cb9788da6caae551c7.tar.gz llvm-d1408667de830da8817c24cb9788da6caae551c7.tar.bz2 |
[MemorySSA] Don't create phi nodes in fixupDefs() (#156021)
The general flow when inserting MemoryDefs is:
* Insert the def and set it's defining access (may insert phis)
* Insert IDF phis
* Update defining access for defs after the new one (fixupDefs)
* Rename uses if requested
fixupDefs() uses getPreviousDef() which can create new MemoryPHIs, but
for which we're not going to insert IDF phis, so the required dominance
property may not hold.
I believe this is a leftover from a time before the "Insert IDF phis"
step existed. Now that step should already ensure that all necessary
MemoryPhis have been inserted, and we only need to update them.
The fixupDefs() implementation was also returning after updating a
single access, which is not right.
Fixes https://github.com/llvm/llvm-project/issues/47875.
Fixes https://github.com/llvm/llvm-project/issues/117157.
Fixes https://github.com/llvm/llvm-project/issues/152998.
Fixes https://github.com/llvm/llvm-project/issues/155161.
Fixes https://github.com/llvm/llvm-project/issues/155184.
Diffstat (limited to 'libc')
0 files changed, 0 insertions, 0 deletions