public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-7035] Enable pointer_query caching in -Warray-bounds.
@ 2022-02-03 21:10 Martin Sebor
  0 siblings, 0 replies; only message in thread
From: Martin Sebor @ 2022-02-03 21:10 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:a62b740d7b8bff2d8b5578d01d00e5fe464e5325

commit r12-7035-ga62b740d7b8bff2d8b5578d01d00e5fe464e5325
Author: Martin Sebor <msebor@redhat.com>
Date:   Thu Feb 3 13:58:28 2022 -0700

    Enable pointer_query caching in -Warray-bounds.
    
    gcc/ChangeLog:
    
            * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
            Define ctor.
            (array_bounds_checker::get_value_range): Use new member.
            (array_bounds_checker::check_mem_ref): Same.
            * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
            Outline ctor.
            (array_bounds_checker::m_ptr_query): New member.

Diff:
---
 gcc/gimple-array-bounds.cc | 13 ++++++++++---
 gcc/gimple-array-bounds.h  | 10 ++++++----
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/gcc/gimple-array-bounds.cc b/gcc/gimple-array-bounds.cc
index 80c70b49607..7ec8b08c8d2 100644
--- a/gcc/gimple-array-bounds.cc
+++ b/gcc/gimple-array-bounds.cc
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "gimple.h"
 #include "ssa.h"
+#include "pointer-query.h"
 #include "gimple-array-bounds.h"
 #include "gimple-iterator.h"
 #include "gimple-walk.h"
@@ -37,7 +38,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "domwalk.h"
 #include "tree-cfg.h"
 #include "attribs.h"
-#include "pointer-query.h"
+
+array_bounds_checker::array_bounds_checker (struct function *func,
+					    range_query *qry)
+  : fun (func), m_ptr_qry (qry)
+{
+  /* No-op.  */
+}
 
 // This purposely returns a value_range, not a value_range_equiv, to
 // break the dependency on equivalences for this pass.
@@ -45,7 +52,7 @@ along with GCC; see the file COPYING3.  If not see
 const value_range *
 array_bounds_checker::get_value_range (const_tree op, gimple *stmt)
 {
-  return ranges->get_value_range (op, stmt);
+  return m_ptr_qry.rvals->get_value_range (op, stmt);
 }
 
 /* Try to determine the DECL that REF refers to.  Return the DECL or
@@ -401,7 +408,7 @@ array_bounds_checker::check_mem_ref (location_t location, tree ref,
       axssize = wi::to_offset (access_size);
 
   access_ref aref;
-  if (!compute_objsize (ref, m_stmt, 0, &aref, ranges))
+  if (!m_ptr_qry.get_ref (ref, m_stmt, &aref, 0))
     return false;
 
   if (aref.offset_in_range (axssize))
diff --git a/gcc/gimple-array-bounds.h b/gcc/gimple-array-bounds.h
index d42146b87c8..eb399271da7 100644
--- a/gcc/gimple-array-bounds.h
+++ b/gcc/gimple-array-bounds.h
@@ -20,13 +20,14 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_GIMPLE_ARRAY_BOUNDS_H
 #define GCC_GIMPLE_ARRAY_BOUNDS_H
 
+#include "pointer-query.h"
+
 class array_bounds_checker
 {
   friend class check_array_bounds_dom_walker;
 
 public:
-  array_bounds_checker (struct function *fun, range_query *v)
-    : fun (fun), ranges (v) { }
+  array_bounds_checker (struct function *, range_query *);
   void check ();
 
 private:
@@ -38,8 +39,9 @@ private:
 
   /* Current function.  */
   struct function *fun;
-  /* Ranger instance.  */
-  range_query *ranges;
+  /* A pointer_query object to store information about pointers and
+     their targets in.  */
+  pointer_query m_ptr_qry;
   /* Current statement.  */
   gimple *m_stmt;
 };


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-03 21:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-03 21:10 [gcc r12-7035] Enable pointer_query caching in -Warray-bounds Martin Sebor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).