GCC Middle and Back End API Reference
|
#include <tree-ssa-live.h>
Data Fields | |
partition | var_partition |
int * | partition_to_view |
int * | view_to_partition |
unsigned int | num_partitions |
unsigned int | partition_size |
int | num_basevars |
int * | partition_to_base_index |
Routines for liveness in SSA trees. Copyright (C) 2003-2013 Free Software Foundation, Inc. Contributed by Andrew MacLeod amacl eod@ redha t.co m
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, 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/. Used to create the variable mapping when we go out of SSA form.
Mapping from an ssa_name to a partition number is maintained, as well as partition number back to ssa_name.
This data structure also supports "views", which work on a subset of all partitions. This allows the coalescer to decide what partitions are interesting to it, and only work with those partitions. Whenever the view is changed, the partition numbers change, but none of the partition groupings change. (ie, it is truly a view since it doesn't change anything)
The final component of the data structure is the basevar map. This provides a list of all the different base variables which occur in a partition view, and a unique index for each one. Routines are provided to quickly produce the base variable of a partition.
Note that members of a partition MUST all have the same base variable.
int _var_map::num_basevars |
Number of base variables in the base var list.
Referenced by var_map_base_fini().
unsigned int _var_map::num_partitions |
Current number of partitions in var_map based on the current view.
Referenced by calculate_live_on_exit(), and var_map_base_fini().
unsigned int _var_map::partition_size |
Original full partition size.
Referenced by var_map_base_fini().
int* _var_map::partition_to_base_index |
Map of partitions numbers to base variable table indexes.
Referenced by var_to_partition_to_var().
int* _var_map::partition_to_view |
Vector for managing partitions views.
Referenced by calculate_live_on_exit(), partition_to_var(), partition_view_fini(), var_map_base_fini(), and version_to_var().
partition _var_map::var_partition |
The partition manager of all variables.
Referenced by calculate_live_on_exit(), delete_var_map(), num_var_partitions(), partition_to_var(), var_map_base_fini(), and version_to_var().
int* _var_map::view_to_partition |
Referenced by calculate_live_on_exit(), num_var_partitions(), partition_view_fini(), and var_map_base_fini().