tree-ssa-pre.c (bitmap_find_leader, [...]): Remove dominating stmt argument.
2012-09-24 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces, find_or_generate_expression): Remove dominating stmt argument. (find_leader_in_sets, phi_translate_1, bitmap_find_leader, create_component_ref_by_pieces_1, create_component_ref_by_pieces, do_regular_insertion, do_partial_partial_insertion): Adjust. (compute_avail): Do not set uids. From-SVN: r191664
This commit is contained in:
parent
04208228d8
commit
e076271b02
@ -1,3 +1,12 @@
|
||||
2012-09-24 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces,
|
||||
find_or_generate_expression): Remove dominating stmt argument.
|
||||
(find_leader_in_sets, phi_translate_1, bitmap_find_leader,
|
||||
create_component_ref_by_pieces_1, create_component_ref_by_pieces,
|
||||
do_regular_insertion, do_partial_partial_insertion): Adjust.
|
||||
(compute_avail): Do not set uids.
|
||||
|
||||
2012-09-24 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
|
||||
|
@ -453,7 +453,7 @@ static struct
|
||||
} pre_stats;
|
||||
|
||||
static bool do_partial_partial;
|
||||
static pre_expr bitmap_find_leader (bitmap_set_t, unsigned int, gimple);
|
||||
static pre_expr bitmap_find_leader (bitmap_set_t, unsigned int);
|
||||
static void bitmap_value_insert_into_set (bitmap_set_t, pre_expr);
|
||||
static void bitmap_value_replace_in_set (bitmap_set_t, pre_expr);
|
||||
static void bitmap_set_copy (bitmap_set_t, bitmap_set_t);
|
||||
@ -463,9 +463,8 @@ static void bitmap_insert_into_set_1 (bitmap_set_t, pre_expr,
|
||||
unsigned int, bool);
|
||||
static bitmap_set_t bitmap_set_new (void);
|
||||
static tree create_expression_by_pieces (basic_block, pre_expr, gimple_seq *,
|
||||
gimple, tree);
|
||||
static tree find_or_generate_expression (basic_block, pre_expr, gimple_seq *,
|
||||
gimple);
|
||||
tree);
|
||||
static tree find_or_generate_expression (basic_block, tree, gimple_seq *);
|
||||
static unsigned int get_expr_value_id (pre_expr);
|
||||
|
||||
/* We can add and remove elements and entries to and from sets
|
||||
@ -1339,9 +1338,9 @@ find_leader_in_sets (unsigned int val, bitmap_set_t set1, bitmap_set_t set2)
|
||||
{
|
||||
pre_expr result;
|
||||
|
||||
result = bitmap_find_leader (set1, val, NULL);
|
||||
result = bitmap_find_leader (set1, val);
|
||||
if (!result && set2)
|
||||
result = bitmap_find_leader (set2, val, NULL);
|
||||
result = bitmap_find_leader (set2, val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -1733,39 +1732,26 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
|
||||
|
||||
case NAME:
|
||||
{
|
||||
gimple phi = NULL;
|
||||
edge e;
|
||||
gimple def_stmt;
|
||||
tree name = PRE_EXPR_NAME (expr);
|
||||
|
||||
def_stmt = SSA_NAME_DEF_STMT (name);
|
||||
gimple def_stmt = SSA_NAME_DEF_STMT (name);
|
||||
/* If the SSA name is defined by a PHI node in this block,
|
||||
translate it. */
|
||||
if (gimple_code (def_stmt) == GIMPLE_PHI
|
||||
&& gimple_bb (def_stmt) == phiblock)
|
||||
phi = def_stmt;
|
||||
else
|
||||
return expr;
|
||||
|
||||
e = find_edge (pred, gimple_bb (phi));
|
||||
if (e)
|
||||
{
|
||||
tree def = PHI_ARG_DEF (phi, e->dest_idx);
|
||||
pre_expr newexpr;
|
||||
|
||||
if (TREE_CODE (def) == SSA_NAME)
|
||||
def = VN_INFO (def)->valnum;
|
||||
edge e = find_edge (pred, gimple_bb (def_stmt));
|
||||
tree def = PHI_ARG_DEF (def_stmt, e->dest_idx);
|
||||
|
||||
/* Handle constant. */
|
||||
if (is_gimple_min_invariant (def))
|
||||
return get_or_alloc_expr_for_constant (def);
|
||||
|
||||
if (TREE_CODE (def) == SSA_NAME && ssa_undefined_value_p (def))
|
||||
return NULL;
|
||||
|
||||
newexpr = get_or_alloc_expr_for_name (def);
|
||||
return newexpr;
|
||||
return get_or_alloc_expr_for_name (def);
|
||||
}
|
||||
/* Otherwise return it unchanged - it will get cleaned if its
|
||||
value is not available in PREDs AVAIL_OUT set of expressions. */
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
@ -1854,7 +1840,7 @@ phi_translate_set (bitmap_set_t dest, bitmap_set_t set, basic_block pred,
|
||||
Return NULL if no leader is found. */
|
||||
|
||||
static pre_expr
|
||||
bitmap_find_leader (bitmap_set_t set, unsigned int val, gimple stmt)
|
||||
bitmap_find_leader (bitmap_set_t set, unsigned int val)
|
||||
{
|
||||
if (value_id_constant_p (val))
|
||||
{
|
||||
@ -1887,23 +1873,7 @@ bitmap_find_leader (bitmap_set_t set, unsigned int val, gimple stmt)
|
||||
bitmap exprset = VEC_index (bitmap, value_expressions, val);
|
||||
|
||||
EXECUTE_IF_AND_IN_BITMAP (exprset, &set->expressions, 0, i, bi)
|
||||
{
|
||||
pre_expr val = expression_for_id (i);
|
||||
/* At the point where stmt is not null, there should always
|
||||
be an SSA_NAME first in the list of expressions. */
|
||||
if (stmt)
|
||||
{
|
||||
gimple def_stmt = SSA_NAME_DEF_STMT (PRE_EXPR_NAME (val));
|
||||
if (gimple_code (def_stmt) != GIMPLE_PHI
|
||||
&& gimple_bb (def_stmt) == gimple_bb (stmt)
|
||||
/* PRE insertions are at the end of the basic-block
|
||||
and have UID 0. */
|
||||
&& (gimple_uid (def_stmt) == 0
|
||||
|| gimple_uid (def_stmt) >= gimple_uid (stmt)))
|
||||
continue;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
return expression_for_id (i);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@ -2586,8 +2556,7 @@ static bitmap inserted_exprs;
|
||||
|
||||
static tree
|
||||
create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
unsigned int *operand, gimple_seq *stmts,
|
||||
gimple domstmt)
|
||||
unsigned int *operand, gimple_seq *stmts)
|
||||
{
|
||||
vn_reference_op_t currop = &VEC_index (vn_reference_op_s, ref->operands,
|
||||
*operand);
|
||||
@ -2603,31 +2572,15 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
if (TREE_CODE (currop->op0) == FUNCTION_DECL)
|
||||
fn = currop->op0;
|
||||
else
|
||||
{
|
||||
pre_expr op0 = get_or_alloc_expr_for (currop->op0);
|
||||
fn = find_or_generate_expression (block, op0, stmts, domstmt);
|
||||
if (!fn)
|
||||
return NULL_TREE;
|
||||
}
|
||||
fn = find_or_generate_expression (block, currop->op0, stmts);
|
||||
if (currop->op1)
|
||||
{
|
||||
pre_expr scexpr = get_or_alloc_expr_for (currop->op1);
|
||||
sc = find_or_generate_expression (block, scexpr, stmts, domstmt);
|
||||
if (!sc)
|
||||
return NULL_TREE;
|
||||
}
|
||||
sc = find_or_generate_expression (block, currop->op1, stmts);
|
||||
args = XNEWVEC (tree, VEC_length (vn_reference_op_s,
|
||||
ref->operands) - 1);
|
||||
while (*operand < VEC_length (vn_reference_op_s, ref->operands))
|
||||
{
|
||||
args[nargs] = create_component_ref_by_pieces_1 (block, ref,
|
||||
operand, stmts,
|
||||
domstmt);
|
||||
if (!args[nargs])
|
||||
{
|
||||
free (args);
|
||||
return NULL_TREE;
|
||||
}
|
||||
operand, stmts);
|
||||
nargs++;
|
||||
}
|
||||
folded = build_call_array (currop->type,
|
||||
@ -2643,10 +2596,8 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
case MEM_REF:
|
||||
{
|
||||
tree baseop = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
stmts);
|
||||
tree offset = currop->op0;
|
||||
if (!baseop)
|
||||
return NULL_TREE;
|
||||
if (TREE_CODE (baseop) == ADDR_EXPR
|
||||
&& handled_component_p (TREE_OPERAND (baseop, 0)))
|
||||
{
|
||||
@ -2665,30 +2616,15 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
|
||||
case TARGET_MEM_REF:
|
||||
{
|
||||
pre_expr op0expr, op1expr;
|
||||
tree genop0 = NULL_TREE, genop1 = NULL_TREE;
|
||||
vn_reference_op_t nextop = &VEC_index (vn_reference_op_s, ref->operands,
|
||||
++*operand);
|
||||
tree baseop = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
if (!baseop)
|
||||
return NULL_TREE;
|
||||
stmts);
|
||||
if (currop->op0)
|
||||
{
|
||||
op0expr = get_or_alloc_expr_for (currop->op0);
|
||||
genop0 = find_or_generate_expression (block, op0expr,
|
||||
stmts, domstmt);
|
||||
if (!genop0)
|
||||
return NULL_TREE;
|
||||
}
|
||||
genop0 = find_or_generate_expression (block, currop->op0, stmts);
|
||||
if (nextop->op0)
|
||||
{
|
||||
op1expr = get_or_alloc_expr_for (nextop->op0);
|
||||
genop1 = find_or_generate_expression (block, op1expr,
|
||||
stmts, domstmt);
|
||||
if (!genop1)
|
||||
return NULL_TREE;
|
||||
}
|
||||
genop1 = find_or_generate_expression (block, nextop->op0, stmts);
|
||||
return build5 (TARGET_MEM_REF, currop->type,
|
||||
baseop, currop->op2, genop0, currop->op1, genop1);
|
||||
}
|
||||
@ -2705,41 +2641,24 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
case VIEW_CONVERT_EXPR:
|
||||
{
|
||||
tree genop0 = create_component_ref_by_pieces_1 (block, ref,
|
||||
operand,
|
||||
stmts, domstmt);
|
||||
if (!genop0)
|
||||
return NULL_TREE;
|
||||
|
||||
operand, stmts);
|
||||
return fold_build1 (currop->opcode, currop->type, genop0);
|
||||
}
|
||||
|
||||
case WITH_SIZE_EXPR:
|
||||
{
|
||||
tree genop0 = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
pre_expr op1expr = get_or_alloc_expr_for (currop->op0);
|
||||
tree genop1;
|
||||
|
||||
if (!genop0)
|
||||
return NULL_TREE;
|
||||
|
||||
genop1 = find_or_generate_expression (block, op1expr, stmts, domstmt);
|
||||
if (!genop1)
|
||||
return NULL_TREE;
|
||||
|
||||
stmts);
|
||||
tree genop1 = find_or_generate_expression (block, currop->op0, stmts);
|
||||
return fold_build2 (currop->opcode, currop->type, genop0, genop1);
|
||||
}
|
||||
|
||||
case BIT_FIELD_REF:
|
||||
{
|
||||
tree genop0 = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
stmts);
|
||||
tree op1 = currop->op0;
|
||||
tree op2 = currop->op1;
|
||||
|
||||
if (!genop0)
|
||||
return NULL_TREE;
|
||||
|
||||
return fold_build3 (BIT_FIELD_REF, currop->type, genop0, op1, op2);
|
||||
}
|
||||
|
||||
@ -2751,19 +2670,10 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
{
|
||||
tree genop0;
|
||||
tree genop1 = currop->op0;
|
||||
pre_expr op1expr;
|
||||
tree genop2 = currop->op1;
|
||||
pre_expr op2expr;
|
||||
tree genop3 = currop->op2;
|
||||
pre_expr op3expr;
|
||||
genop0 = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
if (!genop0)
|
||||
return NULL_TREE;
|
||||
op1expr = get_or_alloc_expr_for (genop1);
|
||||
genop1 = find_or_generate_expression (block, op1expr, stmts, domstmt);
|
||||
if (!genop1)
|
||||
return NULL_TREE;
|
||||
genop0 = create_component_ref_by_pieces_1 (block, ref, operand, stmts);
|
||||
genop1 = find_or_generate_expression (block, genop1, stmts);
|
||||
if (genop2)
|
||||
{
|
||||
tree domain_type = TYPE_DOMAIN (TREE_TYPE (genop0));
|
||||
@ -2773,13 +2683,7 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
|| integer_zerop (TYPE_MIN_VALUE (domain_type))))
|
||||
genop2 = NULL_TREE;
|
||||
else
|
||||
{
|
||||
op2expr = get_or_alloc_expr_for (genop2);
|
||||
genop2 = find_or_generate_expression (block, op2expr, stmts,
|
||||
domstmt);
|
||||
if (!genop2)
|
||||
return NULL_TREE;
|
||||
}
|
||||
genop2 = find_or_generate_expression (block, genop2, stmts);
|
||||
}
|
||||
if (genop3)
|
||||
{
|
||||
@ -2794,11 +2698,7 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
{
|
||||
genop3 = size_binop (EXACT_DIV_EXPR, genop3,
|
||||
size_int (TYPE_ALIGN_UNIT (elmt_type)));
|
||||
op3expr = get_or_alloc_expr_for (genop3);
|
||||
genop3 = find_or_generate_expression (block, op3expr, stmts,
|
||||
domstmt);
|
||||
if (!genop3)
|
||||
return NULL_TREE;
|
||||
genop3 = find_or_generate_expression (block, genop3, stmts);
|
||||
}
|
||||
}
|
||||
return build4 (currop->opcode, currop->type, genop0, genop1,
|
||||
@ -2809,30 +2709,17 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
tree op0;
|
||||
tree op1;
|
||||
tree genop2 = currop->op1;
|
||||
pre_expr op2expr;
|
||||
op0 = create_component_ref_by_pieces_1 (block, ref, operand,
|
||||
stmts, domstmt);
|
||||
if (!op0)
|
||||
return NULL_TREE;
|
||||
/* op1 should be a FIELD_DECL, which are represented by
|
||||
themselves. */
|
||||
op0 = create_component_ref_by_pieces_1 (block, ref, operand, stmts);
|
||||
/* op1 should be a FIELD_DECL, which are represented by themselves. */
|
||||
op1 = currop->op0;
|
||||
if (genop2)
|
||||
{
|
||||
op2expr = get_or_alloc_expr_for (genop2);
|
||||
genop2 = find_or_generate_expression (block, op2expr, stmts,
|
||||
domstmt);
|
||||
if (!genop2)
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
genop2 = find_or_generate_expression (block, genop2, stmts);
|
||||
return fold_build3 (COMPONENT_REF, TREE_TYPE (op1), op0, op1, genop2);
|
||||
}
|
||||
|
||||
case SSA_NAME:
|
||||
{
|
||||
pre_expr op0expr = get_or_alloc_expr_for (currop->op0);
|
||||
genop = find_or_generate_expression (block, op0expr, stmts, domstmt);
|
||||
genop = find_or_generate_expression (block, currop->op0, stmts);
|
||||
return genop;
|
||||
}
|
||||
case STRING_CST:
|
||||
@ -2867,17 +2754,17 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
|
||||
|
||||
static tree
|
||||
create_component_ref_by_pieces (basic_block block, vn_reference_t ref,
|
||||
gimple_seq *stmts, gimple domstmt)
|
||||
gimple_seq *stmts)
|
||||
{
|
||||
unsigned int op = 0;
|
||||
return create_component_ref_by_pieces_1 (block, ref, &op, stmts, domstmt);
|
||||
return create_component_ref_by_pieces_1 (block, ref, &op, stmts);
|
||||
}
|
||||
|
||||
/* Find a leader for an expression, or generate one using
|
||||
create_expression_by_pieces if it's ANTIC but
|
||||
complex.
|
||||
BLOCK is the basic_block we are looking for leaders in.
|
||||
EXPR is the expression to find a leader or generate for.
|
||||
OP is the tree expression to find a leader for or generate.
|
||||
STMTS is the statement list to put the inserted expressions on.
|
||||
Returns the SSA_NAME of the LHS of the generated expression or the
|
||||
leader.
|
||||
@ -2887,51 +2774,32 @@ create_component_ref_by_pieces (basic_block block, vn_reference_t ref,
|
||||
on failure. */
|
||||
|
||||
static tree
|
||||
find_or_generate_expression (basic_block block, pre_expr expr,
|
||||
gimple_seq *stmts, gimple domstmt)
|
||||
find_or_generate_expression (basic_block block, tree op, gimple_seq *stmts)
|
||||
{
|
||||
pre_expr leader = bitmap_find_leader (AVAIL_OUT (block),
|
||||
get_expr_value_id (expr), domstmt);
|
||||
tree genop = NULL;
|
||||
pre_expr expr = get_or_alloc_expr_for (op);
|
||||
unsigned int lookfor = get_expr_value_id (expr);
|
||||
pre_expr leader = bitmap_find_leader (AVAIL_OUT (block), lookfor);
|
||||
if (leader)
|
||||
{
|
||||
if (leader->kind == NAME)
|
||||
genop = PRE_EXPR_NAME (leader);
|
||||
return PRE_EXPR_NAME (leader);
|
||||
else if (leader->kind == CONSTANT)
|
||||
genop = PRE_EXPR_CONSTANT (leader);
|
||||
return PRE_EXPR_CONSTANT (leader);
|
||||
}
|
||||
|
||||
/* If it's still NULL, it must be a complex expression, so generate
|
||||
it recursively. Not so if inserting expressions for values generated
|
||||
by SCCVN. */
|
||||
if (genop == NULL
|
||||
&& !domstmt)
|
||||
/* It must be a complex expression, so generate it recursively. */
|
||||
bitmap exprset = VEC_index (bitmap, value_expressions, lookfor);
|
||||
bitmap_iterator bi;
|
||||
unsigned int i;
|
||||
EXECUTE_IF_SET_IN_BITMAP (exprset, 0, i, bi)
|
||||
{
|
||||
bitmap exprset;
|
||||
unsigned int lookfor = get_expr_value_id (expr);
|
||||
bool handled = false;
|
||||
bitmap_iterator bi;
|
||||
unsigned int i;
|
||||
|
||||
exprset = VEC_index (bitmap, value_expressions, lookfor);
|
||||
EXECUTE_IF_SET_IN_BITMAP (exprset, 0, i, bi)
|
||||
{
|
||||
pre_expr temp = expression_for_id (i);
|
||||
if (temp->kind != NAME)
|
||||
{
|
||||
handled = true;
|
||||
genop = create_expression_by_pieces (block, temp, stmts,
|
||||
domstmt,
|
||||
get_expr_type (expr));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!handled && domstmt)
|
||||
return NULL_TREE;
|
||||
|
||||
gcc_assert (handled);
|
||||
pre_expr temp = expression_for_id (i);
|
||||
if (temp->kind != NAME)
|
||||
return create_expression_by_pieces (block, temp, stmts,
|
||||
get_expr_type (expr));
|
||||
}
|
||||
return genop;
|
||||
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
||||
#define NECESSARY GF_PLF_1
|
||||
@ -2956,7 +2824,7 @@ find_or_generate_expression (basic_block block, pre_expr expr,
|
||||
|
||||
static tree
|
||||
create_expression_by_pieces (basic_block block, pre_expr expr,
|
||||
gimple_seq *stmts, gimple domstmt, tree type)
|
||||
gimple_seq *stmts, tree type)
|
||||
{
|
||||
tree name;
|
||||
tree folded;
|
||||
@ -2980,7 +2848,7 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
|
||||
case REFERENCE:
|
||||
{
|
||||
vn_reference_t ref = PRE_EXPR_REFERENCE (expr);
|
||||
folded = create_component_ref_by_pieces (block, ref, stmts, domstmt);
|
||||
folded = create_component_ref_by_pieces (block, ref, stmts);
|
||||
}
|
||||
break;
|
||||
case NARY:
|
||||
@ -2990,11 +2858,7 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
|
||||
unsigned i;
|
||||
for (i = 0; i < nary->length; ++i)
|
||||
{
|
||||
pre_expr op = get_or_alloc_expr_for (nary->op[i]);
|
||||
genop[i] = find_or_generate_expression (block, op,
|
||||
stmts, domstmt);
|
||||
if (!genop[i])
|
||||
return NULL_TREE;
|
||||
genop[i] = find_or_generate_expression (block, nary->op[i], stmts);
|
||||
/* Ensure genop[] is properly typed for POINTER_PLUS_EXPR. It
|
||||
may have conversions stripped. */
|
||||
if (nary->opcode == POINTER_PLUS_EXPR)
|
||||
@ -3037,7 +2901,7 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return NULL_TREE;
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
||||
if (!useless_type_conversion_p (exprtype, TREE_TYPE (folded)))
|
||||
@ -3228,10 +3092,8 @@ insert_into_preds_of_block (basic_block block, unsigned int exprnum,
|
||||
|
||||
if (eprime->kind != NAME && eprime->kind != CONSTANT)
|
||||
{
|
||||
builtexpr = create_expression_by_pieces (bprime,
|
||||
eprime,
|
||||
&stmts, NULL,
|
||||
type);
|
||||
builtexpr = create_expression_by_pieces (bprime, eprime,
|
||||
&stmts, type);
|
||||
gcc_assert (!(pred->flags & EDGE_ABNORMAL));
|
||||
gsi_insert_seq_on_edge (pred, stmts);
|
||||
VEC_replace (pre_expr, avail, pred->dest_idx,
|
||||
@ -3474,7 +3336,7 @@ do_regular_insertion (basic_block block, basic_block dom)
|
||||
eprime = fully_constant_expression (eprime);
|
||||
vprime = get_expr_value_id (eprime);
|
||||
edoubleprime = bitmap_find_leader (AVAIL_OUT (bprime),
|
||||
vprime, NULL);
|
||||
vprime);
|
||||
if (edoubleprime == NULL)
|
||||
{
|
||||
VEC_replace (pre_expr, avail, pred->dest_idx, eprime);
|
||||
@ -3637,8 +3499,7 @@ do_partial_partial_insertion (basic_block block, basic_block dom)
|
||||
|
||||
eprime = fully_constant_expression (eprime);
|
||||
vprime = get_expr_value_id (eprime);
|
||||
edoubleprime = bitmap_find_leader (AVAIL_OUT (bprime),
|
||||
vprime, NULL);
|
||||
edoubleprime = bitmap_find_leader (AVAIL_OUT (bprime), vprime);
|
||||
VEC_replace (pre_expr, avail, pred->dest_idx, edoubleprime);
|
||||
if (edoubleprime == NULL)
|
||||
{
|
||||
@ -3870,7 +3731,6 @@ compute_avail (void)
|
||||
gimple_stmt_iterator gsi;
|
||||
gimple stmt;
|
||||
basic_block dom;
|
||||
unsigned int stmt_uid = 1;
|
||||
|
||||
/* Pick a block from the worklist. */
|
||||
block = worklist[--sp];
|
||||
@ -3895,7 +3755,6 @@ compute_avail (void)
|
||||
tree op;
|
||||
|
||||
stmt = gsi_stmt (gsi);
|
||||
gimple_set_uid (stmt, stmt_uid++);
|
||||
|
||||
/* Cache whether the basic-block has any non-visible side-effect
|
||||
or control flow.
|
||||
|
Loading…
Reference in New Issue
Block a user