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-2024 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

Referenced by expand_used_vars().

◆ 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

Referenced by get_rtx_for_ssa_name().

◆ var_partition

partition _var_map::var_partition

Referenced by get_rtx_for_ssa_name().

◆ vec_bbs

vec<basic_block> _var_map::vec_bbs

Referenced by live_worklist().

◆ view_to_partition

int* _var_map::view_to_partition

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