[Open64-devel] WHIRL question
Brought to you by:
ributzka,
suneeljain
From: C. B. <cbe...@pa...> - 2010-09-29 14:36:47
|
(forwarding this question) This code j = --i + i--; Is transformed into this (pseudo)WHIRL: STID(i) - ADD - LDID(i) ; this is the side \ INTCONST(-1) ; effect of the --i expression STID(preg_I4) - LDID(i) ; storage of the previous ; i value STID(i) - ADD - LDID(i) ; this is the side \ INTCONST(-1) ; effect of the i-- expression STID(j) - ADD - LDID(preg_I4) ; the actual \ LDID(i) ; j = .... expression what is the advantage of this WHIRL instead of STID(i) - ADD - LDID(i) ; this is the side \ INTCONST(-1) ; effect of the --i expression STID(j) - ADD - LDID(i) ; the actual \ LDID(i) ; j = .... expression STID(i) - ADD - LDID(i) ; this is the side \ INTCONST(-1) ; effect of the --i expression the first version just uses one more WHIRL node and one more variable. why is it used? is it because it's easier to rewrite C -> WHIRL in that way? |