GCC Middle and Back End API Reference
_var_map Struct 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

Detailed Description

Routines for liveness in SSA trees. Copyright (C) 2003-2013 Free Software Foundation, Inc. Contributed by Andrew MacLeod amacl.nosp@m.eod@.nosp@m.redha.nosp@m.t.co.nosp@m.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.


Field Documentation

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
int* _var_map::view_to_partition

The documentation for this struct was generated from the following file: