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