Home | History | Annotate | Download | only in include
      1 /* Utilities for ipa analysis.
      2    Copyright (C) 2004-2013 Free Software Foundation, Inc.
      3    Contributed by Kenneth Zadeck <zadeck (at) naturalbridge.com>
      4 
      5 This file is part of GCC.
      6 
      7 GCC is free software; you can redistribute it and/or modify it under
      8 the terms of the GNU General Public License as published by the Free
      9 Software Foundation; either version 3, or (at your option) any later
     10 version.
     11 
     12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     15 for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along with GCC; see the file COPYING3.  If not see
     19 <http://www.gnu.org/licenses/>.  */
     20 
     21 #ifndef GCC_IPA_UTILS_H
     22 #define GCC_IPA_UTILS_H
     23 #include "tree.h"
     24 #include "cgraph.h"
     25 
     26 struct ipa_dfs_info {
     27   int dfn_number;
     28   int low_link;
     29   /* This field will have the samy value for any two nodes in the same strongly
     30      connected component.  */
     31   int scc_no;
     32   bool new_node;
     33   bool on_stack;
     34   struct cgraph_node* next_cycle;
     35   PTR aux;
     36 };
     37 
     38 
     39 
     40 /* In ipa-utils.c  */
     41 void ipa_print_order (FILE*, const char *, struct cgraph_node**, int);
     42 int ipa_reduced_postorder (struct cgraph_node **, bool, bool,
     43 			  bool (*ignore_edge) (struct cgraph_edge *));
     44 void ipa_free_postorder_info (void);
     45 vec<cgraph_node_ptr> ipa_get_nodes_in_cycle (struct cgraph_node *);
     46 int ipa_reverse_postorder (struct cgraph_node **);
     47 tree get_base_var (tree);
     48 
     49 
     50 #endif  /* GCC_IPA_UTILS_H  */
     51 
     52 
     53