00001 /* 00002 * Copyright 2003, 2004, 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: ipc_option.h 00044 * $Revision: 1.1.1.1 $ 00045 * $Date: 2005/10/21 19:00:00 $ 00046 * $Author: marcel $ 00047 * $Source: /proj/osprey/CVS/open64/osprey1.0/ipa/common/ipc_option.h,v $ 00048 * 00049 * Revision history: 00050 * 31-Jul-95 - Original Version 00051 * 00052 * Description: 00053 * 00054 * Flags and routines for processing common INLINE/IPA options. 00055 * See also common/com/config_ipa.[hc]. 00056 * 00057 * ==================================================================== 00058 * ==================================================================== 00059 */ 00060 00061 #ifndef ipc_option_INCLUDED 00062 #define ipc_option_INCLUDED 00063 00064 #ifndef strtab_INCLUDED 00065 #include "strtab.h" // STRTAB_TYPE 00066 #endif 00067 00068 #include <ext/hash_map> 00069 00070 #ifndef mempool_allocator_INCLUDED 00071 #include "mempool_allocator.h" 00072 #endif 00073 00074 struct eqstr 00075 { 00076 bool operator()(const char* s1, const char* s2) const 00077 { 00078 return strcmp(s1, s2) == 0; 00079 } 00080 }; 00081 00082 struct eqint 00083 { 00084 bool operator()(const INT s1, const INT s2) const 00085 { 00086 return (s1 == s2); 00087 } 00088 }; 00089 00090 typedef __gnu_cxx::hash_map<const char*, UINT, __gnu_cxx::hash<const char*>, eqstr > INLINE_PU_MAP; 00091 typedef __gnu_cxx::hash_map<const INT, UINT, __gnu_cxx::hash<INT> > INLINE_EDGE_MAP; 00092 00093 extern UINT User_Specified_Name_Info(char *); 00094 extern UINT User_Specified_Edge_Info(INT); 00095 extern BOOL Is_User_Must_Inline(UINT); 00096 extern BOOL Is_User_No_Inline(UINT); 00097 extern BOOL Is_User_Not_Specified(UINT); 00098 extern BOOL Is_Skip_Not_Specified(char * ); 00099 extern BOOL Is_Skip_Equal(char * ); 00100 00101 #ifdef _STANDALONE_INLINER 00102 extern void Process_Non_Local_Files(); 00103 extern void Process_Non_Local_Libraries(); 00104 #endif // _STANDALONE_INLINER 00105 00106 00107 extern INT number_of_partitions; 00108 00109 #ifdef __cplusplus 00110 extern "C" { 00111 #endif /* __cplusplus */ 00112 00113 extern void Process_Inline_Options ( void ); 00114 extern void Process_IPA_Specfile_Options( void ); 00115 00116 #ifdef __cplusplus 00117 } 00118 #endif /* __cplusplus */ 00119 00120 #endif /* ipc_option_INCLUDED */
1.5.6