Commit 45e76e9f by Sebastian Pop Committed by Sebastian Pop

cfgloopmanip.c (create_empty_loop_on_edge): Generate upper bounds with LT_EXPR…

cfgloopmanip.c (create_empty_loop_on_edge): Generate upper bounds with LT_EXPR to make niter analysis more precise on code...

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
	bounds with LT_EXPR to make niter analysis more precise on code
	generated by Graphite.

From-SVN: r151180
parent 66b466c3
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
* cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
bounds with LT_EXPR to make niter analysis more precise on code
generated by Graphite.
2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (graphite_legal_transform_dr): Fix formatting. * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
(graphite_legal_transform_bb): Same. (graphite_legal_transform_bb): Same.
(poly_drs_may_alias_p): Same. (poly_drs_may_alias_p): Same.
......
2009-08-18 Sebastian Pop <sebastian.pop@amd.com> 2009-08-18 Sebastian Pop <sebastian.pop@amd.com>
* cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
bounds with LT_EXPR to make niter analysis more precise on code
generated by Graphite.
2009-08-18 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (graphite_legal_transform_dr): Fix formatting. * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
(graphite_legal_transform_bb): Same. (graphite_legal_transform_bb): Same.
(poly_drs_may_alias_p): Same. (poly_drs_may_alias_p): Same.
......
...@@ -599,7 +599,7 @@ create_empty_if_region_on_edge (edge entry_edge, tree condition) ...@@ -599,7 +599,7 @@ create_empty_if_region_on_edge (edge entry_edge, tree condition)
| | | | | | | | | |
| ----------- | ---V--- loop_body --------------- | ----------- | ---V--- loop_body ---------------
| | | iv_after = iv_before + stride | | | | iv_after = iv_before + stride |
| | | if (iv_after <= upper_bound) | | | | if (iv_before < upper_bound) |
| | ---|--------------\-------------- | | ---|--------------\--------------
| | | \ exit_e | | | \ exit_e
| | V \ | | V \
...@@ -696,7 +696,7 @@ create_empty_loop_on_edge (edge entry_edge, ...@@ -696,7 +696,7 @@ create_empty_loop_on_edge (edge entry_edge,
/* Insert loop exit condition. */ /* Insert loop exit condition. */
cond_expr = gimple_build_cond cond_expr = gimple_build_cond
(LE_EXPR, *iv_after, upper_bound, NULL_TREE, NULL_TREE); (LT_EXPR, *iv_before, upper_bound, NULL_TREE, NULL_TREE);
exit_test = gimple_cond_lhs (cond_expr); exit_test = gimple_cond_lhs (cond_expr);
exit_test = force_gimple_operand_gsi (&gsi, exit_test, true, NULL, exit_test = force_gimple_operand_gsi (&gsi, exit_test, true, NULL,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment