diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2006-02-14 14:49:13 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2006-02-14 14:49:13 +0000 |
commit | 98035a75ac5fca6590f63d08aa3a4914809a8855 (patch) | |
tree | 9329bdf3c2d31755066d0772b7438f632c1ca28f /gcc/tree-ssa-structalias.c | |
parent | b076a3fd749f2060d33c477c70e18ed24ce83d96 (diff) | |
download | gcc-98035a75ac5fca6590f63d08aa3a4914809a8855.zip gcc-98035a75ac5fca6590f63d08aa3a4914809a8855.tar.gz gcc-98035a75ac5fca6590f63d08aa3a4914809a8855.tar.bz2 |
re PR tree-optimization/26260 (PTA is slow with large structs (hits clisp))
2006-02-14 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/26260
* doc/invoke.texi (max-fields-for-field-sensitive): Document
param.
* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
* tree-ssa-structalias.c (create_variable_info_for): Use
MAX_FIELDS_FOR_FIELD_SENSITIVE.
From-SVN: r110972
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 2ddbe0f..c7eae96 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -3881,7 +3881,6 @@ check_for_overlaps (VEC (fieldoff_s,heap) *fieldstack) } return false; } - /* Create a varinfo structure for NAME and DECL, and add it to VARMAP. This will also create any varinfo structures necessary for fields of DECL. */ @@ -3945,7 +3944,8 @@ create_variable_info_for (tree decl, const char *name) if (use_field_sensitive && !notokay && !vi->is_unknown_size_var - && var_can_have_subvars (decl)) + && var_can_have_subvars (decl) + && VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE) { unsigned int newindex = VEC_length (varinfo_t, varmap); fieldoff_s *fo = NULL; |