Hello.
     I have some issues with the liveness module of CIL.

     I used a bit on a couple of simple C programs and the results I get are a 
bit strange.

     More exactly, for the program below:
         int main() {
           int n;
           int i;

           for (n = 10; n > 0; n--) {
             i += n;
           }
           return 0;
         }

       when I give:
        cilly.asm.exe --out ./app2.cil.c --doLiveness --live_func main 
--live_debug ./app2.i

       I get the following live variable sets for each Basic-Block (BB):
         1: i___0(int ),          Note: here we should have n(int ), as well
         2: n(int ),i___0(int ),
         3: n(int ),i___0(int ),
         4:
         5: n(int ),i___0(int ),
         6:
      So the problem is for this program that for BB 1, we have live var set 
{i} and we 
should have {i, n}.

       Note that in the liveness module I added the instruction 
(Cfg.printCfgFilename 
"myfunc_cfg.dot" fd), which created the following myfunc_cfg.dot file:
         digraph CFG_main {
           1 [label="1: instr"] Note: BB 1 is instr n = 10
                   1 -> 2
           2 [label="2: loop"] Note: BB 2 is the while loop - not really a BB, 
IMO
                   2 -> 3
           3 [label="3: if"]   Note: BB 3 is the if n > 0
                   3 -> 5
                   3 -> 4
           4 [label="4: break"]
                   4 -> 6
           5 [label="5: instr"] Note: BB 5 is statements i += n; n--;
                   5 -> 2
           6 [label="6: return"]
         }

   Best regards,
     Alex

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
CIL-users mailing list
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to