diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2004-11-23 19:55:24 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2004-11-23 19:55:24 +0000 |
commit | 6e14af161c7d61b280c187b1a91a0fd853249bd1 (patch) | |
tree | 67f41f708633dc69a022149ee3dee19b259e910b /gcc/tree.h | |
parent | e9c00ceb85406d1f78d1752f27742ac7bb05b47b (diff) | |
download | gcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.zip gcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.tar.gz gcc-6e14af161c7d61b280c187b1a91a0fd853249bd1.tar.bz2 |
function.h (struct function): Remove calls_longjmp.
* function.h (struct function): Remove calls_longjmp.
(current_function_calls_longjmp): Delete.
* tree.h (ECF_LONGJMP): Delete.
(ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
(ECF_LIBCALL_BLOCK): Everybody slide down one.
(ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
* builtins.c (expand_builtin_longjmp): Don't set
current_function_calls_longjmp.
* calls.c (special_function_p): Mark longjmp and siglongjmp
with ECF_NORETURN, not ECF_LONGJMP.
(emit_call_1, expand_call, emit_library_call_value_1):
Don't check for ECF_LONGJMP.
* tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
(need_fake_edge_p): Likewise.
* config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
* system.h: Poison NON_SAVING_SETJMP.
* function.c (use_register_for_decl)
* gcse.c (compute_hash_table_work, compute_store_table)
* postreload-gcse.c (record_opr_changes)
* reload.c (find_equiv_reg)
* reload1.c (reload)
* config/i386/i386.c (ix86_can_use_return_insn_p):
Remove code conditional on NON_SAVING_SETJMP.
* doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
* config/i386/sysv3.h: Delete file.
* config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
From-SVN: r91101
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -3648,9 +3648,11 @@ extern rtx emit_line_note (location_t); /* In calls.c */ -/* Nonzero if this is a call to a `const' function. */ +/* Nonzero if this is a call to a function whose return value depends + solely on its arguments, has no side effects, and does not read + global memory. */ #define ECF_CONST 1 -/* Nonzero if this is a call to a `volatile' function. */ +/* Nonzero if this call will never return. */ #define ECF_NORETURN 2 /* Nonzero if this is a call to malloc or a related function. */ #define ECF_MALLOC 4 @@ -3660,21 +3662,18 @@ extern rtx emit_line_note (location_t); #define ECF_NOTHROW 16 /* Nonzero if this is a call to setjmp or a related function. */ #define ECF_RETURNS_TWICE 32 -/* Nonzero if this is a call to `longjmp'. */ -#define ECF_LONGJMP 64 -/* Nonzero if this is a syscall that makes a new process in the image of - the current one. */ -#define ECF_SIBCALL 128 +/* Nonzero if this call replaces the current stack frame. */ +#define ECF_SIBCALL 64 /* Nonzero if this is a call to "pure" function (like const function, but may read memory. */ -#define ECF_PURE 256 +#define ECF_PURE 128 /* Nonzero if this is a call to a function that returns with the stack pointer depressed. */ -#define ECF_SP_DEPRESSED 512 +#define ECF_SP_DEPRESSED 256 /* Nonzero if this call is known to always return. */ -#define ECF_ALWAYS_RETURN 1024 +#define ECF_ALWAYS_RETURN 512 /* Create libcall block around the call. */ -#define ECF_LIBCALL_BLOCK 2048 +#define ECF_LIBCALL_BLOCK 1024 extern int flags_from_decl_or_type (tree); extern int call_expr_flags (tree); |