static bool needs_frame_header_p (function *fn) { tree t; if (fn->decl == NULL) return true; if (fn->stdarg) return true; for (t = DECL_ARGUMENTS (fn->decl); t; t = TREE_CHAIN (t)) { if (!use_register_for_decl (t)) return true; /* Some 64-bit types may get copied to general registers using the frame header, see mips_output_64bit_xfer. Checking for SImode only may be overly restrictive but it is guaranteed to be safe. */ if (DECL_MODE (t) != SImode) return true; } return false; }
static void expand_one_var (tree var, bool toplevel) { if (TREE_CODE (var) != VAR_DECL) lang_hooks.expand_decl (var); else if (DECL_EXTERNAL (var)) ; else if (DECL_VALUE_EXPR (var)) ; else if (TREE_STATIC (var)) expand_one_static_var (var); else if (DECL_RTL_SET_P (var)) ; else if (TREE_TYPE (var) == error_mark_node) expand_one_error_var (var); else if (DECL_HARD_REGISTER (var)) expand_one_hard_reg_var (var); else if (use_register_for_decl (var)) expand_one_register_var (var); else if (defer_stack_allocation (var, toplevel)) add_stack_var (var); else expand_one_stack_var (var); }