00001 /* 00002 * Copyright 2005, 2006 PathScale, Inc. All Rights Reserved. 00003 */ 00004 00005 /* 00006 00007 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00008 00009 This program is free software; you can redistribute it and/or modify it 00010 under the terms of version 2 of the GNU General Public License as 00011 published by the Free Software Foundation. 00012 00013 This program is distributed in the hope that it would be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 00017 Further, this software is distributed without any warranty that it is 00018 free of the rightful claim of any third person regarding infringement 00019 or the like. Any license provided herein, whether implied or 00020 otherwise, applies only to this software file. Patent licenses, if 00021 any, provided herein do not apply to combinations of this program with 00022 other software, or any other product whatsoever. 00023 00024 You should have received a copy of the GNU General Public License along 00025 with this program; if not, write the Free Software Foundation, Inc., 59 00026 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00027 00028 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00029 Mountain View, CA 94043, or: 00030 00031 http://www.sgi.com 00032 00033 For further information regarding this notice, see: 00034 00035 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00036 00037 */ 00038 00039 00040 /* ==================================================================== 00041 * ==================================================================== 00042 * 00043 * Module: cwh_stmt.h 00044 * $Revision: 1.4 $ 00045 * $Date: 05/03/10 16:47:56-08:00 $ 00046 * $Author: bos@eng-25.internal.keyresearch.com $ 00047 * $Source: /home/bos/bk/kpro64-pending/crayf90/sgi/SCCS/s.cwh_stmt.h $ 00048 * 00049 * Revision history: 00050 * dd-mmm-95 - Original Version 00051 * 00052 * Description: Entry points into cwh_stmt.c 00053 * 00054 * ==================================================================== 00055 * ==================================================================== 00056 */ 00057 00058 #ifndef CWH_STMT_INCLUDED 00059 #define CWH_STMT_INCLUDED 00060 00061 #ifdef _KEEP_RCS_ID 00062 static char *rcs_id = "$Source: /home/bos/bk/kpro64-pending/crayf90/sgi/SCCS/s.cwh_stmt.h $ $Revision: 1.4 $"; 00063 #endif /* _KEEP_RCS_ID */ 00064 00065 00066 extern void cwh_stmt_init_pu(ST * st, INT32 lineno ) ; 00067 extern WN * cwh_stmt_end_pu(void) ; 00068 extern void cwh_stmt_init_file(BOOL is_mp) ; 00069 extern void cwh_stmt_character_icall(INTRINSIC intrinsic); 00070 extern WN * cwh_stmt_add_arrayexp(WN *wn); 00071 extern WN * cwh_stmt_call_helper(INT32 numargs, TY_IDX ty, INT32 inline_state, 00072 INT64 flags); 00073 extern WN * cwh_stmt_return_scalar(ST *st, WN * rv, TY_IDX rty, BOOL write); 00074 extern void cwh_stmt_add_pragma(WN_PRAGMA_ID wn_pragma_id, 00075 BOOL is_omp = FALSE, 00076 ST *st = (ST_IDX) NULL, 00077 INT32 arg1 = 0, 00078 INT32 arg2 = 0) ; 00079 #ifdef KEY /* Bug 2660 */ 00080 extern void cwh_stmt_add_options_pragma(ST *st); 00081 #endif /* KEY Bug 2660 */ 00082 extern void cwh_stmt_add_xpragma(WN_PRAGMA_ID wn_pragma_id, 00083 BOOL is_omp = FALSE, 00084 WN* expr = NULL); 00085 extern void cwh_stmt_postprocess_pu(void); 00086 00087 00088 /* enum to describe where to put pragmas in OPC_FUNCENTRY */ 00089 00090 enum site { 00091 block_ca, /* call site pragmas */ 00092 block_pu /* pu pragmas in OPC_FUNCENTRY */ 00093 }; 00094 00095 00096 extern BOOL cwh_stmt_add_to_preamble(WN *wn,enum site block); 00097 00098 extern USRCPOS current_srcpos ; /* line of current statement */ 00099 00100 /* structure describes nested DO (for parallel and lno directives) */ 00101 struct nested_do { 00102 int depth; /* depth of current nest */ 00103 int current; /* the current nest level */ 00104 BOOL explicit_end; /* True if an explicit end_* is present for region */ 00105 WN_PRAGMA_ID type; /* what directive introduced the nest */ 00106 }; 00107 00108 extern struct nested_do nested_do_descriptor; 00109 extern WN *top_of_loop_additions; /* whirl to stick into the top 00110 of the innermost loop in a 00111 set of pseudonested loops (or 00112 the loop of a regular parallel 00113 loop) */ 00114 00115 extern BOOL fe_invoke_inliner; 00116 /* flag set when we need to invoke inliner after exit */ 00117 00118 extern BOOL still_in_preamble ; /* preamble code ie: generated before fei_user_code_start */ 00119 00120 #endif /* CWH_STMT_INCLUDED */ 00121
1.5.6