* @file
* @brief conv node optimisation
* @author Matthias Braun, Christoph Mallon
- * @version $Id$
*
* Try to minimize the number of conv nodes by changing modes of operations.
* The typical example is the following structure:
#include "vrp.h"
#include "opt_manage.h"
-DEBUG_ONLY(static firm_dbg_module_t *dbg);
+DEBUG_ONLY(static firm_dbg_module_t *dbg;)
static inline int imin(int a, int b) { return a < b ? a : b; }
transformed = conv_transform(pred, mode);
if (node != transformed) {
- vrp_attr *vrp;
-
exchange(node, transformed);
- vrp = vrp_get_info(transformed);
- if (vrp && vrp->valid) {
- vrp->range_type = VRP_VARYING;
- vrp->bits_set = tarval_convert_to(vrp->bits_set, mode);
- vrp->bits_not_set = tarval_convert_to(vrp->bits_not_set, mode);
- }
-
*changed = true;
}
}
static ir_graph_state_t do_deconv(ir_graph *irg)
{
bool changed;
- bool invalidate = false;
FIRM_DBG_REGISTER(dbg, "firm.opt.conv");
DB((dbg, LEVEL_1, "===> Performing conversion optimization on %+F\n", irg));
changed = false;
irg_walk_graph(irg, NULL, conv_opt_walker, &changed);
local_optimize_graph(irg);
- invalidate |= changed;
} while (changed);
return 0;
}
-optdesc_t opt_deconv = {
+static optdesc_t opt_deconv = {
"deconv",
IR_GRAPH_STATE_CONSISTENT_OUT_EDGES,
do_deconv,