I'm reposting following thread, because I previously chose wrong mailing-list (gcc-patches): http://old.nabble.com/GIMPLE-and-intent-of-variables-to32275433.html http://old.nabble.com/GIMPLE-and-intent-of-variables-to32275433.html During determining the intent of variable I run into problems with PHI nodes. The problematical GIMPLE code looks: # BLOCK 196 # PRED: 194 (false) (...) ndycD.8665_1099 = 1; # BLOCK 197 # PRED: 196 (true) 207 (false) # ndycD.8665_4 = PHI <ndycD.8665_1099(196), ndycD.8665_1431(207)> (...) # BLOCK 207 # PRED: 197 (false) 206 (true) ndycD.8665_1431 = ndycD.8665_4 + 1; I dont' understand why gimple_phi statement is before its argument(ndycD.8665_1431) assigment. What is more, this argument is defined by its PHI node result(ndycD.8665_4)! So if I want to estimate the true origin of ndycD.8665_4 variable, based on the PHI node, I go from BLOCK 197 to BLOCK 196 (ndycD.8665_1099) and BLOCK 207(ndycD.8665_1431) - and that is OK. But in BLOCK 207, where I find out about the origin of ndycD.8665_1431 variable, I must return to BLOCK 197, where ndycD.8665_4 variable is defined - this is infinite definition jumping. How to avoid this situation? -- View this message in context: http://old.nabble.com/-GIMPLE--PHI-nodes-%28functions%29---infinite-definition-jumping-tp32340022p32340022.html Sent from the gcc - Help mailing list archive at Nabble.com.