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

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

◆ set_cond_equiv()

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

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