aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.3.1/gcc/cgraph.h
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2015-06-17 11:09:54 -0700
committerDan Albert <danalbert@google.com>2015-06-17 14:15:22 -0700
commitf378ebf14df0952eae870c9865bab8326aa8f137 (patch)
tree31794503eb2a8c64ea5f313b93100f1163afcffb /gcc-4.3.1/gcc/cgraph.h
parent2c58169824949d3a597d9fa81931e001ef9b1bd0 (diff)
downloadtoolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.gz
toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.bz2
toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.zip
Delete old versions of GCC.
Change-Id: I710f125d905290e1024cbd67f48299861790c66c
Diffstat (limited to 'gcc-4.3.1/gcc/cgraph.h')
-rw-r--r--gcc-4.3.1/gcc/cgraph.h424
1 files changed, 0 insertions, 424 deletions
diff --git a/gcc-4.3.1/gcc/cgraph.h b/gcc-4.3.1/gcc/cgraph.h
deleted file mode 100644
index 89ffeb6c4..000000000
--- a/gcc-4.3.1/gcc/cgraph.h
+++ /dev/null
@@ -1,424 +0,0 @@
-/* Callgraph handling code.
- Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
- Contributed by Jan Hubicka
-
-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_CGRAPH_H
-#define GCC_CGRAPH_H
-#include "tree.h"
-#include "basic-block.h"
-
-enum availability
-{
- /* Not yet set by cgraph_function_body_availability. */
- AVAIL_UNSET,
- /* Function body/variable initializer is unknown. */
- AVAIL_NOT_AVAILABLE,
- /* Function body/variable initializer is known but might be replaced
- by a different one from other compilation unit and thus needs to
- be dealt with a care. Like AVAIL_NOT_AVAILABLE it can have
- arbitrary side effects on escaping variables and functions, while
- like AVAILABLE it might access static variables. */
- AVAIL_OVERWRITABLE,
- /* Function body/variable initializer is known and will be used in final
- program. */
- AVAIL_AVAILABLE,
- /* Function body/variable initializer is known and all it's uses are explicitly
- visible within current unit (ie it's address is never taken and it is not
- exported to other units).
- Currently used only for functions. */
- AVAIL_LOCAL
-};
-
-extern const char * const cgraph_availability_names[];
-
-/* Information about the function collected locally.
- Available after function is analyzed. */
-
-struct cgraph_local_info GTY(())
-{
- /* Estimated stack frame consumption by the function. */
- HOST_WIDE_INT estimated_self_stack_size;
-
- /* Size of the function before inlining. */
- int self_insns;
-
- /* Set when function function is visible in current compilation unit only
- and its address is never taken. */
- unsigned local : 1;
-
- /* Set when function is visible by other units. */
- unsigned externally_visible : 1;
-
- /* Set once it has been finalized so we consider it to be output. */
- unsigned finalized : 1;
-
- /* False when there something makes inlining impossible (such as va_arg). */
- unsigned inlinable : 1;
-
- /* True when function should be inlined independently on its size. */
- unsigned disregard_inline_limits : 1;
-
- /* True when the function has been originally extern inline, but it is
- redefined now. */
- unsigned redefined_extern_inline : 1;
-
- /* True if statics_read_for_function and
- statics_written_for_function contain valid data. */
- unsigned for_functions_valid : 1;
-
- /* True if the function is going to be emitted in some other translation
- unit, referenced from vtable. */
- unsigned vtable_method : 1;
-};
-
-/* Information about the function that needs to be computed globally
- once compilation is finished. Available only with -funit-at-time. */
-
-struct cgraph_global_info GTY(())
-{
- /* Estimated stack frame consumption by the function. */
- HOST_WIDE_INT estimated_stack_size;
- /* Expected offset of the stack frame of inlined function. */
- HOST_WIDE_INT stack_frame_offset;
-
- /* For inline clones this points to the function they will be inlined into. */
- struct cgraph_node *inlined_to;
-
- /* Estimated size of the function after inlining. */
- int insns;
-
- /* Estimated growth after inlining. INT_MIN if not computed. */
- int estimated_growth;
-
- /* Set iff the function has been inlined at least once. */
- bool inlined;
-};
-
-/* Information about the function that is propagated by the RTL backend.
- Available only for functions that has been already assembled. */
-
-struct cgraph_rtl_info GTY(())
-{
- int preferred_incoming_stack_boundary;
-};
-
-/* The cgraph data structure.
- Each function decl has assigned cgraph_node listing callees and callers. */
-
-struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous")))
-{
- tree decl;
- struct cgraph_edge *callees;
- struct cgraph_edge *callers;
- struct cgraph_node *next;
- struct cgraph_node *previous;
- /* For nested functions points to function the node is nested in. */
- struct cgraph_node *origin;
- /* Points to first nested function, if any. */
- struct cgraph_node *nested;
- /* Pointer to the next function with same origin, if any. */
- struct cgraph_node *next_nested;
- /* Pointer to the next function in cgraph_nodes_queue. */
- struct cgraph_node *next_needed;
- /* Pointer to the next clone. */
- struct cgraph_node *next_clone;
- struct cgraph_node *prev_clone;
- /* Pointer to a single unique cgraph node for this function. If the
- function is to be output, this is the copy that will survive. */
- struct cgraph_node *master_clone;
- /* For functions with many calls sites it holds map from call expression
- to the edge to speed up cgraph_edge function. */
- htab_t GTY((param_is (struct cgraph_edge))) call_site_hash;
-
- PTR GTY ((skip)) aux;
-
- struct cgraph_local_info local;
- struct cgraph_global_info global;
- struct cgraph_rtl_info rtl;
-
- /* Expected number of executions: calculated in profile.c. */
- gcov_type count;
- /* Unique id of the node. */
- int uid;
- /* Ordering of all cgraph nodes. */
- int order;
-
- /* Set when function must be output - it is externally visible
- or its address is taken. */
- unsigned needed : 1;
- /* Set when function is reachable by call from other function
- that is either reachable or needed. */
- unsigned reachable : 1;
- /* Set once the function is lowered (i.e. its CFG is built). */
- unsigned lowered : 1;
- /* Set once the function has been instantiated and its callee
- lists created. */
- unsigned analyzed : 1;
- /* Set when function is scheduled to be assembled. */
- unsigned output : 1;
- /* Set for aliases once they got through assemble_alias. */
- unsigned alias : 1;
-
- /* In non-unit-at-a-time mode the function body of inline candidates is saved
- into clone before compiling so the function in original form can be
- inlined later. This pointer points to the clone. */
- tree inline_decl;
-
- /* unique id for profiling. pid is not suitable because of different
- number of cfg nodes with -fprofile-generate and -fprofile-use */
- int pid;
-};
-
-struct cgraph_edge GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller")))
-{
- struct cgraph_node *caller;
- struct cgraph_node *callee;
- struct cgraph_edge *prev_caller;
- struct cgraph_edge *next_caller;
- struct cgraph_edge *prev_callee;
- struct cgraph_edge *next_callee;
- tree call_stmt;
- PTR GTY ((skip (""))) aux;
- /* When NULL, inline this call. When non-NULL, points to the explanation
- why function was not inlined. */
- const char *inline_failed;
- /* Expected number of executions: calculated in profile.c. */
- gcov_type count;
- /* Expected frequency of executions within the function.
- When set to CGRAPH_FREQ_BASE, the edge is expected to be called once
- per function call. The range is 0 to CGRAPH_FREQ_MAX. */
- int frequency;
- /* Depth of loop nest, 1 means no loop nest. */
- int loop_nest;
-};
-
-#define CGRAPH_FREQ_BASE 1000
-#define CGRAPH_FREQ_MAX 100000
-
-typedef struct cgraph_edge *cgraph_edge_p;
-
-DEF_VEC_P(cgraph_edge_p);
-DEF_VEC_ALLOC_P(cgraph_edge_p,heap);
-
-/* The varpool data structure.
- Each static variable decl has assigned varpool_node. */
-
-struct varpool_node GTY(())
-{
- tree decl;
- /* Pointer to the next function in varpool_nodes. */
- struct varpool_node *next;
- /* Pointer to the next function in varpool_nodes_queue. */
- struct varpool_node *next_needed;
- /* Ordering of all cgraph nodes. */
- int order;
-
- /* Set when function must be output - it is externally visible
- or its address is taken. */
- unsigned needed : 1;
- /* Needed variables might become dead by optimization. This flag
- forces the variable to be output even if it appears dead otherwise. */
- unsigned force_output : 1;
- /* Set once the variable has been instantiated and its callee
- lists created. */
- unsigned analyzed : 1;
- /* Set once it has been finalized so we consider it to be output. */
- unsigned finalized : 1;
- /* Set when variable is scheduled to be assembled. */
- unsigned output : 1;
- /* Set when function is visible by other units. */
- unsigned externally_visible : 1;
- /* Set for aliases once they got through assemble_alias. */
- unsigned alias : 1;
-};
-
-/* Every top level asm statement is put into a cgraph_asm_node. */
-
-struct cgraph_asm_node GTY(())
-{
- /* Next asm node. */
- struct cgraph_asm_node *next;
- /* String for this asm node. */
- tree asm_str;
- /* Ordering of all cgraph nodes. */
- int order;
-};
-
-extern GTY(()) struct cgraph_node *cgraph_nodes;
-extern GTY(()) int cgraph_n_nodes;
-extern GTY(()) int cgraph_max_uid;
-extern GTY(()) int cgraph_max_pid;
-extern bool cgraph_global_info_ready;
-enum cgraph_state
-{
- /* Callgraph is being constructed. It is safe to add new functions. */
- CGRAPH_STATE_CONSTRUCTION,
- /* Callgraph is built and IPA passes are being run. */
- CGRAPH_STATE_IPA,
- /* Callgraph is built and all functions are transformed to SSA form. */
- CGRAPH_STATE_IPA_SSA,
- /* Functions are now ordered and being passed to RTL expanders. */
- CGRAPH_STATE_EXPANSION,
- /* All cgraph expansion is done. */
- CGRAPH_STATE_FINISHED
-};
-extern enum cgraph_state cgraph_state;
-extern bool cgraph_function_flags_ready;
-extern GTY(()) struct cgraph_node *cgraph_nodes_queue;
-extern GTY(()) struct cgraph_node *cgraph_new_nodes;
-
-extern GTY(()) struct cgraph_asm_node *cgraph_asm_nodes;
-extern GTY(()) int cgraph_order;
-
-/* In cgraph.c */
-void dump_cgraph (FILE *);
-void debug_cgraph (void);
-void dump_cgraph_node (FILE *, struct cgraph_node *);
-void debug_cgraph_node (struct cgraph_node *);
-void cgraph_insert_node_to_hashtable (struct cgraph_node *node);
-void cgraph_remove_edge (struct cgraph_edge *);
-void cgraph_remove_node (struct cgraph_node *);
-void cgraph_release_function_body (struct cgraph_node *);
-void cgraph_node_remove_callees (struct cgraph_node *node);
-struct cgraph_edge *cgraph_create_edge (struct cgraph_node *,
- struct cgraph_node *,
- tree, gcov_type, int, int);
-struct cgraph_node *cgraph_node (tree);
-struct cgraph_node *cgraph_node_for_asm (tree asmname);
-struct cgraph_edge *cgraph_edge (struct cgraph_node *, tree);
-void cgraph_set_call_stmt (struct cgraph_edge *, tree);
-void cgraph_update_edges_for_call_stmt (tree, tree, tree);
-struct cgraph_local_info *cgraph_local_info (tree);
-struct cgraph_global_info *cgraph_global_info (tree);
-struct cgraph_rtl_info *cgraph_rtl_info (tree);
-const char * cgraph_node_name (struct cgraph_node *);
-struct cgraph_edge * cgraph_clone_edge (struct cgraph_edge *,
- struct cgraph_node *,
- tree, gcov_type, int, int, bool);
-struct cgraph_node * cgraph_clone_node (struct cgraph_node *, gcov_type, int,
- int, bool);
-
-void cgraph_redirect_edge_callee (struct cgraph_edge *, struct cgraph_node *);
-
-struct cgraph_asm_node *cgraph_add_asm_node (tree);
-
-bool cgraph_function_possibly_inlined_p (tree);
-void cgraph_unnest_node (struct cgraph_node *);
-
-enum availability cgraph_function_body_availability (struct cgraph_node *);
-bool cgraph_is_master_clone (struct cgraph_node *);
-struct cgraph_node *cgraph_master_clone (struct cgraph_node *);
-void cgraph_add_new_function (tree, bool);
-
-/* In cgraphunit.c */
-void cgraph_finalize_function (tree, bool);
-void cgraph_finalize_compilation_unit (void);
-void cgraph_optimize (void);
-void cgraph_mark_needed_node (struct cgraph_node *);
-void cgraph_mark_reachable_node (struct cgraph_node *);
-bool cgraph_inline_p (struct cgraph_edge *, const char **reason);
-bool cgraph_preserve_function_body_p (tree);
-void verify_cgraph (void);
-void verify_cgraph_node (struct cgraph_node *);
-void cgraph_build_static_cdtor (char which, tree body, int priority);
-void cgraph_reset_static_var_maps (void);
-void init_cgraph (void);
-struct cgraph_node *cgraph_function_versioning (struct cgraph_node *,
- VEC(cgraph_edge_p,heap)*,
- varray_type);
-void cgraph_analyze_function (struct cgraph_node *);
-struct cgraph_node *save_inline_function_body (struct cgraph_node *);
-void record_references_in_initializer (tree);
-bool cgraph_process_new_functions (void);
-
-/* In cgraphbuild.c */
-unsigned int rebuild_cgraph_edges (void);
-
-/* In ipa.c */
-bool cgraph_remove_unreachable_nodes (bool, FILE *);
-int cgraph_postorder (struct cgraph_node **);
-
-/* In varpool.c */
-
-extern GTY(()) struct varpool_node *varpool_nodes_queue;
-extern GTY(()) struct varpool_node *varpool_nodes;
-
-struct varpool_node *varpool_node (tree);
-struct varpool_node *varpool_node_for_asm (tree asmname);
-void varpool_mark_needed_node (struct varpool_node *);
-void dump_varpool (FILE *);
-void dump_varpool_node (FILE *, struct varpool_node *);
-
-void varpool_finalize_decl (tree);
-bool decide_is_variable_needed (struct varpool_node *, tree);
-enum availability cgraph_variable_initializer_availability (struct varpool_node *);
-
-bool varpool_assemble_pending_decls (void);
-bool varpool_assemble_decl (struct varpool_node *node);
-bool varpool_analyze_pending_decls (void);
-void varpool_output_debug_info (void);
-void varpool_remove_unreferenced_decls (void);
-
-/* Walk all reachable static variables. */
-#define FOR_EACH_STATIC_VARIABLE(node) \
- for ((node) = varpool_nodes_queue; (node); (node) = (node)->next_needed)
-
-/* Return first reachable static variable with initializer. */
-static inline struct varpool_node *
-varpool_first_static_initializer (void)
-{
- struct varpool_node *node;
- for (node = varpool_nodes_queue; node; node = node->next_needed)
- {
- gcc_assert (TREE_CODE (node->decl) == VAR_DECL);
- if (DECL_INITIAL (node->decl))
- return node;
- }
- return NULL;
-}
-
-/* Return next reachable static variable with initializer after NODE. */
-static inline struct varpool_node *
-varpool_next_static_initializer (struct varpool_node *node)
-{
- for (node = node->next_needed; node; node = node->next_needed)
- {
- gcc_assert (TREE_CODE (node->decl) == VAR_DECL);
- if (DECL_INITIAL (node->decl))
- return node;
- }
- return NULL;
-}
-
-/* Walk all static variables with initializer set. */
-#define FOR_EACH_STATIC_INITIALIZER(node) \
- for ((node) = varpool_first_static_initializer (); (node); \
- (node) = varpool_next_static_initializer (node))
-
-/* In ipa-inline.c */
-void cgraph_clone_inlined_nodes (struct cgraph_edge *, bool, bool);
-void cgraph_mark_inline_edge (struct cgraph_edge *, bool);
-bool cgraph_default_inline_p (struct cgraph_node *, const char **);
-
-
-/* Create a new static variable of type TYPE. */
-tree add_new_static_var (tree type);
-
-#endif /* GCC_CGRAPH_H */