summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-scopedtables.h
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-04-17 19:24:17 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-04-17 19:24:17 +0000
commit545372c5c84ff5904c317219e4161a4159a85ecd (patch)
tree41f20ae69b1cc8265e0980bcc7f92a93610686ec /gcc/tree-ssa-scopedtables.h
parentf9bc58592837e972012a6a852e3f8df6f5fa9d00 (diff)
downloadgcc-545372c5c84ff5904c317219e4161a4159a85ecd.tar.gz
PR tree-optimization/47679
* Makefile.in (OBJS); Add tree-ssa-scopedtables.o. * tree-ssa-scopedtables.c: New file. * tree-ssa-scopedtables.h: New file. * tree-ssa-dom.c: Include tree-ssa-scopedtables.h. (const_and_copies): Change name/type. (record_const_or_copy): Move into tree-ssa-scopedtables.c (record_const_or_copy_1): Similarly. (restore_vars_to_original_value): Similarly. (pass_dominator::execute): Create and destroy const_and_copies table. (thread_across_edge): Update passing of const_and_copies. (record_temporary_equivalence): Use method calls rather than manipulating const_and_copies directly. (record_equality, cprop_into_successor_phis): Similarly. (dom_opt_dom_walker::before_dom_children): Similarly. (dom_opt_dom_walker::after_dom_children): Similarly. (eliminate_redundant_computations): Similarly. * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete. (record_temporary_equivalence): Likewise. (invalidate_equivalences): Likewise. (record_temporary_equivalences_from_phis): Update due to type change of const_and_copies. Use method calls rather than manipulating the stack directly. (record_temporary_equivalences_from_stmts_at_dest): Likewise. (thread_through_normal_block, thread_across_edge): Likewise. (thread_across_edge): Likewise. * tree-ssa-threadedge.h (thread_across_edge): Update prototype. * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type of equiv_stack. (identify_jump_threads): Update due to type change of equiv_stack. (finalize_jump_threads): Delete the equiv_stack when complete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222195 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-scopedtables.h')
-rw-r--r--gcc/tree-ssa-scopedtables.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/tree-ssa-scopedtables.h b/gcc/tree-ssa-scopedtables.h
new file mode 100644
index 00000000000..bc30ee67583
--- /dev/null
+++ b/gcc/tree-ssa-scopedtables.h
@@ -0,0 +1,40 @@
+/* Header file for SSA dominator optimizations.
+ Copyright (C) 2013-2015 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_TREE_SSA_SCOPED_TABLES_H
+#define GCC_TREE_SSA_SCOPED_TABLES_H
+
+class const_and_copies
+{
+ public:
+ const_and_copies (FILE *, int);
+ ~const_and_copies (void) { stack.release (); }
+ void push_marker (void) { stack.safe_push (NULL_TREE); }
+ void pop_to_marker (void);
+ void record_const_or_copy (tree, tree);
+ void record_const_or_copy (tree, tree, tree);
+ void invalidate (tree);
+
+ private:
+ vec<tree> stack;
+ FILE *dump_file;
+ int dump_flags;
+};
+
+#endif /* GCC_TREE_SSA_SCOPED_TABLES_H */