rtlanal.c (volatile_insn_p): Delete commented out code.

* rtlanal.c (volatile_insn_p): Delete commented out code.
	(side_effects_p): Likewise.
	(may_trap_p_1) <UNSPEC_VOLATILE>: Return 1 again.
	* target.def (unspec_may_trap_p): Adjust comment.
	* targhooks.c (default_unspec_may_trap_p): Don't handle UNSPEC_VOLATILE.
	* config/ia64/ia64.c (ia64_unspec_may_trap_p): Adjust to above change.

From-SVN: r194681
This commit is contained in:
Eric Botcazou 2012-12-21 21:38:11 +00:00 committed by Eric Botcazou
parent 8e3a486902
commit c84a808e49
5 changed files with 23 additions and 22 deletions

View file

@ -1,3 +1,12 @@
2012-12-21 Eric Botcazou <ebotcazou@adacore.com>
* rtlanal.c (volatile_insn_p): Delete commented out code.
(side_effects_p): Likewise.
(may_trap_p_1) <UNSPEC_VOLATILE>: Return 1 again.
* target.def (unspec_may_trap_p): Adjust comment.
* targhooks.c (default_unspec_may_trap_p): Don't handle UNSPEC_VOLATILE.
* config/ia64/ia64.c (ia64_unspec_may_trap_p): Adjust to above change.
2012-12-21 Vladimir Makarov <vmakarov@redhat.com> 2012-12-21 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/55775 PR middle-end/55775

View file

@ -5845,19 +5845,16 @@ ia64_secondary_reload_class (enum reg_class rclass,
static int static int
ia64_unspec_may_trap_p (const_rtx x, unsigned flags) ia64_unspec_may_trap_p (const_rtx x, unsigned flags)
{ {
if (GET_CODE (x) == UNSPEC) switch (XINT (x, 1))
{ {
switch (XINT (x, 1)) case UNSPEC_LDA:
{ case UNSPEC_LDS:
case UNSPEC_LDA: case UNSPEC_LDSA:
case UNSPEC_LDS: case UNSPEC_LDCCLR:
case UNSPEC_LDSA: case UNSPEC_CHKACLR:
case UNSPEC_LDCCLR: case UNSPEC_CHKS:
case UNSPEC_CHKACLR: /* These unspecs are just wrappers. */
case UNSPEC_CHKS: return may_trap_p_1 (XVECEXP (x, 0, 0), flags);
/* These unspecs are just wrappers. */
return may_trap_p_1 (XVECEXP (x, 0, 0), flags);
}
} }
return default_unspec_may_trap_p (x, flags); return default_unspec_may_trap_p (x, flags);

View file

@ -2107,7 +2107,6 @@ volatile_insn_p (const_rtx x)
return 0; return 0;
case UNSPEC_VOLATILE: case UNSPEC_VOLATILE:
/* case TRAP_IF: This isn't clear yet. */
return 1; return 1;
case ASM_INPUT: case ASM_INPUT:
@ -2240,7 +2239,6 @@ side_effects_p (const_rtx x)
case POST_MODIFY: case POST_MODIFY:
case CALL: case CALL:
case UNSPEC_VOLATILE: case UNSPEC_VOLATILE:
/* case TRAP_IF: This isn't clear yet. */
return 1; return 1;
case MEM: case MEM:
@ -2312,9 +2310,9 @@ may_trap_p_1 (const_rtx x, unsigned flags)
return 0; return 0;
case UNSPEC: case UNSPEC:
case UNSPEC_VOLATILE:
return targetm.unspec_may_trap_p (x, flags); return targetm.unspec_may_trap_p (x, flags);
case UNSPEC_VOLATILE:
case ASM_INPUT: case ASM_INPUT:
case TRAP_IF: case TRAP_IF:
return 1; return 1;
@ -2406,8 +2404,7 @@ may_trap_p_1 (const_rtx x, unsigned flags)
default: default:
/* Any floating arithmetic may trap. */ /* Any floating arithmetic may trap. */
if (SCALAR_FLOAT_MODE_P (GET_MODE (x)) if (SCALAR_FLOAT_MODE_P (GET_MODE (x)) && flag_trapping_math)
&& flag_trapping_math)
return 1; return 1;
} }

View file

@ -1816,7 +1816,7 @@ DEFHOOK
"", "",
rtx, (rtx hard_reg), NULL) rtx, (rtx hard_reg), NULL)
/* Return nonzero if evaluating UNSPEC[_VOLATILE] X might cause a trap. /* Return nonzero if evaluating UNSPEC X might cause a trap.
FLAGS has the same meaning as in rtlanal.c: may_trap_p_1. */ FLAGS has the same meaning as in rtlanal.c: may_trap_p_1. */
DEFHOOK DEFHOOK
(unspec_may_trap_p, (unspec_may_trap_p,

View file

@ -102,10 +102,8 @@ default_unspec_may_trap_p (const_rtx x, unsigned flags)
{ {
int i; int i;
if (GET_CODE (x) == UNSPEC_VOLATILE /* Any floating arithmetic may trap. */
/* Any floating arithmetic may trap. */ if ((SCALAR_FLOAT_MODE_P (GET_MODE (x)) && flag_trapping_math))
|| (SCALAR_FLOAT_MODE_P (GET_MODE (x))
&& flag_trapping_math))
return 1; return 1;
for (i = 0; i < XVECLEN (x, 0); ++i) for (i = 0; i < XVECLEN (x, 0); ++i)