* loop.c (scan_loop): Do not insert temporaries for hard registers.

From-SVN: r107019
This commit is contained in:
Daniel Jacobowitz 2005-11-15 14:33:04 +00:00 committed by Daniel Jacobowitz
parent 5d7c0add81
commit 616cf694ed
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
* loop.c (scan_loop): Do not insert temporaries for hard registers.
2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead

View File

@ -1238,13 +1238,15 @@ scan_loop (struct loop *loop, int flags)
- with -Os (this certainly increases size),
- if the mode doesn't support copy operations (obviously),
- if the source is already a reg (the motion will gain nothing),
- if the source is a legitimate constant (likewise). */
- if the source is a legitimate constant (likewise),
- if the dest is a hard register (may be unrecognizable). */
else if (insert_temp
&& (optimize_size
|| ! can_copy_p (GET_MODE (SET_SRC (set)))
|| REG_P (SET_SRC (set))
|| (CONSTANT_P (SET_SRC (set))
&& LEGITIMATE_CONSTANT_P (SET_SRC (set)))))
&& LEGITIMATE_CONSTANT_P (SET_SRC (set)))
|| REGNO (SET_DEST (set)) < FIRST_PSEUDO_REGISTER))
;
else if ((tem = loop_invariant_p (loop, src))
&& (dependencies == 0