summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-27 17:25:14 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-27 17:25:14 +0000
commit83458610bef672da35282ed371bfb858f408b290 (patch)
treef622ad1b9d2f4d839d3052a0f4fc42b6ebf07329 /gcc/flow.c
parenta4dfe15634b61513d076cf07d9fa3e69d5de440a (diff)
downloadgcc-83458610bef672da35282ed371bfb858f408b290.tar.gz
Put phi nodes after NOTE_INSN_BASIC_BLOCK.
* rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. (get_prev_bb_note): Likewise. (remove_scope_notes): Likewise. * flow.c (commit_one_edge_insertion): Likewise. (merge_blocks_nomove): Likewise. (verify_flow_info): Likewise. * gcse.c (insert_insn_end_bb): Likewise. * reg-stack.c (emit_swap_insn): Likewise. * ssa.c (first_insn_after_basic_block_note): New function. (insert_phi_node): Use it. (rename_block): Likewise. (eliminate_phi): Likewise. (make_regs_equivalent_over_bad_edges): Likewise. (make_equivalent_phi_alternatives_equivalent): Likewise. (for_each_successor_phi): Likewise. (convert_from_ssa): Modify phi-node deletion algorithm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35296 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 7bebfa80340..a8f6061aedf 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1673,8 +1673,7 @@ commit_one_edge_insertion (e)
tmp = bb->head;
if (GET_CODE (tmp) == CODE_LABEL)
tmp = NEXT_INSN (tmp);
- if (GET_CODE (tmp) == NOTE
- && NOTE_LINE_NUMBER (tmp) == NOTE_INSN_BASIC_BLOCK)
+ if (NOTE_INSN_BASIC_BLOCK_P (tmp))
tmp = NEXT_INSN (tmp);
if (tmp == bb->head)
before = tmp;
@@ -2164,8 +2163,7 @@ merge_blocks_nomove (a, b)
}
/* Delete the basic block note. */
- if (GET_CODE (b_head) == NOTE
- && NOTE_LINE_NUMBER (b_head) == NOTE_INSN_BASIC_BLOCK)
+ if (NOTE_INSN_BASIC_BLOCK_P (b_head))
{
if (b_head == b_end)
b_empty = 1;
@@ -6471,9 +6469,7 @@ verify_flow_info ()
}
x = NEXT_INSN (x);
}
- if (GET_CODE (x) != NOTE
- || NOTE_LINE_NUMBER (x) != NOTE_INSN_BASIC_BLOCK
- || NOTE_BASIC_BLOCK (x) != bb)
+ if (!NOTE_INSN_BASIC_BLOCK_P (x) || NOTE_BASIC_BLOCK (x) != bb)
{
error ("NOTE_INSN_BASIC_BLOCK is missing for block %d\n",
bb->index);
@@ -6489,8 +6485,7 @@ verify_flow_info ()
x = NEXT_INSN (x);
while (x)
{
- if (GET_CODE (x) == NOTE
- && NOTE_LINE_NUMBER (x) == NOTE_INSN_BASIC_BLOCK)
+ if (NOTE_INSN_BASIC_BLOCK_P (x))
{
error ("NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d",
INSN_UID (x), bb->index);
@@ -6518,8 +6513,7 @@ verify_flow_info ()
x = rtx_first;
while (x)
{
- if (GET_CODE (x) == NOTE
- && NOTE_LINE_NUMBER (x) == NOTE_INSN_BASIC_BLOCK)
+ if (NOTE_INSN_BASIC_BLOCK_P (x))
{
basic_block bb = NOTE_BASIC_BLOCK (x);
num_bb_notes++;