Author: dcoakley Date: 2010-12-20 23:08:24 -0500 (Mon, 20 Dec 2010) New Revision: 3443
Added: trunk/osprey/common/ipfec_targ_info/access/ti_init.c trunk/osprey/common/ipfec_targ_info/access/ti_init.h trunk/osprey/common/ipfec_targ_info/access/ti_si.h trunk/osprey/common/ipfec_targ_info/access/ti_si_types.h Modified: trunk/osprey/be/be/Makefile.gbase trunk/osprey/common/ipfec_targ_info/Makefile.gbase trunk/osprey/common/targ_info/access/ti_errors.h trunk/osprey/common/targ_info/access/ti_init.c trunk/osprey/common/targ_info/access/ti_init.h trunk/osprey/common/targ_info/access/ti_si.h trunk/osprey/targdir/be/Makefile.in Log: Create fork of targ_info SI-related files for ipfec_targ_info. After this change, the targ_info scheduling info (SI) interface can be changed separately for targ_info and ipfec_targ_info. o Make ipfec_targ_info-specific copies of ti_init.[ch], ti_si[_types].h. o When building the backend (be), reference targ_info source files through the configurable variable TARG_INFO_NAME. o When building ipfec_targ_info, make references to source files in osprey/common/targ_info through explicit soft links rather than using VPATH. Compiling this way allows header files in ipfec_targ_info to take precedence over those with the same name in targ_info, and makes it more clear which source files from targ_info are being shared. o Delete mistaken svn:executable property from source files in osprey/common/targ_info/access. Approved by: Jian-Xin Lai Modified: trunk/osprey/be/be/Makefile.gbase =================================================================== --- trunk/osprey/be/be/Makefile.gbase 2010-12-21 03:58:25 UTC (rev 3442) +++ trunk/osprey/be/be/Makefile.gbase 2010-12-21 04:08:24 UTC (rev 3443) @@ -1,6 +1,6 @@ # -*- Makefile -*- # -# Copyright (C) 2009 Advanced Micro Devices, Inc. All Rights Reserved. +# Copyright (C) 2009-2010 Advanced Micro Devices, Inc. All Rights Reserved. # # Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. # @@ -186,7 +186,7 @@ COMMON_COM_DIR = $(COMMON_DIR)/com COMMON_UTIL_DIR = $(COMMON_DIR)/util COMMON_COM_TARG_DIR = $(COMMON_COM_DIR)/$(BUILD_TARGET_DIR) -COMMON_TARG_INFO_ACCESS_DIR = $(COMMON_DIR)/targ_info/access +COMMON_TARG_INFO_ACCESS_DIR = $(TARG_INFO_SRC)/access COMMON_UTIL_DIR = $(COMMON_DIR)/util COMMON_UTIL_TARG_DIR = $(COMMON_UTIL_DIR)/$(BUILD_TARGET_DIR) COMMON_INSTR_DIR = $(BUILD_TOT)/common/instrument Modified: trunk/osprey/common/ipfec_targ_info/Makefile.gbase =================================================================== --- trunk/osprey/common/ipfec_targ_info/Makefile.gbase 2010-12-21 03:58:25 UTC (rev 3442) +++ trunk/osprey/common/ipfec_targ_info/Makefile.gbase 2010-12-21 04:08:24 UTC (rev 3443) @@ -1,4 +1,5 @@ # +# Copyright (C) 2010 Advanced Micro Devices, Inc. All Rights Reserved. # # Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved. # @@ -136,7 +137,13 @@ SI_EXPORT_LIST = $(TARGINFO_GENERATE_DIR)/si.Exported endif -VPATH = $(SRC_DIRS) +VPATH = \ + $(CURRENT_DIR) \ + $(TARGINFO_ACCESS_DIR) \ + $(TARGINFO_GENERATE_DIR) \ + $(TARGINFO_DIR) \ + $(TARGINFO_MSCHED_DIR) \ + $(COMMON_COM_DIR) LCOPTS = $(STD_COMPILE_OPTS) LCDEFS = $(HOSTDEFS) $(TARGDEFS) @@ -209,6 +216,23 @@ LIB_LOC = $(STD_MONGOOSE_LOC) endif +TARGINFO_ISA_SRCS = \ + isa_hazards.cxx \ + isa_pack.cxx \ + isa_decode.cxx \ + isa_pseudo.cxx \ + isa_print.cxx + +TARGINFO_GENERATE_SRCS = \ + isa_hazards_gen.cxx \ + isa_pack_gen.cxx \ + isa_decode_gen.cxx \ + isa_pseudo_gen.cxx \ + isa_print_gen.cxx \ + gen_util.cxx + +TARGINFO_GENERATE_HDRS = $(TARGINFO_GENERATE_SRCS:.cxx=.h) + TARGINFO_ACCESS_SRCS = \ ti_asm.c \ ti_bundle.c \ @@ -420,34 +444,36 @@ # #---------------------------------------------------------------------- -# to install header files, they must be in the current directory. -ti_asm.h: - ln -s $(OLD_TARGINFO_ACCESS_DIR)/ti_asm.h ti_asm.h -ti_bundle.h: - ln -s $(OLD_TARGINFO_ACCESS_DIR)/ti_bundle.h ti_bundle.h -ti_latency.h: - ln -s $(OLD_TARGINFO_ACCESS_DIR)/ti_latency.h ti_latency.h -ti_errors.h: - ln -s $(OLD_TARGINFO_ACCESS_DIR)/ti_errors.h ti_errors.h +# +# Set up links to "old" targ_info source files. +# +$(TARGINFO_ACCESS_SRCS) $(TARGINFO_ACCESS_HDRS) $(OLD_TARGINFO_ACCESS_C): + ln -sf $(OLD_TARGINFO_ACCESS_DIR)/$@ $@ +$(TARGINFO_GENERATE_SRCS) $(TARGINFO_GENERATE_HDRS): + ln -sf $(OLD_TARGINFO_GENERATE_DIR)/$@ $@ + +$(TARGINFO_ISA_SRCS): + ln -sf $(OLD_TARGINFO_ISA_DIR)/$@ $@ + + ti_asm.o: ti_asm.c topcode.h targ_isa_operands.h targ_isa_print.h \ targ_isa_pack.h targ_isa_bundle.h targ_isa_decode.h \ targ_isa_pseudo.h ti_errors.h ti_asm.h - $(CC) $(CFLAGS) -c $(OLD_TARGINFO_ACCESS_DIR)/ti_asm.c + $(CC) $(CFLAGS) -c ti_asm.c ti_bundle.o: ti_bundle.c ti_si.h targ_isa_bundle.h ti_bundle.h - $(CC) $(CFLAGS) -c $(OLD_TARGINFO_ACCESS_DIR)/ti_bundle.c + $(CC) $(CFLAGS) -c ti_bundle.c ti_latency.o: ti_latency.c ti_si.h targ_isa_properties.h targ_isa_hazards.h \ targ_isa_subset.h ti_errors.h ti_latency.h - $(CC) $(CFLAGS) -c $(OLD_TARGINFO_ACCESS_DIR)/ti_latency.c + $(CC) $(CFLAGS) -c ti_latency.c ti_errors.o: ti_errors.c ti_errors.h - $(CC) $(CFLAGS) -c $(OLD_TARGINFO_ACCESS_DIR)/ti_errors.c + $(CC) $(CFLAGS) -c ti_errors.c - gen_util.o: gen_util.cxx gen_util.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/gen_util.cxx + $(CXX) $(CXXFLAGS) -c gen_util.cxx ifeq ($(BUILD_COMPILER), EDG) @@ -480,10 +506,10 @@ gen_util.o targ_isa_subset.o topcode.o -o isa_hazards_gen isa_hazards_gen.o: isa_hazards_gen.cxx isa_hazards_gen.h topcode.h targ_isa_subset.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/isa_hazards_gen.cxx + $(CXX) $(CXXFLAGS) -c isa_hazards_gen.cxx isa_hazards.o: isa_hazards.cxx isa_hazards_gen.h topcode.h targ_isa_subset.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_ISA_DIR)/isa_hazards.cxx + $(CXX) $(CXXFLAGS) -c isa_hazards.cxx targ_isa_operands.o: targ_isa_operands.c targ_isa_operands.h targ_isa_properties.h @@ -503,10 +529,10 @@ topcode.o targ_isa_properties.o -o isa_pack_gen isa_pack_gen.o: isa_pack_gen.cxx isa_pack_gen.h topcode.h targ_isa_properties.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/isa_pack_gen.cxx + $(CXX) $(CXXFLAGS) -c isa_pack_gen.cxx isa_pack.o: isa_pack.cxx isa_pack_gen.h topcode.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_ISA_DIR)/isa_pack.cxx + $(CXX) $(CXXFLAGS) -c isa_pack.cxx ## targ_isa_decode.[ch] ## @@ -519,11 +545,11 @@ topcode.o targ_isa_bundle.o -o isa_decode_gen isa_decode_gen.o: isa_decode_gen.cxx isa_decode_gen.h topcode.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/isa_decode_gen.cxx + $(CXX) $(CXXFLAGS) -c isa_decode_gen.cxx isa_decode.o: isa_decode.cxx isa_decode_gen.h topcode.h targ_isa_bundle.h \ targ_isa_pack.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_ISA_DIR)/isa_decode.cxx + $(CXX) $(CXXFLAGS) -c isa_decode.cxx ## targ_isa_pseudo.[ch] ## @@ -540,10 +566,10 @@ -o isa_pseudo_gen isa_pseudo_gen.o: isa_pseudo_gen.cxx isa_pseudo_gen.h topcode.h targ_isa_operands.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/isa_pseudo_gen.cxx + $(CXX) $(CXXFLAGS) -c isa_pseudo_gen.cxx isa_pseudo.o: isa_pseudo.cxx isa_pseudo_gen.h topcode.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_ISA_DIR)/isa_pseudo.cxx + $(CXX) $(CXXFLAGS) -c isa_pseudo.cxx ## targ_isa_print.[ch] ## @@ -557,10 +583,10 @@ topcode.o targ_isa_properties.o -o isa_print_gen isa_print_gen.o: isa_print_gen.cxx isa_print_gen.h topcode.h targ_isa_properties.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_GENERATE_DIR)/isa_print_gen.cxx + $(CXX) $(CXXFLAGS) -c isa_print_gen.cxx isa_print.o: isa_print.cxx isa_print_gen.h topcode.h - $(CXX) $(CXXFLAGS) -c $(OLD_TARGINFO_ISA_DIR)/isa_print.cxx + $(CXX) $(CXXFLAGS) -c isa_print.cxx ## topcode.[ch] ## Copied: trunk/osprey/common/ipfec_targ_info/access/ti_init.c (from rev 3419, trunk/osprey/common/targ_info/access/ti_init.c) =================================================================== --- trunk/osprey/common/ipfec_targ_info/access/ti_init.c (rev 0) +++ trunk/osprey/common/ipfec_targ_info/access/ti_init.c 2010-12-21 04:08:24 UTC (rev 3443) @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2007 PathScale, LLC. All Rights Reserved. + */ +/* + * Copyright 2003, 2004, 2005, 2006 PathScale, Inc. All Rights Reserved. + */ + +/* + + Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it would be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + Further, this software is distributed without any warranty that it is + free of the rightful claim of any third person regarding infringement + or the like. Any license provided herein, whether implied or + otherwise, applies only to this software file. Patent licenses, if + any, provided herein do not apply to combinations of this program with + other software, or any other product whatsoever. + + You should have received a copy of the GNU General Public License along + with this program; if not, write the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston MA 02111-1307, USA. + + Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, + Mountain View, CA 94043, or: + + http://www.sgi.com + + For further information regarding this notice, see: + + http://oss.sgi.com/projects/GenInfo/NoticeExplan + +*/ + + +#ifdef _KEEP_RCS_ID +static const char source_file[] = __FILE__; +static const char rcs_id[] = "$Source: /proj/osprey/CVS/open64/osprey1.0/common/targ_info/access/ti_init.c,v $ $Revision: 1.1.1.1 $"; +#endif /* _KEEP_RCS_ID */ + +#include <alloca.h> +#include <string.h> +#include <ctype.h> + +#include "defs.h" +#include "targ_isa_subset.h" +#include "targ_isa_hazards.h" +#include "targ_isa_registers.h" +#include "targ_abi_properties.h" +#include "targ_proc.h" +#include "dso.h" +#include "errors.h" + +#include "ti_init.h" + +#ifdef __linux__ +const char * sanity_check_targ_so_name_p; +#define sanity_check_targ_so_name sanity_check_targ_so_name_p +#endif + +/* ==================================================================== + * + * TI_Initialize + * + * See interface description + * + * ==================================================================== + */ +void +#if defined(TARG_IA64) || defined(TARG_SL) || defined(TARG_MIPS) || defined(TARG_PPC32) +TI_Initialize(ABI_PROPERTIES_ABI tabi, ISA_SUBSET tisa, PROCESSOR tproc, char *tpath, char* version) +#else +TI_Initialize(ABI_PROPERTIES_ABI tabi, ISA_SUBSET tisa, PROCESSOR tproc, char *tpath) +#endif +{ + static BOOL initialized; + + if ( !initialized ) { + INT i; + const char *targ_name = PROCESSOR_Name(tproc); +#if defined(TARG_IA64) || defined(TARG_SL) || defined(TARG_MIPS) + INT targ_name_len = strlen(targ_name) + strlen(version); +#else + INT targ_name_len = strlen(targ_name); +#endif + char *targ_so_name = alloca(targ_name_len + strlen(".so") + 1); + +#ifndef TARG_NVISA /* no scheduling info for NVISA */ + for (i = 0; i < targ_name_len; i++) { + targ_so_name[i] = tolower(targ_name[i]); + } +#if defined(TARG_IA64) || defined(TARG_SL) || defined(TARG_MIPS) + if (strlen(version) > 0) strcat(targ_so_name, version); +#endif + strcpy(targ_so_name + targ_name_len, ".so"); + + load_so(targ_so_name, tpath, FALSE /*verbose*/); +#endif + + ISA_SUBSET_Value = tisa; + PROCESSOR_Value = tproc; + ABI_PROPERTIES_ABI_Value = tabi; + + ABI_PROPERTIES_Initialize(); + ISA_HAZARD_Initialize(); + ISA_REGISTER_Initialize(); + + + initialized = TRUE; + } +} + +#ifdef __linux__ + +#include "ti_si_types.h" + +SI * const * SI_top_si_p; +SI * const * SI_ID_si_p; +const int * SI_ID_count_p; +SI_ISSUE_SLOT * const * SI_issue_slots_p; +const int * SI_issue_slot_count_p; +SI_RESOURCE * const * SI_resources_p; +const int * SI_resource_count_p; +const SI_RRW * SI_RRW_initializer_p; +const SI_RRW * SI_RRW_overuse_mask_p; + +#endif Copied: trunk/osprey/common/ipfec_targ_info/access/ti_init.h (from rev 3419, trunk/osprey/common/targ_info/access/ti_init.h) =================================================================== --- trunk/osprey/common/ipfec_targ_info/access/ti_init.h (rev 0) +++ trunk/osprey/common/ipfec_targ_info/access/ti_init.h 2010-12-21 04:08:24 UTC (rev 3443) @@ -0,0 +1,89 @@ +/* + + Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it would be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + Further, this software is distributed without any warranty that it is + free of the rightful claim of any third person regarding infringement + or the like. Any license provided herein, whether implied or + otherwise, applies only to this software file. Patent licenses, if + any, provided herein do not apply to combinations of this program with + other software, or any other product whatsoever. + + You should have received a copy of the GNU General Public License along + with this program; if not, write the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston MA 02111-1307, USA. + + Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, + Mountain View, CA 94043, or: + + http://www.sgi.com + + For further information regarding this notice, see: + + http://oss.sgi.com/projects/GenInfo/NoticeExplan + +*/ + + +/* ==================================================================== + * ==================================================================== + * + * Module: ti_init.h + * $Revision: 1.1.1.1 $ + * $Date: 2005/10/21 19:00:00 $ + * $Author: marcel $ + * $Source: /proj/osprey/CVS/open64/osprey1.0/common/targ_info/access/ti_init.h,v $ + * + * Synopsis: + * + * Initialize the targ-info package. + * + * Interface Description: + * + * Misc. functions: + * + * void TI_Initialize( ABI_PROPERTIES_ABI, ISA_SUBSET, PROCESSOR, target-path) + * + * Initialize the package. Needs to be called once per run + * of the backend, before any other operations in the + * targ-info package are used. + * + * ==================================================================== + * ==================================================================== + */ + +#ifndef ti_init_INCLUDED +#define ti_init_INCLUDED + +#ifdef _KEEP_RCS_ID +static const char ti_init_rcs_id[] = "$Source: /proj/osprey/CVS/open64/osprey1.0/common/targ_info/access/ti_init.h,v $ $Revision: 1.1.1.1 $"; +#endif /* _KEEP_RCS_ID */ + +#include "targ_abi_properties.h" +#include "targ_isa_subset.h" +#include "targ_proc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(TARG_IA64) || defined(TARG_SL) || defined(TARG_MIPS) || defined(TARG_PPC32) +extern void +TI_Initialize (ABI_PROPERTIES_ABI, ISA_SUBSET, PROCESSOR, char *tpath, char* version); +#else +extern void +TI_Initialize (ABI_PROPERTIES_ABI, ISA_SUBSET, PROCESSOR, char *tpath); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* ti_init_INCLUDED */ Copied: trunk/osprey/common/ipfec_targ_info/access/ti_si.h (from rev 3419, trunk/osprey/common/targ_info/access/ti_si.h) =================================================================== --- trunk/osprey/common/ipfec_targ_info/access/ti_si.h (rev 0) +++ trunk/osprey/common/ipfec_targ_info/access/ti_si.h 2010-12-21 04:08:24 UTC (rev 3443) @@ -0,0 +1,804 @@ +/* + * Copyright (C) 2007 PathScale, LLC. All Rights Reserved. + */ +/* + * Copyright 2003, 2004, 2005, 2006 PathScale, Inc. All Rights Reserved. + */ + +/* + + Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it would be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + Further, this software is distributed without any warranty that it is + free of the rightful claim of any third person regarding infringement + or the like. Any license provided herein, whether implied or + otherwise, applies only to this software file. Patent licenses, if + any, provided herein do not apply to combinations of this program with + other software, or any other product whatsoever. + + You should have received a copy of the GNU General Public License along + with this program; if not, write the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston MA 02111-1307, USA. + + Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, + Mountain View, CA 94043, or: + + http://www.sgi.com + + For further information regarding this notice, see: + + http://oss.sgi.com/projects/GenInfo/NoticeExplan + +*/ + + +/* ti_si.h + ************************************ + * + * Description: + * + * Access to generated hardware specific scheduling information. The + * data structures and functions declared in this file are actually + * defined in files generated using targ_info/generate/si_gen.c. The + * generated C file is compiled into a DSO and this header provides + * access to the information contained in the DSO. + * + * Resource checking: + * + * Cycle level + * + * type SI_RRW + * + * A Resource Reservation table Word. This is the type of an + * entry in a resource reservation table. The client is + * responsible for keeping a resource reservation table the + * containing one SI_RRW for each cycle being scheduled. This is + * also the type of a single cycle resource requirement. The + * following functions are provided in order to manipulate single + * cycle elements of resource reservation tables and resource + * requiests: + * + * SI_RRW SI_RRW_Initial() + * Return the value of an initalized (no reserved + * resources) resource reservation entry. + * + * SI_RRW SI_RRW_Reserve( SI_RRW table, SI_RRW requirement ) + * Reserve the resource in <requirement> from <table> and + * return the result. IMPORTANT: The resources might not + * be available, the the result must be checked (see + * immediately below). + * + * bool SI_RRW_Has_Overuse( SI_RRW table_entry ) + * Does <table_entry> have a resource overuse? + * + * SI_RRW_Unreserve( SI_RRW table, SI_RRW requirement ) + * Undoes what SI_RRW_Reserve does. + * + * Multi cycle resource requirements + * + * type SI_RR + * + * These represent a sequence of single cycle resource + * requirements, one for each consecutive cycle in a schedule. + * The following access functions are available: + * + * INT SI_RR_Length( SI_RR req ) + * Return the number of consecutive cycles with SI_RRW's + * in <req> + * + * SI_RRW SI_RR_Cycle_RRW( SI_RR req, UINT cycle ) + * Return <req>'s SI_RRW for the given <cycle> + * + * Resource totals: + * + * Sometimes we need to know more about resources than just checking + * for availability. In particular, during software pipelining, we + * calculate the MII of the loop by counting all the resource usages + * of each kind in the loop and comparing to the number available per + * cycle. We'd also like to be able to print the totals in order to + * inform the user of critical resource bottlenecks. The types and + * functions defined in this section should be used for this purpose. + * + * type SI_RESOURCE_ID + * + * An integer type which Represents a single type of resource. + * It may also be used by the client as an index into a table of + * counts. The size of such a table should be the number of + * different types of resource defined for the hardware target, a + * value given by: + * + * INT SI_resource_count + * + * The following access functions are defined for + * SI_RESOURCE_IDs: + * + * const char* SI_RESOURCE_ID_Name( SI_RESOURCE_ID id ) + * The client supplied name of the resource. + * + * UINT SI_RESOURCE_ID_Avail_Per_Cycle( + * SI_RESOURCE_ID id + * ) + * How many of them are available per cycle. + * + * type SI_RESOURCE_TOTAL + * + * Represents the total number of a particular kind of resource + * used over all the cycles of a resource requirement. It has + * the following access functions: + * + * SI_RESOURCE_ID SI_RESOURCE_TOTAL_Resource_Id( + * SI_RESOURCE_TOTAL* total + * ) + * Return the RESOURCE_ID whose usage is described by + * <total>. + * + * INT SI_RESOURCE_TOTAL_Total_Used( + * SI_RESOURCE_TOTAL* total + * ) + * Return the usage count of the RESOURCE_ID whose usage + * is described by <total>. + * + * Calculating resource relevance + * + * Our software pipelining pruning heuristics use a notion of + * resource relevance. In order to facilitate this we provide: + * + * type SI_RESOURCE_ID_SET + * + * SI_RESOURCE_ID_SET SI_RESOURCE_ID_SET_Universe() + * Universal set of resource ids. + * + * SI_RESOURCE_ID_SET SI_RESOURCE_ID_SET_Empty() + * Empty set of resource ids. + * + * SI_RESOURCE_ID_SET + * SI_RESOURCE_ID_SET_Intersection( SI_RESOURCE_ID_SET s0, + * SI_RESOURCE_ID_SET s1 ) + * + * bool SI_RESOURCE_ID_SET_Intersection_Non_Empty( + * SI_RESOURCE_ID_SET s0, + * SI_RESOURCE_ID_SET s1 ) + * + * Is the intersection of <s0> and <s1> non-empty? + * + * bool SI_RESOURCE_ID_SET_Intersection4_Non_Empty( + * SI_RESOURCE_ID_SET s0, + * SI_RESOURCE_ID_SET s1, + * SI_RESOURCE_ID_SET s2, + * SI_RESOURCE_ID_SET s3 ) + * + * Is the intersection of <s0>..<s3> non-empty? + * + * SI_RESOURCE_ID_SET_Complement( SI_RESOURCE_ID_SET s ) + * Return the complement set of <s>. + * + * + * Skewed pipes + * + * Beast (and perhaps other contemplated machines features a "skewed" + * pipe which allows it to issue dependent instuctions in the same + * cycle. This is somewhat described in si_gen.h. The exact best way + * for either a compiler or a simulator to use this information is still + * somewhat open, but we provide access to the essential information: + * + * type ISSUE_SLOT + * + * Represents one of the possible issuse slots provided by the + * machine. It has the following access functions: + * + * const char* SI_ISSUE_SLOT_Name( SI_ISSUE_SLOT* slot ) + * Returns the name supplied by the si_gen client for the + * <slot>. + * + * INT SI_ISSUE_SLOT_Skew( SI_ISSUE_SLOT* slot ) + * Returns the skew associated with the <slot>. This must + * be added to the operand access and result available + * times. + * + * INT SI_ISSUE_SLOT_Avail_Per_Cycle( SI_ISSUE_SLOT* slot ) + * How many instructions can occupy <slot> per cycle. + * + * Access to all the issue slots in the machine is provided by: + * + * INT SI_ISSUE_SLOT_Count(void) + * How many issue slots does the target hardware + * provide. If 0, then no issue slots were defined and + * the target machine isn't "skewed" at all, i.e. don't + * worry about it. + * + * SI_ISSUE_SLOT* SI_Ith_Issue_Slot( UINT i ) + * Return the Ith issue slot in the target architecture. + * Instructions sheculed in the same cycle should be + * emitted in issue slot order. + * + * Impossible to schedule IIs + * + * Some opcodes just cannot be scheduled in certain IIs. For example, we + * cannot schedule floating point divides on beast in IIs which are small + * even multiples of 3. To represent this we provide: + * + * type SI_BAD_II_SET + * + * with the following related functions: + * + * const INT SI_BAD_II_SET_MAX + * The largest possible bad II (for allocating + * data structures indexed by II) + * + * SI_BAD_II_SET SI_BAD_II_SET_Union( SI_BAD_II_SET s1, + * SI_BAD_II_SET s1 ) + * Return the union of the given sets. + * + * bool SI_BAD_II_SET_MemberP( SI_BAD_II_SET s, UINT i ) + * Is <i> a member of <s>? + * + * SI_BAD_II_SET SI_BAD_II_SET_Empty() + * Returns the empty bad II set. + * + * + * TOPCODE relative information + * + * All the scheduing information for a particular TOPCODE is accessible + * via TSI (Top Scheduling Information) functions: + * + * const char* TSI_Name( TOP top ) + * si_gen client supplied name for <top>'s scheduling information + * instruction group. + * + * SI_ID TSI_Id( TOP top ) + * Return the SI_ID of the scheduling information associated with + * <top>. See below for a description of the SI_ID type. + * + * INT TSI_Operand_Access_Time( TOP top, INT operand_index ) + * Time <top> accesses it's <operand_index>'th operand. + * + * INT TSI_Result_Available_Time( TOP top, INT result_index ) + * Time <top> makes it's <result_index>'th result available. + * + * INT TSI_Load_Access_Time( TOP top ) + * Time <top> (a load) reads its value from memory. + * + * INT TSI_Last_Issue_Cycle( TOP top ) + * Time <top> issues its last instruction (non-zero only + * for simulated instructions). + * + * INT TSI_Store_Available_Time( TOP top ) + * Time <top> (a store) makes its result available in memory. + * + * SS_RR TSI_Resource_Requirement( TOP top ) + * Resource requirement to schedule <top>. + * + * SI_BAD_II_SET TSI_II_Bad_IIs( TOP top ) + * Returns a set indicating impossible IIs for this resource + * class. + * + * SI_RR TSI_II_Resource_Requirement( TOP top, UINT ii ) + * A resource requirement for scheduling a <top> in a pipelined + * loop with <ii> cycles. Guaranteed to have at most <ii> cycles + * worth of resource requirement. This will be NULL if + * ii is a member of the bad IIs set. + * + * const SI_RESOURCE_ID_SET* + * TSI_II_Cycle_Resource_Ids_Used( SI_ID, id, INT ii ) + * See SI_ID_II_Cycle_Resource_Ids_Used. + * + * UINT TSI_Resource_Total_Vector_Size( TOP top ) + * SI_RESOURCE_TOTAL* TSI_Resource_Total_Vector( TOP top ) + * A vector and its size that gives the total resource usage for + * each SI_RESOURCE_ID for the given <top>. There will be one + * entry for each resource class together with a count of the + * number of resource it uses. + * + * bool TSI_Write_Write_Interlock( TOP top ) + * For simulation. Do <top> instructions interlock when they + * write to a register already written to but not yet available. + * + * Scheduling information common to a group of TOPCODEs + * + * Principally for software pipelining, it is necessary to deal with + * scheduling information not just by opcode, but by the underlying + * groups of opcodes with identical scheduling information. To faciliate + * this we provide: + * + * TYPE SI_ID + * + * which is an integer type with the following additional access + * functions: + * + * INT SI_ID_Count() + * Returns the number of SI_IDs + * + * const SI_RESOURCE_ID_SET* + * SI_ID_II_Cycle_Resource_Ids_Used( SI_ID id, INT ii ) + * For the given <ii> returns a pointer to the first + * element of a vector of resource id sets. This vector + * is indexed by cycle relative to issue and each cycle's + * set contains just the resources used by the opcodes in + * the scheduling group. Used to compute common resoruce + * usage for software pipelinings pruning heuristics. + * Perhaps it is suprising, but we don't seem to know the + * length of these directly. Rather we are always able + * to derive that information from the topcode relative + * TSI_II_Resource_Requirement. + * + ************************************ + */ + +/* $REVISION: $ + * $Date: 2005/10/21 19:00:00 $ + * $Author: marcel $ + * $Source: /proj/osprey/CVS/open64/osprey1.0/common/targ_info/access/ti_si.h,v $ + */ + +#ifndef SI_INCLUDED +#define SI_INCLUDED +#ifdef __cplusplus +extern "C" { +#endif +#ifndef SI_RCS_ID +#define SI_RCS_ID +#ifdef _KEEP_RCS_ID +static const char SI_rcs_id[] = "$Source: /proj/osprey/CVS/open64/osprey1.0/common/targ_info/access/ti_si.h,v $ $Revision: 1.1.1.1 $"; +#endif +#endif + +// KEY: Worked around linux "weak" bug for bug 13044. +#include "ti_si_types.h" + +/**************************************************************************** + ****************************************************************************/ + +inline SI_BAD_II_SET SI_BAD_II_SET_Union( SI_BAD_II_SET s1, SI_BAD_II_SET s2 ) +{ + SI_BAD_II_SET the_union; + + the_union.dw[0] = s1.dw[0] | s2.dw[0]; + the_union.dw[1] = s1.dw[1] | s2.dw[1]; + + return the_union; +} + +inline INT SI_BAD_II_SET_MemberP( SI_BAD_II_SET s, UINT i ) +{ + UINT bitnum = i - 1; + + if ( bitnum > (UINT)SI_BAD_II_SET_MAX ) return 0; + + return (s.dw[bitnum / 64] & (1ULL << (bitnum % 64))) != 0; +} + +inline SI_BAD_II_SET SI_BAD_II_SET_Empty( void ) +{ + const SI_BAD_II_SET empty_set = {{0,0}}; + + return empty_set; +} + +/**************************************************************************** + ****************************************************************************/ + +inline const char* SI_RESOURCE_Name( SI_RESOURCE* res ) +{ + return res->name; +} + +inline UINT SI_RESOURCE_Id( SI_RESOURCE* res ) +{ + return res->id; +} + +inline UINT SI_RESOURCE_Avail_Per_Cycle( SI_RESOURCE* res ) +{ + return res->avail_per_cycle; +} + +inline UINT SI_RESOURCE_Word_Index( SI_RESOURCE* res ) +{ + return res->word_index; +} + +inline UINT SI_RESOURCE_Bit_Index( SI_RESOURCE* res ) +{ + return res->bit_index; +} + +#if defined(__linux__) && (defined(TARG_X8664) || defined(TARG_LOONGSON)) + +extern const int * SI_resource_count_p; +#define SI_resource_count (*SI_resource_count_p) + +extern SI_RESOURCE * const * SI_resources_p; +#define SI_resources SI_resources_p + +#elif defined(TARG_SL) || defined(TARG_MIPS) +extern INT *SI_resource_count_p; +#define SI_resource_count (*SI_resource_count_p) +extern SI_RESOURCE* (*SI_resources_p)[]; +#define SI_resources (*SI_resources_p) + +#else +extern const INT SI_resource_count; +#pragma weak SI_resource_count + +extern SI_RESOURCE* const SI_resources[]; +#pragma weak SI_resources + +#endif + +inline const char* SI_RESOURCE_ID_Name( SI_RESOURCE_ID id ) +{ + return SI_RESOURCE_Name(SI_resources[id]); +} + +inline UINT SI_RESOURCE_ID_Avail_Per_Cycle( SI_RESOURCE_ID id ) +{ + return SI_RESOURCE_Avail_Per_Cycle(SI_resources[id]); +} + +/**************************************************************************** + ****************************************************************************/ + +inline SI_RESOURCE_ID_SET SI_RESOURCE_ID_SET_Universe(void) +{ + return (SI_RESOURCE_ID_SET)-1 + >> (sizeof(SI_RESOURCE_ID_SET) * 8 - SI_resource_count); +} + +inline SI_RESOURCE_ID_SET SI_RESOURCE_ID_SET_Empty(void) +{ + return (SI_RESOURCE_ID_SET)0; +} + +inline SI_RESOURCE_ID_SET +SI_RESOURCE_ID_SET_Intersection( SI_RESOURCE_ID_SET s0, + SI_RESOURCE_ID_SET s1 ) +{ + return s0 & s1; +} + +inline INT +SI_RESOURCE_ID_SET_Intersection_Non_Empty( SI_RESOURCE_ID_SET s0, + SI_RESOURCE_ID_SET s1 ) +{ + return (s0 & s1) != (SI_RESOURCE_ID_SET)0; +} + +inline INT +SI_RESOURCE_ID_SET_Intersection4_Non_Empty( SI_RESOURCE_ID_SET s0, + SI_RESOURCE_ID_SET s1, + SI_RESOURCE_ID_SET s2, + SI_RESOURCE_ID_SET s3 ) +{ + return (s0 & s1 & s2 & s3) != (SI_RESOURCE_ID_SET)0; +} + +inline SI_RESOURCE_ID_SET +SI_RESOURCE_ID_SET_Complement( SI_RESOURCE_ID_SET s ) +{ + return (~s) & SI_RESOURCE_ID_SET_Universe(); +} + +/**************************************************************************** + ****************************************************************************/ + +#if defined( __linux__ ) && (defined(TARG_X8664) || defined(TARG_LOONGSON)) + +extern const SI_RRW * SI_RRW_initializer_p; +#define SI_RRW_initializer (*SI_RRW_initializer_p) + +extern const SI_RRW * SI_RRW_overuse_mask_p; +#define SI_RRW_overuse_mask (*SI_RRW_overuse_mask_p) + +#elif defined(TARG_SL) || defined(TARG_MIPS) +extern SI_RRW *SI_RRW_initializer_p; +#define SI_RRW_initializer (*SI_RRW_initializer_p) +extern SI_RRW *SI_RRW_overuse_mask_p; +#define SI_RRW_overuse_mask (*SI_RRW_overuse_mask_p) + +#else + +extern const SI_RRW SI_RRW_initializer; +#ifdef SHARED_BUILD +#pragma weak SI_RRW_initializer +#endif + +extern const SI_RRW SI_RRW_overuse_mask; +#ifdef SHARED_BUILD +#pragma weak SI_RRW_overuse_mask +#endif + +#endif + +inline SI_RRW SI_RRW_Initial(void) +{ + return SI_RRW_initializer; +} + +inline SI_RRW SI_RRW_Reserve( SI_RRW table, SI_RRW requirement ) +{ + return table + requirement; +} + +inline SI_RRW SI_RRW_Has_Overuse( SI_RRW table_entry ) +{ + return (table_entry & SI_RRW_overuse_mask) != 0; +} + +inline SI_RRW SI_RRW_Unreserve( SI_RRW table, SI_RRW requirement ) +{ + return table - requirement; +} + +/**************************************************************************** + ****************************************************************************/ + +inline const char* SI_ISSUE_SLOT_Name( SI_ISSUE_SLOT* slot ) +{ + return slot->name; +} + +inline INT SI_ISSUE_SLOT_Skew( SI_ISSUE_SLOT* slot ) +{ + return slot->skew; +} + +inline INT SI_ISSUE_SLOT_Avail_Per_Cycle( SI_ISSUE_SLOT* slot ) +{ + return slot->avail_per_cycle; +} + +#if defined (__linux__) && (defined(TARG_X8664) || defined(TARG_LOONGSON)) + +extern const int * SI_issue_slot_count_p; +#define SI_issue_slot_count (*SI_issue_slot_count_p) + +extern SI_ISSUE_SLOT * const * SI_issue_slots_p; +#define SI_issue_slots SI_issue_slots_p + +#elif defined(TARG_SL) || defined(TARG_MIPS) +extern INT *SI_issue_slot_count_p; +#define SI_issue_slot_count (*SI_issue_slot_count_p) + +extern SI_ISSUE_SLOT *(*SI_issue_slots_p)[]; +#define SI_issue_slots (*SI_issue_slots_p) +#else + +extern const INT SI_issue_slot_count; +#ifdef SHARED_BUILD +#pragma weak SI_issue_slot_count +#endif + +extern SI_ISSUE_SLOT* const SI_issue_slots[]; +#ifdef SHARED_BUILD +#pragma weak SI_issue_slots +#endif + +#endif + +inline INT SI_ISSUE_SLOT_Count(void) +{ + return SI_issue_slot_count; +} + +inline SI_ISSUE_SLOT* SI_Ith_Issue_Slot( UINT i ) +{ + return SI_issue_slots[i]; +} + +/**************************************************************************** + ****************************************************************************/ + +inline SI_RESOURCE* +SI_RESOURCE_TOTAL_Resource( SI_RESOURCE_TOTAL* pair ) +{ + return pair->resource; +} + +inline SI_RESOURCE_ID SI_RESOURCE_TOTAL_Resource_Id( SI_RESOURCE_TOTAL* pair ) +{ + return SI_RESOURCE_Id(SI_RESOURCE_TOTAL_Resource(pair)); +} + +inline UINT SI_RESOURCE_TOTAL_Avail_Per_Cycle(SI_RESOURCE_TOTAL* pair) +{ + return SI_RESOURCE_Avail_Per_Cycle(SI_RESOURCE_TOTAL_Resource(pair)); +} + +inline INT SI_RESOURCE_TOTAL_Total_Used( SI_RESOURCE_TOTAL* pair ) +{ + return pair->total_used; +} + +/**************************************************************************** + ****************************************************************************/ + +inline UINT SI_RR_Length( SI_RR req ) +{ + return (INT) req[0]; +} + +inline SI_RRW SI_RR_Cycle_RRW( SI_RR req, UINT cycle ) +{ + /* TODO: make this compilable with and without defs.h + assert(cycle <= req[0]); + */ + return req[cycle+1]; +} + +/**************************************************************************** + ****************************************************************************/ + +#if defined (__linux__) && (defined(TARG_X8664) ||defined(TARG_LOONGSON)) + +extern SI * const * SI_top_si_p; +#define SI_top_si SI_top_si_p + +#elif defined(TARG_SL) || defined(TARG_MIPS) +extern SI* (*SI_top_si_p)[]; +#define SI_top_si (*SI_top_si_p) +#else + +extern SI* const SI_top_si[]; +#ifdef SHARED_BUILD +#pragma weak SI_top_si +#endif + +#endif + +inline const char* TSI_Name( TOP top ) +{ + return SI_top_si[(INT) top]->name; +} + +inline SI_ID TSI_Id( TOP top ) +{ + return SI_top_si[top]->id; +} + +inline INT +TSI_Operand_Access_Time( TOP top, INT operand_index ) +{ + return SI_top_si[(INT) top]->operand_access_times[operand_index]; +} + +inline INT +TSI_Result_Available_Time( TOP top, INT result_index ) +{ + return SI_top_si[(INT) top]->result_available_times[result_index]; +} + +inline INT +TSI_Load_Access_Time( TOP top ) +{ + return SI_top_si[(INT) top]->load_access_time; +} + +inline INT +TSI_Last_Issue_Cycle( TOP top ) +{ + return SI_top_si[(INT) top]->last_issue_cycle; +} + +inline INT +TSI_Store_Available_Time( TOP top ) +{ + return SI_top_si[(INT) top]->store_available_time; +} + +inline SI_RR TSI_Resource_Requirement( TOP top ) +{ + return SI_top_si[(INT) top]->rr; +} + +inline SI_RR TSI_Alternative_Resource_Requirement( TOP top ) +{ + return SI_top_si[(INT) top]->alter_rr; +} + +inline SI_BAD_II_SET TSI_Bad_IIs( TOP top ) +{ + return SI_top_si[(INT) top]->bad_iis; +} + +inline SI_RR TSI_II_Resource_Requirement( TOP top, INT ii ) +{ + SI* const info = SI_top_si[(INT) top]; + + if ( ii > info->ii_info_size ) return info->rr; + + return info->ii_rr[ii - 1]; +} + +inline const SI_RESOURCE_ID_SET* +TSI_II_Cycle_Resource_Ids_Used( TOP opcode, INT ii ) +{ + SI* const info = SI_top_si[(INT)opcode]; + if ( ii > info->ii_info_size ) return info->resources_used; + + return info->ii_resources_used[ii - 1]; +} + +inline UINT TSI_Valid_Issue_Slot_Count( TOP top ) +{ + return SI_top_si[(INT) top]->valid_issue_slot_count; +} + +inline SI_ISSUE_SLOT* TSI_Valid_Issue_Slots( TOP top, UINT i ) +{ + return SI_top_si[(INT) top]->valid_issue_slots[i]; +} + +inline UINT TSI_Resource_Total_Vector_Size( TOP top ) +{ + return SI_top_si[(INT) top]->resource_total_vector_size; +} + +inline SI_RESOURCE_TOTAL* TSI_Resource_Total_Vector( TOP top ) +{ + return SI_top_si[(INT) top]->resource_total_vector; +} + +inline INT TSI_Write_Write_Interlock( TOP top ) +{ + return SI_top_si[(INT) top]->write_write_interlock; +} + +/**************************************************************************** + ****************************************************************************/ + +#if defined (__linux__) && (defined(TARG_X8664) || defined(TARG_LOONGSON)) + +extern const int * SI_ID_count_p; +#define SI_ID_count (*SI_ID_count_p) + +extern SI * const * SI_ID_si_p; +#define SI_ID_si SI_ID_si_p + +#elif defined(TARG_SL) || defined(TARG_MIPS) +extern INT *SI_ID_count_p; +#define SI_ID_count (*SI_ID_count_p) +extern SI *(*SI_ID_si_p)[]; +#define SI_ID_si (*SI_ID_si_p) + + +#else + +extern const INT SI_ID_count; +#ifdef SHARED_BUILD +#pragma weak SI_ID_count +#endif + +extern SI* const SI_ID_si[]; +#ifdef SHARED_BUILD +#pragma weak SI_ID_si +#endif + +#endif + +inline INT SI_ID_Count(void) +{ + return SI_ID_count; +} + +inline const SI_RESOURCE_ID_SET* +SI_ID_II_Cycle_Resource_Ids_Used( SI_ID id, INT ii ) +{ + SI* const info = SI_ID_si[id]; + if ( ii > info->ii_info_size ) return info->resources_used; + + return info->ii_resources_used[ii - 1]; +} + + +#ifdef __cplusplus +} +#endif +#endif Copied: trunk/osprey/common/ipfec_targ_info/access/ti_si_types.h (from rev 3419, trunk/osprey/common/targ_info/access/ti_si_types.h) =================================================================== --- trunk/osprey/common/ipfec_targ_info/access/ti_si_types.h (rev 0) +++ trunk/osprey/common/ipfec_targ_info/access/ti_si_types.h 2010-12-21 04:08:24 UTC (rev 3443) @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2007 PathScale, LLC. All Rights Reserved. + */ +/* + * Copyright 2003, 2004, 2005, 2006 PathScale, Inc. All Rights Reserved. + */ + +/* + + Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it would be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + Further, this software is distributed without any warranty that it is + free of the rightful claim of any third person regarding infringement + or the like. Any license provided herein, whether implied or + otherwise, applies only to this software file. Patent licenses, if + any, provided herein do not apply to combinations of this program with + other software, or any other product whatsoever. + + You should have received a copy of the GNU General Public License along + with this program; if not, write the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston MA 02111-1307, USA. + + Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, + Mountain View, CA 94043, or: + + http://www.sgi.com + + For further information regarding this notice, see: + + http://oss.sgi.com/projects/GenInfo/NoticeExplan + +*/ + + +/* See ti_si.h for detailed interface description. */ + +#ifndef TI_SI_TYPES_H_INCLUDED +#define TI_SI_TYPES_H_INCLUDED +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum topcode TOPCODE; + +#include "topcode.h" + +/**************************************************************************** + ****************************************************************************/ + +typedef struct { + mUINT64 dw[2]; +} SI_BAD_II_SET; + +enum { SI_BAD_II_SET_MAX=127 }; + +/**************************************************************************** + ****************************************************************************/ + +typedef UINT SI_RESOURCE_ID; + +typedef struct { + const char* name; + SI_RESOURCE_ID id; + mUINT8 avail_per_cycle; + mUINT8 word_index; + mUINT8 bit_index; +} SI_RESOURCE; + +/**************************************************************************** + ****************************************************************************/ + +typedef mUINT64 SI_RESOURCE_ID_SET; + + +/**************************************************************************** + ****************************************************************************/ + +/* SI_RRW -- A resource reservation word */ +typedef mUINT64 SI_RRW; + +/**************************************************************************** + ****************************************************************************/ + +typedef struct { + const char* name; + mINT32 skew; + mINT32 avail_per_cycle; +} SI_ISSUE_SLOT; + +/**************************************************************************** + ****************************************************************************/ + +typedef struct { + SI_RESOURCE* resource; + mINT32 total_used; +} SI_RESOURCE_TOTAL; + +/**************************************************************************** + ****************************************************************************/ + +typedef const SI_RRW* SI_RR; + +/**************************************************************************** + ****************************************************************************/ +typedef UINT SI_ID; + +typedef struct { + const char* name; + SI_ID id; + const mUINT8 *operand_access_times; + const mUINT8 *result_available_times; + mINT32 load_access_time; + mINT32 last_issue_cycle; + mINT32 store_available_time; + SI_RR rr; + SI_RR alter_rr; + const SI_RESOURCE_ID_SET *resources_used; + mUINT32 ii_info_size; + const SI_RR *ii_rr; + const SI_RESOURCE_ID_SET * const *ii_resources_used; + SI_BAD_II_SET bad_iis; + mINT32 valid_issue_slot_count; + SI_ISSUE_SLOT * const *valid_issue_slots; + mINT32 resource_total_vector_size; + SI_RESOURCE_TOTAL *resource_total_vector; + mUINT8 write_write_interlock; +} SI; + +/**************************************************************************** + ****************************************************************************/ + +#ifdef __cplusplus +} +#endif +#endif Property changes on: trunk/osprey/common/targ_info/access/ti_errors.h ___________________________________________________________________ Deleted: svn:executable - Property changes on: trunk/osprey/common/targ_info/access/ti_init.c ___________________________________________________________________ Deleted: svn:executable - Property changes on: trunk/osprey/common/targ_info/access/ti_init.h ___________________________________________________________________ Deleted: svn:executable - Property changes on: trunk/osprey/common/targ_info/access/ti_si.h ___________________________________________________________________ Deleted: svn:executable - Modified: trunk/osprey/targdir/be/Makefile.in =================================================================== --- trunk/osprey/targdir/be/Makefile.in 2010-12-21 03:58:25 UTC (rev 3442) +++ trunk/osprey/targdir/be/Makefile.in 2010-12-21 04:08:24 UTC (rev 3443) @@ -1,6 +1,7 @@ # Define build parameters BUILD_BASE = @top_srcdir@/osprey/be/be BUILD_VARIANT = LICENSING +TARG_INFO_SRC = @top_srcdir@/osprey/common/@TARG_INFO_NAME@ # Include setup file which will then include Makefile.base include @top_builddir@/osprey/Makefile.gsetup ------------------------------------------------------------------------------ Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel