GCC Middle and Back End API Reference
ssa_name_limit_t Class Reference

#include <pointer-query.h>

Collaboration diagram for ssa_name_limit_t:

Public Member Functions

 ssa_name_limit_t ()
 
bool visit_phi (tree)
 
void leave_phi (tree)
 
bool next ()
 
int next_phi (tree)
 
 ~ssa_name_limit_t ()
 

Private Member Functions

 DISABLE_COPY_AND_ASSIGN (ssa_name_limit_t)
 

Private Attributes

bitmap visited
 
unsigned ssa_def_max
 

Detailed Description

Definitions of the pointer_query and related classes. Copyright (C) 2020-2025 Free Software Foundation, Inc. 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/>.
Describes recursion limits used by functions that follow use-def chains of SSA_NAMEs.

Constructor & Destructor Documentation

◆ ssa_name_limit_t()

ssa_name_limit_t::ssa_name_limit_t ( )
inline

References ssa_def_max, and visited.

Referenced by DISABLE_COPY_AND_ASSIGN().

◆ ~ssa_name_limit_t()

ssa_name_limit_t::~ssa_name_limit_t ( )

References BITMAP_FREE, and visited.

Member Function Documentation

◆ DISABLE_COPY_AND_ASSIGN()

ssa_name_limit_t::DISABLE_COPY_AND_ASSIGN ( ssa_name_limit_t )
private

References ssa_name_limit_t().

◆ leave_phi()

void ssa_name_limit_t::leave_phi ( tree ssa_name)
Clear a bit for the PHI in VISITED.

References bitmap_clear_bit(), ssa_name, SSA_NAME_VERSION, and visited.

Referenced by access_ref::get_ref().

◆ next()

bool ssa_name_limit_t::next ( )
Return false if the SSA_NAME chain length counter has reached the limit, otherwise increment the counter and return true.

References ssa_def_max.

Referenced by handle_ssa_name().

◆ next_phi()

int ssa_name_limit_t::next_phi ( tree ssa_name)
If the SSA_NAME has already been "seen" return a positive value. Otherwise add it to VISITED. If the SSA_NAME limit has been reached, return a negative value. Otherwise return zero.

References ssa_def_max, ssa_name, SSA_NAME_DEF_STMT, and visit_phi().

Referenced by strlen_pass::count_nonzero_bytes(), and strlen_pass::count_nonzero_bytes_addr().

◆ visit_phi()

bool ssa_name_limit_t::visit_phi ( tree ssa_name)
Set a bit for the PHI in VISITED and return true if it wasn't already set.

References BITMAP_ALLOC, bitmap_set_bit, NULL, ssa_name, SSA_NAME_VERSION, and visited.

Referenced by access_ref::get_ref(), and next_phi().

Field Documentation

◆ ssa_def_max

unsigned ssa_name_limit_t::ssa_def_max
private

Referenced by next(), next_phi(), and ssa_name_limit_t().

◆ visited

bitmap ssa_name_limit_t::visited
private

The documentation for this class was generated from the following files: