/* To handle special cases like floating point comparison, it is easier and
less error-prone to build a tree and gimplify it on the fly though it is
less efficient. */
- cond = fold_build2 (gimple_cond_code (stmt), boolean_type_node,
- gimple_cond_lhs (stmt), gimple_cond_rhs (stmt));
+ cond = fold_build2_loc (gimple_location (stmt),
+ gimple_cond_code (stmt), boolean_type_node,
+ gimple_cond_lhs (stmt), gimple_cond_rhs (stmt));
/* We need to know which is the true edge and which is the false
edge so that we know when to invert the condition below. */
|| (e0 == false_edge && integer_onep (arg0))
|| (e1 == true_edge && integer_zerop (arg1))
|| (e1 == false_edge && integer_onep (arg1)))
- cond = fold_build1 (TRUTH_NOT_EXPR, TREE_TYPE (cond), cond);
+ cond = fold_build1_loc (gimple_location (stmt),
+ TRUTH_NOT_EXPR, TREE_TYPE (cond), cond);
/* Insert our new statements at the end of conditional block before the
COND_STMT. */
cond = last_stmt (cond_bb);
cmp = gimple_cond_code (cond);
- result = PHI_RESULT (phi);
/* This transformation is only valid for order comparisons. Record which
operand is smaller/larger if the result of the comparison is true. */
continue;
then_store = DR_STMT (then_dr);
- then_lhs = gimple_assign_lhs (then_store);
+ then_lhs = gimple_get_lhs (then_store);
found = false;
FOR_EACH_VEC_ELT (data_reference_p, else_datarefs, j, else_dr)
continue;
else_store = DR_STMT (else_dr);
- else_lhs = gimple_assign_lhs (else_store);
+ else_lhs = gimple_get_lhs (else_store);
if (operand_equal_p (then_lhs, else_lhs, 0))
{
else_ddrs = VEC_alloc (ddr_p, heap, 1);
compute_all_dependences (then_datarefs, &then_ddrs, NULL, false);
compute_all_dependences (else_datarefs, &else_ddrs, NULL, false);
- free_data_refs (then_datarefs);
- free_data_refs (else_datarefs);
blocks[0] = then_bb;
blocks[1] = else_bb;
blocks[2] = join_bb;
{
free_dependence_relations (then_ddrs);
free_dependence_relations (else_ddrs);
+ free_data_refs (then_datarefs);
+ free_data_refs (else_datarefs);
VEC_free (gimple, heap, then_stores);
VEC_free (gimple, heap, else_stores);
return false;
{
free_dependence_relations (then_ddrs);
free_dependence_relations (else_ddrs);
+ free_data_refs (then_datarefs);
+ free_data_refs (else_datarefs);
VEC_free (gimple, heap, then_stores);
VEC_free (gimple, heap, else_stores);
return false;
free_dependence_relations (then_ddrs);
free_dependence_relations (else_ddrs);
+ free_data_refs (then_datarefs);
+ free_data_refs (else_datarefs);
VEC_free (gimple, heap, then_stores);
VEC_free (gimple, heap, else_stores);
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_dump_func
- | TODO_ggc_collect
+ TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow
| TODO_verify_stmts /* todo_flags_finish */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_dump_func
- | TODO_ggc_collect
+ TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow
| TODO_verify_stmts /* todo_flags_finish */