OSDN Git Service

* config/sh/sh.c (calc_live_regs): Use
[pf3gnuchains/gcc-fork.git] / gcc / reg-notes.def
index 8032516..713bc28 100644 (file)
@@ -1,11 +1,11 @@
 /* Register note definitions.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
+Software Foundation; either version 3, or (at your option) any later
 version.
 
 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -14,9 +14,8 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 /* This file defines all the codes that may appear on individual
    EXPR_LIST rtxes in the REG_NOTES chain of an insn.  The codes are
@@ -26,6 +25,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 /* Shorthand.  */
 #define REG_NOTE(NAME) DEF_REG_NOTE (REG_##NAME)
 
+/* REG_DEP_TRUE is used in scheduler dependencies lists to represent a
+   read-after-write dependency (i.e. a true data dependency).  This is
+   here, not grouped with REG_DEP_ANTI and REG_DEP_OUTPUT, because some
+   passes use a literal 0 for it.  */
+REG_NOTE (DEP_TRUE)
+
 /* The value in REG dies in this insn (i.e., it is not needed past
    this insn).  If REG is set in this insn, the REG_DEAD note may,
    but need not, be omitted.  */
@@ -86,17 +91,22 @@ REG_NOTE (UNUSED)
 REG_NOTE (CC_SETTER)
 REG_NOTE (CC_USER)
 
-/* Points to a CODE_LABEL.  Used by non-JUMP_INSNs to say that the
-   CODE_LABEL contained in the REG_LABEL note is used by the insn.
-   This note is an INSN_LIST.  */
-REG_NOTE (LABEL)
+/* Points to a CODE_LABEL.  Used by JUMP_INSNs to say that the CODE_LABEL
+   contained in the REG_LABEL_TARGET note is a possible jump target of
+   this insn.  This note is an INSN_LIST.  */
+REG_NOTE (LABEL_TARGET)
 
-/* REG_DEP_ANTI and REG_DEP_OUTPUT are used in LOG_LINKS to represent
-   write-after-read and write-after-write dependencies respectively.
-   Data dependencies, which are the only type of LOG_LINK created by
-   flow, are represented by a 0 reg note kind.  */
-REG_NOTE (DEP_ANTI)
+/* Points to a CODE_LABEL.  Used by any insn to say that the CODE_LABEL
+   contained in the REG_LABEL_OPERAND note is used by the insn, but as an
+   operand, not as a jump target (though it may indirectly be a jump
+   target for a later jump insn).  This note is an INSN_LIST.  */
+REG_NOTE (LABEL_OPERAND)
+
+/* REG_DEP_OUTPUT and REG_DEP_ANTI are used in scheduler dependencies lists
+   to represent write-after-write and write-after-read dependencies
+   respectively.  */
 REG_NOTE (DEP_OUTPUT)
+REG_NOTE (DEP_ANTI)
 
 /* REG_BR_PROB is attached to JUMP_INSNs and CALL_INSNs.  It has an
    integer value.  For jumps, it is the probability that this is a
@@ -113,10 +123,6 @@ REG_NOTE (VALUE_PROFILE)
    that the pointer returned cannot alias anything else.  */
 REG_NOTE (NOALIAS)
 
-/* Used to optimize rtl generated by dynamic stack allocations for
-   targets where SETJMP_VIA_SAVE_AREA is true.  */
-REG_NOTE (SAVE_AREA)
-
 /* REG_BR_PRED is attached to JUMP_INSNs and CALL_INSNSs.  It contains
    CONCAT of two integer value.  First specifies the branch predictor
    that added the note, second specifies the predicted hitrate of
@@ -142,12 +148,6 @@ REG_NOTE (EH_REGION)
 /* Used by haifa-sched to save NOTE_INSN notes across scheduling.  */
 REG_NOTE (SAVE_NOTE)
 
-/* Indicates that this insn (which is part of the prologue) computes a
-   value which might not be used later, and if so it's OK to delete
-   the insn.  Normally, deleting any insn in the prologue is an error.
-   At present the parameter is unused and set to (const_int 0).  */
-REG_NOTE (MAYBE_DEAD)
-
 /* Indicates that a call does not return.  */
 REG_NOTE (NORETURN)
 
@@ -164,5 +164,6 @@ REG_NOTE (CROSSING_JUMP)
    functions that can return twice.  */
 REG_NOTE (SETJMP)
 
-/* Indicate calls that always returns.  */
-REG_NOTE (ALWAYS_RETURN)
+/* This kind of note identifies what libcall id an instruction is part of.  */
+REG_NOTE (LIBCALL_ID)
+