]>
Commit | Line | Data |
---|---|---|
c9036234 | 1 | /* This file contains the definitions for plugin events in GCC. |
fbd26352 | 2 | Copyright (C) 2009-2019 Free Software Foundation, Inc. |
c9036234 | 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 | ||
f8363c5d | 20 | /* Called before parsing the body of a function. */ |
21 | DEFEVENT (PLUGIN_START_PARSE_FUNCTION) | |
22 | ||
23 | /* After finishing parsing a function. */ | |
24 | DEFEVENT (PLUGIN_FINISH_PARSE_FUNCTION) | |
c9036234 | 25 | |
26 | /* To hook into pass manager. */ | |
27 | DEFEVENT (PLUGIN_PASS_MANAGER_SETUP) | |
28 | ||
29 | /* After finishing parsing a type. */ | |
30 | DEFEVENT (PLUGIN_FINISH_TYPE) | |
31 | ||
e4ae859d | 32 | /* After finishing parsing a declaration. */ |
33 | DEFEVENT (PLUGIN_FINISH_DECL) | |
34 | ||
c9036234 | 35 | /* Useful for summary processing. */ |
36 | DEFEVENT (PLUGIN_FINISH_UNIT) | |
37 | ||
0bac94cb | 38 | /* Allows to see low level AST in C and C++ frontends. */ |
39 | DEFEVENT (PLUGIN_PRE_GENERICIZE) | |
c9036234 | 40 | |
41 | /* Called before GCC exits. */ | |
42 | DEFEVENT (PLUGIN_FINISH) | |
43 | ||
44 | /* Information about the plugin. */ | |
45 | DEFEVENT (PLUGIN_INFO) | |
46 | ||
47 | /* Called at start of GCC Garbage Collection. */ | |
48 | DEFEVENT (PLUGIN_GGC_START) | |
49 | ||
50 | /* Extend the GGC marking. */ | |
51 | DEFEVENT (PLUGIN_GGC_MARKING) | |
52 | ||
53 | /* Called at end of GGC. */ | |
54 | DEFEVENT (PLUGIN_GGC_END) | |
55 | ||
56 | /* Register an extra GGC root table. */ | |
57 | DEFEVENT (PLUGIN_REGISTER_GGC_ROOTS) | |
58 | ||
c9036234 | 59 | /* Called during attribute registration. */ |
60 | DEFEVENT (PLUGIN_ATTRIBUTES) | |
61 | ||
62 | /* Called before processing a translation unit. */ | |
63 | DEFEVENT (PLUGIN_START_UNIT) | |
64 | ||
65 | /* Called during pragma registration. */ | |
66 | DEFEVENT (PLUGIN_PRAGMAS) | |
67 | ||
68 | /* Called before first pass from all_passes. */ | |
69 | DEFEVENT (PLUGIN_ALL_PASSES_START) | |
70 | ||
71 | /* Called after last pass from all_passes. */ | |
72 | DEFEVENT (PLUGIN_ALL_PASSES_END) | |
73 | ||
74 | /* Called before first ipa pass. */ | |
75 | DEFEVENT (PLUGIN_ALL_IPA_PASSES_START) | |
76 | ||
77 | /* Called after last ipa pass. */ | |
78 | DEFEVENT (PLUGIN_ALL_IPA_PASSES_END) | |
79 | ||
80 | /* Allows to override pass gate decision for current_pass. */ | |
81 | DEFEVENT (PLUGIN_OVERRIDE_GATE) | |
82 | ||
83 | /* Called before executing a pass. */ | |
84 | DEFEVENT (PLUGIN_PASS_EXECUTION) | |
85 | ||
86 | /* Called before executing subpasses of a GIMPLE_PASS in | |
87 | execute_ipa_pass_list. */ | |
88 | DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_START) | |
89 | ||
90 | /* Called after executing subpasses of a GIMPLE_PASS in | |
91 | execute_ipa_pass_list. */ | |
92 | DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_END) | |
93 | ||
94 | /* Called when a pass is first instantiated. */ | |
95 | DEFEVENT (PLUGIN_NEW_PASS) | |
96 | ||
84bf5802 | 97 | /* Called when a file is #include-d or given via the #line directive. |
98 | this could happen many times. The event data is the included file path, | |
0391a567 | 99 | as a const char* pointer. */ |
100 | DEFEVENT (PLUGIN_INCLUDE_FILE) | |
101 | ||
231c7fba | 102 | /* When adding a new hard-coded plugin event, don't forget to edit in |
103 | file plugin.c the functions register_callback and | |
104 | invoke_plugin_callbacks_full accordingly! */ | |
0391a567 | 105 | |
c9036234 | 106 | /* After the hard-coded events above, plugins can dynamically allocate events |
107 | at run time. | |
108 | PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element. */ |