GCC Middle and Back End API Reference
_var_map Struct Reference

#include <tree-ssa-live.h>

Collaboration diagram for _var_map:

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
 
bitmap bmp_bbs
 
vec< basic_blockvec_bbs
 
bitmap bitint
 
bool outofssa_p
 

Detailed Description

Routines for liveness in SSA trees. Copyright (C) 2003-2025 Free Software Foundation, Inc. Contributed by Andrew MacLeod <amacleod@redhat.com> 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

◆ bitint

bitmap _var_map::bitint

◆ bmp_bbs

bitmap _var_map::bmp_bbs

◆ num_basevars

int _var_map::num_basevars

◆ num_partitions

unsigned int _var_map::num_partitions

◆ outofssa_p

bool _var_map::outofssa_p

◆ partition_size

unsigned int _var_map::partition_size

◆ partition_to_base_index

int* _var_map::partition_to_base_index

◆ partition_to_view

int* _var_map::partition_to_view

◆ var_partition

partition _var_map::var_partition

◆ vec_bbs

◆ view_to_partition

int* _var_map::view_to_partition

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