diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-17 19:24:17 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-17 19:24:17 +0000 |
commit | 545372c5c84ff5904c317219e4161a4159a85ecd (patch) | |
tree | 41f20ae69b1cc8265e0980bcc7f92a93610686ec /gcc/tree-ssa-scopedtables.h | |
parent | f9bc58592837e972012a6a852e3f8df6f5fa9d00 (diff) | |
download | gcc-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.h | 40 |
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 */ |