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

◆ ~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

◆ 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(), and next_phi().

◆ visited

bitmap ssa_name_limit_t::visited
private

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