00001 //-*-c++-*- 00002 // ==================================================================== 00003 // ==================================================================== 00004 // 00005 // Module: opt_stmt.h 00006 // $Revision: 1.1.1.1 $ 00007 // $Date: 2005/10/21 19:00:00 $ 00008 // $Author: marcel $ 00009 // $Source: /proj/osprey/CVS/open64/osprey1.0/be/opt/opt_stmt.h,v $ 00010 // 00011 // Revision history: 00012 // 27-SEP-94 shin - Original Version 00013 // 00014 // ==================================================================== 00015 // 00016 // Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00017 // 00018 // This program is free software; you can redistribute it and/or modify 00019 // it under the terms of version 2 of the GNU General Public License as 00020 // published by the Free Software Foundation. 00021 // 00022 // This program is distributed in the hope that it would be useful, but 00023 // WITHOUT ANY WARRANTY; without even the implied warranty of 00024 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00025 // 00026 // Further, this software is distributed without any warranty that it 00027 // is free of the rightful claim of any third person regarding 00028 // infringement or the like. Any license provided herein, whether 00029 // implied or otherwise, applies only to this software file. Patent 00030 // licenses, if any, provided herein do not apply to combinations of 00031 // this program with other software, or any other product whatsoever. 00032 // 00033 // You should have received a copy of the GNU General Public License 00034 // along with this program; if not, write the Free Software Foundation, 00035 // Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00036 // 00037 // Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00038 // Mountain View, CA 94043, or: 00039 // 00040 // http://www.sgi.com 00041 // 00042 // For further information regarding this notice, see: 00043 // 00044 // http://oss.sgi.com/projects/GenInfo/NoticeExplan 00045 // 00046 // ==================================================================== 00047 // 00048 // Description: 00049 // 00050 // Declare classes STMT_LIST, STMTREP_ITER, and STMTREP_CONST_ITER 00051 // to provide for lists of STMTREP nodes and for interation through 00052 // these lists. 00053 // 00054 // ==================================================================== 00055 // ==================================================================== 00056 00057 00058 #ifndef opt_stmt_INCLUDED 00059 #define opt_stmt_INCLUDED "opt_stmt.h" 00060 #ifdef _KEEP_RCS_ID 00061 static char *opt_stmtrcs_id = opt_stmt_INCLUDED"$ $Revision$"; 00062 #endif /* _KEEP_RCS_ID */ 00063 00064 00065 #ifndef defs_INCLUDED 00066 #include "defs.h" 00067 #endif 00068 #ifndef cxx_base_INCLUDED 00069 #include "cxx_base.h" 00070 #endif 00071 00072 00073 class STMT_CONTAINER; 00074 class STMTREP; 00075 class EMITTER; 00076 class DU_MANAGER; 00077 00078 00079 // ==================================================================== 00080 00081 00082 class STMT_LIST : public CHAIN { 00083 DECLARE_CHAIN_CLASS( STMT_LIST, STMTREP ) 00084 public: 00085 void Print(FILE *fp = stderr) const; // print out the STMT_LIST 00086 void Gen_wn(STMT_CONTAINER *, EMITTER *); // WN list from STMT_LIST 00087 }; 00088 00089 00090 class STMTREP_ITER : public CHAIN_ITER { 00091 DECLARE_CHAIN_ITER_CLASS( STMTREP_ITER, STMTREP, STMT_LIST ) 00092 public: 00093 STMTREP_ITER(void) {} 00094 ~STMTREP_ITER(void) {} 00095 void Init(void) {} 00096 void Set_Cur(STMTREP *s) { CHAIN_ITER::Set_Cur((CHAIN_NODE *) s); } 00097 }; 00098 00099 00100 class STMTREP_CONST_ITER : public CHAIN_ITER { 00101 DECLARE_CHAIN_CONST_ITER_CLASS( STMTREP_CONST_ITER, STMTREP, STMT_LIST ) 00102 public: 00103 STMTREP_CONST_ITER(void) {} 00104 ~STMTREP_CONST_ITER(void) {} 00105 void Init(void) {} 00106 void Set_Cur(STMTREP *s) { CHAIN_ITER::Set_Cur((CHAIN_NODE *) s); } 00107 }; 00108 00109 00110 // ==================================================================== 00111 00112 00113 #endif // opt_stmt_INCLUDED
1.5.6