Mercurial > hg > CbC > CbC_gcc
diff gcc/function.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/function.h Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/function.h Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* Structure for saving state for a nested function. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2018 Free Software Foundation, Inc. This file is part of GCC. @@ -94,7 +94,7 @@ struct GTY(()) expr_status { /* Number of units that we should eventually pop off the stack. These are the arguments to function calls that have already returned. */ - int x_pending_stack_adjust; + poly_int64_pod x_pending_stack_adjust; /* Under some ABIs, it is the caller's responsibility to pop arguments pushed for function calls. A naive implementation would simply pop @@ -117,7 +117,7 @@ boundary can be momentarily unaligned while pushing the arguments. Record the delta since last aligned boundary here in order to get stack alignment in the nested function calls working right. */ - int x_stack_pointer_delta; + poly_int64_pod x_stack_pointer_delta; /* Nonzero means __builtin_saveregs has already been done in this function. The value is the pseudoreg containing the value __builtin_saveregs @@ -187,8 +187,8 @@ { struct frame_space *next; - HOST_WIDE_INT start; - HOST_WIDE_INT length; + poly_int64 start; + poly_int64 length; }; struct GTY(()) stack_usage @@ -200,9 +200,10 @@ meaningful only if has_unbounded_dynamic_stack_size is zero. */ HOST_WIDE_INT dynamic_stack_size; - /* # of bytes of space pushed onto the stack after the prologue. If - !ACCUMULATE_OUTGOING_ARGS, it contains the outgoing arguments. */ - int pushed_stack_size; + /* Upper bound on the number of bytes pushed onto the stack after the + prologue. If !ACCUMULATE_OUTGOING_ARGS, it contains the outgoing + arguments. */ + poly_int64 pushed_stack_size; /* Nonzero if the amount of stack space allocated dynamically cannot be bounded at compile-time. */ @@ -262,9 +263,6 @@ /* Vector of function local variables, functions, types and constants. */ vec<tree, va_gc> *local_decls; - /* In a Cilk function, the VAR_DECL for the frame descriptor. */ - tree cilk_frame_decl; - /* For md files. */ /* tm.h can use this to store whatever it likes. */ @@ -284,6 +282,12 @@ /* Last statement uid. */ int last_stmt_uid; + /* Debug marker counter. Count begin stmt markers. We don't have + to keep it exact, it's more of a rough estimate to enable us to + decide whether they are too many to copy during inlining, or when + expanding to RTL. */ + int debug_marker_count; + /* Function sequence number for profiling, debugging, etc. */ int funcdef_no; @@ -323,12 +327,6 @@ either as a subroutine or builtin. */ unsigned int calls_alloca : 1; - /* This will indicate whether a function is a cilk function */ - unsigned int is_cilk_function : 1; - - /* Nonzero if this is a Cilk function that spawns. */ - unsigned int calls_cilk_spawn : 1; - /* Nonzero if function being compiled receives nonlocal gotos from nested functions. */ unsigned int has_nonlocal_label : 1; @@ -385,8 +383,15 @@ nonzero value in loop->simduid. */ unsigned int has_simduid_loops : 1; - /* Set when the tail call has been identified. */ + /* Nonzero when the tail call has been identified. */ unsigned int tail_call_marked : 1; + + /* Nonzero if the current function contains a #pragma GCC unroll. */ + unsigned int has_unroll : 1; + + /* Set when the function was compiled with generation of debug + (begin stmt, inline entry, ...) markers enabled. */ + unsigned int debug_nonbind_markers : 1; }; /* Add the decl D to the local_decls list of FUN. */ @@ -476,7 +481,7 @@ struct args_size { - HOST_WIDE_INT constant; + poly_int64_pod constant; tree var; }; @@ -538,7 +543,7 @@ /* Convert the implicit sum in a `struct args_size' into an rtx. */ #define ARGS_SIZE_RTX(SIZE) \ -((SIZE).var == 0 ? GEN_INT ((SIZE).constant) \ +((SIZE).var == 0 ? gen_int_mode ((SIZE).constant, Pmode) \ : expand_normal (ARGS_SIZE_TREE (SIZE))) #define ASLK_REDUCE_ALIGN 1 @@ -571,19 +576,19 @@ /* Return size needed for stack frame based on slots so far allocated. This size counts from zero. It is not rounded to STACK_BOUNDARY; the caller may have to do that. */ -extern HOST_WIDE_INT get_frame_size (void); +extern poly_int64 get_frame_size (void); /* Issue an error message and return TRUE if frame OFFSET overflows in the signed target pointer arithmetics for function FUNC. Otherwise return FALSE. */ -extern bool frame_offset_overflow (HOST_WIDE_INT, tree); +extern bool frame_offset_overflow (poly_int64, tree); extern unsigned int spill_slot_alignment (machine_mode); -extern rtx assign_stack_local_1 (machine_mode, HOST_WIDE_INT, int, int); -extern rtx assign_stack_local (machine_mode, HOST_WIDE_INT, int); -extern rtx assign_stack_temp_for_type (machine_mode, HOST_WIDE_INT, tree); -extern rtx assign_stack_temp (machine_mode, HOST_WIDE_INT); +extern rtx assign_stack_local_1 (machine_mode, poly_int64, int, int); +extern rtx assign_stack_local (machine_mode, poly_int64, int); +extern rtx assign_stack_temp_for_type (machine_mode, poly_int64, tree); +extern rtx assign_stack_temp (machine_mode, poly_int64); extern rtx assign_temp (tree, int, int); extern void update_temp_slot_address (rtx, rtx); extern void preserve_temp_slots (rtx); @@ -602,7 +607,7 @@ 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 gimple_seq gimplify_parameters (void); +extern gimple_seq gimplify_parameters (gimple_seq *); extern void locate_and_pad_parm (machine_mode, tree, int, int, int, tree, struct args_size *, struct locate_and_pad_arg_data *);