OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / function.h
index ebba29f..f78d737 100644 (file)
@@ -339,6 +339,9 @@ struct rtl_data GTY(())
      to call other functions.  */
   unsigned int preferred_stack_boundary;
 
+  /* The minimum alignment of parameter stack.  */
+  unsigned int parm_stack_boundary;
+
   /* The largest alignment of slot allocated on the stack.  */
   unsigned int max_used_stack_slot_alignment;
 
@@ -417,25 +420,33 @@ struct rtl_data GTY(())
   /* When set, expand should optimize for speed.  */
   bool maybe_hot_insn_p;
 
-  /* Nonzero if function stack realignment is needed. This flag may be
-     set twice: before and after reload. It is set before reload wrt
-     stack alignment estimation before reload. It will be changed after 
-     reload if by then criteria of stack realignment is different. 
+  /* Nonzero if function stack realignment is needed.  This flag may be
+     set twice: before and after reload.  It is set before reload wrt
+     stack alignment estimation before reload.  It will be changed after
+     reload if by then criteria of stack realignment is different.
      The value set after reload is the accurate one and is finalized.  */
   bool stack_realign_needed;
 
+  /* Nonzero if function stack realignment is tried.  This flag is set
+     only once before reload.  It affects register elimination.  This
+     is used to generate DWARF debug info for stack variables.  */
+  bool stack_realign_tried;
+
   /* Nonzero if function being compiled needs dynamic realigned
      argument pointer (drap) if stack needs realigning.  */
   bool need_drap;
 
   /* Nonzero if function stack realignment estimation is done, namely
-     stack_realign_needed flag has been set before reload wrt
-     estimated stack alignment info.  */
+     stack_realign_needed flag has been set before reload wrt estimated
+     stack alignment info.  */
   bool stack_realign_processed;
 
   /* Nonzero if function stack realignment has been finalized, namely
      stack_realign_needed flag has been set and finalized after reload.  */
   bool stack_realign_finalized;
+
+  /* True if dbr_schedule has already been called for this function.  */
+  bool dbr_scheduled_p;
 };
 
 #define return_label (crtl->x_return_label)
@@ -487,9 +498,6 @@ struct function GTY(())
   /* Points to the FUNCTION_DECL of this function.  */
   tree decl;
 
-  /* Function containing this function, if any.  */
-  struct function *outer;
-
   /* A PARM_DECL that should contain the static chain for this function.
      It will be initialized at the beginning of the function.  */
   tree static_chain_decl;
@@ -519,6 +527,9 @@ struct function GTY(())
   /* Last statement uid.  */
   int last_stmt_uid;
 
+  /* Line number of the start of the function for debugging purposes.  */
+  location_t function_start_locus;
+
   /* Line number of the end of the function.  */
   location_t function_end_locus;
 
@@ -570,6 +581,7 @@ struct function GTY(())
   unsigned int dont_save_pending_sizes_p : 1;
 
   unsigned int after_inlining : 1;
+  unsigned int always_inline_functions_inlined : 1;
 
   /* Fields below this point are not set for abstract functions; see
      allocate_struct_function.  */
@@ -599,9 +611,6 @@ extern GTY(()) struct function *cfun;
    push_cfun or set_cfun.  */
 #define cfun (cfun + 0)
 
-/* Pointer to chain of `struct function' for containing functions.  */
-extern GTY(()) struct function *outer_function_chain;
-
 /* Nonzero if we've already converted virtual regs to hard regs.  */
 extern int virtuals_instantiated;
 
@@ -622,10 +631,6 @@ extern void instantiate_decl_rtl (rtx x);
 #define n_bbs_in_dom_tree (cfun->cfg->x_n_bbs_in_dom_tree)
 #define VALUE_HISTOGRAMS(fun) (fun)->value_histograms
 
-/* Given a function decl for a containing function,
-   return the `struct function' for it.  */
-struct function *find_function_data (tree);
-
 /* Identify BLOCKs referenced by more than one NOTE_INSN_BLOCK_{BEG,END},
    and create duplicate blocks.  */
 extern void reorder_blocks (void);