aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-threadupdate.h
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2015-10-06 20:25:57 -0600
committerJeff Law <law@gcc.gnu.org>2015-10-06 20:25:57 -0600
commit00852255e4a0d3b67ed853aacbc4aa4f4dfe724a (patch)
tree38f2371bdfbd8f8e7bf213eb5d5aa9aa8733c0f7 /gcc/tree-ssa-threadupdate.h
parent165ccc545563b5899a4e8256933b8955914f988b (diff)
downloadgcc-00852255e4a0d3b67ed853aacbc4aa4f4dfe724a.zip
gcc-00852255e4a0d3b67ed853aacbc4aa4f4dfe724a.tar.gz
gcc-00852255e4a0d3b67ed853aacbc4aa4f4dfe724a.tar.bz2
[PATCH][PR tree-optimization/67816] Fix jump threading when DOM removes conditionals in jump threading path
PR tree-optimization/67816 * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed from remove_jump_threads_starting_at. Accept an edge rather than a basic block. * tree-ssa-threadupdate.c (removed_edges): New hash table. (remove_jump_threads_including): Note edges that get removed from the CFG for later pruning of jump threading paths including them. (thread_through_all_blocks): Remove paths which include edges that have been removed. * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including on each outgoing edges when optimizing away a control statement. * gcc.c-torture/compile/pr67816.c: New test. From-SVN: r228559
Diffstat (limited to 'gcc/tree-ssa-threadupdate.h')
-rw-r--r--gcc/tree-ssa-threadupdate.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-threadupdate.h b/gcc/tree-ssa-threadupdate.h
index 30428e8..984b6c4 100644
--- a/gcc/tree-ssa-threadupdate.h
+++ b/gcc/tree-ssa-threadupdate.h
@@ -43,7 +43,7 @@ public:
};
extern void register_jump_thread (vec <class jump_thread_edge *> *);
-extern void remove_jump_threads_starting_at (basic_block);
+extern void remove_jump_threads_including (edge);
extern void delete_jump_thread_path (vec <class jump_thread_edge *> *);
extern void remove_ctrl_stmt_and_useless_edges (basic_block, basic_block);
#endif