This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Post Dominator II



   Could you please tell me if the sequence below is correct?
   It must compute the immediate post-dominators relationship.

   sbitmap *Dominators;
   sbitmap *PostDominators;
   int_list_ptr *S_Preds;
   int_list_ptr *S_Succs;
   int *Num_Preds;
   int *Num_Succs;
   int *Ipdom;

   Dominators     = sbitmap_vector_alloc(n_basic_blocks,n_basic_blocks);
   PostDominators = sbitmap_vector_alloc(n_basic_blocks,n_basic_blocks);
   S_Preds        = malloc( n_basic_blocks * sizeof(int_list_ptr));
   S_Succs        = malloc( n_basic_blocks * sizeof(int_list_ptr));
   Num_Preds      = malloc( n_basic_blocks * sizeof(int));
   Num_Succs      = malloc( n_basic_blocks * sizeof(int));
   Ipdom          = malloc( n_basic_blocks * sizeof(int));

   compute_preds_succs(S_Preds, S_Succs, Num_Preds, Num_Succs);
   compute_dominators(Dominators, PostDominators, S_Preds, S_Succs);
   compute_immediate_dominators(Ipdom, PostDominators);

   Meaning that, after the computation, Ipdom[bb] contains the index of
the basic block that would be the unique parent of 'bb' in the
post-dominator tree. Of course, this parent could have many children.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]