[GIMPLE] PHI nodes (functions) - infinite definition jumping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux