summaryrefslogtreecommitdiffstats
path: root/gcc/unroll.c
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-16 08:27:05 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-16 08:27:05 +0000
commit0a3b3d880c4de5ff0fb816bc6c282cade7e1e5ae (patch)
tree2b5cb543169ef70477d25bcc0683bd89eb4851a2 /gcc/unroll.c
parent227ea5664211b8f4fa0c3bd56c876392877383c9 (diff)
downloadppe42-gcc-0a3b3d880c4de5ff0fb816bc6c282cade7e1e5ae.tar.gz
ppe42-gcc-0a3b3d880c4de5ff0fb816bc6c282cade7e1e5ae.zip
* function.h (struct emit_status): Remove x_last_linenum,
x_last_filename. Add x_last_location. * rtl.h: #include "input.h". (NOTE_DATA): New. * cfglayout.c (duplicate_insn_chain): Use emit_line_note for line number notes. * emit-rtl.c (last_linenum, last_filename): Remove. (last_location): New. (emit_line_note_after): LINE must always be >= 0. (emit_line_note): Likewise. Check not duplicate here... (emit_note): ... rather than here. (emit_line_note_force, force_next_line_note, init_emit): Adjust. * integrate.c (expand_inline_function): Use emit_line_note for line number notes. (copy_insn_list): Likewise. * unroll.c (copy_loop_body): Likewise. * Makefile.in (RTL_H): Add input.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68002 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r--gcc/unroll.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index e7e03ab8de3..2097e6e0e7b 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -2263,14 +2263,20 @@ copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration,
the associated rtl. We do not want to share the structure in
this new block. */
- if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED_LABEL
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
- && ((NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_CONT)
- || (last_iteration && unroll_type != UNROLL_COMPLETELY)))
- copy = emit_note (NOTE_SOURCE_FILE (insn),
+ if (NOTE_LINE_NUMBER (insn) > 0)
+ copy = emit_line_note (NOTE_SOURCE_FILE (insn),
NOTE_LINE_NUMBER (insn));
+ else if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED_LABEL
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
+ && ((NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_CONT)
+ || (last_iteration
+ && unroll_type != UNROLL_COMPLETELY)))
+ {
+ copy = emit_note (NULL, NOTE_LINE_NUMBER (insn));
+ NOTE_DATA (copy) = NOTE_DATA (insn);
+ }
else
copy = 0;
break;
@@ -2315,12 +2321,18 @@ copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration,
instructions before the last insn in the loop, COPY_NOTES_FROM
can be a NOTE_INSN_LOOP_CONT note if there is no VTOP note,
as in a do .. while loop. */
- if (GET_CODE (insn) == NOTE
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
- && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_CONT)
- emit_note (NOTE_SOURCE_FILE (insn), NOTE_LINE_NUMBER (insn));
+ if (GET_CODE (insn) != NOTE)
+ /*NOP*/;
+ else if (NOTE_LINE_NUMBER (insn) > 0)
+ emit_line_note (NOTE_SOURCE_FILE (insn), NOTE_LINE_NUMBER (insn));
+ else if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_CONT)
+ {
+ rtx copy = emit_note (NULL, NOTE_LINE_NUMBER (insn));
+ NOTE_DATA (copy) = NOTE_DATA (insn);
+ }
}
}
OpenPOWER on IntegriCloud