cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
authorRichard Biener <rguenther@suse.de>
Fri, 14 Feb 2014 14:07:30 +0000 (14:07 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 14 Feb 2014 14:07:30 +0000 (14:07 +0000)
2014-02-14  Richard Biener  <rguenther@suse.de>

* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
(get_frame_arg): Drop the assert with langhook types_compatible_p.
Do not strip INDIRECT_REFs.

From-SVN: r207784

gcc/ChangeLog
gcc/cilk-common.c

index 2a2e5d2d5dc64bd4dcad51b5aeb895b580c6b699..91294f5f8f60ea8e53231f4582746afbe043ac57 100644 (file)
@@ -1,3 +1,9 @@
+2014-02-14  Richard Biener  <rguenther@suse.de>
+
+       * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
+       (get_frame_arg): Drop the assert with langhook types_compatible_p.
+       Do not strip INDIRECT_REFs.
+
 2014-02-14  Richard Biener  <rguenther@suse.de>
 
        PR lto/60179
index f2a3b7594d612b918ae0d4510abe5e51c2784ef6..a6a1aa2a9681ddee5eca2fb5b4065137baf96f69 100644 (file)
@@ -66,8 +66,7 @@ cilk_dot (tree frame, int field_number, bool volatil)
 tree
 cilk_arrow (tree frame_ptr, int field_number, bool volatil)
 {
-  return cilk_dot (fold_build1 (INDIRECT_REF, 
-                               TREE_TYPE (TREE_TYPE (frame_ptr)), frame_ptr), 
+  return cilk_dot (build_simple_mem_ref (frame_ptr), 
                   field_number, volatil);
 }
 
@@ -287,12 +286,9 @@ get_frame_arg (tree call)
 
   argtype = TREE_TYPE (argtype);
   
-  gcc_assert (!lang_hooks.types_compatible_p
-             || lang_hooks.types_compatible_p (argtype, cilk_frame_type_decl));
-
   /* If it is passed in as an address, then just use the value directly 
      since the function is inlined.  */
-  if (TREE_CODE (arg) == INDIRECT_REF || TREE_CODE (arg) == ADDR_EXPR)
+  if (TREE_CODE (arg) == ADDR_EXPR)
     return TREE_OPERAND (arg, 0);
   return arg;
 }