diff options
author | Jan Hubicka <jh@suse.cz> | 2000-04-13 13:59:00 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2000-04-13 13:59:00 +0000 |
commit | 2a8f6b90c17bc2eb63bb218e7b11b6c6178c9d70 (patch) | |
tree | d0cc1485f0444d16267f642aaa62f86e34308a1e /gcc/tree.h | |
parent | c966901c242442c6ca4d34c8cdc85f5dfd3dbdd3 (diff) | |
download | gcc-2a8f6b90c17bc2eb63bb218e7b11b6c6178c9d70.zip gcc-2a8f6b90c17bc2eb63bb218e7b11b6c6178c9d70.tar.gz gcc-2a8f6b90c17bc2eb63bb218e7b11b6c6178c9d70.tar.bz2 |
alias.c (nonlocal_reference_p): Take a care for CALL_INSNS's fusage field.
* alias.c (nonlocal_reference_p): Take a care for
CALL_INSNS's fusage field.
* calls.c (ECF_PURE): New flag.
(emit_call_1): Handle ECF_PURE calls.
(initialize_argument_information): Unset ECF_PURE flag too.
(precompute_arguments): Precompute for ECF_PURE too.
(expand_call): Handle ECF_PURE calls too.
(emit_library_call_value_1): Rename no_queue argument to
fn_type, accept value of 2 as pure function.
(emit_library_call_value, emit_library_call): Rename no_queue argument
to fn_type.
* optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
* tree.h (DECL_IS_PURE): New macro.
(struct tree_decl): Add pure_flag.
* c-common.c (enum attrs): Add attribute "pure".
(init_attributes): Initialize attribute "pure"
(decl_attributes): Handle attribute "pure".
* extend.texi (Attribute "pure"): Document.
* calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
in pure function.
(flags_from_decl_or_type): Support attribute "pure".
From-SVN: r33138
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -1253,6 +1253,10 @@ struct tree_type not an alias. */ #define DECL_IS_MALLOC(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.malloc_flag) +/* Nonzero in a FUNCTION_DECL means this function should be treated + as "pure" function (like const function, but may read global memory). */ +#define DECL_IS_PURE(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.pure_flag) + /* Nonzero in a FIELD_DECL means it is a bit field, and must be accessed specially. */ #define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl.bit_field_flag) @@ -1392,6 +1396,7 @@ struct tree_decl unsigned comdat_flag : 1; unsigned malloc_flag : 1; unsigned no_limit_stack : 1; + unsigned pure_flag : 1; #ifdef ONLY_INT_FIELDS unsigned int built_in_class : 2; #else |