https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81897
--- Comment #10 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Created attachment 43037 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43037&action=edit proposed UNTESTED patch Everything is so easy once Jeff does all the analysis :). As mentioned, there is no rhyme or reason to the seemingly random choice of starting the chain at the immediate dominator of the potentially uninitialized PHI argument. The ENTRY block seems like a saner solution, but alas compute_control_dep_chain() and friends can't handle computing dependency chains starting at the entry block. Once that is fixed, we have a shot at analyzing the dependency chain and calculating if anything invalidated it. At which point, my code was broken. I feel like I'm just echoing Jeff :). The attached UNTESTED patch fixes the PR, while surviving: make check-gcc RUNTESTFLAGS=dg.exp=uninit* I'll go through testing and post if I didn't break the world.