X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fresource.h;h=54729701948f0a7219b353b749d183157a88c5ce;hp=ea7c4b28c8808ae5e0b2281764d5de4a481b534a;hb=df2b0bc4a75450d019b2741c570a973a4618d9b0;hpb=783353a14357c6b04c4ad952cafa5f7d34b6ffaa diff --git a/gcc/resource.h b/gcc/resource.h index ea7c4b28c88..54729701948 100644 --- a/gcc/resource.h +++ b/gcc/resource.h @@ -1,29 +1,34 @@ /* Definitions for computing resource usage of specific insns. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC 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 version. +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 +version. -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +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 GNU CC; 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 COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + +#ifndef GCC_RESOURCE_H +#define GCC_RESOURCE_H + +#include "hard-reg-set.h" /* Macro to clear all resources. */ #define CLEAR_RESOURCE(RES) \ do { (RES)->memory = (RES)->unch_memory = (RES)->volatil = (RES)->cc = 0; \ CLEAR_HARD_REG_SET ((RES)->regs); } while (0) -/* The resources used by a given insn. */ +/* The resources used by a given insn. */ struct resources { char memory; /* Insn sets or needs a memory location. */ @@ -33,15 +38,21 @@ struct resources HARD_REG_SET regs; /* Which registers are set or needed. */ }; -extern void mark_target_live_regs PROTO((rtx, rtx, struct resources *)); -extern void mark_set_resources PROTO((rtx, struct resources *, int, - int)); -extern void mark_referenced_resources PROTO((rtx, struct resources *, int)); -extern void clear_hashed_info_for_insn PROTO((rtx)); -extern void incr_ticks_for_insn PROTO((rtx)); -extern void mark_end_of_function_resources PROTO ((rtx, int)); -extern void init_resource_info PROTO((rtx)); -extern void free_resource_info PROTO((void)); -extern rtx find_free_register PROTO((rtx, rtx, const char *, int, - HARD_REG_SET *)); -extern int reg_dead_p PROTO((rtx, rtx)); +/* The kinds of rtl mark_*_resources will consider */ +enum mark_resource_type +{ + MARK_SRC_DEST = 0, + MARK_SRC_DEST_CALL = 1 +}; + +extern void mark_target_live_regs (rtx, rtx, struct resources *); +extern void mark_set_resources (rtx, struct resources *, int, + enum mark_resource_type); +extern void mark_referenced_resources (rtx, struct resources *, int); +extern void clear_hashed_info_for_insn (rtx); +extern void incr_ticks_for_insn (rtx); +extern void mark_end_of_function_resources (rtx, int); +extern void init_resource_info (rtx); +extern void free_resource_info (void); + +#endif /* GCC_RESOURCE_H */