GCC Middle and Back End API Reference
edge_info Class Reference
Collaboration diagram for edge_info:

Public Types

typedef std::pair< tree, treeequiv_pair

Public Member Functions

 edge_info (edge)
 ~edge_info ()
void record_simple_equiv (tree, tree)

Data Fields

vec< equiv_pairsimple_equivalences
vec< cond_equivalencecond_equivalences

Private Member Functions

void derive_equivalences (tree, tree, int)

Detailed Description

SSA Dominator optimizations for trees
   Copyright (C) 2001-2024 Free Software Foundation, Inc.
   Contributed by Diego Novillo <dnovillo@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
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
This file implements optimizations on the dominator tree.   
Structure for recording edge equivalences.

Computing and storing the edge equivalences instead of creating
them on-demand can save significant amounts of time, particularly
for pathological cases involving switch statements.

These structures live for a single iteration of the dominator
optimizer in the edge's AUX field.  At the end of an iteration we
free each of these structures.   

Member Typedef Documentation

◆ equiv_pair

Constructor & Destructor Documentation

◆ edge_info()

edge_info::edge_info ( edge e)
Constructor for EDGE_INFO.  An EDGE_INFO instance is always
associated with an edge E.   

References cond_equivalences, free_dom_edge_info(), simple_equivalences, and vNULL.

Referenced by free_dom_edge_info(), and record_edge_info().

◆ ~edge_info()

edge_info::~edge_info ( void )
Destructor just needs to release the vectors.   

References cond_equivalences, and simple_equivalences.

Member Function Documentation

◆ derive_equivalences()

void edge_info::derive_equivalences ( tree name,
tree value,
int recursion_limit )

◆ record_simple_equiv()

void edge_info::record_simple_equiv ( tree lhs,
tree rhs )

Field Documentation

◆ cond_equivalences

◆ simple_equivalences

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