2014-07-29 Ed Smith-Rowland <3dw4rd@verizon.net>
[official-gcc.git] / gcc / plugin.def
blobdf5d383ca936ac5956b87931f2e194d4d59adec9
1 /* This file contains the definitions for plugin events in GCC.
2 Copyright (C) 2009-2014 Free Software Foundation, Inc.
4 This file is part of GCC.
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.
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.
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/>. */
21 /* To hook into pass manager. */
22 DEFEVENT (PLUGIN_PASS_MANAGER_SETUP)
24 /* After finishing parsing a type. */
25 DEFEVENT (PLUGIN_FINISH_TYPE)
27 /* After finishing parsing a declaration. */
28 DEFEVENT (PLUGIN_FINISH_DECL)
30 /* Useful for summary processing. */
31 DEFEVENT (PLUGIN_FINISH_UNIT)
33 /* Allows to see low level AST in C and C++ frontends. */
34 DEFEVENT (PLUGIN_PRE_GENERICIZE)
36 /* Called before GCC exits. */
37 DEFEVENT (PLUGIN_FINISH)
39 /* Information about the plugin. */
40 DEFEVENT (PLUGIN_INFO)
42 /* Called at start of GCC Garbage Collection. */
43 DEFEVENT (PLUGIN_GGC_START)
45 /* Extend the GGC marking. */
46 DEFEVENT (PLUGIN_GGC_MARKING)
48 /* Called at end of GGC. */
49 DEFEVENT (PLUGIN_GGC_END)
51 /* Register an extra GGC root table. */
52 DEFEVENT (PLUGIN_REGISTER_GGC_ROOTS)
54 /* Register an extra GGC cache table. */
55 DEFEVENT (PLUGIN_REGISTER_GGC_CACHES)
57 /* Called during attribute registration. */
58 DEFEVENT (PLUGIN_ATTRIBUTES)
60 /* Called before processing a translation unit. */
61 DEFEVENT (PLUGIN_START_UNIT)
63 /* Called during pragma registration. */
64 DEFEVENT (PLUGIN_PRAGMAS)
66 /* Called before first pass from all_passes. */
67 DEFEVENT (PLUGIN_ALL_PASSES_START)
69 /* Called after last pass from all_passes. */
70 DEFEVENT (PLUGIN_ALL_PASSES_END)
72 /* Called before first ipa pass. */
73 DEFEVENT (PLUGIN_ALL_IPA_PASSES_START)
75 /* Called after last ipa pass. */
76 DEFEVENT (PLUGIN_ALL_IPA_PASSES_END)
78 /* Allows to override pass gate decision for current_pass. */
79 DEFEVENT (PLUGIN_OVERRIDE_GATE)
81 /* Called before executing a pass. */
82 DEFEVENT (PLUGIN_PASS_EXECUTION)
84 /* Called before executing subpasses of a GIMPLE_PASS in
85 execute_ipa_pass_list. */
86 DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_START)
88 /* Called after executing subpasses of a GIMPLE_PASS in
89 execute_ipa_pass_list. */
90 DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_END)
92 /* Called when a pass is first instantiated. */
93 DEFEVENT (PLUGIN_NEW_PASS)
95 /* Called when a file is #include-d or given via the #line directive.
96 this could happen many times. The event data is the included file path,
97 as a const char* pointer. */
98 DEFEVENT (PLUGIN_INCLUDE_FILE)
100 /* When adding a new hard-coded plugin event, don't forget to edit in
101 file plugin.c the functions register_callback and
102 invoke_plugin_callbacks_full accordingly! */
104 /* After the hard-coded events above, plugins can dynamically allocate events
105 at run time.
106 PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element. */