@begin: scope:[] from [0] phi() to:@1 @1: scope:[] from @begin [1] phi() [2] call main to:@end @end: scope:[] from @1 [3] phi() (void()) main() main: scope:[main] from @1 [4] (volatile byte*) main::screen ← (byte*) 1024 [5] call sub to:main::@1 main::@1: scope:[main] from main [6] phi() [7] call sub to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return (void()) sub((byte) sub::ch , (byte**) sub::dst) sub: scope:[sub] from main main::@1 [9] (byte) sub::ch#2 ← phi( main/(byte) 'a' main::@1/(byte) 'b' ) [10] *(*((const byte**) main::pscreen)) ← (byte) sub::ch#2 [11] *((const byte**) main::pscreen) ← ++ *((const byte**) main::pscreen) to:sub::@return sub::@return: scope:[sub] from sub [12] return to:@return