diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-11-09 09:29:23 -0500 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-11-09 13:27:42 -0500 |
commit | 56af35de3d11960100996b96034dc9ccd7c75ca3 (patch) | |
tree | cf373ec2c094fa6ef46252f65481e55c65181d27 /gcc | |
parent | 53080c5b4ce3742d20a0aa4643203215f20aadf6 (diff) | |
download | gcc-56af35de3d11960100996b96034dc9ccd7c75ca3.zip gcc-56af35de3d11960100996b96034dc9ccd7c75ca3.tar.gz gcc-56af35de3d11960100996b96034dc9ccd7c75ca3.tar.bz2 |
Keep x_range_query NULL for global ranges.
Instead of x_range_query always pointing to an object, have it default to
NULL and return a pointer to the global query in that case.
* function.c (allocate_struct_function): Don't set x_range_query.
* function.h (get_range_query): Move to value-query.h.
* gimple-range.cc (enable_ranger): Check that query is currently NULL.
(disable_ranger): Clear function current query field.
* value-query.cc (get_global_range_query): Relocate to:
* value-query.h (get_global_range_query): Here and inline.
(get_range_query): Relocate here from function.h.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/function.c | 2 | ||||
-rw-r--r-- | gcc/function.h | 11 | ||||
-rw-r--r-- | gcc/gimple-range.cc | 5 | ||||
-rw-r--r-- | gcc/value-query.cc | 8 | ||||
-rw-r--r-- | gcc/value-query.h | 16 |
5 files changed, 19 insertions, 23 deletions
diff --git a/gcc/function.c b/gcc/function.c index af3d57b..61b3bd0 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4873,8 +4873,6 @@ allocate_struct_function (tree fndecl, bool abstract_p) binding annotations among them. */ cfun->debug_nonbind_markers = lang_hooks.emits_begin_stmt && MAY_HAVE_DEBUG_MARKER_STMTS; - - cfun->x_range_query = &global_ranges; } /* This is like allocate_struct_function, but pushes a new cfun for FNDECL diff --git a/gcc/function.h b/gcc/function.h index 36003e7..8994308 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -719,15 +719,4 @@ extern const char *current_function_name (void); extern void used_types_insert (tree); -/* Returns the currently active range access class. When there is no active - range class, global ranges are used. Never returns null. */ - -ATTRIBUTE_RETURNS_NONNULL inline range_query * -get_range_query (const struct function *fun) -{ - return fun->x_range_query; -} - -extern range_query *get_global_range_query (); - #endif /* GCC_FUNCTION_H */ diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc index 87dba6e..a2b68b2 100644 --- a/gcc/gimple-range.cc +++ b/gcc/gimple-range.cc @@ -467,6 +467,7 @@ enable_ranger (struct function *fun) { gimple_ranger *r; + gcc_checking_assert (!fun->x_range_query); r = new gimple_ranger; fun->x_range_query = r; @@ -479,7 +480,7 @@ enable_ranger (struct function *fun) void disable_ranger (struct function *fun) { + gcc_checking_assert (fun->x_range_query); delete fun->x_range_query; - - fun->x_range_query = &global_ranges; + fun->x_range_query = NULL; } diff --git a/gcc/value-query.cc b/gcc/value-query.cc index 17ebd86..b7d9e66 100644 --- a/gcc/value-query.cc +++ b/gcc/value-query.cc @@ -435,14 +435,6 @@ gimple_range_global (tree name) global_range_query global_ranges; -// Like get_range_query, but for accessing global ranges. - -range_query * -get_global_range_query () -{ - return &global_ranges; -} - bool global_range_query::range_of_expr (irange &r, tree expr, gimple *stmt) { diff --git a/gcc/value-query.h b/gcc/value-query.h index 5161d23..38e23bb 100644 --- a/gcc/value-query.h +++ b/gcc/value-query.h @@ -127,6 +127,22 @@ public: }; extern global_range_query global_ranges; + +inline range_query * +get_global_range_query () +{ + return &global_ranges; +} + +/* Returns the currently active range access class. When there is no active + range class, global ranges are used. Never returns null. */ + +ATTRIBUTE_RETURNS_NONNULL inline range_query * +get_range_query (const struct function *fun) +{ + return fun->x_range_query ? fun->x_range_query : &global_ranges; +} + extern value_range gimple_range_global (tree name); extern bool update_global_range (irange &r, tree name); |