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
This commit is contained in:
Sebastian Pop 2009-08-28 20:24:51 +00:00 committed by Sebastian Pop
parent 66b466c309
commit 45e76e9f39
3 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,9 @@
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> 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.

View File

@ -1,3 +1,9 @@
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> 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.

View File

@ -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,
/* 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,