1/* This file contains the definitions for plugin events in GCC. 2 Copyright (C) 2009 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify it under 7the terms of the GNU General Public License as published by the Free 8Software Foundation; either version 3, or (at your option) any later 9version. 10 11GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12WARRANTY; without even the implied warranty of MERCHANTABILITY or 13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14for more details. 15 16You should have received a copy of the GNU General Public License 17along with GCC; see the file COPYING3. If not see 18<http://www.gnu.org/licenses/>. */ 19 20 21/* To hook into pass manager. */ 22DEFEVENT (PLUGIN_PASS_MANAGER_SETUP) 23 24/* After finishing parsing a type. */ 25DEFEVENT (PLUGIN_FINISH_TYPE) 26 27/* After finishing parsing a declaration. */ 28DEFEVENT (PLUGIN_FINISH_DECL) 29 30/* Useful for summary processing. */ 31DEFEVENT (PLUGIN_FINISH_UNIT) 32 33/* Allows to see low level AST in C and C++ frontends. */ 34DEFEVENT (PLUGIN_PRE_GENERICIZE) 35 36/* Called before GCC exits. */ 37DEFEVENT (PLUGIN_FINISH) 38 39/* Information about the plugin. */ 40DEFEVENT (PLUGIN_INFO) 41 42/* Called at start of GCC Garbage Collection. */ 43DEFEVENT (PLUGIN_GGC_START) 44 45/* Extend the GGC marking. */ 46DEFEVENT (PLUGIN_GGC_MARKING) 47 48/* Called at end of GGC. */ 49DEFEVENT (PLUGIN_GGC_END) 50 51/* Register an extra GGC root table. */ 52DEFEVENT (PLUGIN_REGISTER_GGC_ROOTS) 53 54/* Register an extra GGC cache table. */ 55DEFEVENT (PLUGIN_REGISTER_GGC_CACHES) 56 57/* Called during attribute registration. */ 58DEFEVENT (PLUGIN_ATTRIBUTES) 59 60/* Called before processing a translation unit. */ 61DEFEVENT (PLUGIN_START_UNIT) 62 63/* Called during pragma registration. */ 64DEFEVENT (PLUGIN_PRAGMAS) 65 66/* Called before first pass from all_passes. */ 67DEFEVENT (PLUGIN_ALL_PASSES_START) 68 69/* Called after last pass from all_passes. */ 70DEFEVENT (PLUGIN_ALL_PASSES_END) 71 72/* Called before first ipa pass. */ 73DEFEVENT (PLUGIN_ALL_IPA_PASSES_START) 74 75/* Called after last ipa pass. */ 76DEFEVENT (PLUGIN_ALL_IPA_PASSES_END) 77 78/* Allows to override pass gate decision for current_pass. */ 79DEFEVENT (PLUGIN_OVERRIDE_GATE) 80 81/* Called before executing a pass. */ 82DEFEVENT (PLUGIN_PASS_EXECUTION) 83 84/* Called before executing subpasses of a GIMPLE_PASS in 85 execute_ipa_pass_list. */ 86DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_START) 87 88/* Called after executing subpasses of a GIMPLE_PASS in 89 execute_ipa_pass_list. */ 90DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_END) 91 92/* Called when a pass is first instantiated. */ 93DEFEVENT (PLUGIN_NEW_PASS) 94 95/* After the hard-coded events above, plugins can dynamically allocate events 96 at run time. 97 PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element. */ 98