diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-04-16 11:54:51 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-04-16 11:54:51 +0000 |
commit | d88bbbb943151cd73871f5ece8bac7f4127f76bd (patch) | |
tree | 6a87c87320850dbe05f19ab839a5e767dc0c7bd0 /gcc/ada/gcc-interface/ada-tree.def | |
parent | 586388fd723b7c59d97304607357ca13dd3d20d9 (diff) | |
download | gcc-d88bbbb943151cd73871f5ece8bac7f4127f76bd.zip gcc-d88bbbb943151cd73871f5ece8bac7f4127f76bd.tar.gz gcc-d88bbbb943151cd73871f5ece8bac7f4127f76bd.tar.bz2 |
ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
* gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
* gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND):
Merge into...
(LOOP_STMT_COND): ...this.
(LOOP_STMT_BOTTOM_COND_P): New flag.
(LOOP_STMT_TOP_UPDATE_P): Likewise.
* gcc-interface/trans.c (can_equal_min_or_max_val_p): New function.
(can_equal_min_val_p): New static inline function.
(can_equal_max_val_p): Likewise.
(Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to
new LOOP_STMT semantics. Use two different strategies depending on
whether optimization is enabled to translate the loop.
(gnat_gimplify_stmt) <LOOP_STMT>: Adjust to new LOOP_STMT semantics.
From-SVN: r158410
Diffstat (limited to 'gcc/ada/gcc-interface/ada-tree.def')
-rw-r--r-- | gcc/ada/gcc-interface/ada-tree.def | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/ada/gcc-interface/ada-tree.def b/gcc/ada/gcc-interface/ada-tree.def index 454b4bd..93967b5 100644 --- a/gcc/ada/gcc-interface/ada-tree.def +++ b/gcc/ada/gcc-interface/ada-tree.def @@ -61,12 +61,11 @@ DEFTREECODE (ATTR_ADDR_EXPR, "attr_addr_expr", tcc_reference, 1) just returning the inner statement. */ DEFTREECODE (STMT_STMT, "stmt_stmt", tcc_statement, 1) -/* A loop. LOOP_STMT_TOP_COND and LOOP_STMT_BOT_COND are the tests to exit a - loop at the top and bottom respectively. LOOP_STMT_UPDATE is the statement - to update the loop iterator at the continue point. LOOP_STMT_BODY are the - statements in the body of the loop. LOOP_STMT_LABEL points to the - LABEL_DECL of the end label of the loop. */ -DEFTREECODE (LOOP_STMT, "loop_stmt", tcc_statement, 5) +/* A loop. LOOP_STMT_COND is the test to exit the loop. LOOP_STMT_UPDATE + is the statement to update the loop iteration variable at the continue + point. LOOP_STMT_BODY are the statements in the body of the loop. And + LOOP_STMT_LABEL points to the LABEL_DECL of the end label of the loop. */ +DEFTREECODE (LOOP_STMT, "loop_stmt", tcc_statement, 4) /* Conditionally exit a loop. EXIT_STMT_COND is the condition, which, if true, will cause the loop to be exited. If no condition is specified, |