function.h (struct incoming_args): Move struct.
authorAndrew MacLeod <amacleod@redhat.com>
Thu, 25 Jun 2015 16:51:35 +0000 (16:51 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Thu, 25 Jun 2015 16:51:35 +0000 (16:51 +0000)
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* function.h (struct incoming_args): Move struct.
(pass_by_reference, reference_callee_copied): Remove prototypes.
* emit-rtl.h (struct incoming_args): Relocate struct here.
* calls.h (pass_by_reference, reference_callee_copied): Relocate
prototypes here.
* function.c (pass_by_reference, reference_callee_copied): Move.
* calls.c (pass_by_reference, reference_callee_copied): Relocate here.
* cfgloop.h: Don't include tm.h or hard-reg-set.h.
* ipa-chkp.c: Include calls.h.

* ada/gcc-interface/misc.c: Include calls.h not function.h.

* c-family/cilk.c: Move calls.h after tm.h in the include chain.

From-SVN: r224951

12 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/misc.c
gcc/c-family/ChangeLog
gcc/c-family/cilk.c
gcc/calls.c
gcc/calls.h
gcc/cfgloop.h
gcc/emit-rtl.h
gcc/function.c
gcc/function.h
gcc/ipa-chkp.c

index 32e53519fd29f0fb265448a0653ea7d925b05fb1..a45adfd715f60965e50c7fcaea7d4cbf67f44e26 100644 (file)
@@ -1,3 +1,15 @@
+2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
+
+       * function.h (struct incoming_args): Move struct.
+       (pass_by_reference, reference_callee_copied): Remove prototypes.
+       * emit-rtl.h (struct incoming_args): Relocate struct here.
+       * calls.h (pass_by_reference, reference_callee_copied): Relocate
+       prototypes here.
+       * function.c (pass_by_reference, reference_callee_copied): Move.
+       * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
+       * cfgloop.h: Don't include tm.h or hard-reg-set.h.
+       * ipa-chkp.c: Include calls.h.
+
 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
 
        * alias.h (alias_set_type): Move typedef.
index 801be514716fd70dfc960f55ef55f9fca62fb2fe..09d1ef9e09d81cd742148612460c4342f4b5e05d 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
+
+       * gcc-interface/misc.c: Include calls.h not function.h.
+
 2015-06-19  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/gigi.h (record_builtin_type): Adjust comment.
index 55d40dd5527a216c7f12e826e7d464371cf225aa..bb11ce49b83a8f0f7cbdd172765537f792bad64f 100644 (file)
@@ -48,7 +48,7 @@
 #include "plugin.h"
 #include "hashtab.h"
 #include "hard-reg-set.h"
-#include "function.h"  /* For pass_by_reference.  */
+#include "calls.h"     /* For pass_by_reference.  */
 #include "dwarf2out.h"
 
 #include "ada.h"
index e2a2d7610a3a6177513b436c5160e0c8b9efc637..61afc6a87e54bc7819efd500cdf1426a03ee53c7 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
+
+       * cilk.c: Move calls.h after tm.h in the include chain.
+
 2015-06-25  Marek Polacek  <polacek@redhat.com>
 
        * array-notation-common.c: Use VAR_P throughout.
index 958df27f17a3dde9f8a92c16c6456c64c66328dc..29ac1b294227a641fbdd4d7d15e4eb77580dc932 100644 (file)
@@ -29,7 +29,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "calls.h"
 #include "langhooks.h"
 #include "gimple-expr.h"
 #include "gimplify.h"
@@ -41,6 +40,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "hard-reg-set.h"
 #include "function.h"
+#include "calls.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "diagnostic.h"
index 5cf0dca64598a198e7da3dbe6f203ac80bdfff65..7cb2c3df9487d1627cbeeca16ebf4d035ef9452d 100644 (file)
@@ -858,6 +858,50 @@ call_expr_flags (const_tree t)
   return flags;
 }
 
+/* Return true if TYPE should be passed by invisible reference.  */
+
+bool
+pass_by_reference (CUMULATIVE_ARGS *ca, machine_mode mode,
+                  tree type, bool named_arg)
+{
+  if (type)
+    {
+      /* If this type contains non-trivial constructors, then it is
+        forbidden for the middle-end to create any new copies.  */
+      if (TREE_ADDRESSABLE (type))
+       return true;
+
+      /* GCC post 3.4 passes *all* variable sized types by reference.  */
+      if (!TYPE_SIZE (type) || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
+       return true;
+
+      /* If a record type should be passed the same as its first (and only)
+        member, use the type and mode of that member.  */
+      if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
+       {
+         type = TREE_TYPE (first_field (type));
+         mode = TYPE_MODE (type);
+       }
+    }
+
+  return targetm.calls.pass_by_reference (pack_cumulative_args (ca), mode,
+                                         type, named_arg);
+}
+
+/* Return true if TYPE, which is passed by reference, should be callee
+   copied instead of caller copied.  */
+
+bool
+reference_callee_copied (CUMULATIVE_ARGS *ca, machine_mode mode,
+                        tree type, bool named_arg)
+{
+  if (type && TREE_ADDRESSABLE (type))
+    return false;
+  return targetm.calls.callee_copies (pack_cumulative_args (ca), mode, type,
+                                     named_arg);
+}
+
+
 /* Precompute all register parameters as described by ARGS, storing values
    into fields within the ARGS array.
 
index fc8458c27a27cf1ea02b0778d17d1a3a27daa0d6..7cea2c12567967f2775c9cb32ed432afd63aa646 100644 (file)
@@ -32,6 +32,11 @@ extern bool shift_return_value (machine_mode, bool, rtx);
 extern rtx expand_call (tree, rtx, int);
 extern void fixup_tail_calls (void);
 
+extern bool pass_by_reference (CUMULATIVE_ARGS *, machine_mode,
+                              tree, bool);
+extern bool reference_callee_copied (CUMULATIVE_ARGS *, machine_mode,
+                                    tree, bool);
+
 
 
 #endif // GCC_CALLS_H
index 062034276367f5141b57a0433d5b2bc1982798dd..29b626a90edd45d65cc36789849cd1a815506d66 100644 (file)
@@ -22,8 +22,6 @@ along with GCC; see the file COPYING3.  If not see
 
 #include "bitmap.h"
 #include "sbitmap.h"
-#include "tm.h"
-#include "hard-reg-set.h"
 #include "function.h"
 #include "cfgloopmanip.h"
 
index cccb1acbdcb6515bfc44d0bd8053c436499b364f..f52c3357b9cbeb75ed8fce5865e8267c423b1e7a 100644 (file)
@@ -23,6 +23,36 @@ along with GCC; see the file COPYING3.  If not see
 struct temp_slot;
 typedef struct temp_slot *temp_slot_p;
 
+/* Information mainlined about RTL representation of incoming arguments.  */
+struct GTY(()) incoming_args {
+  /* Number of bytes of args popped by function being compiled on its return.
+     Zero if no bytes are to be popped.
+     May affect compilation of return insn or of function epilogue.  */
+  int pops_args;
+
+  /* If function's args have a fixed size, this is that size, in bytes.
+     Otherwise, it is -1.
+     May affect compilation of return insn or of function epilogue.  */
+  int size;
+
+  /* # bytes the prologue should push and pretend that the caller pushed them.
+     The prologue must do this, but only if parms can be passed in
+     registers.  */
+  int pretend_args_size;
+
+  /* This is the offset from the arg pointer to the place where the first
+     anonymous arg can be found, if there is one.  */
+  rtx arg_offset_rtx;
+
+  /* Quantities of various kinds of registers
+     used for the current function's args.  */
+  CUMULATIVE_ARGS info;
+
+  /* The arg pointer hard register, or the pseudo into which it was copied.  */
+  rtx internal_arg_pointer;
+};
+
+
 /* Datastructures maintained for currently processed function in RTL form.  */
 struct GTY(()) rtl_data {
   struct expr_status expr;
index ea0eba8fe857ff3ff6aff564ba9e309ea10f5573..e746b3fbbe230af3a4059b6907d5601a850375b8 100644 (file)
@@ -2169,49 +2169,6 @@ use_register_for_decl (const_tree decl)
   return true;
 }
 
-/* Return true if TYPE should be passed by invisible reference.  */
-
-bool
-pass_by_reference (CUMULATIVE_ARGS *ca, machine_mode mode,
-                  tree type, bool named_arg)
-{
-  if (type)
-    {
-      /* If this type contains non-trivial constructors, then it is
-        forbidden for the middle-end to create any new copies.  */
-      if (TREE_ADDRESSABLE (type))
-       return true;
-
-      /* GCC post 3.4 passes *all* variable sized types by reference.  */
-      if (!TYPE_SIZE (type) || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
-       return true;
-
-      /* If a record type should be passed the same as its first (and only)
-        member, use the type and mode of that member.  */
-      if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
-       {
-         type = TREE_TYPE (first_field (type));
-         mode = TYPE_MODE (type);
-       }
-    }
-
-  return targetm.calls.pass_by_reference (pack_cumulative_args (ca), mode,
-                                         type, named_arg);
-}
-
-/* Return true if TYPE, which is passed by reference, should be callee
-   copied instead of caller copied.  */
-
-bool
-reference_callee_copied (CUMULATIVE_ARGS *ca, machine_mode mode,
-                        tree type, bool named_arg)
-{
-  if (type && TREE_ADDRESSABLE (type))
-    return false;
-  return targetm.calls.callee_copies (pack_cumulative_args (ca), mode, type,
-                                     named_arg);
-}
-
 /* Structures to communicate between the subroutines of assign_parms.
    The first holds data persistent across all parameters, the second
    is cleared out for each parameter.  */
index 54fea4b2c680e4d2e3bec0eb13f4ecc0d67f599f..f9b2468e0be8482e7b67219928e5c0f33ec81748 100644 (file)
@@ -169,34 +169,6 @@ struct GTY(()) varasm_status {
   unsigned int deferred_constants;
 };
 
-/* Information mainlined about RTL representation of incoming arguments.  */
-struct GTY(()) incoming_args {
-  /* Number of bytes of args popped by function being compiled on its return.
-     Zero if no bytes are to be popped.
-     May affect compilation of return insn or of function epilogue.  */
-  int pops_args;
-
-  /* If function's args have a fixed size, this is that size, in bytes.
-     Otherwise, it is -1.
-     May affect compilation of return insn or of function epilogue.  */
-  int size;
-
-  /* # bytes the prologue should push and pretend that the caller pushed them.
-     The prologue must do this, but only if parms can be passed in
-     registers.  */
-  int pretend_args_size;
-
-  /* This is the offset from the arg pointer to the place where the first
-     anonymous arg can be found, if there is one.  */
-  rtx arg_offset_rtx;
-
-  /* Quantities of various kinds of registers
-     used for the current function's args.  */
-  CUMULATIVE_ARGS info;
-
-  /* The arg pointer hard register, or the pseudo into which it was copied.  */
-  rtx internal_arg_pointer;
-};
 
 /* Data for function partitioning.  */
 struct GTY(()) function_subsections {
@@ -610,10 +582,6 @@ extern bool initial_value_entry (int i, rtx *, rtx *);
 extern void instantiate_decl_rtl (rtx x);
 extern int aggregate_value_p (const_tree, const_tree);
 extern bool use_register_for_decl (const_tree);
-extern bool pass_by_reference (CUMULATIVE_ARGS *, machine_mode,
-                              tree, bool);
-extern bool reference_callee_copied (CUMULATIVE_ARGS *, machine_mode,
-                                    tree, bool);
 extern gimple_seq gimplify_parameters (void);
 extern void locate_and_pad_parm (machine_mode, tree, int, int, int,
                                 tree, struct args_size *,
index 96f269cd0a936b7b4b10df2db270c90bb001639b..c0bc4326078a0f600b32bf4cdba35604364876c5 100644 (file)
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "hard-reg-set.h"
 #include "function.h"
+#include "calls.h"
 #include "tree-ssa-alias.h"
 #include "predict.h"
 #include "basic-block.h"