xref: /dflybsd-src/contrib/gcc-4.7/gcc/insn-notes.def (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino/* Insn note definitions.
2*e4b17023SJohn Marino   Copyright (C) 2004, 2005, 2007, 2011 Free Software Foundation, Inc.
3*e4b17023SJohn Marino
4*e4b17023SJohn MarinoThis file is part of GCC.
5*e4b17023SJohn Marino
6*e4b17023SJohn MarinoGCC is free software; you can redistribute it and/or modify it under
7*e4b17023SJohn Marinothe terms of the GNU General Public License as published by the Free
8*e4b17023SJohn MarinoSoftware Foundation; either version 3, or (at your option) any later
9*e4b17023SJohn Marinoversion.
10*e4b17023SJohn Marino
11*e4b17023SJohn MarinoGCC is distributed in the hope that it will be useful, but WITHOUT ANY
12*e4b17023SJohn MarinoWARRANTY; without even the implied warranty of MERCHANTABILITY or
13*e4b17023SJohn MarinoFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14*e4b17023SJohn Marinofor more details.
15*e4b17023SJohn Marino
16*e4b17023SJohn MarinoYou should have received a copy of the GNU General Public License
17*e4b17023SJohn Marinoalong with GCC; see the file COPYING3.  If not see
18*e4b17023SJohn Marino<http://www.gnu.org/licenses/>.  */
19*e4b17023SJohn Marino
20*e4b17023SJohn Marino/* This file defines all the codes that may appear in the
21*e4b17023SJohn Marino   NOTE_LINE_NUMBER field of a NOTE insn for kinds of notes that are
22*e4b17023SJohn Marino   not line numbers.  Source files define DEF_INSN_NOTE appropriately
23*e4b17023SJohn Marino   before including this file.
24*e4b17023SJohn Marino
25*e4b17023SJohn Marino   We are slowly removing the concept of insn-chain notes from the
26*e4b17023SJohn Marino   compiler.  Adding new codes to this file is STRONGLY DISCOURAGED.
27*e4b17023SJohn Marino   If you think you need one, look for other ways to express what you
28*e4b17023SJohn Marino   mean, such as register notes or bits in the basic-block structure.  */
29*e4b17023SJohn Marino
30*e4b17023SJohn Marino/* Shorthand.  */
31*e4b17023SJohn Marino#define INSN_NOTE(NAME) DEF_INSN_NOTE (NOTE_INSN_##NAME)
32*e4b17023SJohn Marino
33*e4b17023SJohn Marino/* This note is used to get rid of an insn when it isn't safe to patch
34*e4b17023SJohn Marino   the insn out of the chain.  */
35*e4b17023SJohn MarinoINSN_NOTE (DELETED)
36*e4b17023SJohn Marino
37*e4b17023SJohn Marino/* Generated in place of user-declared labels when they are deleted.  */
38*e4b17023SJohn MarinoINSN_NOTE (DELETED_LABEL)
39*e4b17023SJohn Marino/* Similarly, but for labels that have been present in debug stmts
40*e4b17023SJohn Marino   earlier and thus will only appear with -g.  These must use different
41*e4b17023SJohn Marino   label namespace.  */
42*e4b17023SJohn MarinoINSN_NOTE (DELETED_DEBUG_LABEL)
43*e4b17023SJohn Marino
44*e4b17023SJohn Marino/* These are used to mark the beginning and end of a lexical block.
45*e4b17023SJohn Marino   See NOTE_BLOCK and reorder_blocks.  */
46*e4b17023SJohn MarinoINSN_NOTE (BLOCK_BEG)
47*e4b17023SJohn MarinoINSN_NOTE (BLOCK_END)
48*e4b17023SJohn Marino
49*e4b17023SJohn Marino/* This note indicates the start of the real body of the function,
50*e4b17023SJohn Marino   i.e. the point just after all of the parms have been moved into
51*e4b17023SJohn Marino   their homes, etc.  */
52*e4b17023SJohn MarinoINSN_NOTE (FUNCTION_BEG)
53*e4b17023SJohn Marino
54*e4b17023SJohn Marino/* This marks the point immediately after the last prologue insn.  */
55*e4b17023SJohn MarinoINSN_NOTE (PROLOGUE_END)
56*e4b17023SJohn Marino
57*e4b17023SJohn Marino/* This marks the point immediately prior to the first epilogue insn.  */
58*e4b17023SJohn MarinoINSN_NOTE (EPILOGUE_BEG)
59*e4b17023SJohn Marino
60*e4b17023SJohn Marino/* These note where exception handling regions begin and end.
61*e4b17023SJohn Marino   Uses NOTE_EH_HANDLER to identify the region in question.  */
62*e4b17023SJohn MarinoINSN_NOTE (EH_REGION_BEG)
63*e4b17023SJohn MarinoINSN_NOTE (EH_REGION_END)
64*e4b17023SJohn Marino
65*e4b17023SJohn Marino/* The location of a variable.  */
66*e4b17023SJohn MarinoINSN_NOTE (VAR_LOCATION)
67*e4b17023SJohn Marino
68*e4b17023SJohn Marino/* The values passed to callee.  */
69*e4b17023SJohn MarinoINSN_NOTE (CALL_ARG_LOCATION)
70*e4b17023SJohn Marino
71*e4b17023SJohn Marino/* Record the struct for the following basic block.  Uses
72*e4b17023SJohn Marino   NOTE_BASIC_BLOCK.  FIXME: Redundant with the basic block pointer
73*e4b17023SJohn Marino   now included in every insn.  */
74*e4b17023SJohn MarinoINSN_NOTE (BASIC_BLOCK)
75*e4b17023SJohn Marino
76*e4b17023SJohn Marino/* Mark the inflection point in the instruction stream where we switch
77*e4b17023SJohn Marino   between hot and cold text sections.  */
78*e4b17023SJohn MarinoINSN_NOTE (SWITCH_TEXT_SECTIONS)
79*e4b17023SJohn Marino
80*e4b17023SJohn Marino/* When emitting dwarf2 frame information, contains a directive that
81*e4b17023SJohn Marino   should be emitted.  */
82*e4b17023SJohn MarinoINSN_NOTE (CFI)
83*e4b17023SJohn Marino
84*e4b17023SJohn Marino/* When emitting dwarf2 frame information, contains the number of a debug
85*e4b17023SJohn Marino   label that should be emitted.  */
86*e4b17023SJohn MarinoINSN_NOTE (CFI_LABEL)
87*e4b17023SJohn Marino
88*e4b17023SJohn Marino#undef INSN_NOTE
89