summaryrefslogtreecommitdiffstats
path: root/gcc/function.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-01 16:08:15 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-01 16:08:15 +0000
commit68e3904eea189b7f28c88a07596dcd76d7264439 (patch)
tree417705d74e26aac95b03885b54a88b3c22e0d807 /gcc/function.h
parent95a18f4ecb8cfe8a34b885704c4fd191579690eb (diff)
downloadppe42-gcc-68e3904eea189b7f28c88a07596dcd76d7264439.tar.gz
ppe42-gcc-68e3904eea189b7f28c88a07596dcd76d7264439.zip
* tree-pass.h (opt_pass): Add IPA_PASS.
(varpool_node, cgraph_node): Forward declare. (ipa_opt_pass): Define. (pass_ipa_inline): Turn into ipa_opt_pass. (pass_apply_inline): Remove. * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass. (apply_inline): Turn into .... (inline_transform): ... this one. (inline_generate_summary): New function. (pass_apply_inline): Remove. * function.h (ipa_opt_pass): Forward declare structure; typedef; vector. (struct function): Add ipa_transforms_to_apply. * passes.c (register_one_dump_file): Work on IPA_PASS. (init_optimization_passes): Remove pass_inline_parameters and pass_apply_inline. (pass_init_dump_file, pass_fini_dump_file): Break out from .... (execute_one_pass) ... here; apply transforms when possible. (add_ipa_transform_pass, execute_ipa_summary_asses, execute_one_ipa_transform_pass): New. (execute_ipa_pass_list): Update for IPA_PASS type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134859 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h
index 2e88f97ad7f..fcfd3b65f43 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -179,6 +179,11 @@ struct call_site_record;
DEF_VEC_P(temp_slot_p);
DEF_VEC_ALLOC_P(temp_slot_p,gc);
+struct ipa_opt_pass;
+typedef struct ipa_opt_pass *ipa_opt_pass;
+
+DEF_VEC_P(ipa_opt_pass);
+DEF_VEC_ALLOC_P(ipa_opt_pass,heap);
enum function_frequency {
/* This function most likely won't be executed at all.
@@ -466,6 +471,10 @@ struct function GTY(())
/* Properties used by the pass manager. */
unsigned int curr_properties;
unsigned int last_verified;
+ /* Interprocedural passes scheduled to have their transform functions
+ applied next time we execute local pass on them. We maintain it
+ per-function in order to allow IPA passes to introduce new functions. */
+ VEC(ipa_opt_pass,heap) * GTY((skip)) ipa_transforms_to_apply;
/* Collected bit flags. */
OpenPOWER on IntegriCloud