]>
Commit | Line | Data |
---|---|---|
090fa0ab | 1 | /* This file contains the definitions for plugin events in GCC. |
99dee823 | 2 | Copyright (C) 2009-2021 Free Software Foundation, Inc. |
090fa0ab GF |
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 | ||
ea5b45b6 AT |
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) | |
090fa0ab GF |
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 | ||
4309e92c RG |
32 | /* After finishing parsing a declaration. */ |
33 | DEFEVENT (PLUGIN_FINISH_DECL) | |
34 | ||
090fa0ab GF |
35 | /* Useful for summary processing. */ |
36 | DEFEVENT (PLUGIN_FINISH_UNIT) | |
37 | ||
1c701f96 BH |
38 | /* Allows to see low level AST in C and C++ frontends. */ |
39 | DEFEVENT (PLUGIN_PRE_GENERICIZE) | |
090fa0ab GF |
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 | ||
090fa0ab GF |
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 | ||
b318e404 BS |
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, | |
b826515a BS |
99 | as a const char* pointer. */ |
100 | DEFEVENT (PLUGIN_INCLUDE_FILE) | |
101 | ||
66dde7bc DM |
102 | /* Called when -fanalyzer starts. The event data is an |
103 | ana::plugin_analyzer_init_iface *. */ | |
104 | DEFEVENT (PLUGIN_ANALYZER_INIT) | |
105 | ||
c34144fa BS |
106 | /* When adding a new hard-coded plugin event, don't forget to edit in |
107 | file plugin.c the functions register_callback and | |
108 | invoke_plugin_callbacks_full accordingly! */ | |
b826515a | 109 | |
090fa0ab GF |
110 | /* After the hard-coded events above, plugins can dynamically allocate events |
111 | at run time. | |
112 | PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element. */ |