X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcgraph.h;h=292eccd028430bfcf49d7ba32cd234482c6a2a26;hb=a1e880328b19d607aeef6885338b2d5df8fe86bb;hp=1f05eedf698ed8a6965fe775fbe7b8ec3eaeb68b;hpb=973433026ad181d0f53092ee4e0debc11827da2a;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 1f05eedf698..292eccd0284 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -152,6 +152,7 @@ struct GTY(()) cgraph_clone_info { VEC(ipa_replace_map_p,gc)* tree_map; bitmap args_to_skip; + bitmap combined_args_to_skip; }; /* The cgraph data structure. @@ -387,8 +388,11 @@ void cgraph_node_remove_callees (struct cgraph_node *node); struct cgraph_edge *cgraph_create_edge (struct cgraph_node *, struct cgraph_node *, gimple, gcov_type, int, int); + +struct cgraph_node * cgraph_get_node (tree); struct cgraph_node *cgraph_node (tree); -struct cgraph_node *cgraph_node_for_asm (tree asmname); +struct cgraph_node *cgraph_node_for_asm (tree); +struct cgraph_node *cgraph_node_for_decl (tree); struct cgraph_edge *cgraph_edge (struct cgraph_node *, gimple); void cgraph_set_call_stmt (struct cgraph_edge *, gimple); void cgraph_set_call_stmt_including_clones (struct cgraph_node *, gimple, gimple); @@ -405,7 +409,7 @@ struct cgraph_edge * cgraph_clone_edge (struct cgraph_edge *, struct cgraph_node *, gimple, gcov_type, int, int, bool); struct cgraph_node * cgraph_clone_node (struct cgraph_node *, gcov_type, int, - int, bool); + int, bool, VEC(cgraph_edge_p,heap) *); void cgraph_redirect_edge_callee (struct cgraph_edge *, struct cgraph_node *); @@ -426,7 +430,6 @@ struct cgraph_node * cgraph_create_virtual_clone (struct cgraph_node *old_node, void cgraph_finalize_function (tree, bool); void cgraph_mark_if_needed (tree); void cgraph_finalize_compilation_unit (void); -void cgraph_optimize (void); void cgraph_mark_needed_node (struct cgraph_node *); void cgraph_mark_address_taken_node (struct cgraph_node *); void cgraph_mark_reachable_node (struct cgraph_node *); @@ -442,7 +445,6 @@ struct cgraph_node *cgraph_function_versioning (struct cgraph_node *, VEC(ipa_replace_map_p,gc)*, bitmap); void tree_function_versioning (tree, tree, VEC (ipa_replace_map_p,gc)*, bool, bitmap); -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); @@ -505,6 +507,8 @@ 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 *); +void cgraph_make_node_local (struct cgraph_node *); +bool cgraph_node_can_be_local_p (struct cgraph_node *); bool varpool_assemble_pending_decls (void); bool varpool_assemble_decl (struct varpool_node *node); @@ -605,5 +609,24 @@ cgraph_node_set_size (cgraph_node_set set) return htab_elements (set->hashtab); } +/* Uniquize all constants that appear in memory. + Each constant in memory thus far output is recorded + in `const_desc_table'. */ + +struct GTY(()) constant_descriptor_tree { + /* A MEM for the constant. */ + rtx rtl; + + /* The value of the constant. */ + tree value; + + /* Hash of value. Computing the hash from value each time + hashfn is called can't work properly, as that means recursive + use of the hash table during hash table expansion. */ + hashval_t hash; +}; + +/* Constant pool accessor function. */ +htab_t constant_pool_htab (void); #endif /* GCC_CGRAPH_H */