4 * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
6 * This file is part of libFirm.
8 * This file may be distributed and/or modified under the terms of the
9 * GNU General Public License version 2 as published by the Free Software
10 * Foundation and appearing in the file LICENSE.GPL included in the
11 * packaging of this file.
13 * Licensees holding valid libFirm Professional Edition licenses may use
14 * this file in accordance with the libFirm Commercial License.
15 * Agreement provided with the Software.
17 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * @brief Load/Store Transfer Functions
26 * @date Fri Nov 26 17:29:49 CET 2004
34 pto_mod: Load/Store Transfer Functions
41 # include "pto_debug.h"
42 # include "pto_name.h"
46 /* Local Data Types: */
48 /* Local Variables: */
50 /* Local Prototypes: */
52 /* ===================================================
54 =================================================== */
57 /* ===================================================
58 Exported Implementation:
59 =================================================== */
60 /* Perform the given store; return nonzero iff any involved values change */
61 int mod_store (ir_node *store, ir_entity *ent,
62 pto_t *ptr_pto, pto_t *val_pto)
66 /* foreach descr in ptr_pto, add val_pto->values to descr.ent */
68 qset_t *ptos = ptr_pto->values;
70 desc_t *desc = (desc_t*) qset_start (ptos);
72 while (NULL != desc) {
73 qset_t *entry = get_entry (desc, ent);
75 change |= qset_insert_all (entry, val_pto->values);
77 desc = (desc_t*) qset_next (ptos);
83 /* Perform the given load; return nonzero iff any involved values change */
84 int mod_load (ir_node *load, ir_entity *ent,
88 pto_t *res = get_node_pto (load);
89 /* todo: for each descr in ptr_pto, add descr.ent to res */
91 qset_t *ptos = ptr_pto->values;
92 desc_t *desc = (desc_t*) qset_start (ptos);
94 while (NULL != desc) {
95 qset_t *entry = get_entry (desc, ent);
97 change |= qset_insert_all (res->values, entry);
99 desc = (desc_t*) qset_next (ptos);
109 Revision 1.3 2006/12/13 19:46:47 beck
110 rename type entity into ir_entity
112 Revision 1.2 2004/12/02 16:17:51 beck
113 fixed config.h include
115 Revision 1.1 2004/11/30 14:47:54 liekweg
116 fix initialisation; do correct iteration