]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/plugin.def
backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html...
[thirdparty/gcc.git] / gcc / plugin.def
CommitLineData
090fa0ab
GF
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
4309e92c
RG
27/* After finishing parsing a declaration. */
28DEFEVENT (PLUGIN_FINISH_DECL)
29
090fa0ab
GF
30/* Useful for summary processing. */
31DEFEVENT (PLUGIN_FINISH_UNIT)
32
1c701f96
BH
33/* Allows to see low level AST in C and C++ frontends. */
34DEFEVENT (PLUGIN_PRE_GENERICIZE)
090fa0ab
GF
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. */