tree new_var = NULL;
tree new_var1;
+ /* FIXME: Gimplification of complex type is too hard for now. */
+ if (TREE_CODE (TREE_TYPE (arg0)) == COMPLEX_TYPE
+ || TREE_CODE (TREE_TYPE (arg1)) == COMPLEX_TYPE)
+ return false;
+
/* The PHI arguments have the constants 0 and 1, then convert
it to the conditional. */
if ((integer_zerop (arg0) && integer_onep (arg1))
/* Only "real" casts are OK here, not everything that is
acceptable to is_gimple_cast. Make sure we don't do
anything stupid here. */
- gcc_assert (TREE_CODE (cond) == NOP_EXPR
- || TREE_CODE (cond) == CONVERT_EXPR);
+ gcc_assert (CONVERT_EXPR_P (cond));
op0 = TREE_OPERAND (cond, 0);
tmp = create_tmp_var (TREE_TYPE (op0), NULL);
return 1;
}
-struct tree_opt_pass pass_phiopt =
+struct gimple_opt_pass pass_phiopt =
{
+ {
+ GIMPLE_PASS,
"phiopt", /* name */
gate_phiopt, /* gate */
tree_ssa_phiopt, /* execute */
| TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow
- | TODO_verify_stmts, /* todo_flags_finish */
- 0 /* letter */
+ | TODO_verify_stmts /* todo_flags_finish */
+ }
};
static bool
return flag_tree_cselim;
}
-struct tree_opt_pass pass_cselim =
+struct gimple_opt_pass pass_cselim =
{
+ {
+ GIMPLE_PASS,
"cselim", /* name */
gate_cselim, /* gate */
tree_ssa_cs_elim, /* execute */
| TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow
- | TODO_verify_stmts, /* todo_flags_finish */
- 0 /* letter */
+ | TODO_verify_stmts /* todo_flags_finish */
+ }
};