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