diff options
author | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-29 16:10:22 +0000 |
---|---|---|
committer | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-29 16:10:22 +0000 |
commit | abb91f0ba1e7b43d41e0b5f6668249d13556303f (patch) | |
tree | 3b6e04f8be928ef4cb17b708c1898650d3020a60 /gcc/fortran | |
parent | f1c94b5580c2833b4e24cd14de9bcc246b209269 (diff) | |
download | gcc-abb91f0ba1e7b43d41e0b5f6668249d13556303f.tar.gz |
* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
(duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
* tree-vect-analyze.c (vect_object_analysis): additional parm
pass back a "struct ptr_info_def *" with the points-to info.
(vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
statement using info returned from vect_object_analysis.
* tree-vect-transform.c (update_vuses_to_preheader): New function.
(vect_create_data_ref_ptr): Remove updates to vars_to_rename
for virtual uses and defs when creating a replacement vector
reference. Call duplicate_ssa_name_ptr_info to define points-to
info for vector pointer replacement using STMT_VINFO_PTR_INFO.
(vectorizable_store): copy_virtual_operands and update
definition statements.
(vectorizable_load): copy_virtual_operands. Remove call to
mark_call_clobbered_vars_to_rename for call to "const" builtin.
* tree-vectorizer.c (vectorize_loops): Remove calls to
rewrite_into_ssa and bitmap_clear (vars_to_rename).
(new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
* tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
define macro STMT_VINFO_PTR_INFO for use in accessing.
* tree.h add export of duplicate_ssa_name_ptr_info.
* rs6000.c (altivec_init_builtins): Declare builtin function
__builtin_altivec_mask_for_load to be "const".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97164 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/f95-lang.c | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 99671746a88..ccbd3cb97c3 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2005-03-29 Keith Besaw <kbesaw@us.ibm.com> + + * f95-lang.c (builtin_function): Process the attrs parameter + and apply the "const" attribute to the builtin if found. + 2005-03-27 Steven G. Kargl <kargls@comcast.net> * intrinsic.texi: Document AIMAG, AINT, ALL diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index e0c22daad5d..2fb06a9537a 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -680,7 +680,7 @@ builtin_function (const char *name, int function_code, enum built_in_class class, const char *library_name, - tree attrs ATTRIBUTE_UNUSED) + tree attrs) { tree decl = build_decl (FUNCTION_DECL, get_identifier (name), type); DECL_EXTERNAL (decl) = 1; @@ -691,6 +691,17 @@ builtin_function (const char *name, pushdecl (decl); DECL_BUILT_IN_CLASS (decl) = class; DECL_FUNCTION_CODE (decl) = function_code; + + /* Possibly apply some default attributes to this built-in function. */ + if (attrs) + { + /* FORNOW the only supported attribute is "const". If others need + to be supported then see the more general solution in procedure + builtin_function in c-decl.c */ + if (lookup_attribute ( "const", attrs )) + TREE_READONLY (decl) = 1; + } + return decl; } |