OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / plugin.def
1 /* This file contains the definitions for plugin events in GCC.
2    Copyright (C) 2009 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 /* Useful for summary processing.  */
28 DEFEVENT (PLUGIN_FINISH_UNIT)
29
30 /* Allows to see low level AST in C and C++ frontends. */
31 DEFEVENT (PLUGIN_PRE_GENERICIZE)
32
33 /* Called before GCC exits.  */
34 DEFEVENT (PLUGIN_FINISH)
35
36 /* Information about the plugin. */
37 DEFEVENT (PLUGIN_INFO)
38
39 /* Called at start of GCC Garbage Collection. */
40 DEFEVENT (PLUGIN_GGC_START)
41
42 /* Extend the GGC marking. */
43 DEFEVENT (PLUGIN_GGC_MARKING)
44
45 /* Called at end of GGC. */
46 DEFEVENT (PLUGIN_GGC_END)
47
48 /* Register an extra GGC root table. */
49 DEFEVENT (PLUGIN_REGISTER_GGC_ROOTS)
50
51 /* Register an extra GGC cache table. */
52 DEFEVENT (PLUGIN_REGISTER_GGC_CACHES)
53
54 /* Called during attribute registration.  */
55 DEFEVENT (PLUGIN_ATTRIBUTES)
56
57 /* Called before processing a translation unit.  */
58 DEFEVENT (PLUGIN_START_UNIT)
59
60 /* Called during pragma registration.  */
61 DEFEVENT (PLUGIN_PRAGMAS)
62
63 /* Called before first pass from all_passes.  */
64 DEFEVENT (PLUGIN_ALL_PASSES_START)
65
66 /* Called after last pass from all_passes.  */
67 DEFEVENT (PLUGIN_ALL_PASSES_END)
68
69 /* Called before first ipa pass.  */
70 DEFEVENT (PLUGIN_ALL_IPA_PASSES_START)
71
72 /* Called after last ipa pass.  */
73 DEFEVENT (PLUGIN_ALL_IPA_PASSES_END)
74
75 /* Allows to override pass gate decision for current_pass.  */
76 DEFEVENT (PLUGIN_OVERRIDE_GATE)
77
78 /* Called before executing a pass.  */
79 DEFEVENT (PLUGIN_PASS_EXECUTION)
80
81 /* Called before executing subpasses of a GIMPLE_PASS in
82    execute_ipa_pass_list.  */
83 DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_START)
84
85 /* Called after executing subpasses of a GIMPLE_PASS in
86    execute_ipa_pass_list.  */
87 DEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_END)
88
89 /* Called when a pass is first instantiated.  */
90 DEFEVENT (PLUGIN_NEW_PASS)
91
92 /* After the hard-coded events above, plugins can dynamically allocate events
93    at run time.
94    PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element.  */