aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorAndrew Macleod <amacleod@gcc.gnu.org>1999-03-25 12:04:24 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1999-03-25 12:04:24 +0000
commit87b47c855df767801628050c9a3e5cb678f67c48 (patch)
tree00dd4d5a9aac9fc759eff7ed802a3e53fdc88cea /gcc/emit-rtl.c
parentb664de3a04685f7558b80df9f172deb8decebeff (diff)
downloadgcc-87b47c855df767801628050c9a3e5cb678f67c48.zip
gcc-87b47c855df767801628050c9a3e5cb678f67c48.tar.gz
gcc-87b47c855df767801628050c9a3e5cb678f67c48.tar.bz2
rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
a Thu Mar 25 14:04:54 EST 1999 Andrew MacLeod <amacleod@cygnus.com> * rtl.texi (RTX_FRAME_RELATED_P): Add documentation. * rtl.h (struct rtx_def): Update comment for frame_related field. (set_unique_reg_note): Declare prototype. * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from 'dwarf2out_frame_debug' to handle only expressions, and process component parts of a PARALLEL expression. (dwarf2out_frame_debug): Process insns only, and call new function 'dwarf2out_frame_debug_expr' for patterns. * emit-rtl.c (set_unique_reg_note): New function to add a reg note, but if there is an existingone, deletes it first. * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note. * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note. (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note. (expand_fix): Use set_unique_reg_note. From-SVN: r25978
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index c7ff596..eec6b06 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3149,6 +3149,24 @@ force_next_line_note ()
{
last_linenum = -1;
}
+
+/* Place a note of KIND on insn INSN with DATUM as the datum. If a
+ note of this type already exists, remove it first. */
+
+void
+set_unique_reg_note (insn, kind, datum)
+ rtx insn;
+ enum reg_note kind;
+ rtx datum;
+{
+ rtx note = find_reg_note (insn, kind, NULL_RTX);
+
+ /* First remove the note if there already is one. */
+ if (note)
+ remove_note (insn, note);
+
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (kind, datum, REG_NOTES (insn));
+}
/* Return an indication of which type of insn should have X as a body.
The value is CODE_LABEL, INSN, CALL_INSN or JUMP_INSN. */