6 #ifndef _BEPHICONGR_T_H
7 #define _BEPHICONGR_T_H
13 typedef struct _phi_info_t {
14 ir_node *phi; /* only set in args of phi nodes (which could be a phi itslef). Points to a phi node or NULL */
15 pset *phi_class; /* only set in phi nodes. A set containing the members of the phi congruence class this phi node belongs to */
18 extern size_t phi_irn_data_offset;
21 * Setting this to 0 will treat const nodes like
22 * all other nodes when computing phi congruence classes.
23 * A non zero value results in splitting phi congruence
24 * classes at all const nodes (except they do share
25 * some non-const nodes too)
27 * A non zero value can only be set if copies of const
28 * nodes are placed correctly.
30 #define CONSTS_SPLIT_PHI_CLASSES 1
31 #define get_irn_phi_info(irn) get_irn_data(irn, phi_info_t, phi_irn_data_offset)
32 #define get_phi_class(irn) get_irn_phi_info(irn)->phi_class /* Only for phi nodes */
34 void be_phi_congr_class_init(void);
35 pset *be_phi_congr_classes(pset *all_phi_nodes);