This is the mail archive of the 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]
Other format: [Raw text]

Fix PR/56490

The following patch limit the depth for post-dom walk in the analysis
-- in the presence of complicated control flow, the analysis should
bail out sooner.

Bootstrapped on x86-64/linux. No regressions found.  OK for trunk?



2013-03-01  Xinliang David Li  <>

* tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
walk length.

 #define MAX_NUM_CHAINS 8
 #define MAX_CHAIN_LEN 5

 /* Computes the control dependence chains (paths of edges)
    for DEP_BB up to the dominating basic block BB (the head node of a
@@ -269,6 +270,7 @@ compute_control_dep_chain (basic_block b
   FOR_EACH_EDGE (e, ei, bb->succs)
       basic_block cd_bb;
+      int post_dom_check = 0;
       if (e->flags & (EDGE_FAKE | EDGE_ABNORMAL))

@@ -298,7 +300,8 @@ compute_control_dep_chain (basic_block b

           cd_bb = find_pdom (cd_bb);
-          if (cd_bb == EXIT_BLOCK_PTR)
+          post_dom_check++;
+          if (cd_bb == EXIT_BLOCK_PTR || post_dom_check > MAX_POSTDOM_CHECK)
       cur_cd_chain->pop ();

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