GCC Middle and Back End API Reference
pointer_equiv_analyzer Class Reference

#include <value-pointer-equiv.h>

Collaboration diagram for pointer_equiv_analyzer:

Public Member Functions

 pointer_equiv_analyzer (gimple_ranger *r)
 
 ~pointer_equiv_analyzer ()
 
void enter (basic_block)
 
void leave (basic_block)
 
void visit_stmt (gimple *stmt)
 
tree get_equiv (tree ssa)
 

Private Member Functions

void visit_edge (edge e)
 
tree get_equiv_expr (tree_code code, tree expr)
 
void set_global_equiv (tree ssa, tree pointee)
 
void set_cond_equiv (tree ssa, tree pointee)
 

Private Attributes

gimple_rangerm_ranger
 
auto_vec< treem_global_points
 
class ssa_equiv_stackm_cond_points
 

Detailed Description

Header file for the context-aware pointer equivalence tracker. Copyright (C) 2020-2025 Free Software Foundation, Inc. Contributed by Aldy Hernandez <aldyh@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/>.

Constructor & Destructor Documentation

◆ pointer_equiv_analyzer()

pointer_equiv_analyzer::pointer_equiv_analyzer ( gimple_ranger * r)

◆ ~pointer_equiv_analyzer()

pointer_equiv_analyzer::~pointer_equiv_analyzer ( )

References m_cond_points.

Member Function Documentation

◆ enter()

◆ get_equiv()

tree pointer_equiv_analyzer::get_equiv ( tree ssa)

◆ get_equiv_expr()

tree pointer_equiv_analyzer::get_equiv_expr ( tree_code code,
tree expr )
private

◆ leave()

void pointer_equiv_analyzer::leave ( basic_block bb)

References m_cond_points.

◆ set_cond_equiv()

void pointer_equiv_analyzer::set_cond_equiv ( tree ssa,
tree pointee )
private

References m_cond_points.

Referenced by visit_edge().

◆ set_global_equiv()

void pointer_equiv_analyzer::set_global_equiv ( tree ssa,
tree pointee )
private

References m_global_points, num_ssa_names, and SSA_NAME_VERSION.

Referenced by enter(), and visit_stmt().

◆ visit_edge()

void pointer_equiv_analyzer::visit_edge ( edge e)
private

◆ visit_stmt()

Field Documentation

◆ m_cond_points

class ssa_equiv_stack* pointer_equiv_analyzer::m_cond_points
private

◆ m_global_points

auto_vec<tree> pointer_equiv_analyzer::m_global_points
private

◆ m_ranger

gimple_ranger* pointer_equiv_analyzer::m_ranger
private

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