mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 17:17:38 +08:00
ifcvt.c (EDGE_COMPLEX): Move definition ...
* ifcvt.c (EDGE_COMPLEX): Move definition ... * basic-block.h (EDGE_COMPLEX): ... here. * loop.c (check_dbra_loop): Specify the register when generating REG_NONNEG notes and don't generate duplicates. From-SVN: r34542
This commit is contained in:
parent
11cf4d1831
commit
65b98a022f
@ -1,3 +1,11 @@
|
||||
Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com)
|
||||
|
||||
* ifcvt.c (EDGE_COMPLEX): Move definition ...
|
||||
* basic-block.h (EDGE_COMPLEX): ... here.
|
||||
|
||||
* loop.c (check_dbra_loop): Specify the register when
|
||||
generating REG_NONNEG notes and don't generate duplicates.
|
||||
|
||||
2000-06-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
|
||||
|
@ -138,6 +138,8 @@ typedef struct edge_def {
|
||||
#define EDGE_EH 16
|
||||
#define EDGE_FAKE 32
|
||||
|
||||
#define EDGE_COMPLEX (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
|
||||
|
||||
|
||||
/* Basic block information indexed by block number. */
|
||||
typedef struct basic_block_def {
|
||||
|
@ -51,8 +51,6 @@
|
||||
#define MAX_CONDITIONAL_EXECUTE (BRANCH_COST + 1)
|
||||
#endif
|
||||
|
||||
#define EDGE_COMPLEX (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
|
||||
|
||||
#define NULL_EDGE ((struct edge_def *)NULL)
|
||||
#define NULL_BLOCK ((struct basic_block_def *)NULL)
|
||||
|
||||
|
16
gcc/loop.c
16
gcc/loop.c
@ -7835,9 +7835,10 @@ check_dbra_loop (loop, insn_count)
|
||||
% (-INTVAL (bl->biv->add_val))) == 0)
|
||||
{
|
||||
/* register always nonnegative, add REG_NOTE to branch */
|
||||
REG_NOTES (PREV_INSN (loop_end))
|
||||
= gen_rtx_EXPR_LIST (REG_NONNEG, NULL_RTX,
|
||||
REG_NOTES (PREV_INSN (loop_end)));
|
||||
if (! find_reg_note (jump, REG_NONNEG, NULL_RTX))
|
||||
REG_NOTES (jump)
|
||||
= gen_rtx_EXPR_LIST (REG_NONNEG, bl->biv->dest_reg,
|
||||
REG_NOTES (jump));
|
||||
bl->nonneg = 1;
|
||||
|
||||
return 1;
|
||||
@ -7860,9 +7861,10 @@ check_dbra_loop (loop, insn_count)
|
||||
&& ! reg_set_between_p (bl->biv->dest_reg, p, loop_start)
|
||||
&& INTVAL (bl->biv->add_val) == -1)
|
||||
{
|
||||
REG_NOTES (PREV_INSN (loop_end))
|
||||
= gen_rtx_EXPR_LIST (REG_NONNEG, NULL_RTX,
|
||||
REG_NOTES (PREV_INSN (loop_end)));
|
||||
if (! find_reg_note (jump, REG_NONNEG, NULL_RTX))
|
||||
REG_NOTES (jump)
|
||||
= gen_rtx_EXPR_LIST (REG_NONNEG, bl->biv->dest_reg,
|
||||
REG_NOTES (jump));
|
||||
bl->nonneg = 1;
|
||||
|
||||
return 1;
|
||||
@ -8260,7 +8262,7 @@ check_dbra_loop (loop, insn_count)
|
||||
/* Increment of LABEL_NUSES done above. */
|
||||
/* Register is now always nonnegative,
|
||||
so add REG_NONNEG note to the branch. */
|
||||
REG_NOTES (tem) = gen_rtx_EXPR_LIST (REG_NONNEG, NULL_RTX,
|
||||
REG_NOTES (tem) = gen_rtx_EXPR_LIST (REG_NONNEG, reg,
|
||||
REG_NOTES (tem));
|
||||
}
|
||||
bl->nonneg = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user