* tree-cfg.h: Rename from tree-flow.h. Remove #includes.
* tree-ssa.h: Relocate required #includes from tree-cfg.h.
* tree-ssa-operands.h: Remove prototype.
* tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
* gimple.c (virtual_operand_p): Relocate from gimple.c.
* gimple.h: Add prototype.
* gimple-ssa.h: Include tree-ssa-operands.h.
* tree-dump.c: Add tree-cfg.h to include list.
* tree-ssa-alias.c: Add ipa-reference.h to include list.
* config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
* config/i386/i386.c: Don't include tree-flow.h.
* config/rs6000/rs6000.c: Likewise.
* lto/lto.c: Remove tree-flow.h from include list.
* testsuite/g++.dg/plugin/header_plugin.c: Don't include tree-flow.h.
From-SVN: r203817
+2013-10-18 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
+ * tree-ssa.h: Relocate required #includes from tree-cfg.h.
+ * tree-ssa-operands.h: Remove prototype.
+ * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
+ * gimple.c (virtual_operand_p): Relocate from gimple.c.
+ * gimple.h: Add prototype.
+ * gimple-ssa.h: Include tree-ssa-operands.h.
+ * tree-dump.c: Add tree-cfg.h to include list.
+ * tree-ssa-alias.c: Add ipa-reference.h to include list.
+ * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
+ * config/i386/i386.c: Don't include tree-flow.h.
+ * config/rs6000/rs6000.c: Likewise.
+
2013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
#include "langhooks.h"
#include "splay-tree.h"
#include "gimple.h"
-#include "tree-flow.h"
+#include "gimple-ssa.h"
#include "tree-ssanames.h"
#include "tree-stdarg.h"
#include "tm-constrs.h"
#include "libfuncs.h"
#include "opts.h"
#include "params.h"
-#include "gimple-ssa.h"
/* Specify which cpu to schedule for. */
enum processor_type alpha_tune;
#include "diagnostic.h"
#include "dumpfile.h"
#include "tree-pass.h"
-#include "tree-flow.h"
#include "context.h"
#include "pass_manager.h"
#include "cfgloop.h"
#include "sched-int.h"
#include "gimple.h"
-#include "tree-flow.h"
#include "intl.h"
#include "params.h"
#include "tm-constrs.h"
#ifndef GCC_GIMPLE_SSA_H
#define GCC_GIMPLE_SSA_H
+#include "tree-ssa-operands.h"
+
/* This structure is used to map a gimple statement to a label,
or list of labels to represent transaction restart. */
return fun && fun->gimple_df && fun->gimple_df->in_ssa_p;
}
-/* Inline functions for manipulating various data structures defined in
- tree-flow.h. See tree-flow.h for documentation. */
-
/* Artificial variable used for the virtual operand FUD chain. */
static inline tree
gimple_vop (const struct function *fun)
#include "basic-block.h"
#include "gimple.h"
#include "diagnostic.h"
-#include "tree-flow.h"
#include "value-prof.h"
#include "flags.h"
#include "alias.h"
#include "demangle.h"
#include "langhooks.h"
+#include "bitmap.h"
/* All the tuples have their operand vector (if present) at the very bottom
|| TREE_CODE (t) == STRING_CST);
}
+/* Return true if OP, an SSA name or a DECL is a virtual operand. */
+
+bool
+virtual_operand_p (tree op)
+{
+ if (TREE_CODE (op) == SSA_NAME)
+ {
+ op = SSA_NAME_VAR (op);
+ if (!op)
+ return false;
+ }
+
+ if (TREE_CODE (op) == VAR_DECL)
+ return VAR_DECL_IS_VIRTUAL_OPERAND (op);
+
+ return false;
+}
+
+
/* Return true if T is a non-aggregate register variable. */
bool
gimple gimple_alloc_stat (enum gimple_code, unsigned MEM_STAT_DECL);
const char *gimple_decl_printable_name (tree, int);
+/* Returns true iff T is a virtual ssa name decl. */
+extern bool virtual_operand_p (tree);
/* Returns true iff T is a scalar register variable. */
extern bool is_gimple_reg (tree);
/* Returns true iff T is any sort of variable. */
+2013-10-18 Andrew MacLeod <amacleod@redhat.com>
+
+ * lto.c: Remove tree-flow.h from include list.
+
2013-10-15 Richard Biener <rguenther@suse.de>
* lto.c (hash_canonical_type): Split out from ...
#include "opts.h"
#include "toplev.h"
#include "tree.h"
-#include "tree-flow.h"
#include "diagnostic-core.h"
#include "tm.h"
#include "cgraph.h"
+2013-10-18 Andrew MacLeod <amacleod@redhat.com>
+
+ * g++.dg/plugin/header_plugin.c: Don't include tree-flow.h.
+
2013-10-18 Hans-Peter Nilsson <hp@axis.com>
* gcc.dg/tree-ssa/gen-vect-11.c: Use dynamic vector cost model.
- gcc.dg/tree-ssa/gen-vect-11a.c: Likewise.
- gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
- gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-11a.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
+ * gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
2013-10-17 Charles Bayis <charles.baylis@linaro.org>
#include "c-family/c-pretty-print.h"
#include "tree-iterator.h"
#include "plugin.h"
-#include "tree-flow.h"
#include "langhooks.h"
#include "cp/cxx-pretty-print.h"
#include "cp/name-lookup.h"
--- /dev/null
+/* Data and Control Flow Analysis for Trees.
+ Copyright (C) 2001-2013 Free Software Foundation, Inc.
+ Contributed by Diego Novillo <dnovillo@redhat.com>
+
+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 _TREE_CFG_H
+#define _TREE_CFG_H
+
+/* Location to track pending stmt for edge insertion. */
+#define PENDING_STMT(e) ((e)->insns.g)
+
+extern void init_empty_tree_cfg_for_function (struct function *);
+extern void init_empty_tree_cfg (void);
+extern void fold_cond_expr_cond (void);
+extern void start_recording_case_labels (void);
+extern void end_recording_case_labels (void);
+extern basic_block label_to_block_fn (struct function *, tree);
+#define label_to_block(t) (label_to_block_fn (cfun, t))
+extern void make_abnormal_goto_edges (basic_block, bool);
+extern void cleanup_dead_labels (void);
+extern void group_case_labels_stmt (gimple);
+extern void group_case_labels (void);
+extern void replace_uses_by (tree, tree);
+extern basic_block single_noncomplex_succ (basic_block bb);
+extern void notice_special_calls (gimple);
+extern void clear_special_calls (void);
+extern edge find_taken_edge (basic_block, tree);
+extern void gimple_debug_bb (basic_block);
+extern basic_block gimple_debug_bb_n (int);
+extern void gimple_debug_cfg (int);
+extern void gimple_dump_cfg (FILE *, int);
+extern void dump_cfg_stats (FILE *);
+extern void debug_cfg_stats (void);
+extern bool stmt_can_make_abnormal_goto (gimple);
+extern bool is_ctrl_stmt (gimple);
+extern bool is_ctrl_altering_stmt (gimple);
+extern bool simple_goto_p (gimple);
+extern bool stmt_ends_bb_p (gimple);
+extern void delete_tree_cfg_annotations (void);
+extern gimple first_stmt (basic_block);
+extern gimple last_stmt (basic_block);
+extern gimple last_and_only_stmt (basic_block);
+extern void verify_gimple_in_seq (gimple_seq);
+extern void verify_gimple_in_cfg (struct function *);
+extern tree gimple_block_label (basic_block);
+extern void add_phi_args_after_copy_bb (basic_block);
+extern void add_phi_args_after_copy (basic_block *, unsigned, edge);
+extern bool gimple_duplicate_sese_region (edge, edge, basic_block *, unsigned,
+ basic_block *, bool);
+extern bool gimple_duplicate_sese_tail (edge, edge, basic_block *, unsigned,
+ basic_block *);
+extern void gather_blocks_in_sese_region (basic_block entry, basic_block exit,
+ vec<basic_block> *bbs_p);
+extern basic_block move_sese_region_to_fn (struct function *, basic_block,
+ basic_block, tree);
+extern void dump_function_to_file (tree, FILE *, int);
+extern void debug_function (tree, int) ;
+extern void print_loops_bb (FILE *, basic_block, int, int);
+extern void print_loops (FILE *, int);
+extern void debug (struct loop &ref);
+extern void debug (struct loop *ptr);
+extern void debug_verbose (struct loop &ref);
+extern void debug_verbose (struct loop *ptr);
+extern void debug_loops (int);
+extern void debug_loop (struct loop *, int);
+extern void debug_loop_num (unsigned, int);
+extern void remove_edge_and_dominated_blocks (edge);
+extern bool gimple_purge_dead_eh_edges (basic_block);
+extern bool gimple_purge_all_dead_eh_edges (const_bitmap);
+extern bool gimple_purge_dead_abnormal_call_edges (basic_block);
+extern bool gimple_purge_all_dead_abnormal_call_edges (const_bitmap);
+extern tree gimplify_build3 (gimple_stmt_iterator *, enum tree_code,
+ tree, tree, tree, tree);
+extern tree gimplify_build2 (gimple_stmt_iterator *, enum tree_code,
+ tree, tree, tree);
+extern tree gimplify_build1 (gimple_stmt_iterator *, enum tree_code,
+ tree, tree);
+extern void extract_true_false_edges_from_block (basic_block, edge *, edge *);
+extern unsigned int execute_fixup_cfg (void);
+
+#endif /* _TREE_CFG_H */
#include "langhooks.h"
#include "tree-iterator.h"
#include "tree-pretty-print.h"
-#include "tree-flow.h"
+#include "tree-cfg.h"
static unsigned int queue (dump_info_p, const_tree, int);
static void dump_index (dump_info_p, unsigned int);
+++ /dev/null
-/* Data and Control Flow Analysis for Trees.
- Copyright (C) 2001-2013 Free Software Foundation, Inc.
- Contributed by Diego Novillo <dnovillo@redhat.com>
-
-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 _TREE_FLOW_H
-#define _TREE_FLOW_H 1
-
-#include "bitmap.h"
-#include "sbitmap.h"
-#include "basic-block.h"
-#include "hashtab.h"
-#include "gimple.h"
-#include "tree-ssa-operands.h"
-#include "cgraph.h"
-#include "ipa-reference.h"
-#include "tree-ssa-alias.h"
-#include "tree-cfgcleanup.h"
-#include "tree-dfa.h"
-#include "tree-pretty-print.h"
-#include "gimple-low.h"
-#include "tree-into-ssa.h"
-#include "tree-ssa-loop.h"
-
-/* Location to track pending stmt for edge insertion. */
-#define PENDING_STMT(e) ((e)->insns.g)
-
-extern void init_empty_tree_cfg_for_function (struct function *);
-extern void init_empty_tree_cfg (void);
-extern void fold_cond_expr_cond (void);
-extern void start_recording_case_labels (void);
-extern void end_recording_case_labels (void);
-extern basic_block label_to_block_fn (struct function *, tree);
-#define label_to_block(t) (label_to_block_fn (cfun, t))
-extern void make_abnormal_goto_edges (basic_block, bool);
-extern void cleanup_dead_labels (void);
-extern void group_case_labels_stmt (gimple);
-extern void group_case_labels (void);
-extern void replace_uses_by (tree, tree);
-extern basic_block single_noncomplex_succ (basic_block bb);
-extern void notice_special_calls (gimple);
-extern void clear_special_calls (void);
-extern edge find_taken_edge (basic_block, tree);
-extern void gimple_debug_bb (basic_block);
-extern basic_block gimple_debug_bb_n (int);
-extern void gimple_debug_cfg (int);
-extern void gimple_dump_cfg (FILE *, int);
-extern void dump_cfg_stats (FILE *);
-extern void debug_cfg_stats (void);
-extern bool stmt_can_make_abnormal_goto (gimple);
-extern bool is_ctrl_stmt (gimple);
-extern bool is_ctrl_altering_stmt (gimple);
-extern bool simple_goto_p (gimple);
-extern bool stmt_ends_bb_p (gimple);
-extern void delete_tree_cfg_annotations (void);
-extern gimple first_stmt (basic_block);
-extern gimple last_stmt (basic_block);
-extern gimple last_and_only_stmt (basic_block);
-extern void verify_gimple_in_seq (gimple_seq);
-extern void verify_gimple_in_cfg (struct function *);
-extern tree gimple_block_label (basic_block);
-extern void add_phi_args_after_copy_bb (basic_block);
-extern void add_phi_args_after_copy (basic_block *, unsigned, edge);
-extern bool gimple_duplicate_sese_region (edge, edge, basic_block *, unsigned,
- basic_block *, bool);
-extern bool gimple_duplicate_sese_tail (edge, edge, basic_block *, unsigned,
- basic_block *);
-extern void gather_blocks_in_sese_region (basic_block entry, basic_block exit,
- vec<basic_block> *bbs_p);
-extern basic_block move_sese_region_to_fn (struct function *, basic_block,
- basic_block, tree);
-extern void dump_function_to_file (tree, FILE *, int);
-extern void debug_function (tree, int) ;
-extern void print_loops_bb (FILE *, basic_block, int, int);
-extern void print_loops (FILE *, int);
-extern void debug (struct loop &ref);
-extern void debug (struct loop *ptr);
-extern void debug_verbose (struct loop &ref);
-extern void debug_verbose (struct loop *ptr);
-extern void debug_loops (int);
-extern void debug_loop (struct loop *, int);
-extern void debug_loop_num (unsigned, int);
-void remove_edge_and_dominated_blocks (edge);
-extern bool gimple_purge_dead_eh_edges (basic_block);
-extern bool gimple_purge_all_dead_eh_edges (const_bitmap);
-extern bool gimple_purge_dead_abnormal_call_edges (basic_block);
-extern bool gimple_purge_all_dead_abnormal_call_edges (const_bitmap);
-extern tree gimplify_build3 (gimple_stmt_iterator *, enum tree_code,
- tree, tree, tree, tree);
-extern tree gimplify_build2 (gimple_stmt_iterator *, enum tree_code,
- tree, tree, tree);
-extern tree gimplify_build1 (gimple_stmt_iterator *, enum tree_code,
- tree, tree);
-extern void extract_true_false_edges_from_block (basic_block, edge *, edge *);
-extern unsigned int execute_fixup_cfg (void);
-
-#endif /* _TREE_FLOW_H */
#include "pointer-set.h"
#include "alloc-pool.h"
#include "tree-ssa-alias.h"
+#include "ipa-reference.h"
/* Broad overview of how alias analysis on gimple works:
}
-/* Return true if OP, an SSA name or a DECL is a virtual operand. */
-
-bool
-virtual_operand_p (tree op)
-{
- if (TREE_CODE (op) == SSA_NAME)
- {
- op = SSA_NAME_VAR (op);
- if (!op)
- return false;
- }
-
- if (TREE_CODE (op) == VAR_DECL)
- return VAR_DECL_IS_VIRTUAL_OPERAND (op);
-
- return false;
-}
-
/* Unlink STMTs virtual definition from the IL by propagating its use. */
void
extern void debug_immediate_uses (void);
extern void debug_immediate_uses_for (tree var);
-extern bool virtual_operand_p (tree);
extern void unlink_stmt_vdef (gimple);
/* Return the tree pointed-to by USE. */
#ifndef GCC_TREE_SSA_H
#define GCC_TREE_SSA_H
+#include "bitmap.h"
+#include "sbitmap.h"
#include "gimple.h"
-#include "tree-ssa-operands.h"
-#include "tree-phinodes.h"
#include "gimple-ssa.h"
+#include "cgraph.h"
+#include "tree-cfgcleanup.h"
+#include "tree-cfg.h"
+#include "tree-phinodes.h"
#include "ssa-iterators.h"
#include "tree-ssanames.h"
#include "tree-ssa-dom.h"
-#include "tree-flow.h"
#include "tree-ssa-threadedge.h"
#include "tree-ssa-address.h"
+#include "tree-ssa-loop.h"
+#include "tree-into-ssa.h"
+#include "gimple-low.h"
+#include "tree-dfa.h"
/* Mapping for redirected edges. */
struct _edge_var_map {