/* Routines for discovering and unpropagating edge equivalences.
- Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2008, 2010
+ Free Software Foundation, Inc.
This file is part of GCC.
#include "tm.h"
#include "tree.h"
#include "flags.h"
-#include "rtl.h"
#include "tm_p.h"
-#include "ggc.h"
#include "basic-block.h"
#include "output.h"
-#include "expr.h"
#include "function.h"
-#include "diagnostic.h"
#include "timevar.h"
#include "tree-dump.h"
#include "tree-flow.h"
#include "domwalk.h"
-#include "real.h"
#include "tree-pass.h"
#include "tree-ssa-propagate.h"
#include "langhooks.h"
in the CFG.
When complete, each edge that creates an equivalency will have an
- EDGE_EQUIVALENCY structure hanging off the edge's AUX field.
+ EDGE_EQUIVALENCY structure hanging off the edge's AUX field.
The caller is responsible for freeing the AUX fields. */
static void
equivalency->rhs = op1;
if (code == EQ_EXPR)
true_edge->aux = equivalency;
- else
+ else
false_edge->aux = equivalency;
}
free (equiv_hash_elt);
equiv_hash_elt = (struct equiv_hash_elt *) *slot;
-
+
VEC_safe_push (tree, heap, equiv_hash_elt->equivalences, equivalence);
}
/* If there are no PHI nodes in this destination, then there is
no sense in recording any equivalences. */
- if (!phis)
+ if (gimple_seq_empty_p (phis))
continue;
/* Record any equivalency associated with E. */
return flag_tree_dom != 0;
}
-struct gimple_opt_pass pass_uncprop =
+struct gimple_opt_pass pass_uncprop =
{
{
GIMPLE_PASS,