Coalescer.xcc
Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechinst.com). Fabrice Rastello (Fabrice.Rastelloens-lyon.fr). Christophe Guillon (Christophe.Guillon@ens-lyon.fr).
Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
Coalescer -- Base class for SSA-based coalescer.
struct Coalescer_;
Coalescer_congruences— For use by Coalescer_CONGRUENCES_FOREACH_VariableClass.
IBList Coalescer_congruences(Coalescer this);
Coalescer_CONGRUENCES_FOREACH_VariableClass— Iterate this Coalescer VariableClass(es).
#define Coalescer_CONGRUENCES_FOREACH_VariableClass(this, congruence) \ IBList_FOREACH(Coalescer_congruences(this), VariableClass_, congruence) #define Coalescer_CONGRUENCES_ENDEACH_VariableClass \ IBList_ENDEACH;
Type of filtering functions for Coalescer
typedef bool (*CoalescerFilter)(Variable, VariableClass, Variable, VariableClass);
Coalescer_mergePhiCongruences— Merge the congruence classes of Operation operands.
void Coalescer_mergePhiCongruences(Coalescer this, Operation operation, CoalescerFilter filter);
Coalescer_mergeCopyCongruences— Merge the congruence classes of copy operation.
void Coalescer_mergeCopyCongruences(Coalescer this, Operation operation, CoalescerFilter filter);
Coalescer_emptyClasses— Initialize Congruence Classes to NULL.
void Coalescer_emptyClasses(Coalescer this);
Coalescer_fillFromWebs— Fill this Coalescer CONGRUENCES using the Variable web links.
void Coalescer_fillFromWebs(Coalescer this);