aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-12-21 21:38:11 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-12-21 21:38:11 +0000
commitc84a808e493a4041b64a91eb662042d490f8f84c (patch)
treeaa471bb608b713f86590a8f15f209ec14179168c /gcc
parent8e3a4869029faad868154af6869caad476ffdcb7 (diff)
downloadgcc-c84a808e493a4041b64a91eb662042d490f8f84c.zip
gcc-c84a808e493a4041b64a91eb662042d490f8f84c.tar.gz
gcc-c84a808e493a4041b64a91eb662042d490f8f84c.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/ia64/ia64.c21
-rw-r--r--gcc/rtlanal.c7
-rw-r--r--gcc/target.def2
-rw-r--r--gcc/targhooks.c6
5 files changed, 23 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f0bc88..21af147 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
PR middle-end/55775
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 3b19b98..9be9b42 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5845,19 +5845,16 @@ ia64_secondary_reload_class (enum reg_class rclass,
static int
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_LDSA:
- case UNSPEC_LDCCLR:
- case UNSPEC_CHKACLR:
- case UNSPEC_CHKS:
- /* These unspecs are just wrappers. */
- return may_trap_p_1 (XVECEXP (x, 0, 0), flags);
- }
+ case UNSPEC_LDA:
+ case UNSPEC_LDS:
+ case UNSPEC_LDSA:
+ case UNSPEC_LDCCLR:
+ case UNSPEC_CHKACLR:
+ case UNSPEC_CHKS:
+ /* These unspecs are just wrappers. */
+ return may_trap_p_1 (XVECEXP (x, 0, 0), flags);
}
return default_unspec_may_trap_p (x, flags);
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 3826481..b14a2a8 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -2107,7 +2107,6 @@ volatile_insn_p (const_rtx x)
return 0;
case UNSPEC_VOLATILE:
- /* case TRAP_IF: This isn't clear yet. */
return 1;
case ASM_INPUT:
@@ -2240,7 +2239,6 @@ side_effects_p (const_rtx x)
case POST_MODIFY:
case CALL:
case UNSPEC_VOLATILE:
- /* case TRAP_IF: This isn't clear yet. */
return 1;
case MEM:
@@ -2312,9 +2310,9 @@ may_trap_p_1 (const_rtx x, unsigned flags)
return 0;
case UNSPEC:
- case UNSPEC_VOLATILE:
return targetm.unspec_may_trap_p (x, flags);
+ case UNSPEC_VOLATILE:
case ASM_INPUT:
case TRAP_IF:
return 1;
@@ -2406,8 +2404,7 @@ may_trap_p_1 (const_rtx x, unsigned flags)
default:
/* Any floating arithmetic may trap. */
- if (SCALAR_FLOAT_MODE_P (GET_MODE (x))
- && flag_trapping_math)
+ if (SCALAR_FLOAT_MODE_P (GET_MODE (x)) && flag_trapping_math)
return 1;
}
diff --git a/gcc/target.def b/gcc/target.def
index bbda6c2..c5bbfae 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -1816,7 +1816,7 @@ DEFHOOK
"",
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. */
DEFHOOK
(unspec_may_trap_p,
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 241c1cc..954cdb9 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -102,10 +102,8 @@ default_unspec_may_trap_p (const_rtx x, unsigned flags)
{
int i;
- if (GET_CODE (x) == UNSPEC_VOLATILE
- /* Any floating arithmetic may trap. */
- || (SCALAR_FLOAT_MODE_P (GET_MODE (x))
- && flag_trapping_math))
+ /* Any floating arithmetic may trap. */
+ if ((SCALAR_FLOAT_MODE_P (GET_MODE (x)) && flag_trapping_math))
return 1;
for (i = 0; i < XVECLEN (x, 0); ++i)