diff options
Diffstat (limited to 'gcc/ipa-struct-reorg.h')
-rw-r--r-- | gcc/ipa-struct-reorg.h | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/gcc/ipa-struct-reorg.h b/gcc/ipa-struct-reorg.h deleted file mode 100644 index e6df1cf..0000000 --- a/gcc/ipa-struct-reorg.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Struct-reorg optimization. - Copyright (C) 2002, 2003-2007, 2008, 2009 Free Software Foundation, Inc. - Contributed by Olga Golovanevsky <olga@il.ibm.com> - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. - -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 GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#ifndef IPA_STRUCT_REORG_H -#define IPA_STRUCT_REORG_H - -/* This file contains data structures and interfaces required - for struct-reorg optimizations. */ - -/* An access site of the structure field. - We consider an access to be of the following form: - - D.2166_21 = i.6_20 * 8; - D.2167_22 = (struct str_t *) D.2166_21; - D.2168_24 = D.2167_22 + p.5_23; - D.2169_25 = D.2168_24->b; -*/ - -struct field_access_site -{ - /* Statement in which the access site occurs. */ - gimple stmt; /* D.2169_25 = D.2168_24->b; */ - tree comp_ref; /* D.2168_24->b */ - tree field_decl; /* b */ - tree ref; /* D.2168_24 */ - tree num; /* i.6_20 */ - tree offset; /* D2167_22 */ - tree base; /* p.5_23 */ - gimple ref_def_stmt; /* D.2168_24 = D.2167_22 + p.5_23; */ - gimple cast_stmt; /* D.2167_22 = (struct str_t *) D.2166_21; - This statement is not always present. */ -}; - -/* A non-field structure access site. */ -struct access_site -{ - /* A statement in which the access site occurs. */ - gimple stmt; - /* A list of structure variables in the access site. */ - VEC (tree, heap) *vars; -}; - -/* A field of the structure. */ -struct field_entry -{ - /* A field index. */ - int index; - /* Number of times the field is accessed (according to profiling). */ - gcov_type count; - tree decl; - /* A type of a new structure this field belongs to. */ - tree field_mapping; - htab_t acc_sites; -}; - -/* This structure represents a result of the structure peeling. - The original structure is decomposed into substructures, or clusters. */ -struct field_cluster -{ - /* A bitmap of field indices. The set bit indicates that the field - corresponding to it is a part of this cluster. */ - sbitmap fields_in_cluster; - struct field_cluster *sibling; -}; - -/* An information about an individual structure type (RECORD_TYPE) required - by struct-reorg optimizations to perform a transformation. */ -struct data_structure -{ - - /* A main variant of the structure type. */ - tree decl; - - /* Number of fields in the structure. */ - int num_fields; - - /* A structure access count collected through profiling. */ - gcov_type count; - - /* An array of the structure fields, indexed by field ID. */ - struct field_entry *fields; - - /* Non-field accesses of the structure. */ - htab_t accs; - - /* A data structure representing a reorganization decision. */ - struct field_cluster *struct_clustering; - - /* New types to replace the original structure type. */ - VEC(tree, heap) *new_types; -}; - -typedef struct data_structure * d_str; - -#endif /* IPA_STRUCT_REORG_H */ |