diff options
author | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-05 17:26:05 +0000 |
---|---|---|
committer | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-05 17:26:05 +0000 |
commit | 35cc02b5c80ac6738c1a3362a822e3d7e4d0c587 (patch) | |
tree | 32d3ee1ddfcad180d619d756a84eeb0df779a6a2 /gcc/tree-ssa-loop-ivopts.c | |
parent | fc297ba47e780c3659434d04f3c299b705154d5f (diff) | |
download | gcc-35cc02b5c80ac6738c1a3362a822e3d7e4d0c587.tar.gz |
Merge gimple-tuples-branch into mainline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119546 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index 40b39f9b3db..0132fc9cdb4 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -1037,14 +1037,14 @@ find_givs_in_stmt_scev (struct ivopts_data *data, tree stmt, affine_iv *iv) iv->base = NULL_TREE; iv->step = NULL_TREE; - if (TREE_CODE (stmt) != MODIFY_EXPR) + if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; - lhs = TREE_OPERAND (stmt, 0); + lhs = GIMPLE_STMT_OPERAND (stmt, 0); if (TREE_CODE (lhs) != SSA_NAME) return false; - if (!simple_iv (loop, stmt, TREE_OPERAND (stmt, 1), iv, true)) + if (!simple_iv (loop, stmt, GIMPLE_STMT_OPERAND (stmt, 1), iv, true)) return false; iv->base = expand_simple_operations (iv->base); @@ -1065,7 +1065,7 @@ find_givs_in_stmt (struct ivopts_data *data, tree stmt) if (!find_givs_in_stmt_scev (data, stmt, &iv)) return; - set_iv (data, TREE_OPERAND (stmt, 0), iv.base, iv.step); + set_iv (data, GIMPLE_STMT_OPERAND (stmt, 0), iv.base, iv.step); } /* Finds general ivs in basic block BB. */ @@ -1222,7 +1222,7 @@ find_interesting_uses_op (struct ivopts_data *data, tree op) stmt = SSA_NAME_DEF_STMT (op); gcc_assert (TREE_CODE (stmt) == PHI_NODE - || TREE_CODE (stmt) == MODIFY_EXPR); + || TREE_CODE (stmt) == GIMPLE_MODIFY_STMT); use = record_use (data, NULL, civ, stmt, USE_NONLINEAR_EXPR); iv->use_id = use->id; @@ -1314,7 +1314,7 @@ expr_invariant_in_loop_p (struct loop *loop, tree expr) return true; } - if (!EXPR_P (expr)) + if (!EXPR_P (expr) && !GIMPLE_STMT_P (expr)) return false; len = TREE_CODE_LENGTH (TREE_CODE (expr)); @@ -1636,10 +1636,10 @@ find_interesting_uses_stmt (struct ivopts_data *data, tree stmt) return; } - if (TREE_CODE (stmt) == MODIFY_EXPR) + if (TREE_CODE (stmt) == GIMPLE_MODIFY_STMT) { - lhs = TREE_OPERAND (stmt, 0); - rhs = TREE_OPERAND (stmt, 1); + lhs = GIMPLE_STMT_OPERAND (stmt, 0); + rhs = GIMPLE_STMT_OPERAND (stmt, 1); if (TREE_CODE (lhs) == SSA_NAME) { @@ -1655,13 +1655,16 @@ find_interesting_uses_stmt (struct ivopts_data *data, tree stmt) switch (TREE_CODE_CLASS (TREE_CODE (rhs))) { case tcc_comparison: - find_interesting_uses_cond (data, stmt, &TREE_OPERAND (stmt, 1)); + find_interesting_uses_cond (data, stmt, + &GIMPLE_STMT_OPERAND (stmt, 1)); return; case tcc_reference: - find_interesting_uses_address (data, stmt, &TREE_OPERAND (stmt, 1)); + find_interesting_uses_address (data, stmt, + &GIMPLE_STMT_OPERAND (stmt, 1)); if (REFERENCE_CLASS_P (lhs)) - find_interesting_uses_address (data, stmt, &TREE_OPERAND (stmt, 0)); + find_interesting_uses_address (data, stmt, + &GIMPLE_STMT_OPERAND (stmt, 0)); return; default: ; @@ -1670,7 +1673,8 @@ find_interesting_uses_stmt (struct ivopts_data *data, tree stmt) if (REFERENCE_CLASS_P (lhs) && is_gimple_val (rhs)) { - find_interesting_uses_address (data, stmt, &TREE_OPERAND (stmt, 0)); + find_interesting_uses_address (data, stmt, + &GIMPLE_STMT_OPERAND (stmt, 0)); find_interesting_uses_op (data, rhs); return; } @@ -5383,8 +5387,8 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data, tree step, ctype, utype; enum tree_code incr_code = PLUS_EXPR; - gcc_assert (TREE_CODE (use->stmt) == MODIFY_EXPR); - gcc_assert (TREE_OPERAND (use->stmt, 0) == cand->var_after); + gcc_assert (TREE_CODE (use->stmt) == GIMPLE_MODIFY_STMT); + gcc_assert (GIMPLE_STMT_OPERAND (use->stmt, 0) == cand->var_after); step = cand->iv->step; ctype = TREE_TYPE (step); @@ -5400,7 +5404,7 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data, computations in the loop -- otherwise, the computation we rely upon may be removed in remove_unused_ivs, thus leading to ICE. */ - op = TREE_OPERAND (use->stmt, 1); + op = GIMPLE_STMT_OPERAND (use->stmt, 1); if (TREE_CODE (op) == PLUS_EXPR || TREE_CODE (op) == MINUS_EXPR) { @@ -5448,8 +5452,8 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data, } break; - case MODIFY_EXPR: - tgt = TREE_OPERAND (use->stmt, 0); + case GIMPLE_MODIFY_STMT: + tgt = GIMPLE_STMT_OPERAND (use->stmt, 0); bsi = bsi_for_stmt (use->stmt); break; @@ -5463,7 +5467,7 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data, { if (stmts) bsi_insert_after (&bsi, stmts, BSI_CONTINUE_LINKING); - ass = build2 (MODIFY_EXPR, TREE_TYPE (tgt), tgt, op); + ass = build2_gimple (GIMPLE_MODIFY_STMT, tgt, op); bsi_insert_after (&bsi, ass, BSI_NEW_STMT); remove_statement (use->stmt, false); SSA_NAME_DEF_STMT (tgt) = ass; @@ -5472,7 +5476,7 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data, { if (stmts) bsi_insert_before (&bsi, stmts, BSI_SAME_STMT); - TREE_OPERAND (use->stmt, 1) = op; + GIMPLE_STMT_OPERAND (use->stmt, 1) = op; } } |