Commit 4dc1d68c by Xinliang David Li Committed by Xinliang David Li

PR/56490

From-SVN: r196406
parent 2609a398
2013-03-01 Xinliang David Li <davidxl@google.com>
* tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
walk length.
2013-03-01 Jakub Jelinek <jakub@redhat.com> 2013-03-01 Jakub Jelinek <jakub@redhat.com>
PR middle-end/56461 PR middle-end/56461
......
...@@ -229,6 +229,7 @@ find_control_equiv_block (basic_block bb) ...@@ -229,6 +229,7 @@ find_control_equiv_block (basic_block bb)
#define MAX_NUM_CHAINS 8 #define MAX_NUM_CHAINS 8
#define MAX_CHAIN_LEN 5 #define MAX_CHAIN_LEN 5
#define MAX_POSTDOM_CHECK 8
/* Computes the control dependence chains (paths of edges) /* Computes the control dependence chains (paths of edges)
for DEP_BB up to the dominating basic block BB (the head node of a 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 bb, basic_block dep_bb, ...@@ -269,6 +270,7 @@ compute_control_dep_chain (basic_block bb, basic_block dep_bb,
FOR_EACH_EDGE (e, ei, bb->succs) FOR_EACH_EDGE (e, ei, bb->succs)
{ {
basic_block cd_bb; basic_block cd_bb;
int post_dom_check = 0;
if (e->flags & (EDGE_FAKE | EDGE_ABNORMAL)) if (e->flags & (EDGE_FAKE | EDGE_ABNORMAL))
continue; continue;
...@@ -298,7 +300,8 @@ compute_control_dep_chain (basic_block bb, basic_block dep_bb, ...@@ -298,7 +300,8 @@ compute_control_dep_chain (basic_block bb, basic_block dep_bb,
} }
cd_bb = find_pdom (cd_bb); 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)
break; break;
} }
cur_cd_chain->pop (); cur_cd_chain->pop ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment