re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic...
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 4 Dec 2015 18:25:54 +0000 (18:25 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 4 Dec 2015 18:25:54 +0000 (18:25 +0000)
PR middle-end/65958
* config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
(unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
* config/arm/arm.md (probe_stack_range): Adjust.
* config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
(unspecv): Add UNSPECV_PROBE_STACK_RANGE.
(probe_stack_range_<PTR:mode>): Adjust.

From-SVN: r231295

gcc/ChangeLog
gcc/config/aarch64/aarch64.md
gcc/config/arm/arm.md
gcc/config/arm/unspecs.md

index 9aba352870c1c983a78f8d584c99521647433128..39420b13165fe4440dd6251a884f230ef8884eee 100644 (file)
@@ -1,3 +1,13 @@
+2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/65958
+       * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
+       (unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
+       * config/arm/arm.md (probe_stack_range): Adjust.
+       * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
+       (unspecv): Add UNSPECV_PROBE_STACK_RANGE.
+       (probe_stack_range_<PTR:mode>): Adjust.
+
 2015-12-04  David Malcolm  <dmalcolm@redhat.com>
 
        * convert.c (convert_to_real_1): When converting from a
 
 2015-12-03  Jan Hubicka  <hubicka@ucw.cz>
 
-       * alias.c (alias_set_subset_of, alias_sets_must_conflict_p)
-       Short circuit for !flag_strict_aliasing
+       * alias.c (alias_set_subset_of, alias_sets_must_conflict_p):
+       Add short circuit for !flag_strict_aliasing
        (get_alias_set): Remove flag_strict_aliasing check.
        (new_alias_set): Likewise.
 
index f5a8ae7900a6bb35c63d7f833aa2183325848df1..dee757b820774c75ec814f743a071d3abcb58955 100644 (file)
     UNSPEC_MB
     UNSPEC_NOP
     UNSPEC_PRLG_STK
-    UNSPEC_PROBE_STACK_RANGE
     UNSPEC_RBIT
     UNSPEC_SISD_NEG
     UNSPEC_SISD_SSHL
     UNSPECV_GET_FPSR           ; Represent fetch of FPSR content.
     UNSPECV_SET_FPSR           ; Represent assign of FPSR content.
     UNSPECV_BLOCKAGE           ; Represent a blockage
+    UNSPECV_PROBE_STACK_RANGE  ; Represent stack range probing.
   ]
 )
 
   [(set (match_operand:PTR 0 "register_operand" "=r")
        (unspec_volatile:PTR [(match_operand:PTR 1 "register_operand" "0")
                              (match_operand:PTR 2 "register_operand" "r")]
-                              UNSPEC_PROBE_STACK_RANGE))]
+                              UNSPECV_PROBE_STACK_RANGE))]
   ""
 {
   return aarch64_output_probe_stack_range (operands[0], operands[2]);
index 1462a31af9c96ca08c4b7c7ac944ef933c2458f2..a742d8f8cbba800863c4c96797682b8586010f96 100644 (file)
   [(set (match_operand:SI 0 "register_operand" "=r")
        (unspec_volatile:SI [(match_operand:SI 1 "register_operand" "0")
                             (match_operand:SI 2 "register_operand" "r")]
-                            UNSPEC_PROBE_STACK_RANGE))]
+                            VUNSPEC_PROBE_STACK_RANGE))]
   "TARGET_32BIT"
 {
   return output_probe_stack_range (operands[0], operands[2]);
index 44d4e7dae8abc9069458fd754253c9998b432cae..67acafd075fb515a848fbe968a0183e4673ab0cd 100644 (file)
@@ -84,7 +84,6 @@
   UNSPEC_VRINTA         ; Represent a float to integral float rounding
                         ; towards nearest, ties away from zero.
   UNSPEC_PROBE_STACK    ; Probe stack memory reference
-  UNSPEC_PROBE_STACK_RANGE ; Probe stack range
 ])
 
 (define_c_enum "unspec" [
   VUNSPEC_STL          ; Represent a store-register-release.
   VUNSPEC_GET_FPSCR    ; Represent fetch of FPSCR content.
   VUNSPEC_SET_FPSCR    ; Represent assign of FPSCR content.
+  VUNSPEC_PROBE_STACK_RANGE ; Represent stack range probing.
 ])
 
 ;; Enumerators for NEON unspecs.