GCC Middle and Back End API Reference
regstat.cc File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "rtl.h"
#include "predict.h"
#include "df.h"
#include "regs.h"
Include dependency graph for regstat.cc:

Functions

void regstat_init_n_sets_and_refs (void)
 
void regstat_free_n_sets_and_refs (void)
 
static void regstat_bb_compute_ri (basic_block bb, bitmap live)
 
void regstat_compute_ri (void)
 
void regstat_free_ri (void)
 
bitmap regstat_get_setjmp_crosses (void)
 
static void regstat_bb_compute_calls_crossed (unsigned int bb_index, bitmap live)
 
void regstat_compute_calls_crossed (void)
 
void regstat_free_calls_crossed (void)
 
void dump_reg_info (FILE *file)
 

Variables

struct regstat_n_sets_and_refs_tregstat_n_sets_and_refs
 
static bitmap setjmp_crosses
 
struct reg_info_treg_info_p
 
size_t reg_info_p_size
 

Function Documentation

◆ dump_reg_info()

◆ regstat_bb_compute_calls_crossed()

◆ regstat_bb_compute_ri()

◆ regstat_compute_calls_crossed()

void regstat_compute_calls_crossed ( void )

◆ regstat_compute_ri()

◆ regstat_free_calls_crossed()

void regstat_free_calls_crossed ( void )
Free all storage associated with the problem.   

References free(), gcc_assert, NULL, reg_info_p, and reg_info_p_size.

◆ regstat_free_n_sets_and_refs()

void regstat_free_n_sets_and_refs ( void )
Free the array that holds the REG_N_SETS and REG_N_REFS.   

References free(), gcc_assert, NULL, and regstat_n_sets_and_refs.

Referenced by do_reload(), find_moveable_pseudos(), ira(), lra(), move_loop_invariants(), one_code_hoisting_pass(), and rest_of_handle_combine().

◆ regstat_free_ri()

void regstat_free_ri ( void )
Free all storage associated with the problem.   

References BITMAP_FREE, free(), gcc_assert, NULL, reg_info_p, reg_info_p_size, and setjmp_crosses.

Referenced by do_reload(), find_moveable_pseudos(), ira(), and lra().

◆ regstat_get_setjmp_crosses()

bitmap regstat_get_setjmp_crosses ( void )
Return a bitmap containing the set of registers that cross a setjmp.
The client should not change or delete this bitmap.   

References setjmp_crosses.

Referenced by assign_spill_hard_regs(), coalesce_spill_slots(), generate_setjmp_warnings(), and update_equiv_regs().

◆ regstat_init_n_sets_and_refs()

void regstat_init_n_sets_and_refs ( void )
If a pass need to change these values in some magical way or the
pass needs to have accurate values for these and is not using
incremental df scanning, then it should use REG_N_SETS and
REG_N_USES.  If the pass is doing incremental scanning then it
should be getting the info from DF_REG_DEF_COUNT and
DF_REG_USE_COUNT.   

References DEBUG_INSN_P, df_grow_reg_info(), DF_REF_INSN, DF_REF_INSN_INFO, DF_REF_NEXT_REG, DF_REG_DEF_COUNT, DF_REG_USE_CHAIN, DF_REG_USE_COUNT, gcc_assert, ggc_alloc(), i, max_reg_num(), max_regno, MAY_HAVE_DEBUG_BIND_INSNS, REG_N_SETS(), regstat_n_sets_and_refs, SET_REG_N_REFS, SET_REG_N_SETS, timevar_pop(), and timevar_push().

Referenced by find_moveable_pseudos(), ira(), move_loop_invariants(), one_code_hoisting_pass(), and rest_of_handle_combine().

Variable Documentation

◆ reg_info_p

◆ reg_info_p_size

size_t reg_info_p_size
The number allocated elements of reg_info_p.   

Referenced by dump_reg_info(), regstat_compute_calls_crossed(), regstat_compute_ri(), regstat_free_calls_crossed(), and regstat_free_ri().

◆ regstat_n_sets_and_refs

struct regstat_n_sets_and_refs_t* regstat_n_sets_and_refs
Scanning of rtl for dataflow analysis.
   Copyright (C) 2007-2024 Free Software Foundation, Inc.
   Contributed by Kenneth Zadeck (zadeck@naturalbridge.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/>.   

Referenced by dump_reg_info(), REG_N_REFS(), REG_N_SETS(), regstat_free_n_sets_and_refs(), and regstat_init_n_sets_and_refs().

◆ setjmp_crosses