summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authordorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-29 16:10:22 +0000
committerdorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-29 16:10:22 +0000
commitabb91f0ba1e7b43d41e0b5f6668249d13556303f (patch)
tree3b6e04f8be928ef4cb17b708c1898650d3020a60 /gcc/fortran
parentf1c94b5580c2833b4e24cd14de9bcc246b209269 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/fortran/f95-lang.c13
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;
}