From 3517d3a0870e7081d4ded0fa4cc590c602713a8c Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Mon, 6 Oct 2008 15:34:26 +0000 Subject: re PR middle-end/37535 (gcc/libgcc2.c:404: internal compiler error: Floating point exception) 2008-10-06 Vladimir Makarov PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. * doc/rtx.texi (clobber): Change how RA deals with clobbers. From-SVN: r140906 --- gcc/doc/rtl.texi | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/doc') diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index 148e19d..a12de21 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -2930,9 +2930,11 @@ constituent instructions might not. When a @code{clobber} expression for a register appears inside a @code{parallel} with other side effects, the register allocator guarantees that the register is unoccupied both before and after that -insn. However, the reload phase may allocate a register used for one of -the inputs unless the @samp{&} constraint is specified for the selected -alternative (@pxref{Modifiers}). You can clobber either a specific hard +insn if it is a hard register clobber or the @samp{&} constraint +is specified for at least one alternative (@pxref{Modifiers}) of the +clobber. However, the reload phase may allocate a register used for +one of the inputs unless the @samp{&} constraint is specified for the +selected alternative. You can clobber either a specific hard register, a pseudo register, or a @code{scratch} expression; in the latter two cases, GCC will allocate a hard register that is available there for use as a temporary. -- cgit v1.1