re PR rtl-optimization/32664 ([sh] ICE in create_pre_exit, at mode-switching.c:373)
PR rtl-optimization/32664 * mode-switching.c (create_pre_exit): Skip barrier insns. From-SVN: r126507
This commit is contained in:
parent
823c696f9b
commit
89ab46599d
2 changed files with 32 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
PR rtl-optimization/32664
|
||||
* mode-switching.c (create_pre_exit): Skip barrier insns.
|
||||
|
||||
2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
|
||||
|
||||
* tree-scalar-evolution.c (scev_const_prop): Add arguments to
|
||||
|
|
|
@ -246,21 +246,37 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
|
|||
|
||||
if (INSN_P (return_copy))
|
||||
{
|
||||
if (GET_CODE (PATTERN (return_copy)) == USE
|
||||
&& GET_CODE (XEXP (PATTERN (return_copy), 0)) == REG
|
||||
&& (FUNCTION_VALUE_REGNO_P
|
||||
(REGNO (XEXP (PATTERN (return_copy), 0)))))
|
||||
{
|
||||
maybe_builtin_apply = 1;
|
||||
last_insn = return_copy;
|
||||
continue;
|
||||
}
|
||||
if (GET_CODE (PATTERN (return_copy)) == ASM_INPUT
|
||||
&& strcmp (XSTR (PATTERN (return_copy), 0), "") == 0)
|
||||
return_copy_pat = PATTERN (return_copy);
|
||||
switch (GET_CODE (return_copy_pat))
|
||||
{
|
||||
case USE:
|
||||
/* Skip __builtin_apply pattern. */
|
||||
if (GET_CODE (XEXP (return_copy_pat, 0)) == REG
|
||||
&& (FUNCTION_VALUE_REGNO_P
|
||||
(REGNO (XEXP (return_copy_pat, 0)))))
|
||||
{
|
||||
maybe_builtin_apply = 1;
|
||||
last_insn = return_copy;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
case ASM_OPERANDS:
|
||||
/* Skip barrier insns. */
|
||||
if (!MEM_VOLATILE_P (return_copy_pat))
|
||||
break;
|
||||
|
||||
/* Fall through. */
|
||||
|
||||
case ASM_INPUT:
|
||||
case UNSPEC_VOLATILE:
|
||||
last_insn = return_copy;
|
||||
continue;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* If the return register is not (in its entirety)
|
||||
likely spilled, the return copy might be
|
||||
partially or completely optimized away. */
|
||||
|
|
Loading…
Add table
Reference in a new issue